![]() |
![]() |
|||||||||||||||||||||
Accueil
Articles
Logiciels
Liens |
Un peu d'investigation numérique avec FreeBSD et VirtualBoxRésumé : L'objectif de cet article est d'illustrer les capacités du couple FreeBSD / VirtualBox pour la réalisation d'investigations numériques. Public visé : Le contenu, plutôt technique, s'adresse aux praticiens ou aux curieux. Si vous appartenez aux commanditaires potentiels d'opérations de ce type, chinez parmi les puces d'exemples (à partir de la troisième partie) pour vous faire une idée des résultats envisageables. 1) Obtenir une image exacte d'un disque durUne relation m'a récemment demandé de lui donner un coup de main pour "faire parler" un disque dur, ce que dans le jargon des experts judiciaires on appelle de l'investigation numérique (légale) (ou plus couramment, du computer forensics en VO). Comme toujours dans ces cas-là, le premier souci est d'obtenir une image exacte du disque dur, sans modifier celui-ci, ce qui permettra ensuite de faire toutes les analyses voulues sans plus toucher au disque d'origine. Lorsqu'on n'est pas dans la situation où l'on veut récupérer les données (en mémoire vive) d'un système en cours de fonctionnement, le plus simple est de redémarrer la machine analysée sur un LiveCD (après s'être bien sûr assuré que le paramétrage de son BIOS la fera démarrer en priorité sur CD/DVD). Le LiveCD proposé par le projet FreeBSD est tout à fait adapté à cet usage. Alternativement, on peut retirer le disque dur à analyser de sa machine d'origine et le monter dans une machine d'analyse en tant que disque secondaire, mais dans ce cas il faut vérifier attentivement que le système contenu sur le disque ne servira pas à amorcer la machine d'analyse (ce qui peut arriver selon l'ordre de priorité des disques IDE, SATA ou SCSI) et que le système de la machine d'analyse ne modifiera pas le contenu du disque dur à analyser avant que l'on ait pu en faire une image (ce qui peut arriver quand celui-ci gère des systèmes de fichiers de même nature que ceux à analyser), raisons pour lesquelles je préfère la première méthode... Après avoir booté sur le CD, il suffit de choisir le pays ("France") et le clavier à utiliser ("French ISO (Accent)"),
puis l'option "Fixit" :
puis le fonctionnement à partir du CD :
avant d'accéder au prompt : A partir de là, on pourrait imaginer d'employer une foultitude d'outils de création d'images de disques durs (notamment pour les cas où les disques ont des défauts), mais le plus simple et le plus universel reste encore la commande Unix dd (abréviation de Disk Dump). La syntaxe précise à utiliser dépend du media sur lequel vous allez faire la copie :
A toutes fins utiles, pensez à noter la géométrie du disque dur et le nombre de secteurs jusqu'à la partition susceptible de vous intéresser, avant d'arrêter le système :
2) Obtenir une image virtuelle du disque et/ou de ses partitionsAvant de commencer les analyses, il nous reste à préparer une image virtuelle (c'est-à-dire utilisable avec un logiciel de virtualisation tel que VirtualBox, VMware, Hyper-V, etc.) à partir de notre image disque, ce qui nous permettra ultérieurement d'étudier celle-ci avec des outils natifs au(x) système(s) d'exploitation qu'elle contient. Après avoir transféré l'image disque précédemment réalisée sur son système FreeBSD préféré, il suffit en théorie de mapper cette image sur un périphérique md (Memory Disk). Cette opération s'effectue habituellement avec une commande du type :
Où le chiffre derrière l'option -u détermine le numéro du périphérique md à utiliser (md0 dans cet exemple) et le chiffre en fin de variable PARTITION détermine le numéro de la partition à analyser (la première partition, md0s1, dans cet exemple). Petite subtilité à prévoir : de temps à autre, des problèmes de géométrie de disque ne permettront pas au système de reconnaître directement les partitions contenues dans une image disque et de créer les périphériques mdXsY nécessaires. Dans ce cas, pas de panique, il suffit d'extraire la partition qui nous intéresse de l'image disque en sautant le nombre de secteurs jusqu'à son début. Dans l'exemple de géométrie précédemment indiqué, la partition commencait au 64ème secteur de 512 octets (512 étant la valeur par défaut pour dd, vous pouvez omettre le bs=512 dans ce qui suit, si c'est la valeur que vous indique votre disque dur) :
Pour obtenir l'image virtuelle proprement dite, nous allons utiliser la version Open Source de VirtualBox (que vous pouvez installer par un simple : pkg_add -r virtualbox-ose), et ce quel que soit le logiciel de virtualisation que vous voudrez ensuite utiliser, puisque vous noterez que VirtualBox sait produire par P2V (Physical to Virtual) des images virtuelles pour lui-même (format VDI), pour VMware (format VMDK) et pour Hyper-V (format VHD) :
Par exemple, pour obtenir une image virtuelle dynamique (où seuls les secteurs utilisés occupent de l'espace disque) pour VirtualBox, vous utiliserez la commande :
Si, en revanche, vous souhaitez obtenir une image virtuelle statique (avec tous les secteurs) pour VirtualBox, vous utiliserez la commande :
Si vous comptez tenter une récupération des fichiers effacés sur le disque à analyser, c'est cette seconde option que vous devez utiliser. Dans l'exemple ci-dessus, j'ai naturellement pris soin de vérifier que VirtualBox reprenait bien la totalité des secteurs d'origine (je n'ai pas fait cette vérification pour les formats VMDK et VHD). 3) Premières analyses de l'image depuis FreeBSDSelon le système de fichier utilisé, il faut utiliser l'une des commandes mount_ pour accéder aux fichiers contenus sur la partition qui nous intéresse. Dans le cas des systèmes de fichiers NTFS et FAT32 qui sont les plus couramment rencontrés sur les disques à analyser :
Ou :
Pour des types de partitions plus exotiques, il vous faudra peut-être installer et utiliser le package fusefs... A partir de là, on peut selon vos objectifs imaginer de mener toutes sortes de traitements et analyses, par exemple :
La bibliothèque logicielle de FreeBSD contient plein d'autres utilitaires intéressants pour la réalisation d'investigations numériques, parmi lesquels on peut notamment citer :
4) Analyses de l'image avec des outils natifs de son système d'exploitationMême s'il est très pratique d'analyser un système de fichier tiers (Windows le plus souvent) à partir d'un système d'exploitation Unix (qui est, bien plus qu'un simple système d'exploitation, en soi un véritable système de traitement de données en masse), certains traitements et analyses ne sont aujourd'hui disponibles que dans l'environnement natif du système d'exploitation analysé. Le principe général pour ces opérations est :
Après avoir démarré cette instance dans votre logiciel de virtualisation préféré, vous pourrez procéder à tous les traitements et analyses souhaités, par exemple :
5) Analyses du comportement de l'image en bac à sableIl me reste à signaler une variante intéressante du cas précédent : l'utilisation directe de l'image disque virtuelle dans votre logiciel de virtualisation (donc en disque primaire). Selon vos objectifs, il sera alors intéressant d'utiliser un pare-feu dans votre système hôte pour soit bloquer, soit intercepter (et stocker) tout le trafic réseau en entrée ou sortie de la machine virtuelle (on peut certes le faire également avec un pare-feu ou une sonde réseau disposés en coupure sur une autre machine, mais si vous utilisez VirtualBox sous FreeBSD, vous avez déjà sous la main tout ce qu'il faut pour faire ce genre de chose, y compris en utilisant le pare-feu du système en mode "pont" pour plus de discrétion). Parmi les utilisations possibles (mais un peu plus complexes que ce qui a été évoqué jusqu'ici), on peut par exemple citer :
Voilà, j'arrête-là ces exemples puisque mon propos était simplement d'illustrer les capacités du couple FreeBSD / VirtualBox pour la réalisation d'investigations numériques. Comme dans ces affaires les traitements et analyses à réaliser dépendent beaucoup de la mission qui vous est confiée, il ne me reste plus qu'à vous souhaiter créativité, intuition et chance pour adapter ces techniques à vos cas de figure et exhumer tous les secrets enfouis dans les médias à analyser.
--
Si par hasard l'un des liens externes ne fonctionnait plus, tentez votre chance sur la machine à voyager dans le temps d'Internet ! |