Protéger NGINX et NGINX Plus contre l’attaque POODLE visant SSLv3 (CVE-2014-3566)

NGINX | 15 novembre 2014

Une vulnérabilité récemment signalée dans la version 3 du protocole SSL (SSLv3) peut être exploitée dans le cadre d’une attaque de l’homme du milieu afin d’extraire des parties d’une transmission en texte clair chiffrée avec HTTPS. Des chercheurs de Google ont publié une explication détaillée décrivant comment une telle attaque pourrait être menée.

Il ne s’agit pas d’une vulnérabilité propre à une implémentation de SSL/TLS, mais d’une faille dans la conception du protocole SSLv3 lors de l’utilisation d’algorithmes de chiffrement par blocs. Comme tous les autres algorithmes de chiffrement par flot présentent également des faiblesses, la seule solution consiste à désactiver SSLv3 dans vos configurations NGINX et NGINX Plus.

Désactivation de SSLv3 dans NGINX

SSLv3 est activé par défaut dans NGINX et NGINX Plus, et peut être utilisé par les services HTTP et de messagerie.

[Note de la rédaction – La mise en proxy et la répartition de charge du trafic TCP n’étaient pas entièrement prises en charge lors de la publication initiale de cet article. Par souci d’exhaustivité, les étapes suivantes ont été mises à jour afin d’inclure la protection du trafic TCP.]

Effectuez les étapes suivantes sur toutes les instances NGINX et NGINX Plus :

  1. Supprimez SSLv3 de l’ensemble des protocoles utilisés pour le trafic HTTP. Ajoutez la directive suivante ssl_protocols au bloc http{} si elle n’existe pas, ou modifiez la directive existante afin de supprimer SSLv3 de la liste des paramètres.
# in the http{} configuration blockssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE (CVE‑2014‑3566)
  1. Créez ou modifiez la même directive dans le bloc de configuration mail{} si vos instances NGINX ou NGINX Plus gèrent le trafic de messagerie.
# in the mail{} configuration blockssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE (CVE‑2014‑3566)
  1. Créez ou modifiez la même directive dans le bloc de configuration stream{} si vos instances NGINX ou NGINX Plus gèrent du trafic TCP.
# in the stream{} configuration blockssl_protocols TLSv1 TLSv1.1 TLSv1.2; # omit SSLv3 because of POODLE (CVE‑2014‑3566)
  1. Repérez toutes les autres occurrences de la directive ssl_protocols dans votre configuration (elle peut être incluse dans un bloc de configuration server{} au sein des blocs http{}, mail{} et stream{}). Nous vous recommandons de supprimer ces directives ssl_protocols, mais vous devez au minimum retirer SSLv3 de la liste des paramètres :
# in every server{} block ssl_protocols TLSv1 TLSv1.1 TLSv1.2;# omit SSLv3 because of POODLE (CVE‑2014‑3566)
  1. Exécutez la commande suivante pour recharger la configuration :
# nginx –s reload

Quel est l’effet de cette modification ?

Tous les navigateurs modernes et clients d’API prennent en charge TLSv1 et les versions ultérieures. La désactivation de SSLv3 gênera les utilisateurs de WindowsXP qui naviguent avec Internet Explorer 6 ; CloudFlare estime que 1,12 % des utilisateurs de WindowsXP (qui représentent 3,12 % de son trafic) seront concernés, soit environ 1 utilisateur sur 3 000.

Cette modification pourrait également affecter les robots d’indexation et le trafic généré par d’autres robots automatisés.

L’avenir

Lors d’une attaque par rétrogradation SSL, l’attaquant peut perturber les négociations SSL/TLS et amener le client et le serveur à sélectionner une version antérieure de SSL/TLS. Lorsqu’elle est utilisée pour forcer la sélection de SSLv3, cette attaque peut rendre la connexion SSL/TLS vulnérable à l’attaque POODLE. La désactivation de SSLv3 sur le serveur rend cette attaque impossible.

Google a proposé une extension de SSL/TLS nommée « TLS_FALLBACK_SCSV », qui vise à empêcher les rétrogradations forcées de SSL/TLS. [Note de l’éditeur – L’extension a été adoptée sous la référence RFC 7507 en avril 2015.] Cette extension pourrait à terme être intégrée à OpenSSL, et la prise en charge correspondante côté client ajoutée aux principaux navigateurs. Les services web pourront ainsi prendre en charge SSLv3, mais les clients anciens resteront vulnérables.

Néanmoins, cette vulnérabilité pourrait sonner le glas de SSLv3, ce qui constituerait globalement une solution plus simple et plus fiable.

Que puis-je faire d’autre ?

Nous vous recommandons de mettre à jour votre logiciel client afin qu’il ne prenne plus en charge SSLv3. Vous serez ainsi protégé contre cette attaque lorsque vous accéderez à des services qui n’ont pas encore été mis à jour pour désactiver SSLv3.

Pour aller plus loin


Partager

À propos de l’auteur

Owen Garrett
Owen GarrettDirecteur senior de la gestion des produits

Autres articles de Owen Garrett

Articles de blog associés

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA
NGINX | 13/10/2025

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA

Découvrez les principaux enseignements tirés des réponses à l’enquête annuelle F5 NGINX sur les dernières tendances en matière de technologies cloud natives, de sécurité, d’ingénierie de plateforme et d’IA.

Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?
NGINX | 03/11/2023

Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?

Lorsque de nouvelles CVE sont signalées, il est facile de ne plus savoir si elles concernent un outil de contrôleur Ingress NGINX particulier, car il existe plusieurs projets. Cet article présente les CVE et explique comment distinguer les différents projets de contrôleurs Ingress afin de dissiper toute confusion.

Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX
NGINX | 11/03/2020

Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX

Votre API répond-elle aux requêtes en moins de 30 ms ? Si ce n’est pas le cas, il ne s’agit pas d’une API en temps réel offrant la faible latence exigée par la grande majorité des organisations. Mesurez la latence de votre API avec l’outil rtapi de NGINX et découvrez comment NGINX peut l’aider à offrir une réactivité en temps réel.

Un testeur d’expressions régulières pour NGINX et NGINX Plus
NGINX | 11/06/2019

Un testeur d’expressions régulières pour NGINX et NGINX Plus

Le testeur d’expressions régulières (regex) pour NGINX et NGINX Plus vous évite de tâtonner en vous indiquant si une expression régulière utilisée dans un bloc location ou map correspond aux valeurs comme prévu. Il génère la configuration appropriée et affiche les valeurs des groupes de capture.

Caches partagés avec les clusters de cache NGINX Plus, partie 1
NGINX | 24/01/2017

Caches partagés avec les clusters de cache NGINX Plus, partie 1

Optimisez la capacité de votre cache web en le répartissant entre plusieurs serveurs de cache web NGINX ou NGINX Plus. Découvrez comment procéder dans cet article.

Introduction aux microservices
NGINX | 19/05/2015

Introduction aux microservices

Les microservices suscitent actuellement beaucoup d’intérêt. Cet article de blog est le premier d’une série de sept consacrée à la conception, au développement et au déploiement de microservices.