lid's Wiki

Définition, historique

Origines

Tout d'abord, le terme de Forensique (qui découle de l'anglais forensic, lui même dérivé du latin forum, signifiant "place publique" mais aussi "lieu de jugement") recouvre plusieurs disciplines, et donc ne se limite pas à l'informatique:

La forensique au sens général du terme découle de l'analyse scientifique de cas et a pour but, par une recherche intensive d'informations, de découvrir et mettre en lumière toute information inconnue au début de l'investigation, permettant ainsi:

L'informatique forensique

Aussi appelée investigation numérique, l'informatique forensique a pour but de récupérer et analyser matériels, supports de stockage, mais aussi comptes en ligne (mail, réseaux sociaux), deepfakes, cryptomonnaies, et les traces de communications (logs, analyse de flux, déchiffrement de communications chiffrées - ou décryptage si l'on ne dispose pas des clefs de déchiffrement, transferts entre portefeuilles de cryptomonnaies, etc) en général dans le cadre d'une enquête suite à un crime ou délit comportant une composante numérique.

On retrouve aussi l'informatique forensique en entreprise, le but étant alors d'examiner intrusions, attaques et compromissions du système d'information de l'entreprise afin de mesurer l'impact de ces actions délictuelles ou criminelles sur la sécurité de l'entreprise et de ses données.

En général, les informations recueillies lors de ces investigations vont servir à confirmer ou infirmer diverses hypothèses qui seront par la suite présentées devant un tribunal.

Informatique Légale

La forensique découle de l'informatique légale, qu'on appelle aussi informatique judiciaire. Il s'agit de l'application des méthodologies de la forensique aux procédures légales, dans le but d'apporter les preuves numériques nécessaires à une investigation policière ou judiciaire.

Dans ces cas, il est nécessaire d'adapter les méthodologies de la forensique aux procédures légales, notamment en apportant un soin tout particulier à la conservation des preuves. Le but est alors d'analyser et collecter le plus d'informations pertinentes possibles sur les différents supports et matériels (en général saisis par la justice, donc placés sous scellés) afin de les produire dans le cadre d'une action en justice.

Éléments de terminologie de l'informatique légale, rapports

des différentes informations et métadonnées collectées sur les supports de données disponibles visant à la production de preuves:

Lors de vos investigations, vous produirez des rapports, parmi lesquels:

Tout manquement dans l'établissement de ces rapports et dans le respect des méthodologies peut conduire à un défaut de procédure et donc à l'annulation d'une procédure judiciaire, avec les conséquences que cela peut impliquer pour les potentielles victimes qui se voient refuser la justice à laquelle ces victimes ont légitimement droit.

Dès lors, il est extrêmement important de bien veiller, lors d'une analyse forensique découlant d'une demande judiciaire, de bien respecter les procédures nécessaires afin de garantir la validité des preuves numériques fournies et de ne pas risquer d'entraver le déroulement de la justice. Ce qui nous conduit à:

Méthodologies de l'informatique forensique

Analyse à froid

Dans l'analyse à froid, on va copier toutes les données à analyser sur un support dédié. Par exemple, on va cloner un disque dur dans une image disque, afin de ne pas intervenir sur le matériel compromis directement et ainsi de ne pas risquer de détruire des preuves potentielles.

Par exemple, dans le cadre d'une VM compromise, on travaillera sur son clone (il est aisé depuis un hyperviseur de copier disque virtuel et RAM d'une VM en cours de fonctionnement). Dans le cas d'un support de stockage, on travaillera sur une image de ce support.

On pourra aussi travailler sur des dumps de la mémoire d'une machine compromise afin d'analyser son contenu: on peut ainsi trouver des clefs de chiffrement, des mots de passe, des logiciels malveillants, etc.

Dans le cadre d'un support d'information de type disque dur ou autre, et lorsqu'on travaille sur une image (idéalement une copie pure et parfaite du support), il est aussi important de bien penser à rechercher les fichiers qui auraient été supprimés (si leurs inodes ont été supprimés, leur contenu est probablement encore présent sur le support).

Éléments de terminologie

Copie-image

Une copie-image est une copie bit-à-bit d'un support d'information, y compris les espaces non utilisés. C'est le bon vieux dd if=/dev/sdb of=mydisk.img dans toute sa splendeur.

Lorsque cette copie-image est réalisée dans le cadre d'une procédure judiciaire, elle doit être une copie pure et parfaite:

Copie pure et parfaite

Une copie pure et parfaite d'un support d'information l'est quand son empreinte numérique est identique à l'empreinte numérique du support d'information dont elle est la copie:

Empreinte numérique

Une empreinte numérique, c'est le hash d'une information ou d'un support numérique. Pour justifier qu'une copie-image est une copie pure et parfaite d'un support d'information, on utilisera deux algorithmes différents de hashage.

Analyse à chaud

L'analyse à chaud, elle, consiste à travailler directement sur le matériel à analyser. Cette méthode, plus risquée du fait de la possibilité de destruction d'informations et donc de preuves potentielles, peut cependant s'avérer nécessaire lorsque l'on désire analyser directement la RAM ou les processus en fonctionnement, ou le firmware d'une machine compromise.

Dans le cas d'une machine virtuelle, cependant, il est aisé de cloner configuration, RAM et support de stockage d'une VM en cours d'exécution afin d'en obtenir une copie pure et parfaite permettant de mener ses investigations sans risque de détruire de potentielles preuves.

Analyse temps-réel

Il s'agit ici d'un mécanisme de prévention, son but étant alors d'analyser, détecter et comprendre en temps réel le mécanisme d'une attaque pendant qu'elle se produit (notamment dans le cas d'une attaque réseau).

Outils de l'analyse forensique

Outils Open-Source

Liste largement (très largement) inspirée du lien suivant: https://github.com/cugu/awesome-forensics

Distributions linux dédiées

Outils Propriétaires

TP 1: Analysons un dump mémoire Windows (analyse à froid)

Objectif: récupérons la clef de chiffrement de bitlocker dans le dump mémoire, c'est à dire la FVEK (Full Volume Encryption Key)! Comme toujours, cela signifie que si quelqu'un accède physiquement à votre machine (et qu'elle soit sous Windows, Linux, macOS, BSD, Plan9, Haiku ou autre) sans que vous en soyez conscient, on peut considérer qu'elle est compromise.

Tout d'abord, sur une VM Windows (dump fourni si nécessaire), téléchargez WinPMem (winpmem-mini fera l'affaire), puis, dans Powershell:

cd Downloads
winpmem... -2 memdump.raw

Transférez ensuite le fichier memdump.raw (par exemple, via SSH), sur la VM linux qui va nous servir à analyser ce dump.

On va ensuite installer MemProcFS sur notre VM (debian trixie, ici) de test:

sudo apt install libusb-1.0-0 libfuse2t64 lz4

On va ensuite aller télécharger l'exécutable pré-compilé de memprocfs:

mkdir memprocfs
cd memprocfs
wget https://github.com/ufrisk/MemProcFS/releases/download/v5.16/MemProcFS_files_and_binaries_v5.16.7-linux_x64-20251113.tar.gz
tar xvzf MemProcFS_files_and_binaries_v5.16.7-linux_x64-20251113.tar.gz

Enfin, on va monter notre dump mémoire dans un répertoire /home/user/mnt:

mkdir ~/mnt
sudo ./memprocfs -device /home/user/dump/memdump.raw \
  -mount /home/user/mnt
sudo -s
cd /home/user/mnt
ls
ls misc/bitlocker/
ffffa00f32e44050.bin  ffffa00f32e44050.fvek  ffffa00f32e44050.txt  readme.txt
cat misc/bitlocker/ffffa00f32e44050.txt
Bitlocker plugin for MemProcFS:                                             
===============================                                             
                                                                            
The BitLocker plugin tries to recover BitLocker key material from memory.   
                                                                            
The MemProcFS BitLocker plugin is to some degree inspired by the excellent  
Volatility plugin at: https://github.com/breppo/Volatility-BitLocker        
                                                                            
To mount a bitlocker drive please use Linux dislocker. You may mount with   
the recovered key material in the .fvek file by:                            
dislocker -k <recovered_key>.fvek /path/to/disk /path/to/dislocker          
mount /path/to/dislocker/dislocker-file /path/to/mount                      
                                                                            
The plugin works best analyzing Windows 7 and Windows 10/11 targets.        
Windows 8 support is more error prone - but will most often work.           
---                                                                         
Documentation: https://github.com/ufrisk/MemProcFS/wiki/FS_BitLocker        
root@deb-memprocfs:/home/lidstah/mnt/misc/bitlocker# cat ffffa00f32e44050.txt
Address: 0xffffa00f32e44050
Cipher:  AES-XTS 128-bit
Key:     5c57b8d9dea69394c99a395b75f478238d8e22adfdbfa4ec519c1ccf3b50447a

Attention, le ls peut être très lent. Votre VM linux devrait avoir 8Go de RAM, et si vous l'exécutez sur un hyperviseur type KVM/QEMU (proxmox, libvirt, incus, etc), il faut utiliser le type de CPU "Host" (x86-64-v2-AES et autres produiront une erreur d'instruction illégale 😃 - l'hyperviseur n'aime pas les blagues où on fait un peu trop joujou avec certaines instructions CPU). Dans ce cas ce qui nous intéresse plus, c'est le fichier .fvek qui contient les informations que nous pourrons utiliser par la suite avec un logiciel de type dislocker.

Et voilà comment on récupère les informations de Bitlocker depuis un dump mémoire Windows 😃

On peut aussi activer le mode forensic -forensic X avec X de 1 à 4.

De même, on va avoir accès à pas mal de choses:

Le tout, analysable et parcourable comme un système de fichiers classique. Plutôt cool, non? 🤤

TP 2: analysez une machine virtuelle Linux compromise (à chaud)

Ici on part du principe que vous travaillez sur un clone d'une VM soupçonnée d'être compromise, que nous aurons placée dans un VLAN isolé, la VM d'origine ayant été mise en pause par le VMM (aka hyperviseur). Il s'agit donc d'une analyse "quasiment à chaud". Volontairement je ne vous donne pas d'indices pendant la première partie de cet exercice, cependant si vous bloquez au bout de la moitié du temps imparti je vous fournirai de plus amples informations afin de vous débloquer.

Étape 1: connexion à Netbird pour accéder au VxLAN SDV sur mon homelab 😀

Tout d'abord, je vais créer un compte netbird qui vous donnera accès au réseau "sdvnet" sur mon laboratoire personnel.

Ce compte sera nommé m2-sdv@supdevinci.net. Le mot de passe et le secret TOTP vous seront transmis pendant la séance: prenez bien soin de les noter!

Idéalement, je préfèrerai vous fournir des comptes individuels, mais comme il s'agit d'un compte temporaire qui sera désactivé puis supprimé à la fin du module, ça fera l'affaire.

Ensuite, il faudra me transmettre vos clefs publiques SSH.

Je créerai ensuite un compte SSH par groupe d'investigation sur la machine "compromise" afin que vous puissiez vous y connecter en SSH proprement 😉, et les ajouterai au groupe sudo pour que vous soyiez sudoers.

À partir de là, et une fois connecté à Netbird, vous devriez pouvoir vous connecter à la VM de la sorte:

ssh nomdugroupe@192.168.67.25
Linux deb-forensics-playground 5.10.0-36-amd64 #1 SMP Debian 5.10.244-1 (2025-09-29) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Nov 16 14:07:18 2025
nomdugroupe@deb-forensics-playground:~$

Oui, c'est une Debian Bullseye, il y a une bonne raison à ça… cough cough 😁

Étape 2: analysez la VM et présentez votre rapport d'investigation

Recherchez informations, logiciels suspects, comptes utilisateurs potentiellement compromis, etc et produisez un rapport d'investigation décrivant:

Indice

Janklode, l'utilisateur qui pense avoir été compromis suite au vol de son laptop non chiffré, a remarqué un répertoire "funpics" dans son répertoire utilisateur qui n'y était pas avant.

Il y a peut-être un indice dans une des images…

N'installez pas de programmes superflus, tout ce dont vous avez besoin est déjà installé. Dans la vraie vie, n'oubliez pas qu'on ne veut pas modifier ou altérer une potentielle preuve.

Si vous êtes bloqués, je peux vous donner un indice. Bien évidemment, ne le communiquez pas aux autres groupes!

Bonus

Trouvez l'identité du coupable - il y a quelques indices disséminés dans le filesystem.

TP 3: petits groupes

Red Team: préparez une VM (Windows ou Linux) compromise

Quelques règles à respecter quand même:

Blue Team: Analysez la VM d'un autre groupe, et produisez un rapport d'investigation

Vous devrez analyser la VM compromise de votre équipe Red Team binôme et produire un rapport d'investigation qui devra décrire: