FLASH INFORMATIQUE FI



Le fantôme de l’opéra




Christian RAEMY


Mais que se passe-t-il ? Il vous semble bien que quelque chose ne tourne pas rond dans cette machine ! Vous avez pourtant installé, comme conseillé, un anti-virus, agrémenté d’un zeste d’anti-spyware. Le pare-feu est en fonction. Vous venez d’y installer les derniers patches manquants, mais pourtant, votre machine se comporte bizarrement ; votre connexion haut débit peine à vous afficher la moindre page Web et néanmoins, l’affichage du trafic de votre modem lui semble indiquer une activité importante même lorsque vous ne faites rien ?!? Alors, vous avez lancé une analyse en profondeur de votre machine, et tout indique que celle-ci est exempte d’une quelconque infection. Tous les indicateurs sont au vert, mais pourtant, rien ne va... aïe, vous êtes peut-être sans le savoir la victime de ce que l’on nomme un rootkit.
Sous ce nom se cache l’une des menaces les plus pernicieuses pour le monde des PC à l’heure actuelle. Bien que les rootkits sévissent sur toutes les plates-formes, nous allons nous attarder plus spécifiquement sur la plus répandue, Windows.

Historique

Les premiers rootkits proviennent du monde UNIX, aux alentours des années 90 et n’avaient pas un niveau de sophistication élevé. Ils se contentaient de remplacer les commandes usuelles telles que ls, par une version masquant les fichiers que le pirate voulait cacher.
La parade fût vite découverte et il suffisait alors d’utiliser d’autres programmes pour lister les fichiers et ainsi voir réapparaître les fichiers que l’on voulait vous cacher.
Les générations suivantes de rootkit s’attaquèrent aux API, des interfaces entre les drivers et le système appelées par les différents programmes pour effectuer des tâches comme lister les fichiers, processus, ports TCP et autres clés de registre. Le rootkit s’intercale alors entre le programme et l’API utilisée, en remplaçant l’adresse-mémoire d’appel de cette API. Les requêtes sont alors envoyées au travers du rootkit, qui interroge lui-même l’API et falsifie les résultats retournés au programme initiateur de la requête. Comme il existe plusieurs niveaux d’API le rootkit cible un ou plusieurs niveaux selon sa sophistication. Les derniers rootkit mélangent habilement les différentes approches et bien que leurs niveaux de technicité soient très évolués, leur mise en oeuvre est d’une facilité déconcertante.

Mais alors c’est quoi un rootkit ?

Les rootkits ne sont pas à proprement parler des vers ou des virus. L’essence même du rootkit tient en sa discrétion et sa capacité à masquer tous les indices de la présence de programmes malveillants.

  • Ils ne s’installent pas automatiquement au travers de failles de sécurité.
  • Ils n’ont aucune capacité intrinsèque de propagation de quelque manière que ce soit (e-mail, ports réseau,...).
  • Ils ne se servent pas de votre naïveté pour vous piéger au travers d’e-mails infectés.
  • Ils ne détournent pas vos accès Internet pour essayer de vous vendre quelque chose (spyware, ...).

Mais... pour installer un rootkit, il faut un niveau de droit élevé (administrateur) et cet accès est obtenu au moyen d’attaques traditionnelles via les vecteurs connus comme failles, mots de passe trop simples, e-mails piégés, faux messages systèmes, etc.
Le rootkit est installé après une première attaque traditionnelle, en pierre de voûte, pour ainsi rendre totalement imperceptible tous les indices de la présence de programmes compromettant votre ordinateur, telle la cape d’invisibilité d’Harry Potter- ;). Il donne ensuite tout loisir aux pirates de s’adonner furtivement à des activités illicites à votre insu. Installation de portes dérobées permettant d’avoir le contrôle distant de l’ordinateur, de keylogger interceptant toutes les frappes clavier, de robots envoyant des spams, d’utilisation de votre espace disque ou votre bande passante Internet pour des échanges peer-to-peer, etc. Votre ordinateur passe alors totalement sous contrôle du pirate et devient un pion dans un réseau de machines compromises exécutant bon nombre de tâches illégales.

Détection

Mais alors, comment vérifier la présence d’un rootkit sur son ordinateur si celui-ci est invisible ?
Il existe quelques voies dont voici les principes :

  1. Énumération d’informations au moyen de deux types d’accès puis comparaison. C’est ce que réalise, par exemple, l’outil Rootkit Revealer de Sysinternals. Ce programme effectue deux balayages complets du système (fichiers et base de registre) en utilisant une fois les API Windows, puis une autre fois le niveau le plus bas du système. Il compare ensuite les deux résultats et affiche les différences. Ainsi, si un rootkit est présent, les informations cachées via l’API apparaîtront. Ce programme souffre malheureusement de limitations. Il risque d’afficher un certain nombre d’informations parasites dû au fait que certains processus écrivent continuellement dans la base de registre et engendrent donc des différences entre les deux balayages. En outre, il doit être démarré de manière manuelle et ne peut donc pas protéger en continu l’ordinateur. Finalement, il faut un certain niveau d’expertise pour interpréter les résultats.
  2. Analyse de la machine à froid. En utilisant un CD qui démarre avec un autre système d’exploitation (Linux, Win PE,...), il est ainsi possible de lancer une analyse en profondeur du système suspect, sans que le rootkit puisse intercepter les outils utilisés. Il faut néanmoins que le rootkit soit connu dans les différentes bibliothèques des outils utilisés pour la traque.
  3. Analyse de l’ordinateur de manière distante. Sur un réseau local, il suffit d’utiliser une machine ayant un outil d’analyse évolué (par ex VirusScan 8.0i, Kaspersky,...), de connecter le disque système de la machine que l’on soupçonne infecté, puis d’effectuer un balayage distant de cette machine. Si un rootkit est présent, il ne pourra pas influencer les API utilisées sur la machine effectuant l’analyse distante. Mais comme dans l’approche précédente, il faut que le rootkit soit dans les bibliothèques.

Éradication

C’est là le point le plus critique, il est presque impossible de nettoyer complètement une machine ayant été compromise avec un rootkit. La meilleure méthode consiste donc en une réinstallation complète du système. Si néanmoins vos connaissances informatiques sont élevées, vous pouvez tenter la méthode que j’expose ici.
Une fois le rootkit démasqué par une des méthodes décrites précédemment :

  • Relevez tous les détails des fichiers détectés comme suspects.
  • Faites une recherche, distante ou à froid, de tous les fichiers ayant la même date et heure de modification/création.
  • Faites une recherche dans la base de registre en recherchant les entrées comportant le nom des fichiers trouvés.
  • Parmi tous les fichiers découverts, repérez celui qui est le fichier de configuration du rootkit. Il s’agit très souvent d’un fichier de type texte, énumérant les paramètres de fonctionnement du rootkit.

Si vous avez trouvé le fichier de configuration, le plus difficile est fait. Ce fichier est le plus important, car il indique au rootkit quelles sont les choses que l’on veut cacher.
C’est donc grâce à celui-ci que l’on va savoir ce qu’il faut supprimer.

  • renommez ou déplacez ce fichier ;
  • déconnectez votre machine du réseau (pour ne pas laisser le pirate réagir) et ensuite redémarrez la machine compromise.

Comme le rootkit ne trouvera plus son fichier de configuration, il ne cachera alors plus les éléments précédemment masqués. Il sera alors bien plus facile d’effectuer le nettoyage. En parcourant méticuleusement le fichier de configuration du rootkit, effectuez les opérations suivantes :

  • supprimez scrupuleusement tous les fichiers désignés comme devant être cachés ;
  • supprimez également les entrées de la base de registre ;
  • supprimez les services qui s’y trouvent.

Votre machine, même si elle n’est pas aussi propre que si elle avait été réinstallée, devrait être maintenant débarrassée de la quasi totalité des programmes malveillants qui l’empoisonnait.

Et après...

L’actualité est assez riche sur ce sujet et ne risque pas de se tarir. Il suffit de voir que même les plus grandes compagnies (SONY/BMG) ont parfois recours aux rootkits pour cacher leur système de protection de copie de CD.
Aujourd’hui, un rootkit est encore déposé de manière manuelle suite à une intrusion sur une machine, mais on peut aisément imaginer les risques si un processus associait la vitesse et la capacité de propagation d’un vers/virus à la furtivité d’un rootkit !
Même si certains éditeurs de solutions de sécurité annoncent des fonctionnalités anti-rootkit dans leurs différents produits de protection, nous sommes en présence d’une réelle menace latente. Tous les outils de protection ne seront jamais aussi efficaces qu’un utilisateur prudent et bien informé. Il ne tient donc qu’à vous de ne pas croire en la totale immunité de votre système informatique et d’être vigilant lorsque vous utilisez un ordinateur.

Références



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.