Un rootkit est un ensemble de logiciels informatiques , généralement malveillants, conçus pour permettre l'accès à un ordinateur ou à une zone de son logiciel qui n'est pas autrement autorisé (par exemple, à un utilisateur non autorisé) et masque souvent son existence ou l'existence d'autres logiciels. Le terme rootkit est un composé de « root » (le nom traditionnel du compte privilégié sur les systèmes d'exploitation de type Unix ) et du mot « kit » (qui fait référence aux composants logiciels qui implémentent l'outil). Le terme « rootkit » a des connotations négatives en raison de son association avec les logiciels malveillants .
L'installation d'un rootkit peut être automatisée, ou un attaquant peut l'installer après avoir obtenu un accès root ou administrateur. L'obtention de cet accès résulte d'une attaque directe sur un système, c'est-à-dire de l'exploitation d'une vulnérabilité (comme l'escalade de privilèges ) ou d'un mot de passe (obtenu par craquage ou par des tactiques d'ingénierie sociale comme le « phishing »). Une fois installé, il devient possible de masquer l'intrusion ainsi que de conserver un accès privilégié. Le contrôle total sur un système signifie que les logiciels existants peuvent être modifiés, y compris les logiciels qui pourraient autrement être utilisés pour le détecter ou le contourner.
La détection des rootkits est difficile car un rootkit peut être capable de subvertir le logiciel qui est censé le trouver. Les méthodes de détection incluent l'utilisation d'un système d'exploitation alternatif et fiable , des méthodes basées sur le comportement, l'analyse des signatures, l'analyse des différences et l'analyse des vidages de mémoire . La suppression peut être compliquée ou pratiquement impossible, en particulier dans les cas où le rootkit réside dans le noyau ; la réinstallation du système d'exploitation peut être la seule solution disponible au problème. Lorsqu'il s'agit de rootkits de micrologiciel , la suppression peut nécessiter le remplacement du matériel ou un équipement spécialisé.
Histoire
Le terme rootkit , rkit ou root kit faisait à l'origine référence à un ensemble d'outils d'administration modifiés de manière malveillante pour un système d'exploitation de type Unix qui accordait un accès « root ». Si un intrus pouvait remplacer les outils d'administration standard d'un système par un rootkit, il pourrait obtenir un accès root sur le système tout en dissimulant simultanément ces activités à l' administrateur système légitime . Ces rootkits de première génération étaient faciles à détecter en utilisant des outils tels que Tripwire qui n'avaient pas été compromis pour accéder aux mêmes informations. Lane Davis et Steven Dake ont écrit le premier rootkit connu en 1990 pour le système d'exploitation SunOS UNIX de Sun Microsystems . Dans la conférence qu'il a donnée lors de la réception du prix Turing en 1983, Ken Thompson de Bell Labs , l'un des créateurs d' Unix , a théorisé la subversion du compilateur C dans une distribution Unix et a discuté de l'exploit. Le compilateur modifié détecterait les tentatives de compilation de la commande Unix et générerait un code modifié qui accepterait non seulement le mot de passe correct de l'utilisateur, mais aussi un mot de passe « backdoor » supplémentaire connu de l'attaquant. De plus, le compilateur détecterait les tentatives de compilation d'une nouvelle version du compilateur et insérerait les mêmes exploits dans le nouveau compilateur. Un examen du code source de la commande ou du compilateur mis à jour ne révélerait aucun code malveillant. Cet exploit était équivalent à un rootkit. loginlogin
Le premier virus informatique documenté ciblant les ordinateurs personnels , découvert en 1986, utilisait des techniques de dissimulation pour se cacher : le virus Brain interceptait les tentatives de lecture du secteur de démarrage et les redirigeait vers un autre emplacement du disque, où une copie du secteur de démarrage d'origine était conservée. Au fil du temps, les méthodes de dissimulation des virus DOS sont devenues plus sophistiquées. Les techniques avancées comprenaient l'accrochage des appels d'interruption du BIOS INT 13H de bas niveau du disque pour masquer les modifications non autorisées apportées aux fichiers.
Le premier rootkit malveillant pour le système d'exploitation Windows NT est apparu en 1999 : il s'agit d'un cheval de Troie appelé NTRootkit créé par Greg Hoglund . Il a été suivi par HackerDefender en 2003. Le premier rootkit ciblant Mac OS X est apparu en 2009, tandis que le ver Stuxnet a été le premier à cibler les automates programmables (PLC).
Scandale du rootkit de protection contre la copie de Sony BMG

En 2005, Sony BMG a publié des CD avec un logiciel de protection contre la copie et de gestion des droits numériques appelé Extended Copy Protection , créé par la société de logiciels First 4 Internet. Le logiciel comprenait un lecteur de musique mais installait silencieusement un rootkit qui limitait la capacité de l'utilisateur à accéder au CD. L'ingénieur logiciel Mark Russinovich , qui a créé l'outil de détection de rootkit RootkitRevealer , a découvert le rootkit sur l'un de ses ordinateurs. Le scandale qui s'en est suivi a sensibilisé le public aux rootkits. Pour se dissimuler, le rootkit cachait à l'utilisateur tout fichier commençant par « $sys$ ». Peu de temps après le rapport de Russinovich, des logiciels malveillants sont apparus qui ont profité du rootkit existant sur les systèmes affectés. Un analyste de la BBC a qualifié cela de « cauchemar de relations publiques ». Sony BMG a publié des correctifs pour désinstaller le rootkit, mais cela a exposé les utilisateurs à une vulnérabilité encore plus grave. La société a finalement rappelé les CD. Aux États-Unis, une action collective a été intentée contre Sony BMG.
Affaire des écoutes téléphoniques grecques de 2004 à 2005
L' affaire des écoutes téléphoniques grecques de 2004-2005 , également appelée Watergate grec, impliquait l' écoute téléphonique illégale de plus de 100 téléphones portables sur le réseau de Vodafone Grèce appartenant principalement à des membres du gouvernement grec et à des fonctionnaires de haut rang. Les écoutes ont commencé vers le début du mois d'août 2004 et ont été supprimées en mars 2005 sans que l'identité des auteurs ne soit découverte. Les intrus ont installé un rootkit ciblant le central téléphonique AXE d'Ericsson . Selon IEEE Spectrum , c'était « la première fois qu'un rootkit était observé sur un système à usage spécifique, dans ce cas un commutateur téléphonique Ericsson ». Le rootkit a été conçu pour patcher la mémoire du central pendant son fonctionnement, activer les écoutes téléphoniques tout en désactivant les journaux d'audit, patcher les commandes qui répertorient les processus actifs et les blocs de données actifs et modifier la commande de vérification de la somme de contrôle des blocs de données . Une « porte dérobée » permettait à un opérateur ayant le statut d'administrateur système de désactiver le journal des transactions de la bourse, les alarmes et les commandes d'accès liées à la fonction de surveillance. Le rootkit a été découvert après que les intrus ont installé une mise à jour défectueuse, ce qui a entraîné la non-livraison des SMS , ce qui a conduit à la génération d'un rapport d'échec automatique. Les ingénieurs d'Ericsson ont été appelés pour enquêter sur la panne et ont découvert les blocs de données cachés contenant la liste des numéros de téléphone surveillés, ainsi que le rootkit et le logiciel de surveillance illicite.
Utilisations
Les rootkits modernes n'élèvent pas l'accès, mais sont plutôt utilisés pour rendre une autre charge utile logicielle indétectable en ajoutant des capacités furtives. La plupart des rootkits sont classés comme des logiciels malveillants , car les charges utiles avec lesquelles ils sont fournis sont malveillantes. Par exemple, une charge utile peut voler de manière dissimulée des mots de passe d'utilisateur , des informations de carte de crédit , des ressources informatiques ou mener d'autres activités non autorisées. Un petit nombre de rootkits peuvent être considérés comme des applications utilitaires par leurs utilisateurs : par exemple, un rootkit peut masquer un pilote d'émulation de CD-ROM , permettant aux utilisateurs de jeux vidéo de contourner les mesures anti-piratage qui nécessitent l'insertion du support d'installation d'origine dans un lecteur optique physique pour vérifier que le logiciel a été acheté légalement.
Les rootkits et leurs charges utiles ont de nombreuses utilisations :
- Fournissez à un attaquant un accès complet via une porte dérobée , permettant un accès non autorisé pour, par exemple, voler ou falsifier des documents. L'une des façons d'y parvenir est de subvertir le mécanisme de connexion, comme le programme /bin/login sur les systèmes de type Unix ou GINA sur Windows. Le remplacement semble fonctionner normalement, mais accepte également une combinaison de connexion secrète qui permet à un attaquant d'accéder directement au système avec des privilèges d'administrateur, en contournant les mécanismes d'authentification et d'autorisation standard .
- Cacher d'autres logiciels malveillants , notamment les enregistreurs de frappe de vol de mots de passe et les virus informatiques .
- S'approprier la machine compromise comme ordinateur zombie pour attaquer d'autres ordinateurs. (L'attaque provient du système ou du réseau compromis, et non du système de l'attaquant.) Les ordinateurs « zombies » sont généralement membres de grands botnets qui peuvent, entre autres, lancer des attaques par déni de service , distribuer des courriers indésirables et effectuer des fraudes au clic .
Dans certains cas, les rootkits fournissent les fonctionnalités souhaitées et peuvent être installés intentionnellement au nom de l'utilisateur de l'ordinateur :
- Détecter les attaques, par exemple, dans un pot de miel .
- Améliorez les logiciels d'émulation et de sécurité. Alcohol 120% et Daemon Tools sont des exemples commerciaux de rootkits non hostiles utilisés pour vaincre les mécanismes de protection contre la copie tels que SafeDisc et SecuROM . Le logiciel antivirus Kaspersky utilise également des techniques ressemblant aux rootkits pour se protéger des actions malveillantes. Il charge ses propres pilotes pour intercepter l'activité du système, puis empêche les autres processus de lui faire du mal. Ses processus ne sont pas cachés, mais ne peuvent pas être arrêtés par des méthodes standard.
- Protection antivol : les ordinateurs portables peuvent être équipés d'un logiciel rootkit basé sur le BIOS qui envoie périodiquement un rapport à une autorité centrale, permettant ainsi de surveiller, de désactiver ou d'effacer les informations de l'ordinateur portable en cas de vol.
- Contournement de l'activation du produit Microsoft
Types
Il existe au moins cinq types de rootkit, allant de ceux du niveau le plus bas du micrologiciel (avec les privilèges les plus élevés) jusqu'aux variantes basées sur l'utilisateur les moins privilégiées qui fonctionnent dans Ring 3. Des combinaisons hybrides de ceux-ci peuvent se produire, couvrant par exemple le mode utilisateur et le mode noyau.
Mode utilisateur

Les rootkits en mode utilisateur s'exécutent dans Ring 3 , avec d'autres applications en tant qu'utilisateur, plutôt qu'en tant que processus système de bas niveau. Ils disposent d'un certain nombre de vecteurs d'installation possibles pour intercepter et modifier le comportement standard des interfaces de programmation d'applications (API). Certains injectent une bibliothèque liée dynamiquement (comme un fichier .DLL sous Windows ou un fichier .dylib sous Mac OS X ) dans d'autres processus, et sont ainsi capables de s'exécuter à l'intérieur de n'importe quel processus cible pour l'usurper ; d'autres, avec des privilèges suffisants, écrasent simplement la mémoire d'une application cible. Les mécanismes d'injection comprennent :
- Utilisation d'extensions d'application fournies par des fournisseurs. Par exemple, l'Explorateur Windows dispose d'interfaces publiques qui permettent à des tiers d'étendre ses fonctionnalités.
- Interception de messages .
- Débogueurs .
- Exploitation des vulnérabilités de sécurité .
- Accrochage de fonctions ou correction d'API couramment utilisées, par exemple pour masquer un processus en cours d'exécution ou un fichier qui réside sur un système de fichiers.
...étant donné que les applications en mode utilisateur s'exécutent toutes dans leur propre espace mémoire, le rootkit doit effectuer cette mise à jour dans l'espace mémoire de chaque application en cours d'exécution. De plus, le rootkit doit surveiller le système pour détecter toute nouvelle application qui s'exécute et mettre à jour l'espace mémoire de ces programmes avant qu'ils ne s'exécutent complètement.
— Présentation du rootkit Windows, Symantec
Mode noyau
Les rootkits en mode noyau s'exécutent avec les privilèges les plus élevés du système d'exploitation ( Ring 0 ) en ajoutant du code ou en remplaçant des parties du système d'exploitation principal, y compris le noyau et les pilotes de périphériques associés . La plupart des systèmes d'exploitation prennent en charge les pilotes de périphériques en mode noyau, qui s'exécutent avec les mêmes privilèges que le système d'exploitation lui-même. En tant que tels, de nombreux rootkits en mode noyau sont développés en tant que pilotes de périphériques ou modules chargeables, tels que les modules de noyau chargeables sous Linux ou les pilotes de périphériques sous Microsoft Windows . Cette classe de rootkit a un accès de sécurité illimité, mais est plus difficile à écrire. La complexité rend les bogues courants, et tout bogue dans le code fonctionnant au niveau du noyau peut sérieusement affecter la stabilité du système, conduisant à la découverte du rootkit. L'un des premiers rootkits de noyau largement connus a été développé pour Windows NT 4.0 et publié dans le magazine Phrack en 1999 par Greg Hoglund . Les rootkits du noyau peuvent être particulièrement difficiles à détecter et à supprimer car ils fonctionnent au même niveau de sécurité que le système d'exploitation lui-même et sont donc capables d'intercepter ou de subvertir les opérations les plus fiables du système d'exploitation. Tout logiciel, tel qu'un logiciel antivirus , exécuté sur le système compromis est tout aussi vulnérable. Dans cette situation, aucune partie du système n'est fiable.
Un rootkit peut modifier les structures de données dans le noyau Windows à l'aide d'une méthode connue sous le nom de manipulation directe des objets du noyau (DKOM). Cette méthode peut être utilisée pour masquer des processus. Un rootkit en mode noyau peut également accrocher la table de description des services système (SSDT) ou modifier les portes entre le mode utilisateur et le mode noyau afin de se dissimuler. De même, pour le système d'exploitation Linux , un rootkit peut modifier la table des appels système pour subvertir les fonctionnalités du noyau. Il est courant qu'un rootkit crée un système de fichiers caché et chiffré dans lequel il peut cacher d'autres logiciels malveillants ou des copies originales de fichiers qu'il a infectés. Les systèmes d'exploitation évoluent pour contrer la menace des rootkits en mode noyau. Par exemple, les éditions 64 bits de Microsoft Windows implémentent désormais la signature obligatoire de tous les pilotes au niveau du noyau afin de rendre plus difficile l'exécution de code non fiable avec les privilèges les plus élevés dans un système.
Kits de démarrage
Une variante de rootkit en mode noyau appelée bootkit peut infecter le code de démarrage comme le Master Boot Record (MBR), le Volume Boot Record (VBR) ou le secteur de démarrage , et peut ainsi être utilisée pour attaquer les systèmes de chiffrement de disque complet . Un exemple d'une telle attaque sur le chiffrement de disque est l' attaque « evil maid », dans laquelle un attaquant installe un bootkit sur un ordinateur sans surveillance. Le scénario envisagé est celui d'une femme de chambre se faufilant dans la chambre d'hôtel où les victimes ont laissé leur matériel. Le bootkit remplace le chargeur de démarrage légitime par un autre sous leur contrôle. En général, le chargeur de malware persiste pendant la transition vers le mode protégé lorsque le noyau est chargé, et est ainsi capable de subvertir le noyau. Par exemple, le « Stoned Bootkit » subvertit le système en utilisant un chargeur de démarrage compromis pour intercepter les clés de chiffrement et les mots de passe. En 2010, le rootkit Alureon a réussi à contourner l'exigence de signature du pilote en mode noyau 64 bits dans Windows 7 , en modifiant le master boot record . Bien qu'il ne s'agisse pas de malware au sens de faire quelque chose que l'utilisateur ne souhaite pas, certains logiciels « Vista Loader » ou « Windows Loader » fonctionnent de manière similaire en injectant une table ACPI SLIC (System Licensed Internal Code) dans la version en cache RAM du BIOS pendant le démarrage, afin de vaincre le processus d'activation de Windows Vista et Windows 7. [ Ce vecteur d'attaque a été rendu inutile dans les versions (non serveur) de Windows 8 , qui utilisent une clé unique et spécifique à la machine pour chaque système, qui ne peut être utilisée que par cette seule machine. De nombreuses sociétés d'antivirus fournissent des utilitaires et des programmes gratuits pour supprimer les bootkits.
Niveau hyperviseur
Les rootkits ont été créés comme hyperviseurs de type II dans le milieu universitaire comme preuves de concept. En exploitant les fonctionnalités de virtualisation matérielle telles que Intel VT ou AMD-V , ce type de rootkit s'exécute dans Ring -1 et héberge le système d'exploitation cible en tant que machine virtuelle , permettant ainsi au rootkit d'intercepter les appels matériels effectués par le système d'exploitation d'origine. Contrairement aux hyperviseurs normaux, ils n'ont pas besoin de se charger avant le système d'exploitation, mais peuvent se charger dans un système d'exploitation avant de le promouvoir en machine virtuelle. Un rootkit d'hyperviseur n'a pas besoin d'apporter de modifications au noyau de la cible pour le subvertir ; cependant, cela ne signifie pas qu'il ne peut pas être détecté par le système d'exploitation invité. Par exemple, des différences de synchronisation peuvent être détectables dans les instructions du processeur . Le rootkit de laboratoire « SubVirt », développé conjointement par Microsoft et des chercheurs de l'Université du Michigan , est un exemple académique de rootkit basé sur une machine virtuelle (VMBR), tandis que le logiciel Blue Pill en est un autre. En 2009, des chercheurs de Microsoft et de l'Université d'État de Caroline du Nord ont présenté un anti-rootkit de couche hyperviseur appelé Hooksafe , qui offre une protection générique contre les rootkits en mode noyau. Windows 10 a introduit une nouvelle fonctionnalité appelée « Device Guard », qui tire parti de la virtualisation pour fournir une protection externe indépendante d'un système d'exploitation contre les logiciels malveillants de type rootkit.
Micrologiciel et matériel
Un rootkit de micrologiciel utilise le micrologiciel de l'appareil ou de la plate-forme pour créer une image malveillante persistante dans le matériel, tel qu'un routeur , une carte réseau , un disque dur ou le BIOS du système . Le rootkit se cache dans le micrologiciel, car le micrologiciel n'est généralement pas inspecté pour l'intégrité du code . John Heasman a démontré la viabilité des rootkits de micrologiciel dans les routines de micrologiciel ACPI et dans une ROM de carte d'extension PCI . En octobre 2008, des criminels ont trafiqué des machines de lecture de cartes de crédit européennes avant leur installation. Les appareils ont intercepté et transmis les détails de la carte de crédit via un réseau de téléphonie mobile. En mars 2009, les chercheurs Alfredo Ortega et Anibal Sacco ont publié les détails d'un rootkit Windows au niveau du BIOS qui a pu survivre au remplacement du disque et à la réinstallation du système d'exploitation. Quelques mois plus tard, ils ont appris que certains ordinateurs portables étaient vendus avec un rootkit légitime, connu sous le nom d'Absolute CompuTrace ou Absolute LoJack for Laptops , préinstallé dans de nombreuses images du BIOS. Il s'agit d'un système de technologie antivol qui , selon les chercheurs, peut être utilisé à des fins malveillantes.
La technologie Intel Active Management , qui fait partie d' Intel vPro , implémente la gestion hors bande , permettant aux administrateurs d'administrer , de gérer et de contrôler à distance les PC sans intervention du processeur hôte ou du BIOS, même lorsque le système est hors tension. L'administration à distance comprend la mise sous tension et hors tension à distance, la réinitialisation à distance, le démarrage redirigé, la redirection de console, l'accès avant le démarrage aux paramètres du BIOS, le filtrage programmable du trafic réseau entrant et sortant, la vérification de la présence des agents, les alertes basées sur des politiques hors bande, l'accès aux informations système, telles que les informations sur les actifs matériels, les journaux d'événements persistants et d'autres informations stockées dans une mémoire dédiée (et non sur le disque dur) où elles sont accessibles même si le système d'exploitation est en panne ou si le PC est hors tension. Certaines de ces fonctions nécessitent le niveau le plus profond de rootkit, un deuxième ordinateur espion non amovible construit autour de l'ordinateur principal. Sandy Bridge et les futurs chipsets ont « la capacité de tuer et de restaurer à distance un PC perdu ou volé via 3G ». Les rootkits matériels intégrés au chipset peuvent aider à récupérer des ordinateurs volés, à supprimer des données ou à les rendre inutilisables, mais ils présentent également des problèmes de confidentialité et de sécurité liés à l'espionnage indétectable et à la redirection par la direction ou les pirates informatiques qui pourraient prendre le contrôle.
Installation et masquage
Les rootkits utilisent une variété de techniques pour prendre le contrôle d'un système ; le type de rootkit influence le choix du vecteur d'attaque. La technique la plus courante exploite les vulnérabilités de sécurité pour obtenir une élévation de privilèges subreptice . Une autre approche consiste à utiliser un cheval de Troie , en trompant un utilisateur d'ordinateur en lui faisant croire que le programme d'installation du rootkit est bénin. Dans ce cas, l'ingénierie sociale convainc un utilisateur que le rootkit est bénéfique. La tâche d'installation est facilitée si le principe du moindre privilège n'est pas appliqué, car le rootkit n'a alors pas besoin de demander explicitement des privilèges élevés (de niveau administrateur). D'autres classes de rootkits ne peuvent être installées que par une personne ayant un accès physique au système cible. Certains rootkits peuvent également être installés intentionnellement par le propriétaire du système ou une personne autorisée par le propriétaire, par exemple à des fins de surveillance des employés , ce qui rend ces techniques subversives inutiles. Certaines installations de rootkits malveillants sont motivées par des raisons commerciales, avec une méthode de compensation par installation (PPI) typique pour la distribution.
Une fois installé, un rootkit prend des mesures actives pour masquer sa présence dans le système hôte par subversion ou évasion des outils de sécurité standard du système d'exploitation et des interfaces de programmation d'application (API) utilisées pour le diagnostic, l'analyse et la surveillance. Les rootkits y parviennent en modifiant le comportement des parties principales d'un système d'exploitation par le chargement de code dans d'autres processus, l'installation ou la modification de pilotes ou de modules du noyau . Les techniques d'obscurcissement incluent la dissimulation des processus en cours d'exécution aux mécanismes de surveillance du système et le masquage des fichiers système et d'autres données de configuration. Il n'est pas rare qu'un rootkit désactive la capacité de journalisation des événements d'un système d'exploitation, dans le but de cacher les preuves d'une attaque. Les rootkits peuvent, en théorie, subvertir toutes les activités du système d'exploitation. Le « rootkit parfait » peut être considéré comme similaire à un « crime parfait » : un crime dont personne ne se rend compte qu'il a eu lieu. Les rootkits prennent également un certain nombre de mesures pour assurer leur survie contre la détection et le « nettoyage » par un logiciel antivirus en plus de s'installer généralement dans Ring 0 (mode noyau), où ils ont un accès complet à un système. Il s'agit notamment du polymorphisme (changement de façon à ce que leur « signature » soit difficile à détecter), des techniques furtives, de la régénération, de la désactivation ou de l'arrêt des logiciels anti-malware, et de ne pas les installer sur des machines virtuelles où il peut être plus facile pour les chercheurs de les découvrir et de les analyser.
Détection
Le problème fondamental de la détection de rootkit est que si le système d'exploitation a été corrompu, en particulier par un rootkit au niveau du noyau, on ne peut pas lui faire confiance pour trouver des modifications non autorisées sur lui-même ou sur ses composants. Des actions telles que la demande d'une liste de processus en cours d'exécution ou d'une liste de fichiers dans un répertoire ne peuvent pas se comporter comme prévu. En d'autres termes, les détecteurs de rootkit qui fonctionnent sur des systèmes infectés ne sont efficaces que contre les rootkits qui présentent un défaut de camouflage ou qui s'exécutent avec des privilèges en mode utilisateur inférieurs à ceux du logiciel de détection du noyau. Comme pour les virus informatiques , la détection et l'élimination des rootkits sont une lutte permanente entre les deux camps de ce conflit. La détection peut prendre un certain nombre d'approches différentes, notamment la recherche de « signatures » de virus (par exemple, un logiciel antivirus), la vérification de l'intégrité (par exemple, des signatures numériques ), la détection basée sur les différences (comparaison des résultats attendus et réels) et la détection comportementale (par exemple, la surveillance de l'utilisation du processeur ou du trafic réseau).
Pour les rootkits en mode noyau, la détection est considérablement plus complexe, nécessitant un examen minutieux de la table d'appels système pour rechercher des fonctions accrochées où le logiciel malveillant peut subvertir le comportement du système, ainsi qu'une analyse médico-légale de la mémoire pour des modèles qui indiquent des processus cachés. Les offres de détection de rootkit Unix incluent Zeppoo, chkrootkit , rkhunter et OSSEC . Pour Windows, les outils de détection incluent Microsoft Sysinternals RootkitRevealer , Avast Antivirus , Sophos Anti-Rootkit, F-Secure , Radix, GMER , et WindowsSCOPE . Tous les détecteurs de rootkit qui s'avèrent efficaces contribuent en fin de compte à leur propre inefficacité, car les auteurs de logiciels malveillants adaptent et testent leur code pour échapper à la détection par des outils bien utilisés. La détection par examen du stockage alors que le système d'exploitation suspect n'est pas opérationnel peut manquer des rootkits non reconnus par le logiciel de vérification, car le rootkit n'est pas actif et le comportement suspect est supprimé ; un logiciel anti-malware conventionnel exécuté avec le rootkit opérationnel peut échouer si le rootkit se cache efficacement.
Support alternatif de confiance
La méthode la plus fiable et la plus efficace pour détecter un rootkit au niveau du système d'exploitation consiste à éteindre l'ordinateur suspecté d'être infecté, puis à vérifier son stockage en démarrant à partir d'un autre support fiable (par exemple un CD-ROM de « secours » ou une clé USB ). Cette technique est efficace car un rootkit ne peut pas masquer activement sa présence s'il n'est pas en cours d'exécution.
Basé sur le comportement
L'approche comportementale de détection des rootkits tente de déduire la présence d'un rootkit en recherchant un comportement de type rootkit. Par exemple, en profilant un système, les différences dans le timing et la fréquence des appels d'API ou dans l'utilisation globale du processeur peuvent être attribuées à un rootkit. La méthode est complexe et est entravée par une incidence élevée de faux positifs . Les rootkits défectueux peuvent parfois introduire des changements très évidents dans un système : le rootkit Alureon a fait planter les systèmes Windows après qu'une mise à jour de sécurité a révélé une faille de conception dans son code. Les journaux d'un analyseur de paquets , d'un pare-feu ou d'un système de prévention des intrusions peuvent présenter des preuves du comportement d'un rootkit dans un environnement réseau.
Basé sur la signature
Les produits antivirus détectent rarement tous les virus lors des tests publics (cela dépend de ce qui est utilisé et dans quelle mesure), même si les éditeurs de logiciels de sécurité intègrent la détection de rootkit dans leurs produits. Si un rootkit tente de se cacher pendant une analyse antivirus, un détecteur furtif peut le remarquer ; si le rootkit tente de se décharger temporairement du système, la détection de signature (ou « empreinte digitale ») peut toujours le trouver. Cette approche combinée oblige les attaquants à mettre en œuvre des mécanismes de contre-attaque, ou des routines « rétro », qui tentent de mettre fin aux programmes antivirus. Les méthodes de détection basées sur les signatures peuvent être efficaces contre les rootkits bien connus, mais moins contre les rootkits personnalisés spécialement conçus.
Basé sur la différence
Une autre méthode permettant de détecter les rootkits consiste à comparer les données brutes « fiables » avec le contenu « contaminé » renvoyé par une API . Par exemple, les binaires présents sur le disque peuvent être comparés à leurs copies dans la mémoire d'exploitation (dans certains systèmes d'exploitation, l'image en mémoire doit être identique à l'image sur le disque), ou les résultats renvoyés par le système de fichiers ou les API du registre Windows peuvent être vérifiés par rapport aux structures brutes sur les disques physiques sous-jacents — cependant, dans le premier cas, certaines différences valides peuvent être introduites par des mécanismes du système d'exploitation comme la relocalisation de la mémoire ou le calage . Un rootkit peut détecter la présence d'un tel scanner basé sur les différences ou d' une machine virtuelle (ce dernier étant couramment utilisé pour effectuer une analyse médico-légale) et ajuster son comportement de manière à ce qu'aucune différence ne puisse être détectée. La détection basée sur les différences a été utilisée par l'outil RootkitRevealer de Russinovich pour trouver le rootkit DRM de Sony.
Vérification de l'intégrité

La signature de code utilise une infrastructure à clé publique pour vérifier si un fichier a été modifié depuis qu'il a été signé numériquement par son éditeur. Alternativement, un propriétaire ou un administrateur de système peut utiliser une fonction de hachage cryptographique pour calculer une « empreinte digitale » au moment de l'installation qui peut aider à détecter les modifications ultérieures non autorisées des bibliothèques de code sur disque. Cependant, les schémas peu sophistiqués vérifient uniquement si le code a été modifié depuis le moment de l'installation ; la subversion antérieure à ce moment n'est pas détectable. L'empreinte digitale doit être rétablie chaque fois que des modifications sont apportées au système : par exemple, après l'installation de mises à jour de sécurité ou d'un service pack . La fonction de hachage crée un condensé de message , un code relativement court calculé à partir de chaque bit du fichier à l'aide d'un algorithme qui crée des modifications importantes dans le condensé de message avec des modifications encore plus petites dans le fichier d'origine. En recalculant et en comparant le condensé de message des fichiers installés à intervalles réguliers avec une liste de condensés de message de confiance, les modifications du système peuvent être détectées et surveillées, à condition que la ligne de base d'origine ait été créée avant l'ajout du logiciel malveillant.
Les rootkits les plus sophistiqués sont capables de subvertir le processus de vérification en présentant une copie non modifiée du fichier pour inspection, ou en apportant des modifications de code uniquement dans la mémoire, les registres de reconfiguration, qui sont ensuite comparés à une liste blanche de valeurs attendues. Le code qui effectue des opérations de hachage, de comparaison ou d'extension doit également être protégé. Dans ce contexte, la notion de racine de confiance immuable stipule que le tout premier code à mesurer les propriétés de sécurité d'un système doit lui-même être approuvé pour garantir qu'un rootkit ou un bootkit ne compromet pas le système à son niveau le plus fondamental.
Vidages de mémoire
Le fait de forcer un vidage complet de la mémoire virtuelle permet de capturer un rootkit actif (ou un vidage du noyau dans le cas d'un rootkit en mode noyau), ce qui permet d'effectuer une analyse forensique hors ligne avec un débogueur sur le fichier de vidage résultant , sans que le rootkit puisse prendre des mesures pour se dissimuler. Cette technique est hautement spécialisée et peut nécessiter l'accès à un code source non public ou à des symboles de débogage . Les vidages de mémoire initiés par le système d'exploitation ne peuvent pas toujours être utilisés pour détecter un rootkit basé sur un hyperviseur, qui est capable d'intercepter et de subvertir les tentatives de lecture de mémoire de plus bas niveau — un périphérique matériel, tel qu'un périphérique implémentant une interruption non masquable , peut être nécessaire pour vider la mémoire dans ce scénario. Les machines virtuelles facilitent également l'analyse de la mémoire d'une machine compromise à partir de l'hyperviseur sous-jacent, de sorte que certains rootkits éviteront d'infecter les machines virtuelles pour cette raison.
Suppression
La suppression manuelle d'un rootkit est souvent extrêmement difficile pour un utilisateur d'ordinateur typique, mais un certain nombre de fournisseurs de logiciels de sécurité proposent des outils pour détecter et supprimer automatiquement certains rootkits, généralement dans le cadre d'une suite antivirus . Depuis 2005 , l'outil mensuel de suppression de logiciels malveillants Windows de Microsoft est capable de détecter et de supprimer certaines classes de rootkits. De plus, Windows Defender Offline peut supprimer les rootkits, car il s'exécute à partir d'un environnement de confiance avant le démarrage du système d'exploitation. Certains scanners antivirus peuvent contourner les API du système de fichiers , qui sont vulnérables à la manipulation par un rootkit. Au lieu de cela, ils accèdent directement aux structures brutes du système de fichiers et utilisent ces informations pour valider les résultats des API système afin d'identifier les différences qui peuvent être causées par un rootkit. Certains experts pensent que le seul moyen fiable de les supprimer est de réinstaller le système d'exploitation à partir d'un support de confiance. Cela est dû au fait que les outils de suppression d'antivirus et de logiciels malveillants exécutés sur un système non fiable peuvent être inefficaces contre les rootkits en mode noyau bien écrits. Le démarrage d'un système d'exploitation alternatif à partir d'un support fiable peut permettre de monter un volume système infecté et de potentiellement le nettoyer en toute sécurité et de copier des données critiques, ou, alternativement, de procéder à un examen médico-légal. Des systèmes d'exploitation légers tels que Windows PE , Windows Recovery Console , Windows Recovery Environment , BartPE ou Live Distros peuvent être utilisés à cette fin, permettant de « nettoyer » le système. Même si le type et la nature d'un rootkit sont connus, la réparation manuelle peut s'avérer peu pratique, alors que la réinstallation du système d'exploitation et des applications est plus sûre, plus simple et plus rapide.
Défenses
Le renforcement du système représente l'une des premières couches de défense contre un rootkit, pour l'empêcher de s'installer. L'application de correctifs de sécurité , la mise en œuvre du principe du moindre privilège , la réduction de la surface d'attaque et l'installation d'un logiciel antivirus sont quelques-unes des meilleures pratiques de sécurité standard qui sont efficaces contre toutes les classes de logiciels malveillants. De nouvelles spécifications de démarrage sécurisé comme UEFI ont été conçues pour répondre à la menace des bootkits, mais même celles-ci sont vulnérables si les fonctionnalités de sécurité qu'elles offrent ne sont pas utilisées. Pour les systèmes de serveur, l'attestation de serveur distant à l'aide de technologies telles que Intel Trusted Execution Technology (TXT) fournit un moyen de vérifier que les serveurs restent dans un bon état connu. Par exemple, le chiffrement des données au repos de Microsoft Bitlocker vérifie que les serveurs sont dans un « bon état » connu au démarrage. PrivateCore vCage est une offre logicielle qui sécurise les données en cours d'utilisation (mémoire) pour éviter les bootkits et les rootkits en vérifiant que les serveurs sont dans un « bon » état connu au démarrage. L'implémentation PrivateCore fonctionne de concert avec Intel TXT et verrouille les interfaces du système serveur pour éviter les bootkits et rootkits potentiels.
Un autre mécanisme de défense appelé approche Virtual Wall (VTW) sert d'hyperviseur léger avec détection de rootkit et capacités de traçage d'événements. En fonctionnement normal (mode invité), Linux s'exécute et lorsqu'un LKM chargé viole les politiques de sécurité, le système passe en mode hôte. Le VTW en mode hôte détecte, trace et classe les événements de rootkit en fonction des mécanismes de contrôle d'accès à la mémoire et d'injection d'événements. Les résultats expérimentaux démontrent l'efficacité du VTW dans la détection et la défense rapides contre les rootkits du noyau avec une surcharge CPU minimale (moins de 2 %). Le VTW est comparé favorablement à d'autres schémas de défense, soulignant sa simplicité de mise en œuvre et ses gains de performances potentiels sur les serveurs Linux.