Poodle : Différence entre versions
(4 révisions intermédiaires par un utilisateur sont masquées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | <!-- Links checked 29/10/18 --> | ||
[[Catégorie:Sécurité]] | [[Catégorie:Sécurité]] | ||
− | '''[[Lien court]]''' vers cette page : | + | '''[[Lien court]]''' vers cette page : https://vt.cx/Poodle |
− | '''[[QR code]]''' vers cette page : | + | '''[[QR code]]''' vers cette page : https://vt.cx/Poodle.qr |
<html> | <html> | ||
<script type="text/javascript"><!-- | <script type="text/javascript"><!-- | ||
Ligne 15 : | Ligne 16 : | ||
</script> | </script> | ||
</html> | </html> | ||
− | |||
= Présentation = | = Présentation = | ||
− | L'attaque par | + | 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é | * Tester le risque de vulnérabilité | ||
− | * Donner les outils de prévention, | + | * Donner les outils de prévention, programme par programme |
− | * Connaitre les sites n'ayant pas implémenté | + | * Connaitre les sites n'ayant pas implémenté TLS |
− | La faille est répertoriée sous le numéro | + | La faille est répertoriée sous le numéro CVE-2014-3566 |
= Test de risque Poodle = | = Test de risque Poodle = | ||
== [[Navigateurs]] == | == [[Navigateurs]] == | ||
=== Méthode 1 === | === Méthode 1 === | ||
− | * S'assurer que '''[[ | + | * 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/ | * Se rendre sur le site : https://www.poodletest.com/ | ||
* Presser {{K|F5}} pour relancer la page et voir le résultat du test qui peut être : | * Presser {{K|F5}} pour relancer la page et voir le résultat du test qui peut être : | ||
Ligne 39 : | Ligne 39 : | ||
* Non vulnérable -> la connexion ne se fait | * Non vulnérable -> la connexion ne se fait | ||
* Vulnérable -> la connexion se fait | * Vulnérable -> la connexion se fait | ||
− | |||
== [[Sites Internet]] == | == [[Sites Internet]] == | ||
=== Méthode 1 === | === Méthode 1 === | ||
* [https://ssllabs.com/ssltest ssllabs.com] '''Qualys ssltest''' : vérification en ligne et détection des protocoles de '''cryptage''' acceptés | * [https://ssllabs.com/ssltest ssllabs.com] '''Qualys ssltest''' : vérification en ligne et détection des protocoles de '''cryptage''' acceptés | ||
− | * [ | + | * [https://sourceforge.net/projects/sslscan/ sourceforge.net] '''SSLScan''' : scanner de sites pour connaitre les types de '''cryptages SSL/TLS''' acceptés |
=== Méthode 2 === | === Méthode 2 === | ||
Ligne 52 : | Ligne 51 : | ||
== SMTP == | == SMTP == | ||
− | * Sous | + | * 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 : | * Si le '''port SMTP''' testé n'est '''pas vulnérable''' un message du type de celui qui suit doit s'afficher : | ||
CONNECTED(00000003) | CONNECTED(00000003) | ||
Ligne 64 : | Ligne 63 : | ||
= Blocage de SSL 3.0 = | = Blocage de SSL 3.0 = | ||
== [[Navigateurs]] == | == [[Navigateurs]] == | ||
− | === Safari === | + | === [[Safari]] === |
− | + | Apple annonce que l'update du 17 octobre 2014 de son '''[[navigateur]]''' empêche les connexions SSL V3 | |
=== [[Chrome]] === | === [[Chrome]] === | ||
Ligne 76 : | Ligne 75 : | ||
* Choisir '''Propriétés''' | * Choisir '''Propriétés''' | ||
* Cliquer l'onglet '''Raccourci''' | * Cliquer l'onglet '''Raccourci''' | ||
− | * Dans le champ '''Cible''' ajouter '''--ssl-version-min=tls1''' après '''...Application\chrome.exe | + | * 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 | * Cliquer sur '''OK''' pour valider le changement | ||
* Tester la modification comme expliqué dans le chapitre '''Test de risque Poodle''' | * Tester la modification comme expliqué dans le chapitre '''Test de risque Poodle''' | ||
Ligne 111 : | Ligne 110 : | ||
<br/> | <br/> | ||
− | = Serveurs = | + | = [[Serveurs]] = |
== Logiciels de test du serveur == | == Logiciels de test du serveur == | ||
− | * [https://github.com/nabla-c0d3/sslyze github.com] '''SSLyze''' : outils en | + | * [https://github.com/nabla-c0d3/sslyze github.com] '''SSLyze''' : outils en Python qui analyse la configuration SSL d'un serveur |
== [[CloudFlare]] == | == [[CloudFlare]] == | ||
− | * Support du | + | * Support du SSL V3 désactivé voir -> https://blog.cloudflare.com/sslv3-support-disabled-by-default-due-to-vulnerability/ |
== [[Apache]] == | == [[Apache]] == | ||
− | Le blocage de | + | 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 : | * 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 -SSLv2 -SSLv3''' pour bloquer '''SSL V2''' et '''SSL V3''' | ||
Ligne 134 : | Ligne 133 : | ||
== [[Plesk]] == | == [[Plesk]] == | ||
− | * voir [ | + | * voir [https://kb.sp.parallels.com/en/123173 kb.sp.parallels.com] CVE-2014-3566: POODLE attack exploiting SSL 3.0 fallback |
== Lighttpd == | == Lighttpd == | ||
Ligne 162 : | Ligne 161 : | ||
* En ajoutant la directive suivante : | * En ajoutant la directive suivante : | ||
TLS_CIPHER_LIST="ALL:!SSLv2:!SSLv3:!ADH:!NULL:!EXPORT:!DES:!LOW:@STRENGTH" | TLS_CIPHER_LIST="ALL:!SSLv2:!SSLv3:!ADH:!NULL:!EXPORT:!DES:!LOW:@STRENGTH" | ||
− | * Relancer '''pop3''' et '''imap''' par : | + | * Relancer '''[[pop3]]''' et '''imap''' par : |
service courier-imaps restart | service courier-imaps restart | ||
service courier-pop3s restart | service courier-pop3s restart | ||
− | * Tester avec le | + | * Tester avec le '''[[logiciels]] [[messagerie]]''' habituelle (ex '''[[Thunderbird]], [[Outlook]]''', etc. |
− | === Liens utiles === | + | === [[Liens]] utiles === |
− | * [ | + | * [https://www.openssl.org/docs/apps/ciphers.html openssl.org] Liste des directives '''Ciphers''' |
− | == Dovecot IMAP/POP3 == | + | == Dovecot IMAP/[[POP3]] == |
* Ajouter '''ssl_protocols = !SSLv2 !SSLv3''' dans le fichier de configuration '''/etc/dovecot/dovecot.conf''' | * Ajouter '''ssl_protocols = !SSLv2 !SSLv3''' dans le fichier de configuration '''/etc/dovecot/dovecot.conf''' | ||
* Relancer par '''service dovecot restart''' | * Relancer par '''service dovecot restart''' | ||
Ligne 185 : | Ligne 184 : | ||
* SafeGuard Enterprise Server | * SafeGuard Enterprise Server | ||
* PureMessage for Unix | * PureMessage for Unix | ||
− | * voir -> | + | * voir -> https://community.sophos.com/kb/en-us/131553 |
− | + | ||
= Les sites n'ayant pas implémenté TLS = | = Les sites n'ayant pas implémenté TLS = | ||
− | Les sites testés sont les | + | 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/ | https://zmap.io/sslv3/ | ||
Version actuelle en date du 9 novembre 2018 à 16:07
Lien court vers cette page : https://vt.cx/Poodle QR code vers cette page : https://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 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 -> https://community.sophos.com/kb/en-us/131553
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)
Articles Vulgum Techus
- Zero Day Vulnerability CVE-2016-0728 Super hot !
- Bash bug