Introduction
Bienvenue dans le monde de la criminalistique numérique (digital forensics). Une partie essentielle de toute enquête est l'acquisition appropriée des preuves numériques. Ce processus implique la création d'une copie exacte, bit pour bit, d'un périphérique de stockage sans altérer les données originales. Il est tout aussi important de garantir l'intégrité de cette copie, prouvant qu'elle n'a pas été falsifiée depuis sa création.
Dans ce laboratoire, vous endosserez le rôle d'un analyste junior en criminalistique. Vous apprendrez à utiliser des outils standard en ligne de commande sous Linux pour effectuer deux des tâches les plus fondamentales en criminalistique numérique : l'acquisition de preuves et la vérification d'intégrité. Nous utiliserons la commande dd pour créer une image disque et sha256sum pour générer une empreinte cryptographique (hash), garantissant ainsi la validité de nos preuves.
Créer une image disque simulée avec dd
Dans cette étape, vous allez créer une image forensique à partir d'un fichier de preuve simulé. En criminalistique numérique, une "image" est une copie bit pour bit d'un disque source. Nous utilisons la commande dd, un utilitaire puissant et polyvalent pour copier et convertir des données. C'est un outil standard en criminalistique car il peut créer une réplique exacte d'un périphérique de stockage, préservant toutes les données, y compris les fichiers supprimés et l'espace résiduel (slack space).
Tout d'abord, naviguons vers notre répertoire de cas et examinons le fichier de preuve original qui a été préparé pour vous.
cd ~/project/forensics_case
ls -lh
Vous devriez voir un fichier nommé original_evidence.dd.
-rw-rw-r-- 1 labex labex 11M Aug 5 15:28 original_evidence.dd
Maintenant, utilisons dd pour créer une image de ce fichier. Nous nommerons notre image evidence_image.img.
if=original_evidence.dd: Spécifie le fichier d'entrée (input file).of=evidence_image.img: Spécifie le fichier de sortie (output file).bs=4096: Définit la taille du bloc (block size) à 4096 octets. C'est une taille de bloc courante et elle peut affecter les performances.
Exécutez la commande suivante :
dd if=original_evidence.dd of=evidence_image.img bs=4096
La commande affichera le nombre d'enregistrements en entrée et en sortie, ainsi que le total des octets copiés.
2560+1 records in
2560+1 records out
10485809 bytes (10 MB, 10 MiB) copied, 0.0130138 s, 806 MB/s
Maintenant, listez à nouveau les fichiers pour voir l'original et l'image nouvellement créée.
ls -lh
Vous verrez que evidence_image.img a exactement la même taille que original_evidence.dd, ce qui est un bon premier signe que notre copie a réussi.
-rw-rw-r-- 1 labex labex 11M Aug 5 15:43 evidence_image.img
-rw-rw-r-- 1 labex labex 11M Aug 5 15:28 original_evidence.dd
Calculer les hashes des fichiers originaux et de l'image
Dans cette étape, vous allez vérifier l'intégrité de l'image forensique que vous venez de créer. Avoir une copie n'est pas suffisant ; nous devons pouvoir prouver que la copie est une réplique exacte et inaltérée de l'original. Pour ce faire, nous calculons une empreinte cryptographique (hash) pour le fichier original et pour l'image.
Une fonction de hachage prend une entrée (dans notre cas, le contenu du fichier) et produit une chaîne de caractères de taille fixe, qui est le "hash". Même un changement minime dans le fichier d'entrée entraînera un hash complètement différent. Si le hash du fichier original et le hash du fichier image correspondent, nous pouvons être certains que la copie est parfaite. Nous utiliserons la commande sha256sum, qui implémente l'algorithme de hachage SHA-256.
Tout d'abord, calculez le hash SHA256 du fichier de preuve original :
sha256sum original_evidence.dd
La sortie sera une longue chaîne de caractères (le hash) suivie du nom du fichier.
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a original_evidence.dd
Ensuite, calculez le hash du fichier image que vous avez créé :
sha256sum evidence_image.img
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a evidence_image.img
Comparez les deux hashes. Ils doivent être identiques. C'est la preuve mathématique que votre evidence_image.img est une copie fidèle et exacte de original_evidence.dd.
Pour une documentation appropriée, il est de bonne pratique de sauvegarder ces hashes dans un fichier journal (log file). Faisons-le maintenant.
sha256sum original_evidence.dd evidence_image.img > hashes.txt
Maintenant, affichez le contenu de votre fichier journal des hashes.
cat hashes.txt
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a original_evidence.dd
55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a evidence_image.img
Ce fichier hashes.txt est un élément de documentation crucial pour votre dossier.
Extraire les métadonnées de base des fichiers, telles que les horodatages
Dans cette étape, nous allons examiner les métadonnées du fichier. Les métadonnées sont des "données sur les données" et peuvent fournir un contexte crucial lors d'une enquête. Pour les fichiers, cela inclut des informations telles que l'heure de création, l'heure de dernière modification et l'heure de dernier accès. Ces informations sont souvent désignées par les horodatages MAC (Modify, Access, Change - Modification, Accès, Changement).
Nous utiliserons la commande stat pour afficher ces informations détaillées. La commande stat affiche l'état d'un fichier ou d'un système de fichiers.
Regardons d'abord les métadonnées du fichier original_evidence.dd.
stat original_evidence.dd
La sortie fournit une mine d'informations, mais concentrons-nous sur les horodatages.
File: original_evidence.dd
Size: 10485809 Blocks: 20488 IO Block: 4096 regular file
Device: 7eh/126d Inode: 11210686 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 5000/ labex) Gid: ( 5000/ labex)
Access: 2025-08-05 15:43:57.680473291 +0800
Modify: 2025-08-05 15:28:59.196596566 +0800
Change: 2025-08-05 15:28:59.196596566 +0800
Birth: 2025-08-05 15:28:59.164595416 +0800
Maintenant, faisons de même pour notre evidence_image.img.
stat evidence_image.img
File: evidence_image.img
Size: 10485809 Blocks: 20488 IO Block: 4096 regular file
Device: 7eh/126d Inode: 11206338 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 5000/ labex) Gid: ( 5000/ labex)
Access: 2025-08-05 15:44:14.001048192 +0800
Modify: 2025-08-05 15:43:57.692473714 +0800
Change: 2025-08-05 15:43:57.692473714 +0800
Birth: 2025-08-05 15:43:57.680473291 +0800
Remarquez que si le contenu du fichier est identique (comme prouvé par le hash), les métadonnées ne le sont pas. Les horodatages de evidence_image.img reflètent quand l'image a été créée, et non quand le fichier original a été créé ou modifié. C'est un comportement attendu et il est important de le documenter. Cela montre quand vous, l'enquêteur, avez effectué l'acquisition.
Générer un journal de chaîne de possession pour les preuves acquises
Dans cette dernière étape, vous allez créer un journal simple de chaîne de possession (Chain of Custody). La chaîne de possession est l'un des documents les plus critiques en forensique. Il s'agit d'un enregistrement chronologique qui détaille la saisie, la garde, le contrôle, le transfert, l'analyse et la disposition des preuves. Une chaîne de possession bien entretenue prouve que les preuves ont été manipulées correctement et n'ont pas été altérées.
Bien qu'un formulaire de chaîne de possession réel soit plus complexe, nous pouvons créer un journal textuel de base pour documenter nos actions. Ce journal doit inclure des informations clés sur les preuves et le processus d'acquisition.
Nous utiliserons la commande echo pour écrire des informations dans un fichier nommé chain_of_custody.log. Nous devrons collecter quelques informations :
- Numéro de dossier (Case Number) : Un identifiant unique pour l'enquête. Nous utiliserons
CASE-001. - Description de l'élément (Item Description) : Ce qu'est la preuve.
- Date/Heure d'acquisition (Date/Time of Acquisition) : Nous pouvons l'obtenir en utilisant la commande
date. - Acquis par (Acquired by) : L'analyste qui a effectué l'acquisition. Nous utiliserons la sortie de la commande
whoami. - Hash SHA256 (SHA256 Hash) : Le hash de l'image acquise, que nous obtiendrons de notre fichier
hashes.txt.
Créons le journal. Nous utiliserons echo avec l'opérateur > pour créer le fichier et ajouter la première ligne, puis >> pour ajouter les lignes suivantes. Tout d'abord, récupérons le hash de notre fichier image.
IMAGE_HASH=$(grep 'evidence_image.img' hashes.txt | cut -d ' ' -f 1)
Maintenant, créons le fichier journal avec toutes les informations nécessaires.
echo "--- CHAIN OF CUSTODY ---" > chain_of_custody.log
echo "Case Number: CASE-001" >> chain_of_custody.log
echo "------------------------" >> chain_of_custody.log
echo "Item ID: 1" >> chain_of_custody.log
echo "Description: Forensic image of original_evidence.dd" >> chain_of_custody.log
echo "Acquired By: $(whoami)" >> chain_of_custody.log
echo "Acquisition Date: $(date)" >> chain_of_custody.log
echo "SHA256 Hash: $IMAGE_HASH" >> chain_of_custody.log
echo "--- END OF LOG ---" >> chain_of_custody.log
Enfin, affichez votre journal de chaîne de possession complété.
cat chain_of_custody.log
Votre sortie devrait ressembler à ceci :
--- CHAIN OF CUSTODY ---
Case Number: CASE-001
------------------------
Item ID: 1
Description: Forensic image of original_evidence.dd
Acquired By: labex
Acquisition Date: Tue Aug 5 15:44:43 CST 2025
SHA256 Hash: 55a290c58509790860da55a47256188865bdd8dd5cbf7cd5c4b95cb5264f109a
--- END OF LOG ---
Vous avez maintenant créé un document de base mais essentiel qui enregistre vos actions et préserve l'intégrité des preuves.
Résumé
Dans ce laboratoire, vous avez réussi à effectuer les étapes fondamentales d'acquisition et de vérification d'intégrité des preuves numériques.
Vous avez appris à :
- Utiliser la commande
ddpour créer une image forensique bit à bit d'une source de données. - Utiliser la commande
sha256sumpour calculer des sommes cryptographiques afin de prouver que l'image forensique est une réplique exacte de la preuve originale. - Utiliser la commande
statpour examiner les métadonnées des fichiers, telles que les horodatages, qui sont cruciales pour comprendre l'historique d'un fichier. - Créer un journal de chaîne de possession de base pour documenter la manipulation des preuves, une exigence critique pour les procédures judiciaires.
Ces compétences sont le fondement d'une pratique forensique numérique rigoureuse. En veillant à ce que les preuves soient acquises correctement et que leur intégrité soit maintenue, vous posez les bases d'une enquête réussie.



