3psilon website

slogan


Vous êtes ici : Accueil » Articles » Système

>>IceSword

25 juillet 2006
Auteur(e) : 

Présentation

L’original de cet article est publié par Txon sur Open-Files.

IceSword a été développé par un chinois dont le pseudo est « pjf_ » de la Xfocus Team.

IceSword un des deux seuls IDS détecteurs de « rootkits » et autres « services furtifs » qui traînent dans un PC qui ait été considéré « difficile à contourner » par « Hacker Defender » (maintenant passé dans la clandestinité) . C’est une grande référence, surtout pour un logiciel gratuit. Il utiliserait un algorithme semblable à celui de Blacklight (inclus dans les produits payants de F-Secure).

C’est un simple programme qui utilise un service en kernel mode (mode noyau) (’’IsPubDrv.sys’’). Il peut être considéré comme un gestionnaire de tâches évolué ayant la capacité de lister les fichiers cachés. IceSword affiche les processus, les services, les ports ouverts ou en attente, les modules qui fonctionnent en mode noyau, les entrées du SSDT (tableau du descripteur de services du système), les plugins BHO, les messages de « crochetage ». C’est aussi un petit outil pour lister les clefs du Registre de Windows (« regedit ») et les disques et dossiers du PC (« explorer »).

IceSword se base sur les APIs originales et non modifiées de ’’advapi32.dll’’. Si un rootkit cache son service du Windows Service Controller (’’services.exe’’) par « crochetage » d’APIs spécifiques (EnumServiceStatus, EnumServiceGroup etc..), IceSword détecte la différence et la considère suspecte. Cet outil est facile à employer et n’exige pas de connaissances avancées.

Il demeure cependant peu compréhensible des parfaits débutants. Ne vous attendez pas à l’interface agréable d’un outil bourré de petits renseignements qui simplifient la vie des néophytes ou des paresseux comme vous en avez trouvé dans SEEm. C’est un outil efficace, mais assez rustique. IceSword ne requiert pas d’installation, passe inaperçu de Jetico, Spybot (tea timer) et de Ad-Aware (Ad-watch). Suivant les activités qu’il doit analyser, il peut occuper entre moins de 4Mo et environ 12Mo de mémoire.

Processus

Liste des processus en activité avec des renseignements comme l’identification du bloc ’’EPROCESS’’ (structure de données en mode noyau contenant des informations qui peuvent permettre de cacher un processus) et l’utilisation de la mémoire dynamique et maximale. Un « clic droit » sur un des processus provoque l’ouverture d’une fenêtre d’information où se trouve la possibilité d’interrompre l’intrus ...Terminate Process.

(GIF)

Port

Liste des applications qui ouvrent des ports du PC avec indication des adresses IP (locale et distante), des ports utilisés, de l’identifiant PID et du statut de chaque connexion.

(GIF)

Kernel Module

Liste des fonctions logicielles du noyau (système ou gestion de périphérique) chargées dynamiquement en mémoire lorsqu’un programme requiert leurs services. Les rootkits en mode noyau « crochètent » le système, apportent des modifications au kernel. L’accès à celui-ci est généralement interdit aux utilisateurs et requiert des autorisations spéciales. Le « crochetage » du système est peut-être la méthode la plus fiable et la plus robuste parce qu’il se situe au niveau le plus bas.

(GIF)

La section Kernel Module affiche les fichiers actuellement chargés en mémoire noyau qui va offrir différents services : accès matériel, noyau windows ... Si un rootkit agit en mode noyau, il aura forcément chargé son driver et sera visible dans cette section.

Startup

Liste des applications au démarrage (équivalent de « fichier et dossier de démarrage » et de « clés communes » de SEEm. Les rootkits y installent souvent une procédure de lancement automatique au démarrage du système, surtout quand ils ne sont pas des rootkits en « mode virtuel ».

(GIF)

On peut charger dynamiquement un driver ’’.sys’’ par un exécutable ce qui implique qu’il faut lancer cet exécutable. Après, le driver peut être chargé automatiquement par la mise en place d’un service driver ou par un service normal qui chargera l’exécutable ce qui nécessite de regarder les services démarrés automatiquement.

Win32 services

Liste des modules (fonctions logicielles système ou de gestion de périphérique) présents dans le PC. IceSword reprend les descriptions incluse dans l’aide de Microsoft incorporée au système ; elles apparaissent donc dans la langue d’installation. Ainsi, un doute éventuel est plus facilement levé en ce qui concerne ceux qui proviennent effectivement de Windows.

(GIF)

Un « clic droit » sur l’un des services permet de le démarrer (ou au contraire, de l’arrêter), de le mettre en pause, de le neutraliser etc.

SPI

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

(GIF)

BHO

(Browser Helper Object - pour Internet Explorer ...). Liste des modules « dll » qui fournissent une fonctionnalité supplémentaire.

(GIF)

Exemple ... le plugin qui permet à des utilisateurs d’Internet Explorer de lire les dossiers ’’.pdf’’ d’Adobe Acrobat est un BHO. L’API BHO est exposé au « crochetage » en vue de la prise de contrôle de la navigation.

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.

(GIF)

Message Hooks

Liste des processus qui utilisent certains fonctions API de Windows comme la sollicitation des périphériques d’entrée de données (clavier, souris etc.) et autres. Le processus système ’’USER32.DLL]’’ met en place une fonction d’interception des activités. Exemples ...

-  “WH_GETMESSAGE” ... tous les événements passent par ce filtre, il contrôle tout type de message envoyé à une application.
-  “WH_MSGFILTER” ... capte les événements générés à la suite d’une saisie dans une boite de dialogue, une zone de message, un menu ou une barre de défilement.
-  “WH_KEYBOARD” ... capte les événements déclenchés par la frappe des touches du clavier.

(GIF)

Le « crochetage » de ces activités peut, par exemple, permettre à un rootkit de « sniffer » discrètement les saisies confidentielles etc. Attention cependant ... SEEM « hook » les événements clavier seulement pour lui-même afin de gérer les raccourcis clavier. Donc on le voit apparaître dans cette section.

Log Process

Liste générale des « évènements » rapportés par les différentes applications installées sur le PC, applications Microsoft ou non, et liés au démarrage (ou à la fermeture) et aux activités des différents processus en fonction. Cette liste présente les différents identificateurs PID (Process Identifier) et TID (Thread Identifier). Tous les modules d’un même processus ont le même PID mais ont leur propre identificateur TID.

(GIF)

Un thread à son propre espace mémoire et est donc indépendant d’autres thread. Un processus peut lancer deux threads (ou plus) qui vont réaliser deux traitements différents en même temp. Le deuxième thread ne sera pas obligé d’attendre que le premier se termine. C’est ce que l’on appelle du multi-thread. La technique d’injection de code, consiste la plupart du temps, à accéder à la mémoire d’un processus, d’y injecter du code, et d’exécuter ce code (par ce processus) dans un nouveau thread. Malgré cela, il n’est pas évident de savoir si tel ou tel thread est sain. (Excepté si l’on a développer le programme)

System Ckeck

A l’ouverture d’IceSword, à partir de la v1.16, contrôle général de l’existant sur le PC (processus cachés, drivers modifiés) ...

(GIF)

GDT/IDT

Global Descriptor Table (GDT) & Interrupt Descriptor Table (IDT) , sont des tables spécifiques aux processeurs de type x86 gérées par le NTLDR. Le GDT est employé pour décrire les segments de mémoire qui sont employés par le noyau. La modification des clefs GTD peut permettre à des applications malicieuses qui n’ont pas les privilèges nécessaires de modifier cependant la mémoire du noyau. Dans le cadre d’une utilisation malveillante de l’IDT, il est possible d’intercepter les « interruptions » IRQ créées par certains matériels ou logiciels avant qu’elles soient transmises au noyau, afin de cacher les actions de ces matériels et logiciels. Pour activer le contrôle de ces tables il faut cliquer sur le bouton GDT/IDT.

Log

Créez un petit fichier vide (par exemple ’’Log-IS.log’’ ) et indiquez-en le chemin dans la fenêtre qui s’ouvre en cliquant sur le bouton Log. IceSword y enregistrera les processus en fonction et les anomalies afin que vous puissiez en garder la trace et étudier les problèmes éventuels à tête reposée.

Settings

En standard, l’option "Don’t display ’’Deleting’’ state process" est activée. En la désactivant on obtient un liste de Process plus étoffée où figurent des processus signalés en rouge :

Exemples ...

“ssmypics.scr” : Microsoft slide show screen saver - dont l’utilité est incertaine, “savedump.exe” : processus de NT, memory dump : qui écrit automatiquement l’ensemble de la mémoire dans le “pagefile.sys” lors d’un crash BSOD.

Au reboot, Windows copie l’ensemble du “pagefile.sys” dans le “memory.dmp”.

Certains le considèrent comme important pour la stabilité du système et qu’il ne doit donc pas être supprimé. D’autres pensent au contraire qu’il n’est pas essentiel et peut être neutralisé pour booster le système.

(GIF)

Renseignez-vous avant d’agir (Google est votre ami ...)

Notez que IceSword fonctionne très bien avec ses paramètres standards.

Process rule

IceSword permet la création de règles pour les processus et les « threads ». Il suffit d’indiquer les références (PID compris) de ce qui doit être autorisé ou, au contraire, interdit.

(JPG)

Exemple :
-  Une règle vas définir qu’aucun processus portant le nom de ‘hxdef100.exe’ ne pourra s’exécuter. Le résultat attendu est concluant :

(GIF)
(GIF)

-  Filtrage sur le processus parent. Dans cet exemple, on refuse que le processus portant le PID 1516 ne puisse lancer de programme. Le résultat est également concluant, ainsi quelque soit le programme lancé, un message d’erreur apparait :

(GIF)
(GIF)

Ces règles restent pour le moment assez sommaires. Il n’est pas possible par exemple de gérer les multiples caractères avec ‘*’. L’interface de gestion reste également basique et s’avère peu pratique à l’utilisation.

Ce système de filtre est tout de même peu concluant puisque un simple changement de nom permet à un programme de se lancer. Le filtrage sur les PID ou TID reste compliqué à mettre en place puisque ces identifiants sont fournis aléatoirement par le système.

Si l’on connaît exactement la règle à définir, en sachant que les critères ne seront pas variables, cela peut être intéressant.

Détection des fichiers douteux

Pour détecter les traces d’un processus douteux, consultez en priorité Process et Win32 services. Si des programmes exécutables où des services sont cachés, ils seront affichés en rouge.

(GIF)
(GIF)

Ils peuvent également avoir laissé des traces et être repérés dans d’autres modules d’IceSword ... Kernel Module, Startup, SSDT etc.

Attention cependant, tous les fichiers cachés ne sont pas des rootkits malsains. Dans l’exemple ci-dessous, il s’agit de l’utilitaire PrevX (Prevx Home Intrusion Prevention) dont ’’pxfsf.sys’’ fait partie. Plus haut, dans la liste des modules de IceSword - image de SSDT - ’’bfcdi.sys’’ est un service du firewall Jetico que SEEm sait très bien voir aussi et qui ne doit pas être interrompu.

(JPG)

Utilisez Google (ou autre moteur de recherche) pour trouver des explications sur les fichiers douteux afin d’agir en toute connaissance de cause.

Neutralisation des fichiers douteux

IceSword a la capacité d’interrompre le fonctionnement d’un rootkit voir Process et Win32 services ci-dessus rendant ainsi « visible » par des outils plus ordinaires les processus et fichiers qu’il cache.

(GIF)

Il permet aussi d’accéder de façon rustique :

-  au Registre de Windows pour enlever les entrées non désirées,
-  aux fichiers du PC pour éradiquer définitivement les fichiers parasites (des dossiers comme "Prefetch" par exemple)

(JPG) (JPG)

Une fois que le rootkit est devenu visible, vous pouvez aussi utiliser des outils plus confortables comme par exemple Seem pour éliminer le processus du « démarrage » de Windows, un outil de nettoyage du registre etc.

Il demeure cependant plus sûr de disposer d’un DVD de sauvegarde « propre » du système et des applications installées et de repartir de cette base saine après un formatage.

L’original de cet article est publié par Txon sur Open-Files.

Formuler un commentaire


3psilon (c) 2003

[W3C CSS Validator] [W3C XHTML Validator] [W3C WAI AAA]