Rootkit - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Prévention

Moyens de détection

La mise en œuvre d'une détection peut, selon le type de rootkit, demander un examen du système ou d'un périphérique suspect en mode « inactif » (démarrage à partir d'un système de secours ou d'un système réputé sain). Plusieurs méthodes existent.

La recherche d'objets cachés (tels que des processus informatiques, des clés de registre, des fichiers, etc.) est essentielle. Des outils comme unhide sous Linux révéler les processus cachés. Sous Windows, des outils comme RootkitRevealer recherchent les fichiers cachés en listant les fichiers via l'API normale de Windows puis en comparant cette liste à une lecture physique du disque ; les différences entre les deux sont alors repérés comme suspecte, à l'exception des fichiers légitimes connus de Windows, tels que les fichiers de métadonnées de NTFS comme $MFT ou $Secure.

Le calcul régulier des empreintes de fichiers sensibles permet de détecter une modification inattendue.

Le contrôle de l'intégrité des fichiers consiste à calculer, pour chaque fichier sensible (bibliothèque, commande système, etc.), une empreinte. Toute modification inattendue de cette empreinte indique une modification du fichier, et donc une contamination potentielle. Cependant, tout système subit des modifications légitimes lors des mises à jour ; idéalement, l'outil de contrôle a la possibilité d'accéder à une base de référence de ces sommes de contrôles, selon la version du système utilisée (rkhunter par exemple).

La détection de signatures spécifiques est le procédé classique d'analyse de signature, comme cela se fait pour les virus : on cherche à retrouver dans le système la trace d'une infection, soit directement (signature des objets du rootkit), soit par le vecteur d'infection (virus utilisé par le rootkit).

L’analyse des appels systèmes, des tables d'interruption, et de manière générale, des tables de travail utilisées par le système, au moyen d'outils spécifiques (des logiciels anti-espion comme HijackThis), permet de voir si ces appels ont été détournés ou non, par exemple en comparant ce qui est chargé en mémoire avec les données brutes de bas niveau (ce qui est écrit sur le disque).

Le hooking consiste à détourner un appel de fonction légitime par un autre qui contient du code malveillant.

On peut aussi s'intéresser à la charge du système. Du point de vue du processeur et de l'activité applicative, une surveillance continue peut mettre en évidence une surcharge, à partir du moment de la contamination. Il s'agit essentiellement d'une analyse de la charge habituelle de la machine, comme le nombre de mails sortants ou l'occupation du processeur. Toute modification (en surcharge) sans cause apparente est suspecte, mais elle nécessite une analyse complémentaire pour écarter les causes légitimes (mise à jour du système, installation de logiciels, etc.).

De la même manière, l’analyse des flux réseau permet de détecter une surcharge anormale. Mais il convient également de surveiller une utilisation de ports logiciels inhabituels grâce aux traces issues d'un pare-feu ou grâce à un outil spécialisé. Il est également possible de faire une recherche des ports ouverts et cachés, en comparant ce que connaît le système avec ce qui est effectivement ouvert, grâce à des outils d'investigation comme unhide-tcp. Toute différence peut être considérée comme anormale. Il existe cependant des moyens de dissimulation réseau, comme de la stéganographie ou l'utilisation de canaux cachés, qui rend la détection directe impossible, et nécessite une analyse statistique qui n'est pas forcément déterminante.

L’analyse automatisée des logs système s'appuie sur le principe de corrélation, avec des outils de type HIDS qui disposent de règles paramétrables pour repérer les événements anormaux et mettre en relation des événements systèmes distincts, sans rapport apparent ou épars dans le temps.

Le site du Cert-IST propose régulièrement des informations sur les rootkits et les logiciels malicieux en général.

Moyens de protection et de prévention

Les moyens de détection peuvent également servir à la prévention, même si celle-ci sera toujours postérieure à la contamination. D'autres mesures en amont peuvent rendre difficile l'installation d'un rootkit.

La correction des failles par mise à jour du système d'exploitation permet de réduire la surface d'exposition du système en limitant le temps pendant lequel une faille est présente sur le système et dans les applications, afin de prévenir les exploits pouvant être utilisés pour la contamination.

L’utilisation d'un pare-feu, qui fait partie des bonnes pratiques dans le domaine de la sécurité informatique, se révèle efficace dans le cas des rootkits car cela empêche les communications inattendues (téléchargements de logiciel, dialogue avec un centre de contrôle et de commande d'un botnet, etc.) dont ont besoin les rootkits.

Il est possible de désactiver le système de chargement de modules en rendant le noyau statique, ce qui protège contre les rootkits qui s'installent en chargeant un module ; certains rootkits arrivent cependant à contourner cela en reconnaissant l'empreinte du module directement dans la mémoire.

De même, pour renforcer la robustesse des bibliothèques et empêcher le hooking, il est possible de compiler statiquement les bibliothèques.

La complexité d'un mot de passe est proportionnelle à sa taille et au nombre de caractères différents qu'il utilise. Un mot de passe complexe sera plus long à deviner dans une attaque par force brute.

Des systèmes de prévention d'intrusion, sous forme de logiciel ou de matériel, répondent dès qu'une intrusion est détectée, en bloquant des ports ou en interdisant la communication avec une source (adresse IP) douteuse, ou toute autre action appropriée. La détection sera d'autant meilleure que l'outil utilisé sera externe au système examiné, puisque certains rootkits peuvent atteindre des parties de très bas niveau dans le système, jusqu'au BIOS. Un des avantages de ces outils est l'automatisation des tâches de surveillance.

Des outils spécialisés de contrôle d'intégrité des fichiers peuvent produire des alertes lors de modifications inattendues. Cependant, ce contrôle à lui seul seul est insuffisant si d'autres mesures préventives ne sont pas mises en œuvre, si aucune réponse du système n'est déclenchée, ou si ces différences ne sont pas analysées.

Le renforcement de la robustesse des mots de passe est une autre des bonnes pratiques de sécurité informatique qui élimine une des sources principales de contamination. Des éléments d'authentification triviaux sont des portes ouvertes pour tout type d'attaque informatique.

Le démarrage du système à partir d'une image saine, contrôlée et réputée valide du système d'exploitation, via un support fixe (comme un LiveCD, une clé USB) ou par réseau, permet de s'assurer que les éléments logiciels principaux du système ne sont pas compromis, puisqu'à chaque redémarrage de la machine concernée, une version valide de ces objets est chargée. Un système corrompu serait donc remis en état au redémarrage (sauf dans le cas de rootkit ayant infecté un plus bas niveau, comme le BIOS).

Les moyens de protection habituels sont également valables contre les rootkits : « Do everything so that attacker doesn’t get into your system ». Durcissement du système, filtrages applicatifs (type modsecurity), utilisation de programmes antivirus pour minimiser la surface d'attaque et surveiller en permanence les anomalies et tentatives de contamination, sont bien sûr à mettre en œuvre pour éviter la contamination du système et l'exposition aux exploits.

Outils et programmes de détection

À part quelques cas particuliers, l'industrie de la sécurité informatique a tardé à prendre en compte les rootkits, les virus puis les chevaux de Troie accaparant l'attention des éditeurs. Il existe cependant quelques programmes de détection et de prévention spécifiques à Windows, tels que Sophos Anti-Rootkit, ou AVG Anti-Rootkit. Sous Linux, on peut citer rkhunter et chkrootkit ; plusieurs projets open-source existent sur Freshmeat et Sourceforge.net.

Aujourd'hui, il reste difficile de trouver des outils spécifiques de lutte contre les rootkits, mais leur détection et leur prévention sont de plus en plus intégrées dans les systèmes de prévention d'intrusion et même dans les antivirus classiques, lesquels sont de plus en plus obligés de se transformer en suites de sécurité pour faire face à la diversité des menaces ; ils proposent en effet de plus en plus souvent des protections contre les rootkits. C'est le cas d'Avast, AVG 8.0 ou Microsoft Security Essentials.

Page générée en 0.151 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise