DROWN signifie "Decrypting RSA with Obsolete and Weakened eNcryption." Il s’agit d’une vulnérabilité récente grave qui affecte HTTPS et les autres services qui dépendent de SSL et TLS. Elle permet aux attaquants de casser le chiffrement et de lire ou de voler des communications sensibles par le biais d’une attaque Man-in-the-Middle. Cela comprend généralement, mais sans s'y limiter, les noms d'utilisateur et mots de passe, numéros de carte de crédit, e-mails, messages instantanés et documents sensibles. Plusieurs sites internet populaires sont impactés tels que Yahoo, Dailymotion, Le Monde, etc. Étant donné l’ampleur de la faille, un site spécialement dédié a été mis en place : https://drownattack.com/. Pour mener à bien l’action, l’attaquant doit pouvoir observer plusieurs centaines de connexions TLS entre une victime et un serveur vulnérable, soit en surveillant les accès sur une longue période, soit en forçant un navigateur à se connecter de façon répétée via un code Javascript malicieux. Pour que DROWN puisse être employé, l’établissement de la communication chiffrée (handshake) doit par ailleurs reposer sur une clé RSA (implémentation TLS répandue). Avec ces prérequis, l’attaquant peut alors se connecter au serveur via SSLv2, et lui envoie des messages d’établissement de connexion conçus spécifiquement sur la base des cryptogrammes RSA obtenus en espionnant les accès TLS. C’est la réponse du serveur à ces tentatives d’accès qui va permettre à l’attaquant de déduire la clé privée employée par le client lors de ses connexions TLS.
L’attaque est toutefois sophistiquée car il faut environ 1000 handshakes TLS, 40 000 connexions SSLv2 de test et 8 heures de puissance de calcul sur AWS (Amazon Web Services), soit 440 dollars d’achat, pour déduire la clé privée ; ce qui n’est toutefois pas hors de portée d’organisations bien financées. La CVE pour l’attaque DROWN est la suivante : CVE-2016-0800. DROWN est aggravée par deux vulnérabilités supplémentaires de mise en œuvre OpenSSL :
- CVE-2015-3197, qui affecte les versions OpenSSL antérieures à 1.0.2f et 1.0.1r, permettant à un attaquant de se connecter au serveur avec les suites cryptographiques SSLv2 désactivées, à condition que le support pour SSLv2 lui-même soit activé.
- CVE-2016-0703, qui affecte les versions OpenSSL antérieures à 1.0.2a, 1.0.1m, 1.0.0r et 0.9.8zf qui réduit considérablement le temps et le coût de la réalisation de l'attaque de DROWN.
La correction doit s'effectuer côté serveur et non sur l'utilisateur final (poste, navigateur). Pour se protéger contre DROWN, il faut s’assurer, dans la mesure du possible, que SSLv2 soit désactivé. Il est également nécessaire de veiller à ce que les clés privées des serveurs ne soient pas utilisées sur d'autres serveurs permettant les mêmes connexions SSLv2. Enfin, il est possible de configurer son pare-feu de façon à filtrer le trafic chiffré avec SSLv2. Liens vers quelques-uns de nos partenaires : iSIGHT : http://www.isightpartners.com/2016/03/threatscape-media-highlights-update-week-march-2nd/ Cisco : https://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20160302-openssl F5 Networks : https://support.f5.com/kb/en-us/solutions/public/k/23/sol23196136.html Pulse Secure : https://kb.pulsesecure.net/articles/Pulse_Security_Advisories/SA40168/?q=CVE-2016-0800 BlueCoat : https://bto.bluecoat.com/security-advisory/sa111?elqTrackId=7a0621be37fe402bbafe20284f0612de&elq=3597b68792204eca98a4023fa0e76352&elqaid=9785&elqat=1&elqCampaignId=11378 Trend Micro : http://blog.trendmicro.com/trendlabs-security-intelligence/drown-sslv2-vulnerability-rears-ugly-head-puts-one-third-of-https-servers-at-risk/ Qualys : https://blog.qualys.com/securitylabs/2016/03/01/drown-abuses-ssl-v2-to-attack-rsa-keys-and-tls