Comment patcher la vulnérabilité GHOST (GetHOST) CVE-2015-0235 – glibc

Vulnérabilité GHOST (GetHOST) CVE-2015-0235 - glibc

Vulnérabilité GHOST (GetHOST) CVE-2015-0235 – glibc – détection et patch!

La galère de cette semaine!

Annoncée le 28/01/2015, une vulnérabilité a été découverte dans la bibliothèque glibc par Qualys (voir leur article https://community.qualys.com/blogs/laws-of-vulnerabilities/2015/01/27/the-ghost-vulnerability).

Cette vulnérabilité permet de faire une attaque de type Buffer Overflow sur la fonction __nss_hostname_digits_dots() contenue dans plusieurs versions de la bibliothèque glibc et utilisée, entre autres, par la fonction gethostbyname() – cette fonction ayant pour but de convertir un nom réseau en IP.

De ce fait, toute machine ayant cette vulnérabilité est potentiellement attaquable, quel que soit le type de service exposé à internet (serveur mail, serveur SSH, serveur Web etc.)

Détection de la vulnérabilité

Afin de vérifier si votre système est vulnérable, utilisez les commandes ci-dessous pour télécharger, compiler et exécuter un script fourni par l’université de Chicago, et qui vous indiquera si votre système est vulnérable.

Pour Debian et dérivées

apt-get install wget gcc -y  # On installe wget et gcc, si ce n'est pas déjà le cas
wget https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c  # On télécharge le script de détection de la vulnérabilité CVE-2015-0235, fournit par l'université de Chicago
gcc GHOST.c -o GHOST  # On compile le script
./GHOST  # On exécute le script

Si la sortie du script indique “not vulnerable”, vous ne disposez pas des versions dangereuses de glibc.
Si par contre la sortie indique “vulnerable”, je vous conseille de lire un peu plus loin comment mettre à jour votre système.

Pour Red-Hat CentOS et dérivées

yum install wget gcc -y  # On installe wget et gcc, si ce n'est pas déjà le cas
wget https://webshare.uchicago.edu/orgs/ITServices/itsec/Downloads/GHOST.c  # On télécharge le script de détection de la vulnérabilité CVE-2015-0235, fournit par l'université de Chicago
gcc GHOST.c -o GHOST  # On compile le script
./GHOST  # On exécute le script

Si la sortie du script indique “not vulnerable”, vous ne disposez pas des versions dangereuses de glibc.
Si par contre la sortie indique “vulnerable”, je vous conseille de lire un peu plus loin comment mettre à jour votre système.

Correction de la vulnérabilité (patch !)

Si votre système est vulnérable, il va falloir mettre à jour les librairies glibc :

Pour Debian et dérivées

apt-get update  # On met à jour les sources des paquets
dpkg-query -l libc*|grep -E "libc-|libc6"|grep "ii"|awk '{print $2}'|xargs apt-get install -  # Et ici, commande magique : on recherche l'ensemble des paquets glibc installés et on lance leur mise à jour!
./GHOST  # On relance le script de détection : si tout va bien, il doit dire "not vulnerable"
reboot  # On reboote pour être sûrs de relancer TOUS les services potentiellement vulnérables

Pour Red-Hat/CentOS et dérivées

yum update glibc -y  # On met à jours les paquets glibc
./GHOST  # On relance le script de détection : si tout va bien, il doit dire "not vulnerable"
reboot  # On reboote pour être sûrs de relancer TOUS les services potentiellement vulnérables

En espérant que ce billet vous fera gagner un peu de temps dans le patch de vos Linux.

Pour plus d’informations sur la vulnérabilité, et le PoC de cette dernière, rendez-vous à l’adresse suivante : http://www.openwall.com/lists/oss-security/2015/01/27/9