Vous êtes sur le site public du Cert-IST
"RootkitRevealer" : la riposte aux "rootkits" Windows

Date :15 Avril 2005

Publication: Article

Le 22 février 2005, "SysInternals" (un des sites web de référence dans le monde Windows) a mis à disposition de la communauté un nouvel outil baptisé "RootkitRevealer". Il s'agit du premier outil opérationnel permettant de détecter facilement les "rootkits" dans le monde Windows, et nous avons donc décidé de lui consacrer cet article du bulletin.

Un "rootkit" c'est quoi ?

Le concept de "rootkit" est apparu il y a longtemps dans le monde UNIX (au siècle dernier ! ). Il s'agit d'un composant que le pirate installe sur la machine une fois qu'il en a pris le contrôle, et qui lui permet de dissimuler sa présence. Typiquement, le "rootkit" rend invisible aux autres utilisateurs du système les processus, les fichiers et les connexions réseau du pirate.

Dans sa forme la plus moderne sous UNIX, le "rootkit" modifie le système d'exploitation (au moyen d'un "Loadable Kernel Module" ou même par modification "à la volée" du noyau) pour intercepter tous les appels système et supprimer des fonctions de listage les fichiers, les processus et connexions réseau du pirate.

Une fois le "rootkit" installé, il peut être très difficile de se rendre compte de la présence du pirate, et donc, a fortiori, de "désinfecter" la machine. Heureusement, sous UNIX de nombreux outils "anti-rootkit" existent, et si la menace existe toujours, les moyens pour la combattre sont disponibles.

Les "rootkit" Windows existent-ils ?

En comparaison avec UNIX, les "rootkit" sont apparus tard sous Windows (en 2001 ?), mais ils ont utilisé d'emblée les techniques de dissimulations les plus avancées (modification du noyau). De plus, ils sont longtemps restés un mythe : des prototypes étaient disponibles (celui de Greg Hoglund reste la référence en la matière) mais ils n'étaient pas vraiment rencontrés en pratique (sur des machines compromises).

En 2004 cependant cette menace est devenue bien plus concrète. Des "rootkit" sont trouvés sur des machines compromises ("Hacker Defender" est le plus connu) et les éditeurs anti-virus commencent à diffuser des informations sur des "malwares" qui incluent des fonctions de "rootkit" (en particulier pour des "malwares" de type "keylogger").

Pour les éditeurs anti-virus, le "rootkit" est difficile à détecter : il doit absolument être détecté avant d'être installé, car une fois lancé, le "rootkit" devient invisible, même pour l'anti-virus. Jusqu'à présent, les techniques de détection des "rootkit" sur Windows étaient assez précaires, et la montée de la menace rendait ce problème préoccupant.

La solution "RootkitRevealer"

"RootkitRevealer" fonctionne sur Windows NT4 et supérieur, et propose une méthode de détection simple qui repose sur le fait que l'une des fonctions d'un "rootkit" est de cacher des fichiers.

Lorsqu'il est lancé, "RootkitRevealer" :

  • Effectue une première passe qui consiste à obtenir la liste de tous les fichiers du système en utilisant l'API normale de Windows.
  • Puis une seconde passe, où il construit une nouvelle liste de fichiers en lisant directement le contenu du disque, sans passer par les API Windows.

En comparant ces deux listes, "RootkitRevealer" met en évidence le fait que des fichiers sont cachés aux utilisateurs Windows.

Une partie de ces fichiers cachés sont des fichiers légitimes de Windows (les fichiers métadata de NTFS par exemple : $MFT ou $Secure), mais cette liste  est bien connue. Tout autre fichier caché est très suspect, et indique en principe qu'un "rootkit" a été installé.

Cette méthode très simple de détection nous paraît très prometteuse, et constitue un outil précieux pour les investigations sous les systèmes Windows. Bien sûr, certaines précautions doivent être prises, et en particulier le binaire "RootkitRevealer" doit être renommé car l'une des premières réponses des pirates a été d'adopter un comportement particulier pour les processus ayant le nom "rootkitrevealer.exe".

Pour plus d'information