Découverte d'une faille de sécurité critique dans OpenSSL de Debian

le 15/05/2008 à 21:56
Découverte d'une faille de sécurité critique dans OpenSSL de Debian
Le 13 mai, un message publié sur la liste de sécurité Debian identifiait une anomalie impactant le paquet openssl. Ce bug a été introduit par un mainteneur Debian, qui a eu la main lourde en voulant "corriger" des alertes remontées par Valgrind (un logiciel qui audite le code). Résultat des courses : le générateur de nombres aléatoires, composant critique de nombreux systèmes de chiffrements, n'est au final pas si aléatoire que ça, voire carrément prévisible.
En conséquence, tous les certificats et clefs SSL/SSH générés sur une Debian (ou dérivée) depuis 2006 l'ont été à partir d'un univers des possibles très restreint (environ 250 000 clefs, à confirmer) et présentent donc un niveau de sécurité largement inférieur à celui estimé.

Cette vulnérabilité touche Debian ainsi que toutes les distributions utilisant des paquets Debian (Ubuntu, Xandros...).

Pour prendre un exemple parlant, imaginez Securor, un fabricant de serrures qui seraient utilisées un peu partout sur la planète. Au bout de deux ans, alors que des millions de personnes ont installé des serrures pour protéger leur maison, on se rend compte qu'en fait il n'existe que 3 modèles uniques de clefs, les autres ne sont que des copies d'un des 3 modèles d'origine. Si bien qu'un voleur peut très facilement concevoir un trousseau contenant les 3 modèles de clefs, en ayant la certitude que toute serrure rencontrée pourra être ouverte avec l'une de ces clefs...

Concrètement, si vous utilisez une Debian, ou dérivée, vos VPN peuvent être cassés (adieu confidentialité des échanges), des faux certificats peuvent être signés (adieu confiance en votre système de PKI), votre serveur SSH ne filtre plus grand monde (adieu système sécurisé)...

Que faire ?

1. Mettre à jour votre distribution Debian pour installer les nouveaux paquet.
2. Vérifier sur tous vos systèmes qu'une clef faible n'est pas présente. Pour cela, un outil est disponible : dowkd.pl. Si une clef faible est présente, il sera nécessaire de la générer à nouveau, avec tous les impacts que cela peut avoir (fichiers authorized_keys & know_hosts obsolètes...). Même problème pour les certificats : j'espère que personne n'a mis en place de PKI sous Debian depuis 2006, il va falloir regénérer les certificats...
3. lire le wiki Debian http://wiki.debian.org/SSLkeys qui vous guidera pas à pas en fonction des logiciels installés sur votre machine.

Reste à savoir quelles seront les conséquences de cette affaire : depuis 2 ans, un bug introduit par un contributeur et impactant un système critique est resté indétecté dans une des distributions les plus utilisées au monde...

NdM : lire également les articles sur [lien=http://planet-fr.debian.net/]Planet Debian-Fr[/lien].

- Le Debian Security Advisory
- Dowkd.pl - A télécharger absolument en cas de doutes !
- Metasploit a généré les clefs faibles
- Journal Linuxfr déja paru à ce sujet
- Wiki Debian : à lire si vous ne savez pas quoi faire
- ...

A lire également

Le monde du logiciel libre est en émoi depuis la découverte d'une faille de sécurité majeure qui affecte plusieurs logiciels ou couches logicielles d'importance. La faille en question se situe dans la bibliothèque OpenSSL de Debian au niveau de la génération des clés utilisées pour le cryptage ou le décryptage, une fonction largement utilisée par le protocole SSH, le serveur Web Apache ou encore par les logiciels sécurisés de messagerie et le protocole VPN notamment. Deux lignes de code erronées sont à l'origine de cette faille, une faille qui affecte quatre systèmes d'exploitation et 25 logiciels au bas mot sans parler des ordinateurs affectés.

Découverte à la mi-mai, cette faille existe en vérité depuis deux années maintenant, date à laquelle des développeurs ont supprimé une portion de code utilisée par le package OpenSSL de Debian en vue de stopper l'apparition d'alertes dans les outils de validation de la sécurité du code comme Valgrind et Purify. Hélas, la suppression de ces lignes de code a introduit une vulnérabilité au niveau de la génération de nombres aléatoires dans la bibliothèque OpenSSL : au lieu d'utiliser des données aléatoires pour générer les valeurs des clés, la bibliothèque OpenSSL utilise l'identifiant du processus en cours. Le problème est que sous Linux, la valeur maximale par défaut utilisée pour identifier un processeur est 32 768. En clair, il n'existe que 32 768 clés possibles pour une architecture, un type de clé et une longueur de clé donnée ce qui rend les attaques en brute force réalisables.

Un patch vient d'être distribué mais il ne peut hélas pas réparer les dommages sur les systèmes compromis puisque tous les certificats générés doivent être recréés et renvoyés à l'autorité de certification pour une nouvelle validation. En clair, tous les certificats émis à partir de systèmes Debian doivent être révoqués et regénérés alors que les administrateurs systèmes sont vivement encouragés à pratiquer un audit des clés utilisées sur leurs serveurs par le protocole SSH pour interdire l'utilisation de clés vulnérables.

Un peu moins de 24 heures après l'annonce de cette faille, divers outils ont déjà été publié pour compromettre la sécurité des systèmes Linux à base Debian. Pour l'heure, personne ne sait exactement combien d'ordinateurs sont concernés et divers analystes se demandent si cette faille est belle et bien due à une erreur ou à une volonté délibérée d'introduire des portes cachées dans les systèmes d'exploitation libres. D'autres se contentent simplement de faire remarquer que le très décrié Windows Vista de Microsoft a prouvé depuis quelques mois sa fiabilité en matière de sécurité, notamment face à Windows XP. Rappelons pour conclure que seules les distributions Debian et ses dérivés (Ubuntu inclus donc) sont concernées par cette faille.

Commentaires

Ecrire
LA GLOBULE
le 15/05/2008 à 22:13
LA GLOBULE
Vu comment les développeurs Debian sont des gorets, cela ne m'étonne pas plus que ça.
Ecrire

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours