🎯 Objectif de la semaine
Maîtriser l'analyse forensique sur disque : comprendre pourquoi les données "effacées" laissent des traces persistantes, apprendre à récupérer des fichiers supprimés via différentes techniques, et maîtriser l'examen des métadonnées critiques. Compléter la forensique mémoire (S33) par l'analyse des supports persistants.
Pourquoi c'est fondamental : 85% des données utilisées en investigation numérique proviennent des disques. La compréhension de la persistance des données est essentielle tant pour l'investigation que pour la destruction sécurisée.
Métadonnées FS] FS --> ID[Inode Table
Métadonnées fichiers] FS --> DT[Data Blocks
Contenu fichiers] FS --> JB[Journal
Transactions] end subgraph "🎯 Zones d'Intérêt Forensique" UN[Unallocated Space
Fichiers supprimés] SL[Slack Space
Fragments résiduels] JM[Journal
Historique opérations] MD[Métadonnées
Timestamps MACB] end DT --> UN DT --> SL JB --> JM ID --> MD style UN fill:#11151f,stroke:#ef4444,stroke-width:3px style MD fill:#11151f,stroke:#00d4ff,stroke-width:2px style JM fill:#11151f,stroke:#9d4edd,stroke-width:2px
📚 Sujet – Théorie (1 heure)
La Persistance des Données : Pourquoi Rien ne Disparaît Vraiment
Contrairement à la mémoire vive (S33), le disque est un support de stockage persistant. Lorsqu'un fichier est "supprimé", seules les références sont effacées, pas le contenu.
🗂️ Le Mythe de la Suppression
Fichier Existant
Inode → Data Blocks
Table d'allocation : ✅
Commande rm
Table d'allocation : ❌
Inode : marqué libre
Data Blocks : ✨ inchangés
Récupération Possible
Carving sur blocs libres
Analyse slack space
Restaurer inode
Écrasement Définitif
Nouvelles données écrites
Même secteur physique
Récupération : impossible
Les 4 Couches de l'Analyse Forensique Disque
Couche Physique
- Secteurs/Clusters
- Bad blocks
- Slack space
- Outils : dd, dc3dd
Couche Système de Fichiers
- Inodes/MFT
- Tables d'allocation
- Journaling
- Outils : fls, istat
Couche Données
- File carving
- Headers/signatures
- Fragmentation
- Outils : photorec, foremost
Couche Temporelle
- Timestamps MACB
- Timeline forensique
- Décalages horaires
- Outils : mactime, plaso
Timestamps MACB : L'Horloge Forensique
⏰ Les Quatre Temps d'un Fichier
| Timestamp | Signification | Modifiable | Valeur Forensique |
|---|---|---|---|
| Modified | Dernière modification contenu | Oui (touch) | Activité éditoriale |
| Accessed | Dernier accès en lecture | Oui | Consultation fichiers |
| Changed | Dernier changement métadonnées | Non | Preuve la plus fiable |
| Born (CrTime) | Création fichier | NTFS seulement | Origine fichier |
Le timestamp Changed est le plus fiable car il ne peut être modifié par l'utilisateur sans outils spécialisés.
Chaîne de Custodie : La Colonne Vertébrale Légale
⚖️ Principes Fondamentaux
- Intégrité : Hash MD5/SHA1 de l'image initiale
- Traçabilité : Qui a touché, quand, pourquoi
- Reproductibilité : Mêmes résultats par différents experts
- Préservation : Travail sur copie, original scellé
Outils de certification : dcfldd (avec hash intégré), guymager (interface professionnelle)
Techniques de Récupération : Undelete vs Carving
🔧 Undelete (TestDisk)
Pour : Fichiers récemment supprimés
Principe : Restauration de l'entrée inode/MFT
Limites : Si inode réutilisé → échec
Réussite : 70-90% si prompt
🪓 Carving (PhotoRec/Foremost)
Pour : Fichiels écrasés/fragmentés
Principe : Recherche signatures binaires
Limites : Fichiers sans header connu
Réussite : 30-60% selon fragmentation
🔬 Mission pratique – Laboratoire (2 heures)
Architecture du Lab Forensique
Station d'analyse] -->|Acquisition| I[📀 Image disque
disk_forensic.img] I --> A1[🧪 TestDisk
Undelete] I --> A2[🎨 PhotoRec
Carving] I --> A3[🔍 Foremost
Signature-based] I --> A4[⏰ Autopsy
Analyse complète] A1 --> R1[📄 Fichiers restaurés] A2 --> R2[🖼️ Images/Documents] A3 --> R3[📊 Métadonnées] A4 --> R4[📋 Rapport complet] style I fill:#0a0e17,stroke:#9d4edd,stroke-width:3px style K fill:#11151f,stroke:#00d4ff,stroke-width:2px
⚠️ Environnement de Travail Forensique
🔒 Travaillez TOUJOURS sur une copie : Jamais sur l'original. Utilisez des outils en mode read-only et documentez chaque étape.
Étapes Détaillées d'Analyse
Étape 1 : Création d'un Scénario Réaliste
# Création dossier de travail
mkdir -p ~/mon_lab/forensic_disque/{evidence,recovery,reports}
cd ~/mon_lab/forensic_disque
# Création d'une image disque "compromise"
dd if=/dev/zero of=disk_compromised.img bs=1M count=500
mkfs.ext4 disk_compromised.img
# Montage et création d'activité suspecte
sudo mkdir -p /mnt/forensic_mount
sudo mount -o loop disk_compromised.img /mnt/forensic_mount
# Simulation d'activité utilisateur normale
cd /mnt/forensic_mount
echo "Document confidentiel projet X" > secret_project.docx
echo "Liste de mots de passe : admin123, root456" > passwords.txt
mkdir -p .hidden/stolen_data
echo "Données volées DB clients" > .hidden/stolen_data/customers.csv
# Création de fichiers avec métadonnées variées
touch -t 202401011200 secret_project.docx # Date de création ancienne
echo "Photo innocente" > vacation.jpg
echo "Script malveillant" > malware.sh
chmod +x malware.sh
# Suppression de fichiers critiques (simulation tentative dissimulation)
rm passwords.txt
rm -rf .hidden/
# Forcer écriture disque
sync
cd ~
sudo umount /mnt/forensic_mount
# Hash de référence pour chaîne de custodie
md5sum disk_compromised.img > original_hash.md5
echo "Image créée: $(date)" >> chain_of_custody.txt
Étape 2 : Acquisition Forensique Professionnelle
📋 Protocole d'Acquisition Standard
# Installation outils forensiques
sudo apt install dcfldd sleuthkit autopsy testdisk photorec foremost -y
# Création image forensique avec hash (meilleure pratique)
sudo dcfldd if=disk_compromised.img \
of=forensic_evidence.img \
hash=md5,sha256 \
hashwindow=10M \
hashlog=forensic_hash.log \
conv=noerror,sync
# Vérification intégrité
echo "=== VÉRIFICATION INTÉGRITÉ ==="
cat forensic_hash.log
md5sum forensic_evidence.img
echo "Les hashs doivent correspondre"
# Copie de travail (toujours travailler sur copie)
cp forensic_evidence.img working_copy.img
Étape 3 : Analyse avec The Sleuth Kit (TSK)
# Analyse système de fichiers
mmls working_copy.img # Affiche table partitions
fsstat working_copy.img # Infos système fichiers
# Liste fichiers (y compris supprimés)
fls -r working_copy.img > files_list.txt
echo "=== FICHIERS SUPPRIMÉS DÉTECTÉS ==="
fls -rd working_copy.img | head -20
# Analyse inodes spécifiques
# Trouver inode d'un fichier supprimé
fls -rd working_copy.img | grep "passwords.txt" | head -1
# Récupérer métadonnées inode (remplacer XX par numéro inode)
istat working_copy.img XX
# Extraction fichier supprimé via inode
icat working_copy.img XX > recovered_passwords.txt
echo "=== CONTENU RÉCUPÉRÉ ==="
cat recovered_passwords.txt
Étape 4 : Récupération avec TestDisk (Undelete)
# Lancement TestDisk (mode interactif)
sudo testdisk working_copy.img
# Instructions pas-à-pas dans TestDisk :
# 1. Choisir "Create" pour nouveau log
# 2. Sélectionner disque/image
# 3. Choisir type partition (Intel/EFI GPT)
# 4. Sélectionner "Analyse" → "Quick Search"
# 5. Appuyer sur "P" pour lister fichiers
# 6. Naviguer avec flèches, "a" pour restaurer
# 7. Choisir destination (../recovery/)
# Alternative ligne de commande (moins complet)
sudo testdisk /list working_copy.img
💡 Astuce TestDisk :
TestDisk excelle pour restaurer des partitions perdues et récupérer des fichiers récemment supprimés avec leurs noms originaux.
Étape 5 : File Carving avec PhotoRec
# Lancement PhotoRec
sudo photorec
# Instructions pas-à-pas dans PhotoRec :
# 1. Sélectionner disque/image (working_copy.img)
# 2. Choisir "No partition", "Whole disk"
# 3. Sélectionner type système fichiers (Other)
# 4. Choisir espace à analyser (Free)
# 5. Sélectionner destination (../recovery/photorec/)
# 6. Appuyer sur "File Opt" pour choisir types fichiers
# 7. "Search" pour démarrer
# Alternative ligne de commande (tout récupérer)
mkdir -p recovery/photorec
sudo photorec /debug /d recovery/photorec /cmd working_copy.img partition_none,fileopt,everything,enable,search
# Analyse résultats
echo "=== FICHIERS RÉCUPÉRÉS PAR PHOTOREC ==="
find recovery/photorec -type f | wc -l
echo " fichiers trouvés"
ls -la recovery/photorec/ | head -10
Étape 6 : Carving Ciblé avec Foremost
# Configuration foremost
sudo foremost -c /etc/foremost.conf -i working_copy.img -o recovery/foremost
# Configuration personnalisée (recherche spécifique)
cat > custom_foremost.conf << EOF
# Recherche fichiers texte avec contenus spécifiques
txt y 1000000 "\x{50}\x{61}\x{73}\x{73}\x{77}\x{6F}\x{72}\x{64}" \x0A\x0D
# Recherche fichiers DOCX
docx y 50000000 PK\x03\x04\x14\x00\x06\x00
# Recherche scripts shell
sh y 1000000 "#!/bin/bash" \x0A
EOF
sudo foremost -c custom_foremost.conf -i working_copy.img -o recovery/foremost_custom
# Analyse résultats
echo "=== STATISTIQUES FOREMOST ==="
cat recovery/foremost/audit.txt | tail -20
Étape 7 : Analyse Temporelle (Timeline)
# Création timeline MACB
fls -r -m / working_copy.img > bodyfile.txt
mactime -b bodyfile.txt -d > timeline.csv
# Analyse timeline
echo "=== TIMELINE FORENSIQUE (dernières 24h) ==="
cat timeline.csv | grep "$(date +%Y-%m-%d)" | head -20
# Recherche d'activité suspecte dans timeline
echo "=== ACTIVITÉS SUSPECTES ==="
cat timeline.csv | grep -E "(malware|secret|hidden|\.\/\..*)" | head -10
Étape 8 : Interface Graphique avec Autopsy
🎯 Défi Autopsy
Lancez Autopsy et importez votre image :
# Lancement Autopsy
sudo autopsy
# Accédez à : http://localhost:9999/autopsy
# Créez un nouveau cas → Ajoutez l'hôte → Importez l'image
# Explorez les fonctionnalités :
# 1. File Manager (fichiers supprimés inclus)
# 2. Keyword Search (mots-clés comme "password")
# 3. File Type Sorting (par type MIME)
# 4. Timeline Analysis (vue chronologique)
# 5. Hash Analysis (fichiers connus/suspects)
Exportez un rapport HTML depuis Autopsy et comparez-le avec vos analyses manuelles.
Exercice Avancé : Analyse Anti-Forensique
🎯 Défi Expert (Optionnel)
Créez un scénario où l'attaquant tente d'effacer ses traces :
- Écrasez des fichiers avec
shred -uoudd if=/dev/urandom - Modifiez les timestamps avec
touch -t - Utilisez des techniques de steganographie
- Tentez de récupérer malgré tout avec des techniques avancées
Documentez ce qui reste récupérable et ce qui ne l'est pas.
Documentation Professionnelle
# Rapport Forensique - Analyse Disque
## Résumé Exécutif
- Image analysée : forensic_evidence.img (MD5: ...)
- Période d'activité : [date début] - [date fin]
- Fichiers récupérés : 42 (dont 15 supprimés)
- Preuves d'activité malveillante : Oui/Non
## Méthodologie
1. Acquisition avec dcfldd (hash MD5/SHA256)
2. Analyse TSK (fls, istat, icat)
3. Récupération TestDisk (undelete)
4. Carving PhotoRec/Foremost
5. Timeline MACB
## Findings Clés
### Finding 01 : Fichiers Supprimés Récupérés
- passwords.txt : contient credentials
- .hidden/stolen_data/ : structure dossier caché
- Preuve de dissimulation intentionnelle
### Finding 02 : Métadonnées Temporelles
- Incohérences timestamps (backdating)
- Activité nocturne anormale
- Fichiers modifiés après suppression logique
### Finding 03 : Artefacts d'Exfiltration
- Fichiers compressés inhabituels
- Logs de connexion réseau
- Fichiers temporaires volumineux
## Recommandations
1. Réinitialisation complète des credentials
2. Audit des systèmes similaires
3. Mise en place monitoring fichiers sensibles
## Annexes
- [Chaîne de custodie complète](chain_of_custody.txt)
- [Hash de vérification](forensic_hash.log)
- [Timeline forensique](timeline.csv)
📋 Objectif de la semaine – Checklist de validation
✅ Compétences techniques acquises
- Acquisition forensique avec dcfldd et hash
- Analyse TSK (fls, istat, icat)
- Récupération fichiers TestDisk
- File carving PhotoRec/Foremost
- Timeline MACB avec mactime
🧠 Changement mental accompli
- Compréhension que "supprimer" ≠ "effacer"
- Habitude systématique de travailler sur copie
- Conscience de l'importance des métadonnées temporelles
- Vision des données comme couches superposées
💪 Pour aller plus loin :
Explorez bulk_extractor pour l'extraction d'informations personnelles, ou Volatility (S33) combiné avec l'analyse disque pour une investigation complète mémoire+disque.
📚 Ressources pour Approfondir
Formation et Certification :
- SANS FOR500 : Windows Forensic Analysis
- GCFE : GIAC Certified Forensic Examiner
- DFIR Training : ressources gratuites en ligne
- TSK Documentation : sleuthkit.org
⚠️ Aspects Légaux et Éthiques
- Mandat légal requis pour analyse forensique
- Chaîne de custodie essentielle pour preuve
- Respect vie privée même en investigation
- Destruction sécurisée après analyse
🔮 Frère d'armes,
Tu viens d'apprendre à lire les souvenirs du disque.
La forensique disque n'est pas une magie – c'est la science de la persistance. Chaque octet écrit, chaque fichier créé, chaque opération effectuée laisse une empreinte. Même quand l'utilisateur croit avoir nettoyé ses traces, le disque se souvient.
Cette semaine, tu as vu la différence entre la suppression logique et l'effacement physique. Tu as compris que rm n'est qu'un mensonge poliment raconté à l'utilisateur. La vérité est dans les blocs de données, dans les inodes marqués libres, dans le slack space où traînent les fragments de secrets.
Mais voici la leçon la plus importante : les données sont comme des fantômes. Elles hantent les espaces libres, elles murmurent dans les métadonnées, elles laissent des empreintes dans le journal. Un enquêteur forensique est un chasseur de fantômes numériques.
Tu n'es plus un simple utilisateur qui formate son disque. Tu es devenu celui qui sait que même après sept formats, des traces peuvent persister. Celui qui comprend que le timestamp "C" est plus fiable que le témoignage humain. Celui qui peut reconstituer une journée complète d'activité à partir de bribes éparses.
Dans la semaine 35, nous irons encore plus loin dans l'analyse. Nous apprendrons à corréler les événements, à reconstruire des chaînes d'action, à passer de la récupération de données à la reconstruction d'incident.
Mais pour l'instant, pratique. Crée des scénarios de plus en plus complexes. Cache des données, puis cherche-les. Écrase des fichiers, puis tente de les récupérer. Comprends les limites de chaque technique.
Un Gardien qui maîtrise la forensique disque sait que rien n'est jamais vraiment perdu – seulement caché.
— Platon-Y