Rootkit

Rootkit

   
En savoir plus :  Retourner à la page précédente   Imprimer cette page   

FAQ Microsoft Windows
 
 
Rootkit
Mot emprunté au monde Unix / Linux dans lequel il désigne un parasite permettant de s'octroyer des droits "Root", c'est-à-dire
  1. les niveaux de droits les plus élevés de l'administrateur de la machine
  2. afin de prendre le contrôle de cette dernière
  3. tout en restant furtif (invisible).
A partir de là, sous Unix/Linux, il est possible de faire ce que l'on veut sur cette machine dont implanter des processus parasites.

Il n'est pas aisé de violer les systèmes Unix / Linux et un Rootkit est nécessaire pour le faire.

Les Rootkits remontent à une période antérieure à 1997 puisqu'à cette époque démarre un projet open source (à code public) nommé "ChkRootKit" ("Chek RootKit") destiné à detecter les RootKits dans le monde Linux.

Dans le monde Windows, le viol du système est aisé et un Rootkit au sens de ceux du monde Unix n'est pas nécessaire pour prendre le contrôle des PC et les zombiifier, d'autant que la très grande majorité des utilisateurs Windows, malgré les avertissements des sites de sécurité, travaille directement en mode administrateur.

Les Rootkits Windows sont restés, un temps, un travail purement intellectuel et spéculatif des laboratoires de recherches en virologie et des gentils hackers ("Whitehats"). Ils n'avaient aucune charge active ni n'étaient sortis des laboratoires.

Aujourd'hui, un Rootkit, dans le monde Windows (les versions de Windows à base de noyau NT sont concernées - NT, XP, 2000), désigne plutôt une boîte à outils (nous devrions plutôt parler de Tools Kit) insérée par un hacker du monde obscur du Net (les "Blackhats") et qui va l'aider à :
  • essentiellement cacher des parasites avec des Hooker. La grande activité des RootKits est de rendre un parasite totalement furtif (dont le rootkit lui-même) en interceptant toutes les formes de requêtes faites au système (aux APIs système et programmes de dignostique) par quelque application que ce soit et de perdre la réponse ou de la crétiniser afin qu'un antivirus ou un anti-trojans ou toute autre outil ou recherche n'aboutise jamais (impossibilité de tuer un processus, prétendre qu'un fichier a été détruit ou n'existe pas alors qu'il est bien là, masquer ou modifier le contenu d'un paquet etc. ...) et ne dévoile jamais la présence d'un parasite protégé par le RootKit

  • compromettre une machine déjà faible (failles non corrigées...) par la mise en place de plusieurs backdoors et autres outils lui "facilitant la vie" par la suite pour, en un second temps, déployer d'autres parasites, implanter de quoi utiliser la machine et en faire un zombie et pouvoir y revenir quand il veut sans avoir à utiliser une faille peut-être corrigée depuis...
Les RootKits sont devenus le problème numéro 1 des malveillances en 2006. Les détecter semble être une barrière à franchir en matière de recherches logiciel. Quant-à les éradiquer, eux et ce qu'ils cachent, c'est d'un tout autre niveau de difficultés - éradiquer un RootKit et restaurer un système stable n'est pas atteint dans 100% des cas. Quelques rootkits capables de pénétrer les BIOS (basic input/output system) les rendent sensibles au point de « planter » l’ordinateur si vous vous êtes débarrassés du rootkit.


Fig 1 - Explosion des techniques furtives

Dans la figure 1, on observe l'explosion, depuis 2005, des techniques de furtivité et le fait qu'elles ne sont plus l'appanage des trojans mais envahissent aussi les PUPs (Potentially Unwanted Programs), les virus et même, depuis 2006, les applications commerciales.


Fig 2 - Explosion de la compléxité des outils de furtivité

Dans la figure 2, on observe l'explosion de la complexité des outils de furtivité entre 2000 et 2005 (en analysant les nombres de composants de ces outils). Les 2 derniers histogrammes comparent le nombre de composants d'outils de furtivité (RootKits) découverts au premier trimestre 2005 (60 composants) au même nombre au premier trimestre 2006 (612 composants) soit plus de 900% d'augmentation !


Composants systèmes attaqués par les RootKits ( blackhat.com )
  • Gestionnaire d'entrées / Sorties
    Enregistrement des frappes au clavier, activité réseau...

  • Pilotes de périphériques et système de gestion de fichiers
    Cacher un répertoire, un fichier...

  • Gestionnaire d'objets
    Cacher un objet (processus, thread...)

  • Moniteur de sécurité
    Neutralisez les politiques de sécurité régissant les contrôles d'exécution sur des objets

  • Gestionnaire de processus et de threads
    Cacher des processus et des threads

  • Gestionnaire de configuration
    Cacher des clés de registre
Les Rootkits nécessitent une très haute technicité en informatique et ne sont à la portée que d'utilisateurs extrêmement avancés or, où trouvent-on ces profils, en dehors des laboratoires ? Dans le monde maffieux ! Les maffias (dont les maffias russes) sont les grands utilisateurs de Rootkits.

Le problème posé par les RootKit est que, si le ou les parasites déposés par eux sont détectés et éradiqués, le Rootkit lui-même ne l'est pas ! Il va permettre de compromettre à nouveau la machine, encore et encore. Ils s'installent dans le noyau du système et fonctionnent avec les privilèges du noyau.

Développement et actualité des RootKits
Un des sujets d'étonnement, et non des moindres, est que les RootKits se développent très rapidement dans le monde du logiciel libre et open source (qui développe simultanément des détecteurs de RootKits). McAfee (éditeur d'antivirus) rejette précisemment la faute de l'explosion des RootKits sur la communauté Open Source. Lire McAfee - Livre blanc avril 2006 - Vol 1 (document PDF) qui accuse nomemment le site rootkit.com et son forum. Il ajoute que si la sophistication des RootKits va en augmentant cela est du à une collaboration sur ce genre de sites et forums qui va au-dela du simple échange de techniques furtives.

Des propos de James Butler (Rootkit.com et également CTO de la société de sécurité Komoku) sont repris dans "Does open source encourage rootkits?". Ce dernier déclare, à propos de la mise en cause des sites "open source" comme rootkit.com et leurs communautés qui échangent des codes et du savoir-faire en matière de RootKits :

Un récent "BOT" (ndtr : robot) d'IRC, proposé par un contributeur appelé "Tibbar", par exemple, s'exécute au niveau noyau de Windows. Ce programme utilise une librairie proposée également en open source (ndtr : gratuitement et avec code source public) en décembre par un autre contributeur nommé Valerino et qui est équivalente à des produits commerciaux comme KSOCKs de « Open Systems Research » qui le vendent plusieurs centaines de dollars. Ces pilotes commerciaux sont vendus sous licence à des éditeurs de logiciels comme les pare-feu qui travaillent au niveau noyau. La bibliothèque de Valerino étend ces mêmes possibilités à n'importe quel développeur ayant le savoir-faire pour l'appliquer.

Méthodes de détection des RootKits
  • Scanners à signatures
    Antivirus commerciaux - Antivirus gratuits - Anti-spywares commerciaux - Anti-spywares gratuits
    Les scanners classiques ont peu de chance de trouver des RootKits par le principe des signatures mais certains éditeurs d'antivirus développent des routines spécifiques de recherches de RootKits, en plus du scanner à signatures.

  • Contrôleurs d'intégrité
    Contrôleurs d'intégrité
    Font des clichés d'un système réputé sain (calculent des chiffres clés) puis signalent tout changement. L'utilisateur final n'est pas en mesure de porter un jugement sur les changements intervenant dans les objets du système.

  • Approche par différence de point de vue
    Blacklight, RootkitRevealer et Strider GhostBuster
    Une méthode appelée "Différence de point de vue" (cross-view differential), utilisée par Blacklight, RootkitRevealer et Strider GhostBuster, consiste à comparer les données des résultats produites normalement par les APIs et programmes de diagnostique aux même résultats produits sans passer par eux (analyse de haut-niveau et de bas niveau). Si les résultats sont différents, un RootKit est présent et actif (sans pouvoir dire de quel RootKit il s'agit puisque le travail consite à observer l'activité des rootkits et non pas détecter des signatures de rootkit).

  • Analyse comportementale
    Peut donner de nombreux faux positifs. L'utilisateur final n'est pas en mesure de juger ces résultats.

    • Détection d'un détournement de chemin d'exécution
      PatchFinder de Joanna Rutkowska

    • Détection de Hooker
      VICE de James Butler

    • Détection d'anormalité dans les nombres, ordre et fréquences d'appels système.
      Monitoring Système. L'une des méthodes permettant de détecter la présence d'un Rootkit (sans pour autant permettre de le trouver) consiste à compter les processus actifs à un certain niveau et de les recompter à un niveau plus bas (plus près du noyau du système d'exploitation). Si les nombres sont différents, il y a des processus furtifs.

Quelques RootKits Windows
  • RootKit "Hacker Defender"
    Le plus connu et le plus diffusé des Rootkits pour Windows. Aisé à paramétrer pour en contrôler le comportement. C'est un travail collaboratif et en Open Source ! Il en existe des versions commerciales ajoutant des fonctionnalités ainsi que des systèmes de protection contre les antivirus, les anti-trojans et les détecteurs de Rootkits. Son site officiel est http://hxdef.org.
    Précisions techniques sur l'installation des différentes versions de Hacker Defender
    Eradication manuelle de Hacker Defender

  • RootKit "HE4Hook"
    Rootkit russe très complet. Téléchargement : http://www.rootkit.com/vault/hoglund/He4Hook215b6.zip.

  • RootKit "Basic Class"
    Ensembles destinés à l'initiation et la formation aux RootKits Windows. On y trouve une vaste collection d'"exploits", chacun visant une faille connue de Windows.

  • RootKit "Vanquish"
    Rootkit d'origine roumaine utilisant le principe de l'injection dans une DLL et rendant complètement furtifs ses objets (fichiers, répertoires, entrées dans la base de registre). Il est utilisé en vol de mots de passe. Code source disponible.

  • RootKit "NtIllusion"
    Un RootKit "grand public". Injection dans une dll. Modification des débuts des APIs Windows pour se cacher.

  • RootKit "NTRootKit"
    Semble être le premier Rootkit attaquant le noyau NT. N'est plus mis à jour mais comporte de bonnes idées encore exploitées.

  • RootKit "FU"
    Un Rootkit capable de totalement cacher des processus (invisible dans le gestionnaire de tâches), d'en élever le niveau de privilège et même de rendre des pilotes invisibles. En sus, il exécute tout ceci sans utiliser des Hooker, mais en manipulant directement les objets du noyau Windows (Direct Kernel Object Manipulation).

  • RootKit WinlogonHijack
    Il parasite la tâche winlogon.exe en s'y injectant sous forme d'une dll et prend donc ainsi les mêmes droits et privilèges que winlogin.exe. Il intercepte (hook) les appels à msgina.WlxLoggedOutSAS, se permettant ainsi de tenir un journal en plein texte (en clair, pas crypté) de vos informations de connexion (login et mot de passe).

  • RootKit Shadow Walker
    Prototype de RootKit de 4ème génération. A l'état de démonstration "Proof of concept" d'une technique appelée "Virtual Memory Subversion".

  • RootKit "Apx"

  • RootKit "yyt_hac"


Quelques anti-RootKits dans le monde Windows
  • RootkitRevealer de Sysinternals
    http://www.sysinternals.com/Utilities/RootkitRevealer.html

  • F-Secure BlackLight de F-Secure
    https://europe.f-secure.com/blacklight/
    Egalement livré en paquettage dans la suite "F-Secure's Internet Security 2006"

  • IceSword de pjf_ (Xfocus Team)
    http://assiste.com/p/logitheque/icesword.html

  • Sophos Anti-Rootkit de Sophos
    http://www.sophos.fr/products/free-tools/sophos-anti-rootkit.html
    Détecte et permet d'éliminer les processus cachés. Fonctionne sous :
    Windows NT 4.0 (SP 6a avec IE 4.0)
    Windows 2000 (Professional ou Server)
    Windows XP (Home ou Professional)
    Windows Server 2003 standard edition
    Windows Small Business Server 2003
    Sous Windows NT 4.0 Sophos Anti-Rootkit détectera seulement les fichiers cachés et les entrées de registre.
    Après avoir téléchargé sarsfx.exe, installez-le puis utilisez sargui.exe qui est l'interface graphique Windows de l'outil (sarcli.exe étant l'interface en ligne de commande type MS-Dos).

  • Microsoft's Malicious Software Removal Tool de Microsoft
    http://www.microsoft.com/security/malwareremove/default.mspx
    Dispose des signatures de HackerDefender and FU (mais, si le RootKit est actif, il peut ne pas le détecter).

  • Microsoft Strider GhostBuster de Microsoft
    http://research.microsoft.com/rootkit

  • UnHackMe de Greatis
    http://www.greatis.com/unhackme/index.html
    Un produit commercial

  • Vice de James Butler (Greg Hoglund et James Butler de Rootkit.com - James Butler et également CTO de la société de sécurité Komoku)
    http://www.rootkit.com/project.php?id=20
    Téléchargement de Vice
    Un système de détection de rootkits et d'analyse.
    Vice - Catch the Hooker - Document pdf par Greg Hoglund et James Butler

  • ARIES Rootkit Remover par Lavasoft
    http://www.lavasoftusa.com/software/rootkit/
    Un outil spécialisé contre le RootKit de Sony, XCP rootkit, développé par la société First4Internet et destiné à camoufler le système de gestion numérique des droits (DRM (Digital Rights Management)) de Sony.

  • FLISTER de Joanna Rutkowska
    http://www.invisiblethings.org/tools/flister.txt
    http://www.invisiblethings.org/tools/flister.zip
    Détecte les fichiers cachés dans les 2 modes, en mode Kernel ou en mode utilisateur.
    Mode ligne de commande uniquement et liste l'intégralité d'un répertoire (objets cachés et non cachés).

  • PatchFinder de Joanna Rutkowska
    PF2 2.12 sources & binaries (ZIP)
    Paper about design and usage (PDF)
    Readme (TXT)
    Changelog (TXT)
    Attention : doit être installé sur un système sain (comme un contrôleur d'intégrité).
    Attention : est complètement obsolète même si encore fonctionnel (dernière mise à jour le 23.02.2004).

  • Klister de Joanna Rutkowska
    Klister 0.4 sources & binaires (ZIP)
    Attention : est complètement obsolète même si encore fonctionnel.

    Pour mémoire. Klister fut le premier détecteur de processus cachés dans le monde Windows. Complètement obsolète aujourd'hui en raison de sa limitation à Windows 2000, de l'émergence de nombreux anti-rootkits nouveaux et bien plus performants et du développement par les rootkits de routines de furtivité spécifiques anti-klister.

    Klister est un détecteur de RootKits. Il s'installe au niveau noyau de Windows et détecte la version de celui-ci : il signale qu'il ne tourne que sous Windows 2000 mais semble fonctionner également sous XP et NT4 (par contre, actuellement, il ne fonctionne pas sous XP 2003). C'est un simple jeu d'utilitaires faits pour lire les données de structures internes du noyau NT afin d'obtenir des informations fiables sur l'état du système (incluant la liste de tous les processus, y compris ceux "cachés " par quelques rootkits).

    Klister se compose d'un module de niveau noyau NT et de quelques excellents programmes côté utilisateur qui communiquent avec le module noyau afin de montrer quelques données des structures internes du noyau NT. Les plus intéressantes sont les listes des threads employés par le séquenceur du noyau (scheduler). En lisant de telles listes internes nous pouvons être (presque) sûr que nous obtenons la liste de tous les threads système (y compris ceux appartenant aux processus cachés). Cela signifie également que nous pouvons établir la liste complète de tous les processus dans le système.

  • modGREPER de Joanna Rutkowska
    http://www.invisiblethings.org/tools/modGREPER/
Quelques anti-RootKits dans le monde Linux





Historique des révisions de ce document :

Historique
 
   
Rédigé en écoutant :
Music