Aller au contenu

Rootkit

Un article de Wikipédia, l'encyclopédie libre.

UnrootkitÉcouterou simplement «kit» (aussi appelé «outil de dissimulation d'activité»[1]maliciel furtif»[2]trousse administrateur pirate»[3]), est un ensemble de techniques mises en œuvre par un ou plusieurslogiciels,dont le but est d'obtenir et de pérenniser un accès (généralement non autorisé) à unordinateurle plus furtivement possible[4],[C 1],[L 1],à la différence d'autreslogiciels malveillants.Le terme peut désigner la technique de dissimulation ou plus généralement un ensemble particulier d'objets informatiques mettant en œuvre cette technique.

Leur furtivité est assurée par plusieurs mécanismes de dissimulation (voirinfra): effacement de traces, masquage de l'activité et des communications, etc. Unrootkitpeut s'installer dans un autre logiciel, unebibliothèqueou dans lenoyau d'un système d'exploitation.Certains peuvent modifier l'hyperviseurfonctionnant en dessous des systèmes ou lemicrologicielintégré dans un matériel. La plupart desrootkitsservent à installer deslogiciels malveillantssur les machines où l'accès est obtenu. Certains fournisseurs de matériels informatiques, telSony,les utilisent pour s'assurer du respect des conditions d'utilisation de leurs produits par leurs clients. Certains kits ne jouent pas sur la discrétion mais sur le fait qu'enlever le kit serait une opération ardue[L 2].

Pour l'« attaquant », l'utilité d'unrootkitest soit de mettre à disposition des ressources système (tempsprocesseur,connexions réseaux, etc.) sur une, voire plusieurs machines (voirinfra), parfois en utilisant la « cible » comme intermédiaire pour une autre attaque; soit d'espionner, d'accéder aux données stockées ou en transit sur la machine cible[L 2].

Ils sont généralement classés parmi leslogiciels malveillants,mais pas toujours[L 1];ils peuvent utiliser des « techniques virales » pour se transmettre (par exemple, en utilisant un virus ou uncheval de Troie)[5].Il existe des outils de détection et des méthodes de protection pour les contrer mais elles ne sont pas totalement efficaces.

En 1989 sont apparus des programmes manipulant leslogssystème (un log est un « journal des opérations », sorte delivre de bordoù sont enregistrées les informations concernant l'état et l'activité d'un ordinateur) pour cacher leur présence. D'autres programmes permettaient de se dissimuler en manipulant les outils servant à vérifier les informations sur les utilisateurs, telles que lescommandeswho,w,oulast[6],et ainsi être invisibles pour les administrateurs des machines.

Les premiersrootkitssont apparus en 1994 surLinuxetSunOS[6],[C 1];en 1998, sous Windows, avec le célèbreBack Orifice(voirinfra); et en 2004 apparaissait le premier rootkit sousMac OS X,WeaponX[7].

Les analyses et les recherches sur lesrootkitsont commencé à partir de 1997, avec la publication par le webzinePhrackd'uncheval de Troiedétournant une partie dunoyau Linux(leLKM,qui permet d'ajouter des modules au noyau pendant son fonctionnement)[C 1]et ouvrant la porte aux techniques desrootkitsactuels. Depuis, de nombreuses recherches et analyses ont été conduites: Phrack et plusieurs autres sites Web[8]publient régulièrement des travaux sur lesrootkits.Certains projets se sont spécialisés dans ce domaine, commechkrootkitdébuté en1997,dédié au développement d’un outil de détection derootkitspour les plates-formesLinux,*BSD(FreeBSD,OpenBSD…),SolarisetHP-UX.

La mise au jour de rootkits passe par leur publication ou se fait grâce auxhoneypots,des machines sciemment vulnérables utilisées par les professionnels de la sécurité pour analyser le mode opératoire d'un attaquant. Les résultats obtenus sont régulièrement évoqués lors de conférences sur la sécurité, comme laconférence Black Hat.

Certainsrootkitspeuvent être légitimes, pour permettre aux administrateurs de reprendre le contrôle d'une machine défaillante, pour suivre un ordinateur volé[9],ou dans certains outils comme desémulateurs de disque(DAEMON Tools,Alcohol 120%)[10].Mais le terme a perdu ce sens historique et évoque essentiellement des outils à finalité malveillante.

Mode opératoire

[modifier|modifier le code]

Contamination

[modifier|modifier le code]

La première phase d'action d'unrootkitsert généralement à trouver un hôte vulnérable parbalayaged'un ensemble d'adresses IP ou grâce à une base de données d'IP vulnérables[C 2].

L'étape suivante consiste à chercher à obtenir un accès au système, sans forcément que celui-ci soit unaccès privilégié(ou enmode administrateur). Il existe trois manières de contaminer un système, en suivant les techniques habituelles desprogrammes malveillants.

Il est possible de mettre en œuvre unexploit,c'est-à-dire profiter d'une vulnérabilité de sécurité connue ou non, à n'importe quel niveau du système (application,système d'exploitation,BIOS,etc.).

Cette mise en œuvre peut être le fait d'un virus, mais elle résulte aussi, souvent, debotnetsqui réalisent des scans de machines afin d'identifier et d'exploiter les failles utiles à l'attaque.

Même s'il n'est pas unvirusà proprement parler, un rootkit peut utiliser destechniques viralespour se transmettre, notamment via uncheval de Troie.Un virus peut avoir pour objet de répandre des rootkits sur les machines infectées.A contrario,un virus peut aussi utiliser les techniques utilisées par des rootkits pour parfaire sa dissimulation[11].

Enfin, l’attaque par force brutepermet d'accéder au système, en profitant de lafaiblesse des mots de passemis en œuvre par certains utilisateurs. À ces fins, il suffit de tester les mots de passe les plus courants.

Des outils, nommés «autorooters», réunissent ces opérations de scan et d'exploit en une seule opération, ce qui peut faciliter la tâche descript kiddies[C 3]en laissant toutefois bon nombre de traces sur le réseau.

Modification du système et dissimulation

[modifier|modifier le code]

Une fois la contamination effectuée et l'accès obtenu, la phase suivante consiste à installer, au moyen de son script d'installation, les objets et outils nécessaires au rootkit[C 2];c'est-à-dire les objets (programmes, bibliothèques) permettant la mise en place de lacharge utiledu rootkit, s'ils n'ont pas pu être installés durant la phase de contamination, ainsi que les outils et les modifications nécessaires à la dissimulation[L 3].

L'opération consiste en l'ouverture deportes dérobées,afin de permettre le contrôle des machines (pc, serveurs, etc.), et, d'y installer la charge utile. Le tout, afin de pérenniser l'accès au système[4],[12],ceci constitue une technique très fréquemment utilisée.

Dissimulation

[modifier|modifier le code]

Le rootkit cherche à dissimuler son activité pour minimiser le risque qu'on le découvre, afin de profiter le plus longtemps possible de l'accès frauduleux, mais aussi pour rendre sa désinstallation difficile[L 2].Il va notamment dissimuler ses propres fichiers, les autres fichiers utilisés par l'attaquant, les processus qu'il exécute et les connexions qu'il va ouvrir[C 4].Cette faculté de dissimulation le différencie des virus, qui cherchent principalement à se répandre, bien que ces deux fonctions soient parfois jumelées pour une efficacité supérieure. Plusieurs méthodes de dissimulation peuvent être combinées.

La dissimulation deprocessus informatiquesou de fichiers permet de cacher l'activité du rootkit. Sous Windows, cela peut être réalisé en modifiant certaines clés de labase de registre;sous systèmesUnixl'attaquant peut remplacer la commandelspour qu'elle n'affiche pas certains dossiers[C 5].Une fois en place, le rootkit peut supprimer ses propres fichiers d'installation pour éviter qu'il ne soit reconnu par une recherche de fichiers[C 2].

Certains objets exécutables ou certaines bibliothèques sont remplacés par des programmes malveillants contrôlables à distance (chevaux de Troie), tout en conservant leurhorodatage[C 5].Il est également possible de détourner certains appels aux tables de travail utilisées par le système[L 4]parhooking,de manière que des programmes d'apparence légitime exécutent les fonctions voulues par l'attaquant.

L'obtention des droits supérieurs parélévation des privilègesest également fréquemment rencontrée: cela permet notamment de désactiver les mécanismes de défense (comme unanti-virus) ou d'agir sur des objets de haut niveau de privilèges (pilotes de périphériques,noyau du système,etc.) Un rootkit va ainsi pouvoir écouter les transactions sur le réseau pour trouver des mots de passe nonchiffrés(comme des connexionsftp) ou détourner une connexionsshen interceptant l'appel système où le mot de passe n'est pas encore chiffré[C 6].

Le rootkit tente de ne pas apparaître dans lesfichiers log[C 4].Pour cela, il efface certaines entrées des logs ou, de manière beaucoup plus sophistiquée, utilisera des techniques de type «Stealth by Design» (« furtif par conception »)[13],à savoir implémenter à l'intérieur du rootkit des fonctions système afin de ne pas avoir à appeler les fonctions standards dusystème d'exploitationet ainsi éviter l'enregistrement d'événements système suspects[C 4].Il peut ainsi désactiver certainsdaemonset l'historique desshells[C 2].

Enfin, certains rootkits peuvent se charger intégralement en mémoire, ne laissant ainsi aucune trace sur lespériphériques de stockagede la machine[L 5].

En revanche, certaines activités ne pourront pas facilement être camouflées, notamment ce qui concerne la charge utile qui engendre de la charge réseau ou processeur (voirinfra); l'effort de dissimulation se portera alors sur les communications entre le rootkit et l'attaquant pour protéger et maintenir l'accès frauduleux.

Maintien de l'accès

[modifier|modifier le code]

Unrootkitdoit pouvoir être manipulé à distance par un attaquant. Celui-ci cherche donc souvent à maintenir unshell(ou « interpréteur de commandes ») disponible idéalement à n'importe quel moment (ou au moins durant l'installation du rootkit), en remplaçant des commandes commepingouxterm.Généralement, l'attaquant installe plusieurs de cesportes dérobéesau cas où l'une viendrait à être découverte et supprimée[C 7].

L'accès distant au kit peut se faire par l'intermédiaire d'une connexionTCP,commetelnetoussh(qui peut être renversée, c'est-à-dire que c'est la machine infectée qui va chercher à rentrer en contact avec l'attaquant),UDPouICMP.Il existe aussi des méthodes plus complexes mais plus discrètes:port knocking,faux paquet TCP contenant une commande cachée,se faire passerpour une autre machine[C 7],canaux cachés,etc. Au besoin, les scripts de démarrage seront modifiés pour que les services nécessaires au rootkit soient disponibles après chaque redémarrage de la machine[C 2].

Pour que l'accès à la machine ne soit pas détourné par un autre attaquant, celui-ci peut corriger les failles du système infecté: celles qui lui ont permis de rentrer, voire l'ensemble des failles connues.

Mise en place de la charge utile

[modifier|modifier le code]
Unbotnetpermet d'avoir un accès sur des centaines de machines.

Lacharge utileest la partie active du rootkit (et de toutprogramme malveillanten général), dont le rôle est d'accomplir la (ou les) tâche(s) assignée(s).

Cette charge utile permet d'avoir accès aux ressources de la machine infectée[L 2],et notamment leprocesseur,pour décrypter des mots de passe, pour effectuer descalculs distribuésà des fins malveillantes ou pour mettre en œuvre (ou détourner l'usage légitime) des applications comme unserveur de messagerieafin d'envoyer des mails (pourrielouspam) en quantité. Les ressources réseaux intéressent également les attaquants, la machine pouvant alors servir de base pour d'autres attaques (DDoS[14],exploits) ou pour inspecter,snifferl'activité réseau.

Le remplacement du procédé de connexion (comme/bin/loginsous lesUnix) peut aussi fournir soit un accès de typeporte dérobée(voirinfra), soit un moyen de récupérer les informations d'authentification des utilisateurs de la machine. La compromission de pilotes de périphériques permet également d'installer desenregistreurs de frappeoukeyloggers(entre autres), afin de récupérer, en complément de l'activité réseau, des traces et des informations personnelles ou confidentielles, comme le seraient des données bancaires ou de connexion.

La machine infectée peut aussi devenir le point de départ pour d'autres attaques, sur internet, ou sur l'intranet,comme undéni de service[C 6].La prise de contrôle de la machine offre la possibilité de constituer un réseau de typebotnet(la machine infectée devenant alors unemachine zombie,comme dans le cas dubotnet Srizbi[15]), ou d'accéder à d'autres machines, parrebond.

Niveau de privilège

[modifier|modifier le code]

Bien que le terme ait souvent désigné des outils ayant la faculté d'obtenir un niveau de privilège de type administrateur (utilisateur root) sur les systèmesUnix,un rootkit ne cherche pas obligatoirement à obtenir un tel accès sur une machine et ne nécessite pas non plus d'accès administrateur pour s'installer, fonctionner et se dissimuler[16].Le programme malveillant « Haxdoor »[17],même s'il employait des techniques de type noyau[18]pour parfaire sa dissimulation, écoutait les communications sous Windows en mode utilisateur[19]:en interceptant les API de haut niveau, il recueillait des données confidentielles avant leur chiffrement.

Cependant, l'élévation de privilègeest souvent nécessaire pour que le camouflage soit efficace: le rootkit peut utiliser certainsexploitsafin de parfaire sa dissimulation en opérant à un niveau de privilège très élevé, pour atteindre des bibliothèques du système, des éléments du noyau, pour désactiver les défenses du système[L 4],etc.

Un rootkit peut intervenir à un ou plusieurs niveaux du système parmi les cinq suivants:micrologiciel,hyperviseur,noyau,bibliothèqueouapplicatif[C 8].

Niveau micrologiciel/matériel

[modifier|modifier le code]

Il est possible d'installer des rootkits directement au niveau dumicrologiciel(oufirmware). De nombreux produits proposent désormais desmémoires flashqui peuvent être utilisées pour injecter durablement du code[20]en détournant par exemple l'usage d'un module de persistance souvent implanté dans leBIOSde certains systèmes.

Un outil légitime utilise cette technique: LoJack, d'Absolute Software[9],qui permet de suivre un ordinateur à l'insu de l'utilisateur pour retrouver unordinateur portableen cas de vol. Ce code reste en place après unformatagedudisque dur,voire après unflashage du BIOS[21]si le module de persistance est présent et actif. Tout périphérique disposant d'un tel type de mémoire est donc potentiellement vulnérable.

Une piste évoquée pour contrer ce genre de rootkit serait d'interdire l'écriture du BIOS, grâce à uncavaliersur lacarte mèreou par l'emploi d'un mot de passe, ou d'utiliser desEFIà la place du BIOS[22],mais cette méthode reste à tester et à confirmer[23].

En,un chercheur français, Guillaume Delugré, publie une méthode pour remplacer le firmware d'unecarte réseautrès répandue sur le marché[24].Le rootkit s'exécute ainsi directement sur la carte, et donc sans modifier l'OS. L'usage des canauxDMApermet alors de manipuler l'OS.

Niveau hyperviseur

[modifier|modifier le code]

Ce type de rootkit se comporte comme unhyperviseurnatif, après s'être installé et avoir modifié laséquence de démarrage,pour être lancé en tant qu'hyperviseur à l'initialisation de la machine infectée. Le système d'exploitation original devient alors un hôte (invité) du rootkit, lequel peut intercepter tout appel au matériel. Il devient quasiment impossible à détecter depuis le système original.

Une étude conjointe de chercheurs de l'université du Michigan et de Microsoft a démontré la possibilité d'un tel type de rootkit, qu'ils ont baptisé «virtual-machine based rootkit» (VMBR)[25].Ils ont pu l'installer sur un systèmeWindows XPet sur un systèmeLinux.Les parades proposées sont la sécurisation du boot, le démarrage à partir d'un média vérifié et contrôlé (réseau, CD-ROM, clé USB, etc.) ou l'emploi d'un moniteur demachine virtuellesécurisé.

Blue Pillest un autre exemple de rootkit utilisant cette technique. En,Zhi Wang et Xuxian Jiang, deux chercheurs de l'Université de Caroline du Nord,publient « HyperSafe »[26],un outil permettant de sécuriserBitVisoretXen— mais portable sur leshyperviseursde type 1 — contre entre autresBlue Pill[27]:le principe est d'empêcher l'injection et l'exécution arbitraire de code par overflow (non-bypassable memory lockdown) et de protéger lespointeurs de fonctionpour empêcher les attaques par hooking.

Certains rootkits s'implantent dans les couches dunoyau du système d'exploitation:soit dans le noyau lui-même, soit dans des objets exécutés avec un niveau de privilèges équivalent à celui du noyau.

SousGNU/Linux,il s'agit souvent demodulespouvant être chargés par le noyau, et sous Windows depilotes.Avec un tel niveau de privilèges, la détection et l'éradication du rootkit n'est souvent possible que de manière externe au système en redémarrant depuis un système sain, installé sur CD, sur une clé USB ou par réseau.

Le type le plus courant, depuis 1997, de rootkit noyau s'attaque auLKMdes noyaux Unix. Le LKM a naturellement la possibilité de modifier certainsappels système;c'est ce qui rend le noyau modulaire. S'il est compromis par un kit, il peut remplacer la commande « ouvrir le fichierfoo» –open()– par « ouvrir le fichierfoosauf s'il s'appellerootkit», rendant les fichiers du rootkit invisibles pour l'utilisateur[C 9].Adoreest un de ceux-là: il remplace entre autres les appels àfork(),open()etwrite()[28].

A contrario,SucKIT,publié dans l'article0x07du Phrackno58[29],est un rootkit noyau ne nécessitant pas de LKM[30](il passe par le périphérique/dev/kmem).

Les rootkits noyau sont dangereux à la fois parce qu'ils ont acquis des privilèges élevés (il est alors plus facile de leurrer tout logiciel de protection), mais aussi par les instabilités qu'ils peuvent causer sur le système infecté comme cela a été le cas lors de la correction de la vulnérabilité MS10-015[31],où desécrans bleussont apparus en raison d'un conflit entre le fonctionnement du rootkitAlureonet la correction de cette vulnérabilité[32].

Niveau bibliothèque

[modifier|modifier le code]

À ce niveau, le rootkit détourne l'utilisation de bibliothèques légitimes du système d'exploitation.

Plusieurs techniques peuvent être utilisées. On peutpatcherune bibliothèque, c'est-à-dire lui ajouter du code. On peut aussi détourner l'appel d'un objet – parhooking,(voirinfra) –, ce qui revient à appeler une « autre fonction » puis à revenir à la fonction initiale, pour que le détournement soit transparent du point de vue fonctionnel. Enfin, on peut remplacer desappels systèmepar du code malveillant.

Ce type de rootkit est assez fréquent, mais il est aussi le plus facile à contrer, notamment par un contrôle d'intégrité des fichiers essentiels, en surveillant leurempreintegrâce à unefonction de hachage;par une détection de signature du programme malveillant; ou par exemple, par un examen deshooksau moyen d'outils commeunhidesousGNU/LinuxouHijackThissous Windows.

Un exemple connu de ce type de kit estT0rn 8:il charge sa propre bibliothèque (libproc.a) qui va remplacer la bibliothèque standard faisant l'intermédiaire entre les informations système –/proc– et l'espace utilisateur. Ainsi, le kit peut filtrer les informations qui transitent et retirer tout ce qui pourrait révéler la présence du kit, sans toucher aux exécutables systèmes (ps, ls, etc.)[C 10]

Niveau applicatif

[modifier|modifier le code]

Un rootkit applicatif implante des programmes malveillants de typecheval de Troie,au niveau utilisateur. Ces programmes prennent la place de programmes légitimes – usurpation d'identité – ou en modifient le comportement, afin de prendre le contrôle des ressources accessibles par ces programmes.

Par exemple, une application detraitement de textepeut être remplacée par une version malicieuse et donner accès aux fonctions permettant de lire et d'écrire un fichier dans une partie de l'arborescence. Plus grave, des applications commels,ps,greppeuvent être remplacées[C 5].

Cette méthode n'est pas efficace si ces programmes sont régulièrement recompilés à partir des sources[L 6].

Rootkits Sony

[modifier|modifier le code]

À deux reprises, Sony a été confronté à la présence masquée de rootkits dans ses produits: dans sesclés usbbiométriqueset dans son composant degestion numérique des droits(DRM)[33],[34],nommé « XCP » (pour «Extended Copy Protection»), présent sur 52 CD audio (dont certains deCéline Dionet deSarah McLachlan). L'entreprise cherchait à réduire le nombre de copies illégales de ses disques en limitant le droit de copie et en traçant la circulation des CD par internet.

Le kit XCP, présent sur quatre millions de CD produits en 2005[35],est parfois instable et possède lui-même des failles qui peuvent être exploitées, permettant notamment de tricher sousWorld of Warcraftou de créer un virus l'utilisant[36].En revanche, XCP peut être facilement déjoué en maquillant la deuxième piste du CD[37]:la piste n'étant plus lisible, le rootkit ne peut pas s'activer. De plus, il ne fonctionne que sur les systèmes d'exploitation de type Windows[38].

XCP se connecte régulièrement aux serveurs de Sony pour envoyer l'identifiant du disque audio que l'utilisateur écoute. Il empêche la lecture du CD par un autre logiciel que celui fourni par Sony, et limite le nombre de copies (gravure etrip) du disque[39].Une analyse du groupeGartnermontre que XCP se comporte comme un logiciel malveillant sur plusieurs points: téléchargements cachés, informations concernant son fonctionnement cachées dans lalicence d'utilisation,absence d'utilitaire de désinstallation et envoi obligatoire d'un mail contenant des informations personnelles et sur le système pour en recevoir un, envoi de certaines informations à des serveurs de Sony sans information préalable à l'utilisateur[40].Gartnermet en avant le cas XCP pour montrer que ce type de DRM n'est pas à envisager par une entreprise car il est inefficace, illégal sous certains aspects et dommageable pour le client[37].Il apparaît aussi que XCP se base sur des logiciels libres sans en respecter la licence, c'est-à-dire en redistribuant lecode sourceproduit[39]:il utilise le code source deDVD Jon[41].

Finalement, XCP était présent sur un nombre limité de CD et son impact sur la contrefaçon n'a pas été évalué. Ces affaires ont fait un tort important à Sony, qui a fini par abandonner ces logiciels, aussi bien pour sa respectabilité que financièrement. Dans plusieurs pays, Sony a été poursuivi en justice et obligé de reprendre les CD contenant un rootkit et de dédommager les clients. En 2007, auxÉtats-Unis,Sony est condamné à rembourser jusqu'à 150$par acheteur pour un total de 5,75 millions de dollars[35].En 2009 en Allemagne, un travailleur indépendant a obtenu gain de cause en touchant 1 200de dommages et intérêts car le kit avait fait perdre du temps et des données à son entreprise[41].Pour ses rootkits, Sony a été nommé auxBig Brother Awards2006[39].

Exploitation de la vulnérabilité de LPRng

[modifier|modifier le code]

LeCERTA(Centre d'Expertise Gouvernemental de Réponse et de Traitement des Attaques informatiques de l'État français) a publié, dans une note d'information, l'analyse d'une attaque ayant permis d'installer un rootkit (non identifié, mais dont les caractéristiques semblent correspondre au rootkit « Rk »[C 11]), n'utilisant à l'origine qu'une seule faille, laquelle concernait le module d'impression LPRng présents dans certains systèmes Linux (faille répertoriée CERTA-2000-AVI-087[42]). Cette faille, qui aurait pu être corrigée soit par la mise à jour du système, soit par le blocage d'un port spécifique grâce à unpare-feu[43],permettait l'exécution à distance decode arbitraire.

Cette attaque a été menée en moins de deux minutes. L'attaquant a identifié la vulnérabilité, puis envoyé une requête spécialement formée sur leport515 (qui était le port exposé de cette vulnérabilité) pour permettre l'exécution d'un code arbitraire à distance. Ce code, nommé « SEClpd », a permis d'ouvrir un port en écoute (tcp/3879) sur lequel le pirate est venu se connecter pour déposer une archive (nomméerk.tgz,qui contenait un rootkit) avant de la décompresser et de lancer le script d'installation.

Ce script a fermé certains services, installé deschevaux de Troie,caché des processus, envoyé un fichier contenant les mots de passe du système par mail, et il est même allé jusqu'à corriger la faille qui a été exploitée, afin qu'un autre pirate ne vienne pas prendre le contrôle de la machine.

Back Orificeest un rootkitclient-serveurdéveloppé à partir de 1998 par leCult of the Dead Cow,un groupe de hackers. Il permet de prendre le contrôle des ordinateurs utilisant Windows 95/98, puis NT[44].Le CDC revendique plusieurs centaines de milliers de téléchargements de la version de base « BO » et de la version améliorée « BO2K » en quelques semaines[45].Back Orificeest certainement un des rootkits qui s'est le plus répandu, même si aujourd'hui ses cibles se sont raréfiées.

L'altération de la machine cible se fait en exécutant un programme qui va se charger à chaque démarrage de la machine. Cette altération est possible car les systèmes d'exploitation Windows 95/98 n'offrent pas de mécanismes de sécurité basiques tels que le chiffrement des mots de passe stockés (ils sont stockés en clair), ou le contrôle dudroit d'exécutiond'un programme (tout le monde peut exécuter n'importe quelle application, et même reconfigurer le système). Le client, utilisable sous Windows et Unix, est graphique et permet même à un non-initié de contrôler une machine infectée[44].

La désinstallation du kit est simple: il suffit de supprimer l'exécutable résident et de retirer une clé de la base de registre. La plupart des antivirus le reconnaissent comme un virus.

TDL-4 est un trojan, qui installe un rootkit pour construire un botnet. Le rootkit s'installe sur leMBRdu disque dur ce qui le rend difficile à détecter et à déloger. De plus, il utilise un système de cryptage complexe et un réseau pair-à-pair public (Kad) pour recevoir ses commandes. Il a la particularité de pouvoir désactiver les infections présentes sur la même machine pour ne pas être découvert par inadvertance, et d'installer ses propres outils deDDoS,despamming…SelonKaspersky Lab,il y aurait 4,5 millions de machines infectées (fin)[46].

Moyens de détection

[modifier|modifier le code]

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.

Larecherche d'objets cachés(tels que des processus informatiques, des clés de registre, des fichiers, etc.) est essentielle. Des outils commeunhidesous Linux peuvent révéler les processus cachés. Sous Windows, des outils commeRootkitRevealerrecherchent 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ées comme suspectes, à l'exception des fichiers légitimes connus de Windows, tels que les fichiers de métadonnées de NTFS comme$MFTou$Secure[47].

Le calcul régulier desempreintesde 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.), uneempreinte[13].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 desmises à 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 (rkhunterpar exemple).

Ladétection de signatures spécifiquesest 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)[13].

L’analyse des appels systèmes, destables d'interruption[48],[49],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 commeHijackThis), 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).

Lehookingconsiste à 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[50]permet de détecter une surcharge anormale. Mais il convient également de surveiller une utilisation deports logicielsinhabituels 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 commeunhide-tcp.Toute différence peut être considérée comme anormale. Il existe cependant des moyens de dissimulation réseau, comme de lastéganographieou l'utilisation decanaux cachés,qui rend la détection directe impossible, et nécessite une analyse statistique qui n'est pas forcément déterminante[51].

L’analyse automatisée des logs système[52]s'appuie sur le principe de corrélation, avec des outils de typeHIDSqui disposent de règles paramétrables[53]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 duCert-IST propose régulièrement des informations sur les rootkits et les logiciels malicieux en général[54].

Moyens de protection et de prévention

[modifier|modifier le code]

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[55].

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

L’utilisation d'unpare-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[49],[52],[56]car cela empêche les communications inattendues (téléchargements de logiciel, dialogue avec un centre de contrôle et de commande d'unbotnet,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[C 9].

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

La complexité d'un mot de passe augmente exponentiellement lorsque sa taille et le nombre de caractères différents qu'il utilise augmentent. Un mot de passe complexe sera plus long à deviner dans uneattaque par force brute.

Dessystèmes de prévention d'intrusion[52],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'auBIOS.Un des avantages de ces outils est l'automatisation des tâches de surveillance[13].

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 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 larobustesse des mots de passeest une autre des bonnes pratiques de sécurité informatique qui élimine une des sources principales de contamination. Des éléments d'authentificationtriviaux 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 unLiveCD,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»[51].Durcissement du système[49],filtrages applicatifs (typemodsecurity), utilisation deprogrammes antivirus[49],[56]pour minimiser lasurface d'attaqueet 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 auxexploits.

Bibliographie

[modifier|modifier le code]

Document utilisé pour la rédaction de l’article:document utilisé comme source pour la rédaction de cet article.

Notes et références

[modifier|modifier le code]
  1. abetcChuvakin (2003),p.3:Executive Summary
  2. abcdeteChuvakin (2003),p.14:Usage
  3. Chuvakin (2003),p.25:End Notes
  4. abetcChuvakin (2003),p.8-9:Concealing Evidence
  5. abetcChuvakin (2003),p.10-12:Binary Rootkits
  6. aetbChuvakin (2003),p.7-8:Attack Other Systems
  7. aetbChuvakin (2003),p.4-7:Maintain Access
  8. Chuvakin (2003),p.10:Types of Rootkits
  9. aetbChuvakin (2003),p.12-13:Kernel Rootkits
  10. aetbChuvakin (2003),p.13-14:Library Kits
  11. Chuvakin (2003),p.22:Rk: Hidden but Not Enough
  1. aetbLacombe (2007), Définition d’un rootkit et comparaison avec les autres codes malicieux,p.8.
  2. abcetdLacombe (2007), Vers l’évaluation d’un rootkit,p.14
  3. Lacombe (2007), L’architecture fonctionnelle d’un rootkit,p.9
  4. aetbLacombe (2007)
  5. Lacombe (2007), La communication avec le rootkit,p.11
  6. Lacombe (2007), Évolution des rootkits,p.4
  • Autres sources
  1. «Note d'information du CERTA, Objet: Terminologie d'usage au CERTA»,Centre d'expertise gouvernemental de réponse et de traitement des attaques informatiques(consulté le).
  2. «Termium», Bureau de la traduction du gouvernement du Canada(consulté le).
  3. «Grand Dictionnaire terminologique»,Office québécois de la langue française(consulté le).
  4. aetb(en)«What is rootkit?», WhatIs.com(consulté le).
  5. Un rootkit falsifie le noyau du système d'exploitation, mais il n'est pas un vecteur de diffusion. Voir à ce sujet la sectionMode opératoire.
  6. aetb(en)[PDF]«Linux kernel rootkits: protecting the system's « Ring-Zero »»[archive du],SANS Institute,(consulté le),p.10,11
  7. (en)ghalen and wowie, «Developing Mac OSX kernel rootkits», Phrack Magazine,
  8. (en)Daniel B. Cid, «RootCheck», surossec.net,(consulté le)
  9. aetb[PDF](en)«FAQ LoJack for Laptops», AbsoluteSoftware
  10. «avg.com, foire aux questions, n°2346», AVG Technologies
  11. Alisa Shevchenko, «Évolution des rootkits», surviruslist.com,Kaspersky Lab,(consulté le)
  12. (en)«Concept of rootkit»
  13. abcetd[ppt](en)J. Rutkowska, «Rootkits vs. Stealth by Design Malware», invisiblethings.org,
  14. «Le déni de service politique se banalise en Asie du Sud-Est», ZDNet.fr,
  15. (en)«Botnet Spams 60 Billion Emails A Day», CyberInsecure.com,
  16. (en)B. Cogswell, M. Russinovich, «RootkitRevealer», Microsoft (Windows Sysinternals),
  17. (en)«Haxdoor», F-Secure
  18. (en)«Rootkit Pharming», F-Secure,
  19. «Les rootkits et la fraude bancaire», Cert-IST,
  20. (en)Anibal Sacco et Alfredo Ortega, «Persistent BIOS Infection», Phrack Magazine,
  21. (en)«New BIOS Virus Withstands HDD Wipes», Tom's Hardware,
  22. «Ils ont inventé le virus de BIOS», presence-pc.com,
  23. (en)«New Bios attack renders anti-virus useless», v3.co.uk,
  24. (en)Guillaume Delugré, «Presentation at Hack.lu: Reversing the Broacom NetExtreme's firmware», Sogeti ESEC Lab,
  25. [PDF](en)Samuel T. King, Peter M. Chen, Yi-Min Wang, Chad Verbowski, Helen J. Wang, Jacob R. Lorch, «SubVirt: Implementing malware with virtual machines»,
  26. Zhi Wang, Xuxian Jiang,HyperSafe: A Lightweight Approach to Provide Lifetime Hypervisor Control-Flow Integrity,31econférenceIEEE Symposium on Security and Privacy,Oakland, CA, mai 2010
  27. Joab Jackson, «Researchers to cure Blue Pill virtualization attacks», IDG News Service,(consulté le)
  28. (en)SteveTerrellDiscovery, Eradication and Analysis of an attack on an open system: Welcome to the Jungle»,SANS Institute (InfoSec Reading Room),‎,p.25(lire en ligne[PDF])
  29. (en)sdetdevikLinux on-the-fly kernel patching without LKM»,Phrack,no58,‎(lire en ligne)
  30. Rainer Wichmann, «Linux Kernel Rootkits»,(consulté le)
  31. «Bulletin de sécurité MS10-015», Microsoft,
  32. «Microsoft: le rootkit Alureon responsable de BSOD sur XP», pcinpact.com,
  33. «Un rootkit dans les DRM de Sony», generation-nt.com (GNT Media),
  34. «Sony intègre puis retire un rootkit de ses CD audio protégés», secuobs.com,
  35. aetbCédric B, «Sony BMG poursuit son fournisseur de rootkits», surgeneration-nt.com,(consulté le):« Le japonais [Sony] a utilisé celle-ci sur environ 4 millions de disques en 2005. »
  36. David Civera, «Premier virus utilisant le rootkit Sony», surpresence-pc.com,(consulté le)
  37. aetb[PDF](en)Martin Reynolds, Mike McGuire, «Sony BMG DRM a Public-Relations and Technology Failure»,Gartner,(consulté le):«The user simply applies a fingernail-sized piece of opaque tape to the outer edge of the disc, rendering session 2 — which contains the self-loading DRM software — unreadable»
  38. (en)Bill Thompson, «The rootkit of all evil?»,BBC News,(consulté le):«If you have got a Mac or a Linux box then you can play and even copy you [sic] disc happily […]».
  39. abetc«Sony-BMG et son "rootkit" espion», surbigbrotherawards.eu.org,(consulté le)
  40. [PDF](en)Ray Wagner, Mike McGuire, Jay Heiser, Peter Firstbrook, «Sony's Approach to Content Protection Is Short-Sighted»,Gartner,(consulté le):«It [XCP] was deliberately designed to be difficult to remove»
  41. aetbJulien L, «Affaire rootkit de Sony: des utilisateurs obtiennent un dédommagement financier», surnumerama.com,(consulté le)
  42. «Avis CERTA-2000-AVI-087», CERTA,
  43. «Chronique d'un incident ordinaire», CERTA,
  44. aetbJean-Claude Bellamy, «Tout ce que vous avez voulu savoir sur Back Orifice»,(consulté le)
  45. (en)cDcBO2K Pressrelease», surbo2k.com,(consulté le)
  46. (en)Gregg Keizer, «Massive botnet 'indestructible,' say researchers», surcomputerworld,(consulté le).
  47. «RootkitRevealer: la riposte aux rootkits Windows», Cert-IST
  48. (en)«Rootkit detection, removal and prevention»,
  49. abcetd(en)«Rootkit and malware detection and removal guide», ComputerWeekly,
  50. (en)«Rooting out a rootkit: Stage one -- Diagnosis», techtarget.com,
  51. aetb[ppt](en)J. Rutkowska, «Fighting Stealth Malware – Towards Verifiable OSes», invisiblethings.org,
  52. abcetd(en)«Linux RootKits For Beginners - From Prevention to Removal», SANS Institute,,p.5 et suivantes
  53. [PDF](en)D. Cid, «Log Analysis using OSSEC», ossec.net,,p.13 et suivantes
  54. «Le CERT dédié à la communauté Industrie, Services et Tertiaire française», surcert-ist.com(consulté le)
  55. (en)«Understanding Hidden Threats: Rootkits and Botnets»,US-CERT,
  56. abetc(en)«Rooting out a rootkit: Stage four -- Preventative measures», techtarget.com,

Sur les autres projets Wikimedia:

Articles connexes

[modifier|modifier le code]

Liens externes

[modifier|modifier le code]