Poodle
Lien court vers cette page : http://vt.cx/Poodle QR code vers cette page : http://vt.cx/Poodle.qr
Sommaire
Présentation
L'attaque par Poodle (caniche en anglais) exploite une faille du protocole SSL V3 qui ne concerne que les sites en HTTPS et qui, malgré son ancienneté, reste en vigueur, et peut être exploité en forçant tout programme connecté au net à l'utiliser. La parade consiste donc à bloquer, de manière préemptive, ce protocole afin qu'il ne puisse plus être utilisé par les programmes à risque et forcer à l'emploi du protocole TLS plus récent et plus sûr. La présente page vise à donner les moyens de :
- Tester le risque de vulnérabilité
- Donner les outils de prévention, programme par programme
- Connaitre les sites n'ayant pas implémenté TLS
La faille est répertoriée sous le numéro CVE-2014-3566
Test de risque Poodle
Méthode 1
- S'assurer que Javascript est opérationnel sur le navigateur sinon l'activer comme expliqué à Activer ou désactiver JavaScript dans les navigateurs Internet
- Se rendre sur le site : https://www.poodletest.com/
- Presser F5 pour relancer la page et voir le résultat du test qui peut être :
- Affichage d'un caniche avec la mention Vulnerable ! -> risque d'attaque par Poodle
- Affichage d'un Jack Russel (Springfield Terrier pour être exact) avec la mention Not vulnerable ! -> pas de risque d'exploitation de la vulnérabilité Poodle
Méthode 2
- Se connecter à https://sslv3.dshield.org:444
- Non vulnérable -> la connexion ne se fait
- Vulnérable -> la connexion se fait
Sites Internet
Méthode 1
- ssllabs.com Qualys ssltest : vérification en ligne et détection des protocoles de cryptage acceptés
- sourceforge.net SSLScan : scanner de sites pour connaitre les types de cryptages SSL/TLS acceptés
Méthode 2
- Sous Linux saisir curl -v3 -X HEAD https://nom_du_ste.tld
- Si le site testé n'est pas vulnérable cURL affichera curl: (35) SSL connect error
- Si le site testé est vulnérable cURL affichera SSL 3.0 connection using ...
SMTP
- Sous Linux saisir openssl s_client -connect localhost:465 -ssl3
- Si le port SMTP testé n'est pas vulnérable un message du type de celui qui suit doit s'afficher :
CONNECTED(00000003) 139808606107464:error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure:s3_pkt.c:1257:SSL alert number 40 139808606107464:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:ssl handshake failure:s3_pkt.c:596:
- Si le port SMTP testé est vulnérable un message du type de celui qui suit doit s'afficher :
CONNECTED(00000003) 220 mail.example.com ESMTP Postfix DONE
Blocage de SSL 3.0
Safari
Apple annonce que l'update du 17 octobre 2014 de son navigateur empêche les connexions SSL V3
Chrome
Windows
Ajouter l'option --ssl-version-min=tls1 dans le raccourci comme dans les exemples suivants :
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --ssl-version-min=tls1 "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --ssl-version-min=tls1 --profile-directory="Profile 1"
Pour ce faire procéder comme suit :
- Clic droit sur le raccourci
- Choisir Propriétés
- Cliquer l'onglet Raccourci
- Dans le champ Cible ajouter --ssl-version-min=tls1 après ...Application\chrome.exe" et avant tout autre directive
- Cliquer sur OK pour valider le changement
- Tester la modification comme expliqué dans le chapitre Test de risque Poodle
- Il est possible que certains sites ne soient plus accessibles du fait du blocage du protocole SSL V3
Linux
- Éditer /usr/share/applications/google-chrome.desktop par :
nano /usr/share/applications/google-chrome.desktop
- Éditer toutes les lignes commençant par Exec= et ajouter --ssl-version-min=tls1.
exemple Exec=/usr/bin/google-chrome-stable %U devient Exec=/usr/bin/google-chrome-stable --ssl-version-min=tls1 %U
Internet Explorer
- Ouvrir le menu Outils
- Choisir Options Internet
- Cliquer sur l'onglet Avancé
- Descendre jusqu'à Sécurité et décocher SSL 3.0
- Cliquer sur OK pour valider le changement
- Tester la modification comme expliqué dans le chapitre Test de risque Poodle
- Il est possible que certains sites ne soient plus accessibles du fait du blocage du protocole SSL V3
Firefox & Tor
Les versions 34 et suivantes de Firefox ainsi que celles du Tor Brower 4.0 auront le support du SSL V3 désactivé par défaut. Pour les versions antérieures voilà comment procéder :
- Saisir about:config dans le champ d'adresse afin d'ouvrir la page de configuration de Firefox
- Dans le champ Search entrer la chaine security.tls.version.min et Entrée pour rechercher le paramètre qui défini que TLS est le protocole minimum pour se connecter en SSL
- La valeur (value) doit être à 1. Si ce n'est le cas, double-cliquer sur security.tls.version.min et remplacer 0 par 1
- Cliquer sur OK pour valider le changement
- Tester la modification comme expliqué dans le chapitre Test de risque Poodle
- Il est possible que certains sites ne soient plus accessibles du fait du blocage du protocole SSL V3
Liens externes
- NEXT INpact - 16/10/14 Tor Browser 4.0 : mise à jour automatique, Firefox 31 et désactivation de SSLv3
- blog.torproject.org New SSLv3 attack found: Disable SSLv3 in TorBrowser
Serveurs
Logiciels de test du serveur
- github.com SSLyze : outils en Python qui analyse la configuration SSL d'un serveur
CloudFlare
- Support du SSL V3 désactivé voir -> https://blog.cloudflare.com/sslv3-support-disabled-by-default-due-to-vulnerability/
Apache
Le blocage de SSL V3 sur Apache ne se justifie que si OpenSSL est utilisé. Si c'est le cas voilà comment procéder :
- Ajouter à la configuration ssl.conf du serveur httpd (au niveau de ## SSL Protocol support: de préférence) l'une des directives suivantes :
- SSLProtocol all -SSLv2 -SSLv3 pour bloquer SSL V2 et SSL V3
- SSLProtocol -All +TLSv1 pour tout bloquer sauf TLS V1
- Sauvegarder ssl.conf ainsi modifié
- Tester la nouvelle configuration par apachectl configtest + Entrée qui doit afficher Syntax OK
- Relancer Apache par service httpd restart + Entrée ou service apache2 restart + Entrée
Pour plus d'infos voir -> http://httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslprotocol & http://httpd.apache.org/docs/2.2/ssl/
nginx
- Rechercher tous les fichiers de configuration contenant ssl_protocols dans /etc/nginx/ par grep -rn ssl_protocols *
- Dans tous les fichiers contenant la directive ssl_protocols SSLv2 SSLv3 TLSv1; la remplacer par ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- Relancer nginx par service nginx restart
Plesk
- voir kb.sp.parallels.com [Plesk] CVE-2014-3566: POODLE attack exploiting SSL 3.0 fallback
Lighttpd
- Éditer le fichier de configuration /etc/lighttpd/lighttpd.conf
- Lui ajouter les lignes suivantes après la directive ssl.engine = "enable"
ssl.use-sslv2 = "disable" ssl.use-sslv3 = "disable"
- Relancer Lighttpd par service lighttpd restart
Tomcat et JBoss Web
Microsoft IIS
- voir support2.microsoft.com How to disable PCT 1.0, SSL 2.0, SSL 3.0, or TLS 1.0 in Internet Information Services
Serveurs de courrier
Postfix SMTP
- Ajouter smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3 dans le fichier de configuration /etc/postfix/main.cf
- Relancer Postfix par service postfix restart
Courrier imap
- Éditer les deux fichiers configuration suivants :
/etc/courier-imap/pop3d-ssl /etc/courier-imap/imapd-ssl
- En ajoutant la directive suivante :
TLS_CIPHER_LIST="ALL:!SSLv2:!SSLv3:!ADH:!NULL:!EXPORT:!DES:!LOW:@STRENGTH"
- Relancer pop3 et imap par :
service courier-imaps restart service courier-pop3s restart
- Tester avec le logiciels messagerie habituelle (ex Thunderbird, Outlook, etc.
Liens utiles
- openssl.org Liste des directives Ciphers
Dovecot IMAP/POP3
- Ajouter ssl_protocols = !SSLv2 !SSLv3 dans le fichier de configuration /etc/dovecot/dovecot.conf
- Relancer par service dovecot restart
Autres produits
Sophos
- Sophos Web Appliance
- Sophos UTM Manager
- Sophos UTM
- Sophos Mobile Control
- Sophos iView
- Sophos Email Appliance
- SafeGuard Enterprise Server
- PureMessage for Unix
- voir -> http://www.sophos.com/en-us/support/knowledgebase/121509.aspx
Les sites n'ayant pas implémenté TLS
Les sites testés sont les 1.000.000 premiers du classement Alexa. Il représente la grande majorité des sites visités par la plupart des utilisateurs. Seuls 0,12% ne sont pas accessibles via le protocole TLS et sont donc, jusqu'à ce qu'ils l'implémentent, inaccessibles via des navigateurs n'acceptant plus le protocole SSL 3.0 comme expliqué plus haut. La liste de ces sites est tenue à jour au lien suivant :
https://zmap.io/sslv3/
Liens utiles
- sellabs SSL/TLS Deployment Best Practices (PDF)
- wiki.mozilla.org Security/Server Side TLS
- askubuntu.com How do I patch/workaround SSLv3 POODLE vulnerability (CVE-2014-3566)