Dans cette article nous allons essayer de définir ce qu’est un rootkit, comment il fonctionne, par qui il est utilisé et pourquoi. Nous allons aussi voir les différentes mesures de prévention et de détection contre les principaux rootkits affectant l’environnement Windows.
Actuellement, de nombreux logiciels de sécurité efficaces anti-rootkits gratuits et payants sont disponibles sur le marché, même si Windows déjà patché beaucoup de failles de sécurité. Il n’en reste pas moins infaillible !
Dans la première partie de cette article, nous allons faire un petit résumer au sujet des rootkits: ce qu’ils sont et comment ils fonctionnent.
Dans la deuxième partie, nous montrerons le plus populaire d’entre eux en action: HackerDefender.
Dans la dernière partie, nous allons essayer de voir les différences entre les logiciels anti-rootkits gratuits et payants.
1 – Introduction
Une courte introduction aux rootkits :
Un rootkit n’est pas un virus : Il n’est pas destinée à modifier des fichiers ou de causer des dommages;
Ce n’est pas un ver : Il n’est pas programmer pour se propager;
Ce n’est pas un spyware : mais il peut espionner sa victime;
Il a RAT, cheval de Troie, porte dérobée, il a les mêmes fonctionnalités, mais il est beaucoup plus:
il est un rootkit !
Quelques définitions:
– Wikipedia [1] :
« Un rootkit (le nom « outil de dissimulation d’activité » est également utilisé1, ainsi que « maliciel furtif » et « trousse administrateur pirate »), parfois simplement « kit », est un ensemble de techniques mises en œuvre par un ou plusieurs logiciels, dont le but est d’obtenir et de pérenniser un accès (généralement non autorisé) à un ordinateur de la manière la plus furtive possible,C 1,L 1, à la différence d’autres logiciels 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. »
– Microsoft [2] : « The Obscure Hacker Attack »
« Un rootkit est un type spécial de malwares (logiciels malveillants). Les rootkits sont spéciaux parce que vous ne savez pas ce qu’ils font. Les rootkits sont presque indétectables et ils sont presque impossibles à enlever. Bien que les outils de détection se multiplient, développeurs de logiciels malveillants trouvent constamment de nouvelles façons de couvrir leurs traces. »
-SANS [3] :
« une collection d’outils (programmes) qu’un pirate utilise pour masquer les intrusions et obtenir l’accès de niveau administrateur à un réseau informatique ou d’un ordinateur. »
-NSA [4]:
« Un outil de sécurité pour hacker (hacker security tool) qui capture les mots de passe et le trafic de messages vers et à partir d’un ordinateur.
Une collection d’outils qui permet à un pirate de fournir une porte dérobée dans un système, recueillir des informations sur le réseau, masque le fait que le système est compromis, et bien plus encore.
Les rootkits sont un exemple classique de logiciels de type cheval de Troie.
Les rootkits sont disponible pour une large gamme de systèmes d’exploitation. »
-Greg Hoglund:
« Un ensemble de programmes qui patch et ouvre des portes dérobées sur les chemins d’exécution existants au sein du système ».
-Saliman NAMA [5]:
« Nom de Rootkit sont une combinaison de deux mots, » root « et » kit « .
« Root » vient du nom des administrateurs UNIX, qui est le plus élevé d’accès dans un environnement UNIX tout en « kit » peut être se référer comme à des outils.
De ce mot nous pouvons interpréter rootkit comme des outils ou une collection d’outils qui permettent à l’attaquant d’obtenir la puissance de root sur le serveur compromis, il / elle doit cacher leur présence pour ne pas être détecté par l’administrateur.
Voilà ce que fait un rootkit.
Donc, la meilleure definition que nous pouvons décrire sur le rootkit est qu’il est un outil ou une collection d’outils qui cachent une présence de l’attaquant et en même temps donnent la capacité de l’attaquant à garder le contrôle complet du serveur ou héberger continuellement sans être détecté « .
Il est important de noter que les rootkits Windows ne sont pas conçus pour avoir accès sur un système: « root » est juste le mot pour les privilèges du plus haut niveau dans les systèmes UNIX, comme «administrateur» est le plus élevé des privilèges de niveau dans les systèmes Windows.
L’attaquant doit d’abord obtenir l’accès sur l’hôte cible (par une faille, un jour zéro ou toute autre méthode), puis installer le rootkit pour cacher sa présence.
Le principal objectif d’un rootkit est de garder la porte ouverte pour l’accès futur, puis de permettre à l’intrus de revenir en atténuant les risques d’être détecté.
Un rootkit est un des outil de pirate le plus efficace pour garder le contrôle d’un hôte compromis en étant aussi invisible et indétectable que possible des logiciels de sécurité, les administrateurs système ou les gestionnaires de réseau.
2 – Comment les rootkits travaillent et que cache t’ils ?
Windows est un système d’exploitation complexe, et le noyau est pas bien documentée (API natives, ntdll.dll par exemple).
Par conséquent, beaucoup de subversions, escalades, des exploits ou des vulnérabilités sont encore toujours possible.
En règle générale, les rootkits Windows ont la capacité de se cacher soit dans les :
-processus,
-files (.txt, .exe, .jpg, .sys etc) et les dossiers, registres,
-services et les pilotes,
-Ports et les connexions,
Pasm al de rootkits ont inclus ou ajouté dans le paquet des portes dérobées, les enregistreurs de frappe (keyloggers), renifleurs (sniffer), virus et ainsi de suite.
De nombreuses méthodes sont utilisées par les rootkits pour cacher leur présence [6]: injection bases dll / infection (Vanquish), l’API hooking comme HackerDefender ou les plus avancé, comme la manipulation de données du noyau et la subversion de la mémoire (FU).
Les rootkits sont généralement classés en deux catégories du niveau de privilège où ils opèrent:
Rootkits user,
Rootkits kernel.
Une application qui fonctionne en Ring 3 n’a pas les mêmes droits que une application qui fonctionne en Ring 0.
Ceci est une conséquence directe de l’architecture Microsoft Windows.
– Les fabricants d’architecture de processeur (Intel et AMD) ont quatre niveaux des privilèges (généralement appelé « Ring »),
Mais Windows lui n’utilise seulement que le ring 2 (utilisateur) et le ring 0 du kernel dans les architecture Intel / AMD
– Les rootkits en mode user ne concerne que les applications, les processus, les services. C’est mode restreint (des API communes de Kernel32.dll et Ntdll.dll; pas d’acess aux pilotes de périphériques et la mémoire).
–Les rootkits en mode kernel sont plus complexes et concerne tous les objets (pas de restrictions): API exécutifs, registre, HAL (Hardware Abstraction Layer / Couche d’abstraction matérielle) et permet d’accéder à la mémoire physique, les périphériques et autres devices.
Il est au cœur de du système d’exploitation.
Les codeurs de Rootkits prennent avantage de cette architecture: avec seulement les deux niveaux utilisés, il n’y a aucune zone « sécurisée » ou Anneau permettant de séparer et de protéger les fonctions du noyau afin d’être accessible à partir de l’user land.
Les API natives sont utilisés par le sous-système pour communiquer avec la zone du noyau, et en accrochant (hooking) des API natives qui sont accessibles avec Ntdll.dll, un rootkit peut avoir accès au noyau afin de manipuler les données, installer les pilotes, cacher sa présence et, enfin, obtenir le contrôle de toutes les fonctions du système d’exploitation.
Le saut du Ring 3 vers le Ring 0 est la clé pour avoir les pleins privileges, et c’est donc également le premier but pour la plupart des rootkits.
Une fois dans le noyau, la seconde phase consiste à hooker (accrocher) la table des sythemes d’appel comme Interrupt Descriptor Table (IDT), Import Addresses Table (IAT), Export Addresses Table (EAT), en accrochant les tables de distribution du pilote, d’intercepter et manipuler des données du noyau …
C’est ce que les rootkits les plus communs font, mais les rootkit de type FU , certainement l’un des plus sophistiqués, utilise Direct Kernel Object Modification ou DKOM [7]: via un pilote de périphérique ou un module chargeable du noyau, ce rootkit a la capacité de manipuler et de modifier des objets à la volée et directement dans la mémoire, et dans ce cas agit comme une attaque man-in-the-Middle.
Pourquoi rootkits?
Depuis le début des premiers ordinateurs, les attaquants et les développeurs de malwares sont toujours à la recherche des moyens les plus efficaces pour pénétrer et obtenir le plein contrôle de systèmes.
Un rootkit est certainement l’un des outils les plus sophistiqués pour un attaquant: en cachant sa propre présence auprès des utilisateurs, administrateurs et logiciels de sécurité, l’attaquant agit comme un fantôme sur la machine cible.
Par conséquent la plupart des hackers qui utilisent un rootkit ne destine pas leur utilité pour une seule attaque (comme le vol ou destruction de données), mais ils l’utilisent surtout pour l’espionnage par exemple.
Le premier rootkit de Windows (NTRootkit) a été libéré par Greg Hoglund en 1999, mais les rootkits sont bien connus dans les systèmes Unix depuis plus de vingt ans.
Être invisible et indétectable dans Windows est un défi pour tout codeur, Comme il y eu le défi de marcher sur la Lune pour les physiciens et astronomes.
Il n’y a aucun problème éthique pour les developpeurs de rootkits : l’attaque offensive d’un systèmes est un très bon moyen de l’améliorer!
Le problème est plus ce que nous faisons avec ces outils.
Depuis 2004, le danger des rootkits a généré une véritable paranoïa, pour certaines professionnels de la sécurité informatique c’est même devenue un véritable métier:
– Greg Hoglund a codé le premier rootkit Windows, James / Jamie Butler a codé le plus avancé d’entre eux (FU), et les deux travaillent aujourd’hui dans la même entreprise (HBGary), ils écrivent des livres et de donne des interviews et des conférences sur le sujet.
– Holy Father, le codeur du rootkit le plus populaire (HackerDefender) a déclaré dans une entrevue qu’il a écrit ces rootkits pour le plaisir.
Mais depuis quelques années, il vends une versions furtives de son rootkit: il serait plus exact de dire « à l’origine pour le plaisir et aujourd’hui pour le profit ».
-Certains sites web profitent de la paranoïa des rootkist:
« Vous avez peut-être un rootkit caché dans la FlashRAM ou l’EEPROM de votre ordinateur, donnez-nous votre argent et nous vous sauverons! »
De l’autre côté, les logiciels anti-rootkits ont émergé de differents éditeurs prenant la succession de Tripwire et Pedestal driver protections, mais cette fois pour la sécurisation des usagers du systèmes Windows.
Diamondcs avec ProcessGuard était l’un le premier éditeur de sécurité à prendre au sérieux la menace des rootkits pour les utilisateurs à domicile.
Et d’autres logiciels de sécurité ont été conçus et mis à prévenir et spécialement détecter les rootkits : UnHackMe ou RootkitShark pour les logiciels payants, RootkitRevealer de Sysinternals, BlackLight et RootkitDetector pour les gratuis.
Les magazines d’infomatique ont fait leur travail pour informer les gens sur le sujet, et de fait, la plupart des utilisateurs conscients savent que des solutions existent contre cette menace.
Qui utilisent les rootkits?
Les rootkits peuvent être utilisés légalement ou non, avec ou sans accès physique à une machine.
– Pour des recherches personnelles, pour l’éducation, pour le développement des anti-rootkits;
– Pour cacher les fichiers à d’autres utilisateurs (photos porno et ainsi de suite) [4a],
– Pour augmenter les capacités de furtivité d’un logiciel espion (un keylogger cachée par un rootkit peut être plus furtif que certains « keyloggers invisibles »),
– Par les Script-Kiddies (pour le plaisir),
– Par la mafia (cyber-extorsions…),
– Par les gens impliqués dans le warez et le piratage (fichiers hidding sur serveurs) [4a],
– Les organismes privés et la sécurité gouvernemental pour espionner les entreprises au niveau des brevets (La chine est bien connue pour cela) ou espionner des terroristes et des militants potentiels,
En fait, tout le monde peut utiliser un rootkit.
Et le problème est que nous en savons plus sur qui les a écrit que sur ceux qui les utilisent.
Comment infectent-ils un système ?
Il y a de nombreuses possibilités pour placer un rootkit sur un système:
– Via une faille de sécurité : l’attaquant peut scanner le Web pour rechercher des ordinateurs et des serveurs vulnérables (ports ouverts, non patchées OS, etc.) pour ajouter son rootkit,
– Via les réseaux P2P : l’attaquant peut injecter son rootkit dans programme qui semble tout a fait légitime (comme les jeux vidéos),
– Via un accès physique a une machine : l’attaquant installe simplement le rootkit sur des ordinateurs publics (bibliothèques, universités, Internet Cafés etc) ou sur des ordinateurs d’entreprise en utilisant du social engineering ou une clé USB infectée,
-En Utilisant une attaque de type zero day (comme une faille de type buffer overflow, une nouvelle vulnérabilité du noyau Windows et l’exploitation [8] et l’ escalation de privilèges, etc.),
– Par l’intermédiaire d’un lien et un bot d’IRC, ICQ (….)
En général, pour une installation à distance: plus le système est protégé et durci, plus l’attaque doit être avancé.
Quels sont les rootkits les plus connus ?
-NTRootkit [9]: premier rootkit Windows publiées par Greg Hoglund en 1999.
Ce rootkit est plus un outil de type Proof-of-Concept qu’une véritable menace.
-FU: L’un des rootkit le plus sophistiqué qui utilise (modification de données du noyau directement en mémoire) DKOM.
Si NTRootkit est le bébé de Greg Hoglund, FU est l’un des James / Jamie Butler, alias Fuzen.
Lourd (2,53 Mo), mais ne peut être réellement utilisé à l’état sauvage.
-He4Hook: Connu comme le rootkit russe, open source, sur la base d’un hook, nécessite un « peu d’habileté ».
-Vanquish: Codée par Xshadow; très léger (42,7 ko); basé sur l’injection dll / infection.
-AFXRootkit 2005: la nouvelle version de Aphex rootkit; la lumière (263 ko); la plupart du temps un « hider ».
-HackerDefender: La star de rootkits; codée par Holy Father; la lumière (199 ko) et le paquet exhaustive. Classé parmi les 21 principales menaces par Microsoft. Plus d’infos dans la deuxième partie de cet article.
Nous pouvons aussi mentionner:
-EeyeGootRoot: Première « BIOS NDIS rootkit porte dérobée », par la Eeye Team. Il peut théoriquement charger de tout support de démarrage (CDRom, etc.), des hooks et le patch OSLOADER pendant le démarrage, puis des charges Après que le BIOS mais avant l’OS.
Plus d’un outil de preuve de concept et la démonstration d’une menace réelle.
-ByShell: L’utilisateur chinois rootkit porte dérobée par Baiyuanfan, mettre en œuvre une nouvelle technique pour cacher les connexions TCP en accrochant asynchrone appel I / O.
Incidence et évolution des menaces de rootkits.
La première implication des technologies de rootkit est que de plus en plus de malwares développeurs de mettre en œuvre ces technologies dans leurs spywares, backdoors, keyloggers et logiciels espions qui deviennent par conséquent beaucoup plus résistantes à détecter pour les programmes de scanners:
-L’équipe de SIS par exemple vend un logiciel espion (cheval de Troie keylogger) qui comprend un antivirus, pare-feu et anti-rootkits près de techniques d’évasion;
– L’un des plus célèbre cheval de Troie comme BackOrifice a été libéré avec quelques fonctionnalités FU rootkit: malwares sont devenus de plus en plus sophistiqué, malwares codeurs intègrent caractéristiques de furtivité dans leur virus, backdoor (comme Lecna), les logiciels espions, un ver (comme MyPhip) et chevaux de Troie (comme kalshi);
-Récemment [10], Mark Russinovitch a découvert un rootkit juridique introduit dans la protection SONY DRM (plus d’infos sur son blog ici et ici): si elle est pas vraiment un rootkit, il dispose de fonctions de rootkit.
Et immédiatement après, certains malwares codeurs ont pris avantage de cette protection DRM pour un cheval de Troie.
Mais heureusement, il semble que les efforts de la communauté de la sécurité contrained SONY à suspendre sa protection contre le piratage.
Et cette invasion des technologies de rootkit est juste un début …
Nous pouvons logiquement attendre à ce que les rootkits légitimes (avec CLUF) seront libérés par les logiciels des éditeurs et des fabricants de hardwares.
Au Blackhat 2005 à Las Vegas, Sparks et Butler ont démontré avec Shadow Walker [11] comment un rootkit peut manipuler et modifier directement tous les objets dans la mémoire; l’équipe EEYE a montré le premier rootkit backdoor Proof-of-Concept Bios (Eeyebootroot) celui qui a la possibilité de charger de la plupart des médias de démarrage habituels.
Dans un avenir prévisible, la prochaine génération de rootkits sera certainement coloniser hardwares peripherical et zones BIOS.
Et dans le même temps, Microsoft va certainement prendre soin [12] de cette évolution en augmentant l’architecture de son futur OS.
Dans tous les cas, le chat et la souris jeu continuera pour longtemps …
Bibliographie et références:
La plupart de ces références sont disponibles en page web, en .pdf et en .txt.
[1] http://en.wikipedia.org/wiki/Rootkit
[2] http://www.microsoft.com/technet/community/columns/sectip/st1005.mspx
[3] et [4] : « Rootkit Analysis and Detection », par Parial and Kumar Singh, Cert .
[5]: « Rootkits: Attacker undercover tools », by Saliman Manap.
[6]: « API Hooking revealed », par Ivo Ivanov.
« How to become unseen on Windows NT », par Holy Father, Codebreakers-journal.
« Hooking Windows API: Technics of hooking API functions on Windows », par Holy Father, Assembly-journal.
« Concepts fot the Stealth Windows Rootkit (the Chameleon project) », by Joanna Rutkowska.
« Advanced Windows 2000 Rootkits Detection », par Jan K.
Rutkowski. »Hidden Processes: the implication for intrusion detection », by Jamie Butler.
[6a]: « Hide’ N Seek Revisited-Full Stealth is Back », by the F-Secure Research team.
[7]: « DKOM (Direct Kernel Oct Manipulation) », by Jamie Butler.
[8]: « Window Local Kernel Exploitation », by the Scan-Associates team.
« Hacking Windows Internals », by Cesar Cerrudo.
[9]: « Beware of Geeks Bearing Gifts: A Windows NT Rootkit Explored », by F.J.Cibelli.
[10]: the publication of this article has been adjourned in order to see the development of this affair.
[11] : « Shadow Walker: Raising the Bar for Windows Rootkit Detection », by Sherri Sparks and Jamie Butler (Phrack and BlackHat).
[12] : « Strider GhostBuster: Why It’s a Bad Idea For Stealth Software to Hide Files », by the Microsoft Research team.
Poster un Commentaire