mardi, novembre 07, 2006

Acquisition forensique des données volatiles d'un système MS Windows

L'acquisition Live est un sujet en pointe dans le domaine du forensique. Grâce à Andreas Schuster et ses comparses, nous possédons désormais des outils plus ou moins userfriendly pour analyser la mémoire physique collectée sur un système.

Pour les systèmes MS Windows, cette acquisition est réalisée au travers l'objet \\.\Device\PhysicalMemory ou l'objet \\.\DebugMemory\ qui permettent d'accéder à la mémoire physique en mode utilisateur, si l'on dispose des droits administrateurs.

Malheureusement, cet accès a été bloqué dans Windows XP 64-bit, Windows 2003 Server SP1 et Windows Vista. Il faut désormais utilisé des moyens lourds pour extraire la mémoire vive de ces systèmes, de type développement d'un driver spécialement conçu (effet de bord inévitable lors de son installation sur une machine compromise) ou le port firewire qui n'est présent que sur les machines les plus récentes.

Pour pouvoir étudier les codes malveillants qui sont injectés dans la mémoire physique d'un système Windows compromis, une solution acceptable du point de vue forensique (engendre un minimum d'effets de bord) consiste à collecter cette mémoire physique. Cette mémoire contient alors toutes les méta-données nécessaires à l'analyse des processus tournant sur la machine. On peut également y trouver des traces de processus ayant été lancés jusqu'à dix jours précédents une collecte !

Pour cette collecte, deux méthodes sont habituellement employées :
- avoir au préalable préparer la machine pour pouvoir réaliser un crash dump
- utiliser l'outil dd pour copier octet par octet cette mémoire physique non figée.

Préparation d'un système au crash dump : méthode du "BugCheck trap"

L'article 244239 de la base de connaissances de Microsoft, décrit cette manipulation, qui est uniquement faisable à l'aide d'un clavier standard (non USB et pas de Virtual PC non plus).

Voici un résumé de cette procédure :

1. Démarrez l'Éditeur du Registre (Regedt32.exe).
2. Recherchez la clé suivante dans le Registre :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
3. Dans le menu Edition, cliquez sur Nouveau, Valeur DWORD :
- Nom : CrashOnCtrlScroll
- Type de donnée : REG_DWORD
- Valeur : 1
4. Quittez l'Editeur du Registre et redémarrez le système.
5. Une fois le système redémarré, choisissez un "crash dump" complet :
- Cliquez-droit sur "Poste de travail", puis cliquez sur "Propriétés"
- Cliquez sur l'onglet "Avancé", allez dans la rubrique "Démarrage et récupération", cliquez sur le bouton "Paramètres"
- Allez dans la rubrique "écriture des informations de débogage" et sélectionnez "Image mémoire complète" dans le menu déroulant.

Après le redémarrage de l'ordinateur, vous pourrez créer un fichier Memory.dmp en maintenant la touche CTRL droite enfoncée et en appuyant deux fois sur la touche ARRÊT DÉFIL. Une fois le célèbre écran bleu obtenu, il faut attendre la fin du décompte pour redémarrer le système. L'image de la mémoire physique sera alors récupérable dans le répertoire \%Systemroot\Windows\ sous l'appellation usuelle memory.dmp

Utilisation de "dd" du cédérom HELIX

Dans la partie Windows du cédérom HELIX, une page user friendly permet d'utiliser facilement dd :

Une fois entrer tous les paramètres, vous pouvez presser le bouton Acquire. Une fenêtre d'édition de commande (Shell) apparaît alors. Vous pouvez alors copier la ligne de commande dd dans cette fenêtre à l'aide d'un clic droit et en sélectionnant copier dans le menu contextuel. Pressez entrée pour exécuter la commande.
Une fois la commande finie, vous obtenez trois fichiers dans le répertoire de destination :
- nomfichier.dd– le fichier image
- nomfichier.dd.md5 – un fichier contenant la somme de contrôle MD5 du fichier image.
- Audit.log – un fichier contenant la commande et la sortie du programme.

Aucun commentaire:

Enregistrer un commentaire