Après l' attaque de BEAST et le bug de Heartbleed , j'ai entendu parler d'une nouvelle vulnérabilité de SSL / TLS appelée POODLE . Comment puis-je me protéger contre l'exploitation?
- Est-ce que seuls les serveurs ou aussi les clients sont affectés?
- Est-ce spécifique à OpenSSL / GnuTLS?
- Quels types de services sont concernés? Seulement HTTPS ou aussi IMAPS, SMTPS, OpenVPN, etc.?
S'il vous plaît me montrer des exemples sur la façon d'éviter cette vulnérabilité.
Réponses:
Informations de fond
SSL est conçu pour sécuriser le niveau de transport sur Internet. Pour "le Web", c'est-à-dire HTTP, vous le reconnaîtrez en tant que HTTPS, mais il est également utilisé pour d'autres protocoles d'application. SSLv2 était le premier protocole de sécurité de transport largement utilisé, mais a été découvert peu sûr peu de temps après. Les successeurs SSLv3 et TLSv1 sont maintenant largement pris en charge. TLSv1.1 et TLSv1.2 sont plus récents et gagnent également en support. La plupart des navigateurs Web publiés à partir de 2014, sinon tous, sont compatibles.
La récente découverte par les ingénieurs de Google indique que SSLv3 ne doit plus être utilisé (car SSLv2 est obsolète depuis longtemps). Les clients qui ne pourront pas se connecter à votre site / service sont probablement très très limités. CloudFlare a annoncé que moins de 0,09% de ses visiteurs utilisent encore SSLv3.
Solution simple: désactivez SSLv3.
Ubuntu fournit-il des mises à jour?
Oui, via usn-2385-1 avec l’ajout de la fonctionnalité SCSV, mais cela n’atténue pas complètement le problème car il ne désactive pas SSLv3 et le correctif ne fonctionnera que si les deux côtés de la connexion ont été corrigés. Vous le recevrez via vos mises à jour de sécurité régulières dans votre gestionnaire de paquets.
Donc, vous devez toujours agir vous-même pour désactiver SSLv3 (c'est configurable). Les versions futures des clients / navigateurs désactiveront probablement SSLv3. Par exemple, Firefox 34 le fera.
Désactiver complètement SSLv3 par défaut dans Ubuntu au niveau de l’implémentation risque d’éclater certaines choses également pour une utilisation SSL non-HTTPS qui n’est pas si vulnérable. Je suppose donc que les responsables ne le feront pas et que seul ce correctif SCSV sera appliqué.
Pourquoi la mise à jour SCSV dans OpenSSL via usn-2385-1 ne permet-elle pas de résoudre le problème?
Vraiment, arrêtez de poser de telles questions et sautez quelques paragraphes et désactivez SSLv3. Mais bon, si vous n'êtes pas convaincu, c'est parti:
POODLE montre que SSLv3 avec les chiffrements CBC est cassé, implémenter SCSV ne change rien à cela. SCSV s'assure uniquement que vous ne rétrogradez pas un protocole TLS vers un protocole TLS / SSL inférieur, au besoin, avec l'attaque Man-in-the-Middle requise dans les cas habituels.
Si vous devez accéder à un serveur qui n'offre pas du tout TLS, mais uniquement SSLv3, votre navigateur n'a pas vraiment le choix et doit parler au serveur à l'aide de SSLv3, qui est alors vulnérable sans aucune attaque par rétrogradation.
Si vous devez accéder à un serveur qui offre TLSv1 + et SSLv3 trop ( ce qui est déconseillé) et que vous voulez être sûr que votre connexion ne sera pas rétrogradé à SSLv3 par un attaquant, alors à la fois le serveur et le client besoin de ce patch SCSV.
Pour atténuer complètement le problème, la désactivation de SSLv3 vous suffit et vous pouvez être sûr de ne pas être rétrogradé. Et vous ne pourrez pas communiquer avec des serveurs exclusivement SSLv3.
Bon, alors comment puis-je désactiver SSLv3?
Voir ci-dessous dans les sections spécifiques à l'application: Firefox, Chrome, Apache, Nginx et Postfix sont couverts pour l'instant.
Est-ce que seuls les serveurs ou aussi les clients sont affectés?
La vulnérabilité existe si le serveur et le client acceptent tous deux SSLv3 (même s'ils sont tous deux capables de TLSv1 / TLSv1.1 / TLS1.2 en raison d'une attaque par déclassement).
En tant qu'administrateur de serveur , vous devez désactiver SSLv3 maintenant pour la sécurité de vos utilisateurs.
En tant qu'utilisateur, vous devez maintenant désactiver SSLv3 dans votre navigateur pour vous protéger lorsque vous visitez des sites Web qui prennent encore en charge SSLv3.
Est-ce spécifique à OpenSSL / GnuTLS / au navigateur?
Non, c'est un bogue de protocole (conception), pas un bogue d'implémentation. Cela signifie que vous ne pouvez pas vraiment le corriger (sauf si vous modifiez la conception de l'ancien SSLv3).
Et oui, il y a une nouvelle version de sécurité OpenSSL , mais lisez ci-dessous ( Mais j'ai vraiment besoin du support de SSLv3 ... pour la raison X, Y, Z! ) Sur la raison pour laquelle vous feriez mieux de vous concentrer sur la désactivation de SSLv3.
Puis-je tuer SSLv3 au niveau du réseau (pare-feu)?
Oui, probablement. Je mets cela dans un article de blog séparé pour plus de réflexion et de travail. Nous pouvons avoir une
iptables
règle magique que vous pouvez utiliser!Mon article de blog: Comment éliminer SSLv3 de votre réseau en utilisant iptables pour POODLE?
Est-ce pertinent uniquement pour HTTPS ou également pour IMAP / SMTP / OpenVPN et d'autres protocoles prenant en charge SSL?
Comme l'indiquent les chercheurs, le vecteur d'attaque actuel fonctionne avec le contrôle du texte en clair envoyé au serveur à l'aide de Javascript qui est exécuté sur la machine de la victime. Ce vecteur ne s'applique pas aux scénarios non-HTTPS sans l'utilisation d'un navigateur.
De plus, normalement, un client SSL ne permet pas de rétrograder la session en SSLv3 (TLSv1 + étant vu dans les capacités de prise de contact), mais les navigateurs veulent être très compatibles avec les versions antérieures. La combinaison avec le contrôle du texte en clair et la manière spécifique dont un en-tête HTTP est construit le rend exploitable.
Conclusion: désactivez SSLv3 pour HTTPS maintenant , désactivez SSLv3 pour les autres services dans la prochaine fenêtre de service.
Quel est l'impact? Dois-je révoquer et régénérer mon certificat de serveur? (Comme avec Heartbleed)
Non, vous n'avez pas besoin de faire pivoter vos certificats pour cela. La vulnérabilité expose la récupération de texte en clair à partir des données de session. Elle ne donne accès à aucun secret (ni la clé de session ni la clé de certificat).
Un attaquant est très probablement uniquement capable de voler les en-têtes en texte clair, tels que les cookies de session, afin de réaliser un détournement de session . Une contrainte supplémentaire est la nécessité d'une attaque MitM complète (active) .
Y a-t-il autre chose que je puisse faire pour améliorer ma configuration SSL en général?
En tant qu'utilisateur, outre la désactivation de SSLv3 dans votre navigateur, pas vraiment. Eh bien, installez toujours les dernières mises à jour de sécurité.
Pour les serveurs, suivez le guide du serveur TLS de Mozilla . Et testez avec le test Qualys SSL Labs . Ce n'est vraiment pas difficile d'obtenir une cote A + sur votre site. Il suffit de mettre à jour vos paquets et de mettre en œuvre les recommandations du guide de Mozilla.
Mais j'ai vraiment besoin du support SSLv3 ... pour la raison X, Y, Z! Maintenant quoi?
Eh bien, il existe un correctif qui contourne l'attaque par rétrogradation des clients compatibles TLSv1, appelé Protection de remplacement SSLv3. Soit dit en passant, cela améliorera également la sécurité de TLSv1 + (une attaque par déclassement est plus difficile / impossible). Il est proposé comme portage d'une version OpenSSL plus récente dans l'avis de sécurité Ubuntu n ° 2385-1 .
Gros problème: les clients et les serveurs ont besoin de ce correctif pour fonctionner. Donc, à mon avis, pendant la mise à jour des clients et des serveurs, vous devriez quand même passer à TLSv1 +.
Cependant, s'il vous plaît, retirez simplement SSLv3 de votre réseau pour l'instant. Faites des efforts pour mettre à niveau les normes de sécurité et abandonnez simplement SSLv3.
J'ai entendu parler du support SCSV pour éliminer l'attaque par rétrogradation de protocole. Est-ce que j'en ai besoin?
Seulement si vous avez vraiment besoin de SSLv3 pour une raison étrange, mais que cela améliore aussi la sécurité dans TLSv1 +, alors oui, je vous recommande de l'installer. Ubuntu fournit une mise à jour pour cette fonctionnalité dans usn-2385-1 . Vous le recevrez via vos mises à jour de sécurité régulières dans votre gestionnaire de paquets.
Tester la vulnérabilité de sites hébergés de manière privée (par exemple, intranet / hors ligne).
Vos serveurs sont vulnérables simplement s'ils prennent en charge SSLv3. Plusieurs options ici:
Avec OpenSSL s_client:
Si la connexion réussit, sslv3 est activé. Si cela échoue, il est désactivé. Quand cela échoue, vous devriez voir quelque chose comme:
Utilisant
nmap
:Il devrait sortir '
SSLv3: No supported ciphers found
'. Ajustez pour votre nom d'hôte / port.Utilisation de chiffrements . Clonez / téléchargez le binaire et exécutez-le:
SSLv3 ne doit pas être répertorié dans la colonne "protocoles".
Navigateur Firefox
Ouvrez
about:config
, recherchezsecurity.tls.version.min
et définissez la valeur sur1
. Puis redémarrez votre navigateur pour supprimer toutes les connexions SSL ouvertes.Firefox à partir de la version 34 désactivera SSLv3 par défaut et ne nécessitera donc aucune action ( source ). Cependant, au moment de la rédaction de cet article, 33 articles sont tout juste publiés et 34 sont prévus pour le 25 novembre.
Google Chrome (Linux)
Editez le
/usr/share/applications/google-chrome.desktop
fichier, par exempleÉditez toutes les lignes en commençant par
Exec=
inclure--ssl-version-min=tls1
.Par exemple une ligne comme
devient
Assurez-vous ensuite de fermer complètement le navigateur (les applications Chrome permettent peut-être de garder votre navigateur actif en arrière-plan!).
Remarque: vous devrez peut-être répéter cette opération à chaque mise à jour du paquet google-chrome, en écrasant ce
.desktop
fichier de lancement. Un navigateur Google Chrome ou Chromium avec SSLv3 désactivé par défaut n’est pas encore annoncé au moment de la rédaction.Apache HTTPD Server
Si vous utilisez un serveur Web Apache qui autorise actuellement SSLv3, vous devrez modifier la configuration Apache. Sur les systèmes Debian et Ubuntu, le fichier est /etc/apache2/mods-available/ssl.conf . Sur CentOS et Fedora, le fichier est /etc/httpd/conf.d/ssl.conf . Vous devrez ajouter la ligne suivante à votre configuration Apache avec d'autres directives SSL.
Cela autorisera tous les protocoles sauf SSLv2 et SSLv3.
Pendant que vous y êtes, vous voudrez peut-être envisager d’améliorer la configuration de ciphersuite pour votre serveur Web, comme expliqué dans le guide du serveur TLS de Mozilla . Ajouter par exemple:
Ensuite, vérifiez si la nouvelle configuration est correcte (pas de fautes de frappe, etc.):
Et redémarrez le serveur, par exemple
Sur CentOS et Fedora:
Plus d'infos: documentation Apache
Maintenant, testez-le: si votre site est accessible au public, testez-le à l'aide de l'outil SSL Labs de Qualys .
Serveur Nginx
Si vous utilisez Nginx, incluez simplement la ligne suivante dans votre configuration parmi les autres directives SSL:
Pendant que vous y êtes, vous voudrez peut-être envisager d’améliorer la configuration de ciphersuite pour votre serveur Web, comme expliqué dans le guide du serveur TLS de Mozilla . Ajouter par exemple:
Et redémarrez le serveur, par exemple
Référence: documentation Nginx
Maintenant, testez-le: si votre site est publiquement disponible, testez-le à l'aide de l'outil SSL Labs de Qualys .
Serveur web Lighttpd
Les versions de Lighttpd> 1.4.28 prennent en charge une option de configuration permettant de désactiver SSLv2 et v3. Les versions de Lighttpd antérieures à la 1.4.28 vous permettent de désactiver SSLv2 UNIQUEMENT. Veuillez noter que Ubuntu 12.04 LTS et les versions antérieures s’installent au mieux, lighttpd v1.4.28 et qu’un correctif simple n’est donc pas disponible pour ces distributions. Par conséquent, ce correctif ne doit être utilisé que pour les versions d'Ubuntu supérieures à 12.04.
Pour Ubuntu version 12.04 ou Debian 6, un paquet lighttpd mis à jour est disponible à partir du référentiel openSUSE: http://download.opensuse.org/repositories/server:/http/Debian_6.0
Le paquet est destiné à Debian 6 (squeeze) mais fonctionne également à 12.04 (précis)
Modifiez votre
/etc/lighttpd/lighttpd.conf
pour ajouter les lignes suivantes après lassl.engine = "enable"
directiveEnsuite, vous devez redémarrer le service lighttpd avec a
sudo service lighttpd restart
et effectuer un test de prise de contact SSL comme décrit dans les sections précédentes pour vous assurer que la modification a été implémentée avec succès.Tiré de http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_SSL .
Postfix SMTP
Pour le "SSL opportuniste" (la politique de chiffrement n'est pas appliquée et tout est acceptable), vous n'avez rien à changer. Même si SSLv2 est meilleur que tout à fait, alors si vous devez sécuriser votre serveur, vous devriez quand même utiliser le mode 'SSL obligatoire'.
Pour que le mode 'SSL obligatoire' soit déjà configuré, ajoutez / modifiez simplement le paramètre smtpd_tls_mandatory_protocols pour les connexions entrantes et smtp_tls_mandatory_protocols pour les connexions sortantes:
Si vous souhaitez également désactiver SSLv3 pour le chiffrement opportuniste (même s'il est inutile comme expliqué ci-dessus), procédez comme suit:
et redémarrez Postfix:
Envoyer un mail
(Modification non vérifiée par un utilisateur anonyme. Je ne suis pas à l'aise avec Sendmail. Veuillez vérifier.)
Ces options sont configurées dans la
LOCAL_CONFIG
section de votresendmail.mc
Pigeonnier
Dans Dovecot v2.1 +, ajoutez ce qui suit à votre
/etc/dovecot/local.conf
(ou à un nouveau fichier dans/etc/dovecot/conf.d
):et redémarrez Dovecot:
Pour les versions plus anciennes, vous devrez patcher le code source .
Courrier-imap (imapd-ssl)
Courier-imap autorise SSLv3 par défaut sur Ubuntu 12.04 et autres. Vous devez le désactiver et utiliser STARTTLS à la place pour forcer TLS. Editez votre
/etc/courier/imapd-ssl
fichier de configuration pour refléter les changements suivantsHAProxy Server
SSL est pris en charge dans HAProxy> = 1.5.
Editez le
/etc/haproxy.cfg
fichier et trouvez votrebind
ligne. Appendno-sslv3
. Par exemple:Référence: Documentation HAProxy
OpenVPN
Semble ne pas être affecté ( source ).
Fantoche
Puppet utilise SSL sur HTTPS mais il n'est pas utilisé par les clients du «navigateur», mais par les agents de Puppet qui ne sont pas vulnérables au vecteur d'attaque affiché. Cependant, il est préférable de désactiver SSLv3.
Ma recommandation est d'utiliser le module de marionnettes stephenrjohnson / puppetmodule pour configurer votre maître de marionnettes dans lequel j'ai tué SSLv3 il y a quelque temps.
la source
Peut-être pas spécifique à Ubuntu, mais pour contourner la vulnérabilité Poodle dans Node.js, vous pouvez définir le
secureOptions
àrequire('constants').SSL_OP_NO_SSLv3
lorsque vous créez un serveur https ou tls.Voir https://gist.github.com/3rd-Eden/715522f6950044da45d8 pour plus d'informations.
la source
Le "correctif" pour le courrier désactive les niveaux 1.1 et 1.2. Il ne semble pas y avoir de moyen de faire fonctionner un service de messagerie avec une version 1.1 ou supérieure. Une analyse PCI sur votre serveur peut revenir avec la recommandation suivante:
Configurez les serveurs SSL / TLS pour qu'ils utilisent uniquement TLS 1.1 ou TLS 1.2, s'ils sont pris en charge. Configurez les serveurs SSL / TLS pour ne prendre en charge que les suites de chiffrement qui n'utilisent pas de chiffrements en bloc.
la source
POODLE Vulnerability étant un défaut de conception dans le protocole lui-même et non un bogue d'implémentation, il n'y aura pas de correctifs. Le seul moyen de pallier ce problème consiste à désactiver SSLv3 sur le serveur Apache. Ajoutez les lignes ci-dessous dans ssl.conf et effectuez un redémarrage apache gracieux.
la source