DROWN
DROWN est une vulnérabilité informatique affectant le protocole SSLv2, publiée en [1].
Cette faille permet à un pirate de récupérer des informations sur un serveur et de compromettre une communication utilisant le protocole TLS, plus récent et réputé comme sûr, via une attaque de type cross-protocol (multi-protocole)[2].
DROWN est identifiée au niveau international par le code CVE CVE-2016-0800[3] - [4].
DĂ©tails
DROWN est un acronyme pour "Decrypting RSA with Obsolete and Weakened eNcryption" (Décrypter RSA via un chiffrement obsolète et faible)[2]. Cette faille utilise une vulnérabilité dans les protocoles utilisés et dans les configurations d'un serveur, et n'est donc pas liée à une erreur d'implémentation logicielle.
L'exploit de cette faille passe par une attaque à texte-chiffré choisi et un oracle de Bleichenbacher[5]. La preuve technique de cette vulnérabilité a été validée à l'aide d'une plateforme de Cloud-Computing fournissant de la puissance de calcul, pour un coût total de 440 $. Une attaque DROWN réussie permet de récupérer la clef d'une session TLS et donc de déchiffrer une communication interceptée précédemment.
Cette vulnérabilité a été découverte par Nimrod Aviram et Sebastian Schinzel[2].
Remédiation
Le protocole SSLv2 est désactivé par défaut dans les technologies récentes. Ainsi, un système récent ne sera vulnérable que s'il utilise la même clé privée qu'un autre système sur lequel SSLv2 est encore actif.
Cependant, dans le cas où une technologie ancienne serait encore présente sur un serveur, les éditeurs fournissent les patchs de sécurité suivants[6] :
- Apache : Apache 2.2 est encore vulnérable et il faut désactiver SSLv2 avec la commande de configuration
SSLProtocol All -SSLv2
. Apache 2.4 est protégé par défaut. - Nginx : SSLv2 a été retiré dans les versions 0.8.18, 0.7.64 et supérieures. Pour les versions plus anciennes, il faut retirer le terme
SSLv2
de la lignessl_protocols
des fichiers de configuration du serveur. - OpenSSL : l'éditeur recommande de passer aux dernières versions, soit OpenSSL 1.0.2g ou 1.0.1s. SSLv2 a été retiré des packages officiels des grandes distributions Linux depuis 2010.
Une autre solution consiste à utiliser un correcteur de vulnérabilités.
Notes et références
- (en) « DROWN: Breaking TLS using SSLv2 », sur https://drownattack.com
- (en) « DROWN attack », sur https://drownattack.com/
- (en) « Vulnerability Summary for CVE-2016-0800 », sur https://web.nvd.nist.gov
- (en) « CVE-2016-0800 Vulnerability and Security Fix Database », sur https://www.cyberwatch.fr
- « Bleichenbacher 1998 "Million message attack" on RSA », sur Cryptography Stack Exchange (consulté le ).
- « Vulnérabilite DROWN - CVE-2016-0800 »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur https://www.drown.fr (consulté le )