Et pour quelques warnings de moins...
Par Sylvain SARMEJEANNE, jeudi 15 mai 2008 à 12:23 :: General :: #236 :: rss
"Le plus mauvais jour pour Debian". La
vulnérabilité découverte par Luciano Bello dans le paquet openssl de Debian n'en finit pas de provoquer l'émoi au sein des utilisateurs de cette distribution GNU/Linux.
Tout est parti d'une bonne intention du mainteneur du paquet de vouloir supprimer certains messages d'avertissement émis par Valgrind. Rappelons que ce dernier est un débogueur utilisant la technique de traduction dynamique de code (QEMU utilise une technique similaire) afin d'intrumentaliser un binaire à des fins de recherche de fuites de mémoire ou de double "free". Dans le cas présent, c'est l'utilisation d'une zone mémoire non initialisée qui provoquait un message jugé gênant.
En mai 2006 a donc été appliqué le correctif suivant (qui ne deviendra effectif qu'en septembre de la même année car il avait été appliqué dans un autre fichier que celui entrant en jeu dans la compilation) :
- commentaire de la ligne MD_Update(&m,buf,j); dans la fonction ssleay_rand_bytes(). Cette fonction, utilisée généralement par l'intermédiaire de RAND_bytes(), extrait de l'entropie du "pool" pour la mettre dans un buffer, ici buf. Vis-à -vis de la fonction ssleay_rand_bytes(), ce buffer est utilisé en tant que buffer de sortie, donc cela n'a pas d'impact sur l'aléa du générateur.
- commentaire de la ligne MD_Update(&m,buf,j); (donc la même), cette fois-ci dans la fonction ssleay_rand_add(). Cette autre fonction, utilisée généralement par l'intermédiaire de RAND_add(), sert à ajouter de l'entropie au "pool", buf étant cette fois-ci utilisé en tant que buffer d'entrée. Comme il s'agit de la seule ligne de la fonction utilisant buf pour ajouter de l'entropie au "pool", l'aléa global du générateur en est réduit au simple PID du processus générant la clé.
Par défaut, la valeur maximale du PID sous Linux est 32768 (sysctl kernel.pid_max) et la numérotation commençant à 1 avec le processus init, cela laisse donc 32767 possibilités de clés par algorithme et par longueur sur un système donné. Autant dire très, très peu. Sont principalement impactées les clés SSH et SSL, mais aussi DNSSEC et OpenVPN, à partir du moment où elles ont été générées sur Debian (ou une distribution dérivée comme Ubuntu) avec la version vulnérable d'OpenSSL, donc depuis septembre 2006.
En plus de l'application de la version corrigée de la bibliothèque, toutes les clés devront être regénérées. Debian fournit différents outils afin de mener un "audit" des clés présentes sur un système dans le but de déterminer les clés compromises. Le problème ne saurait être pris à la légère puisque l'intégralité des clés faibles pour DSA-1024, ainsi que RSA-2048 et RSA-4096 a été publiée par H D Moore...
Et une mauvaise nouvelle n'arrivant jamais seule, cette mise à jour Debian corrige aussi deux autres vulnérabilités, dont une permettant
l'exécution de code arbitraire datant d'octobre 2007... Une mise à jour à appliquer de toute urgence, donc.