3w.ID-RÉSEAUX.info

Le Site | Le Blog | |
Sécurisation | Sauvegarde | Récupération | Mise en Réseau | Création Web | Formations
Les Tests | Vos Traces | Site Web
Phishing | Hoax | Virus | Rootkit
Sécurité | Utilitaires | Pack
Obsolète | Vulnérabilité | Mise À Jour
subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link | subglobal6 link
subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link | subglobal7 link
subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link | subglobal8 link

L'espion ... small logo

... qui venait de l'intérieur.

Un rootkit a pour but principal la furtivité, il permet par exemple de cacher certains processus, certains fichiers et clef de registre... Il opère au niveau du noyau (la plupart du temps chargé en tant que driver) et peut donc tromper à sa guise les programmes qui sont exécutés en mode utilisateur (antivirus, firewalls).

Comment les débusquer ?

Qu'est-ce qu'un rootkit

Un rootkit s'utilise après une intrusion et l'installation d'une porte dérobée afin de camoufler tous les changements effectués lors de l'intrusion. Ainsi l'on peut préserver l'accès à la machine un maximum de temps, en effet les rootkits sont difficilement détectables et seule une analyse forensique approfondie peut en révéler la présence.

La fonction principale du rootkit est de camoufler la mise en place d’une ou plusieurs portes dérobées. Ces portes dérobées (utilisables en local ou à distance) permettent au pirate de s’introduire à nouveau au cœur de la machine sans pour autant exploiter une nouvelle fois la faille avec laquelle il a pu obtenir l’accès frauduleux initial, qui serait tôt ou tard comblée.

Les rootkit opèrent une suite de modifications, notamment au niveau des commandes système, voire du noyau (kernel).

Le rootkit est souvent couplé à d'autres programmes tel qu'un sniffeur de frappe, de paquets...
Généralement, le rootkit emploie quatre types de programmes : des chevaux de Troie, des portes dérobées, des sniffers réseaux pour capturer les paquets, et des nettoyeurs de fichiers log .

...en savoir plus

Les termes employées ... dans les logicels anti-rootkits évolués :


Noyau (ou Kernel en anglais) :
En informatique, le noyau d'un système d'exploitation est le logiciel qui assure :
- la communication entre les logiciels et le matériel
- la gestion des divers logiciels (tâches) d'une machine (lancement des programmes, ordonnancement,...)
- la gestion du matériel (mémoire, processeur, périphérique, stockage,...).


SPI (Service Provider Interface) :
Liste d'Interfaces logicielles (pilotes) de périphériques développées selon le standard de programmation WOSA (Windows Open Services Architecture) pour permettre un accès commun aux services.


WOSA (Windows Open Services Architecture) :
Ensemble des spécifications de l'A.P.I. Windows permettant de programmer des applications ayant une interface standard autorisant l'accès à des services offerts au travers d'un réseau.


API (Application Programming Interface) :
Ensemble de bibliothèques et fonctions fournies avec un programme permettant d'utiliser son potentiel et de greffer de nouvelles fonctions en programmant des modules externes à partir d'un langage donné.
Une API définit la manière dont un composant informatique peut communiquer avec un autre.


PID (Process Identification Number) :
Numéro unique affecté à chaque tâche exécutée par un système d'exploitation multi-tâches.


NTLDR (NT Loader) :
Est le nom du chargeur d'amorçage de Windows 2003, XP, 2000 et NT 4.0 sur les processeurs x86 et x64 (AMD64 et EM64T d'Intel) par contre, la version de Windows Vista ne l'utilise plus.
NT Loader est également abscent des versions 64 bits.
NTLDR permet de choisir, lorsque plusieurs systèmes Microsoft Windows sont installés sur une même machine, quel système on souhaite amorcer.


IAT (Import Address Table) :
L'IAT est utilisée comme table d'adressage quand une application ou un module logiciel appelle une fonction API. Elle est nécessaire pour les PE (Portable Executable / *.exe *.dll *.sys) pour savoir où se trouvent en mémoire les DLLs qu'il sollicite. Les crochetages de la table IAT sont plus performants que ceux de la SSDT.


EAT (Export Address Table) :
L'EAT sert à référencer les différentes fonctions qui doivent être exportées. Dans la plupart des cas se sont les DLL's qui exportent des fonctions et non les EXE's comme pour l'IAT.


IDT (Interruption Descriptors Table) :
C'est une table ou sont stockés les interruptions. Il en existe trois types : les IRQs (interrupt request), les exceptions (erreurs) et les interruptions software (importantes pour la sécurité du système).
La table est stocké dans la mémoire vive, alors que le microprocesseur stocke son emplacement dans celle-ci.
Cette table qui possède des interruptions de 0 à 255 sont remplis avant le système d'exploitation. Et a chaque interruption est associé une routine à exécuter.


DLL (Dynamic Link Library) :
Une DLL aussi nommée "bibliothèque dynamique" est un fichier de bibliothèque logicielle utilisé par un programme (*.exe), mais n'en faisant pas partie. Ce fichier contient des fonctions qui pourront être appelées pendant l'exécution d'un programme, sans que celles-ci soient incluses dans son exécutable.
Généralement, l'intérêt des bibliothèques réside dans le fait qu'elles peuvent être partagées par plusieurs exécutables, on parle alors de "bibliothèques partagées". Plusieurs bibliothèques logicielles peuvent aussi être regroupées en un "Framework".


IRP (I/O request packets) :
Ce sont les tables utilisées par "Windows NT Driver" pour communiquer avec le système d'exploitation. Elles sont créés par le contrôleur d'E/S (entrée/sortie) au nom des drivers.


ISA (Implementation Specific Attack) :
Cette technique consiste à intégré une base de signature de tous les logiciels anti-rootkits connus. Lorsque vous lancer votre logiciel de détection, le rootkit arrête de se dissimuler et votre anti-rootkit ne le détecte pas, vu qu'il n'est plus cacher.


ADS (Alternate Data Stream) :
L'ADS (flux de données additionnel) est une technologie utilisée pour stocker des informations supplémentaires associées à des fichiers, et elle est employée par le système pour des tas d'utilisations légitimes.
Certains éléments ADS qui sont de type "alternate", sont parfois utilisé par les rootkits.


SSDT (System Service Descriptor Table) :
Tableau utilisé par Windows pour diriger des appels de système vers un traitement approprié : table d'adressage des APIs. Le "crochetage" du tableau de descripteur de service du système (SSDT) en vue de sa modification est une autre technique fréquemment utilisée. En modifiant cette table, le rootkit peut réorienter l'exécution vers son code au lieu de l'appel original du système.


Handler :
Sous-programme qui permet la gestion de certaines opérations à l'intérieur du système d'exploitation, comme le déplacement de données ou la correction d'erreurs.


Hooking (crochetage) :
Technique utilisée pour provoquer une séquence de traitement différente de l'originale parfois appelée "handler".Il est utilisé pour injecter un code potentiellement malveillant dans le traitement.

Les techniques employés par les rootkits Rappel sur le principe de fonctionnement d'un applicatif classique :
Une requête est effectuée à partir d'une application en mode utilisateur. Elle envoie sa requête en faisant appel à la fonction API appropriée. Cette requête est manipulée par le noyau qui collecte et maintient diverses structures de données. Finalement, l'information demandée est renvoyée par le même chemin. Les logiciels dits furtifs, capables de cacher de l'information, vont détourner le chemin d'exécution à travers une fonction de filtrage spéciale. C'est ce qu'on appelle le hooking .


Les rootkit de première génération opèrent une suite de modifications, notamment au niveau des commandes système, ou du noyau (kernel). Voir les deux à la fois.
Les nouvelles génération de Rootkits sont basé sur l'injection de DLL, ou DKOM (Direct Kernel Object Manipulation).


Pour ce cacher des logicels anti-rootkits, certains rootkits utilisent une technique appelé ISA.
Cette technique consiste à intégré une base de signature de tous les logiciels antirootkits connus. Lorsque vous lancer votre logiciel de détection, le rootkit arrête de se dissimuler et votre anti-rootkit ne le détecte pas, vu qu'il n'est plus cacher.
Des logiciels comme IceSword et RkUnhooker ont un titre de fenêtre généré aléatoirement, pour empêcher les programmes de contre mesures de se lancer. Mais cela ne suffit pas, ils existent d'autres possibilité pour les ISA's, comme la taille des fenêtres ou la dispoition des menus.


Parmi les techniques les plus utilisées figure le hooking en ligne (inline hook), lié aux fonctions de patch en mémoire afin de dérouter le chemin d'exécution classique. C'est une technique très puissante, car elle peut intercepter chaque appel de fonction, de quelque manière qu'il ait été effectué.
Différents types de hooking en ligne :
- inline hooks en mode kernel dans ntoskrnl (le driver BadRKDemo.sys du rootkit BadRkDemo).
- inline hooks en mode utilisateur dans les dll's (le processus hxdef100.exe du rootkit Hacker Defender).
- inline hooks à l'intérieur des drivers (le driver lzx32.sys du rootkit Rustock.B).
- inline hooks dans la table des IRP.
- inline hook du handler.


Différents types de crochetages (ou Hookings) dans les tables :
"SSDT", "IAT", "EAT", "GDT", "IDT", "IRP" et "ADS".


Le hooking user-land par patch du header consiste à détourner le flot d’exécution au niveau de l’espace mémoire user-land, en patchant l’entête des fonctions à surveiller avec un saut vers le code d’analyse.


Le hooking kernel-land par patch de la SSDT consiste à modifier certains pointeurs de la SSDT pour exécuter le code d’analyse lors de l’appel du service.


A lire également le dossier sur Open-Files : Sécurité rootkit et anti-rootkit.

Comment se protéger contre les rootkits Quel est la bonne stratégie à adopter :
Un anti-virus classique + un firewall + un système et des applications à jour + la combinaisons de deux logiciels anti-rootkit.

Actuellement les plus évolués sont (à mon avis) IceSword et RkUnhooker. Mais cela ne suffit, ils ont tous deux quelques faiblesses. Pour bien faire ils faut les adjoindres les logiciels suivants :
Autoruns de Sysinternals ou Process Viewer de MiTeC ou équivalent.
Ads Locator de Safer Networking (ou équivalent contre les ISA).


Le « rootkit » n’a de raison d’être que si une faille est présente, si les conditions sont réunies pour que son exploitation soit réussie et si elle permet un accès avec les droits administrateur. Donc pas de faille, pas de rootkit.
Le meilleur moyen de se protéger des rootkit est de se prémunir contre les failles.


Logiciels anti-rootkits

Tests : logiciels anti-rootkits

Tester votre logiciel anti-rootkit avec des rootkits inoffensifs.

About | Privacy Policy | Plan Site | | ©2007 ID-réseaux