| name | disk-forensics-imaging |
| description | Guide complet d'imagerie disque forensique — dd, dcfldd, ddrescue, EWF, AFF, formats d'image, write-blockers, acquisition réseau, chaîne de custody, et vérification d'intégrité |
| tags | ["forensics","disk-imaging","dd","ewf","aff","write-blocker","chain-of-custody","acquisition"] |
| version | 1 |
Imagerie Disque Forensique — Guide Complet
Guide exhaustif des techniques d'acquisition et d'imagerie de supports de stockage pour l'investigation numérique.
1. Principes Fondamentaux
Règles d'Or de l'Acquisition
RÈGLE #1 : NE JAMAIS TRAVAILLER SUR L'ORIGINAL
Toujours travailler sur une copie forensique (image bit-à-bit)
RÈGLE #2 : HASHER AVANT ET APRÈS
Hash lecture (source) = Hash écriture (image)
RÈGLE #3 : WRITE-BLOCKER OBLIGATOIRE
Aucune écriture sur le disque source, même accidentelle
RÈGLE #4 : DOCUMENTER
Chaîne de custody, outil, date, personne, hash
Types d'Acquisition
1. Acquisition physique (bit-for-bit)
→ Copie chaque secteur du disque, y compris l'espace non alloué
→ Inclut les fichiers supprimés, slack space, MFT résiduel
→ Taille = taille totale du disque
2. Acquisition logique
→ Copie seulement les fichiers visibles
→ Ne capture pas les fichiers supprimés
→ Taille = somme des fichiers
3. Acquisition par fichier (targeted)
→ Copie des fichiers spécifiques
→ Utile pour le cloud/partage réseau
→ Format .ad1 (AccessData)
2. Write-Blockers (Protection en Écriture)
Hardware Write-Blockers
┌────────────────────────────────────┐
│ Tableau T8u │
│ SATA / SAS / USB 3.0 / IDE │
│ USB 3.0 host interface │
│ Display LCD avec statut │
└────────────────────────────────────┘
┌────────────────────────────────────┐
│ WiebeTech Forensic UltraDock │
│ SATA / SAS / USB / eSATA │
│ Hot-swappable, HDD/SSD │
│ Write-block confirmé par LED │
└────────────────────────────────────┘
mount | grep /dev/sdb
Software Write-Blockers
sudo mount -o ro /dev/sdb1 /mnt/evidence/
sudo mount -o ro,noexec,loop image.dd /mnt/loop/
3. Outils CLI d'Acquisition
dd — L'outil fondateur
dd if=/dev/sda of=/evidence/image.dd bs=4M conv=noerror,sync status=progress
dd if=/dev/sda of=/mnt/nas/evidence/case001.dd \
bs=4M conv=noerror,sync status=progress
dd if=/dev/sda2 of=/evidence/partition_c.dd \
bs=4M conv=noerror,sync status=progress
dd if=/dev/sda bs=4M conv=noerror,sync | \
tee >(sha256sum > /evidence/image.sha256) \
> /evidence/image.dd
dd if=/evidence/image.dd bs=4M | sha256sum
dcfldd — dd amélioré (US DoD)
sudo apt install dcfldd
dcfldd if=/dev/sda of=/evidence/image.dd \
hash=md5,sha256 \
hashlog=/evidence/hashlog.txt \
bs=4M \
conv=noerror,sync \
status=on
dcfldd if=/dev/sda \
of=/evidence/image.dd \
of=/mnt/nas/backup/image.dd \
hash=sha256 \
hashlog=/evidence/hashlog.txt
dcfldd if=/dev/sda of=/evidence/image.dd \
bs=4M \
hash=sha256 \
hashwindow=100M \
hashlog=hashlog.txt \
statusinterval=1
ddrescue — Sauvetage de disques défectueux
sudo apt install gddrescue
sudo ddrescue -d /dev/sda /evidence/image.dd /evidence/rescue.log
sudo ddrescue -d -r3 /dev/sda /evidence/image.dd /evidence/rescue.log
sudo ddrescue -d -r5 -T 1m /dev/sda /evidence/image.dd /evidence/rescue.log
ddrescue --show-status /evidence/rescue.log
4. Formats d'Image Forensique
RAW/DD (.dd, .raw, .img)
dd if=/dev/sda of=/evidence/image.dd bs=4M
EWF (Expert Witness Format) — .E01
ewfacquire /dev/sda -t /evidence/image.e01 \
-C "INC-2024-001" \
-N "Disk suspect - PC Principal"
-e "EVA-MASTER" \
-d sha256 \
-S 650MB \
-c fast
ewfinfo /evidence/image.e01
ewfverify /evidence/image.e01
ewfexport /evidence/image.e01 /evidence/exported.dd
ewfmount /evidence/image.e01 /mnt/ewf/
AFF (Advanced Forensic Format)
aimage /dev/sda /evidence/image.aff
affinfo /evidence/image.aff
affverify /evidence/image.aff
affconvert -i /evidence/image.e01 -o /evidence/image.aff
SMART (Segmented)
Comparaison des Formats
| Format | Compression | Hash intégré | Métadonnées | Segmentation | Universel |
|---|
| RAW/DD | Non | Non | Non | Non | Oui ✓ |
| E01 | Oui (deflate) | MD5+SHA1 | Oui | Oui (650MB) | Oui (ewftools) |
| AFF | Oui (LZMA) | SHA256 | Oui (XML) | Oui | Oui |
| AFF4 | Oui (LZMA) | SHA256 | Oui (RDF) | Oui | Partiel |
| SMART | Oui | SHA1 | Oui | Oui | Non (FTK) |
5. Acquisition en Réseau
Acquisition via Netcat
nc -l -p 9999 | tee image.dd | sha256sum > image.sha256
sudo dd if=/dev/sda bs=4M conv=noerror,sync | nc 192.168.1.100 9999
cryptcat -l -p 9999 -k "password" > image.dd
Acquisition via SSH
ssh examiner@forensic-box "dd if=/dev/sda bs=4M" | \
tee /evidence/image.dd | sha256sum
ssh target "./nc 192.168.1.100 9999 < /dev/sda" &
nc -l -p 9999 | tee image.dd | sha256sum
Acquisition via iSCSI / SAN
iscsiadm -m discovery -t st -p 192.168.1.50
iscsiadm -m node -T iqn.2005-08:target -l
echo 1 > /sys/block/sdX/device/read-only
dd if=/dev/sdX of=/evidence/san_image.dd bs=4M
6. Acquisition de Supports Spécifiques
SSD NVMe
sudo nvme id-ctrl /dev/nvme0 | grep -i trim
dd if=/dev/nvme0n1 of=/evidence/ssd_image.dd bs=4M conv=noerror,sync
RAID (Hardware + Software)
mdadm --detail /dev/md0
dd if=/dev/md0 of=/evidence/raid_image.dd bs=4M
lvdisplay
dd if=/dev/vg01/lv_root of=/evidence/lvm_image.dd bs=4M
RAM Disk (ImDisk, RAMDrive)
Cloud Storage (OneDrive, Google Drive, Dropbox)
7. Acquisition Multiple et Redondance
Workflow de Double Acquisition
dd if=/dev/sda of=/evidence/image_dd.dd bs=4M conv=noerror,sync status=progress
ewfacquire /dev/sda -t /evidence/image_e01 \
-C "INC-001" -e "EVA" -d sha256 -S 650MB -c fast
sha256sum /evidence/image_dd.dd > /evidence/image_dd.sha256
ewfverify /evidence/image_e01.e01
Image à Tiroirs (Multi-Copie)
8. Chaîne de Custody Documentée
Formulaire d'Acquisition
┌────────────────────────────────────────────────────────────┐
│ FORMULAIRE D'ACQUISITION FORENSIQUE │
├────────────────────────────────────────────────────────────┤
│ │
│ CAS : INC-2024-001 │
│ DATE : 22/07/2024 │
│ │
│ ── SOURCE ── │
│ Type : Disque SSD │
│ Modèle : Samsung 870 EVO │
│ SN : S3Z7NB0M12345 │
│ Capacité : 500 GB (465 GiB) │
│ Interface : SATA III │
│ Partitions : 2 (NTFS + FAT32) │
│ Estime état : Fonctionnel, 0 bad sectors │
│ │
│ ── WRITE-BLOCKER ── │
│ Modèle : Tableau T8u │
│ SN : T8U-12345 │
│ Firmware : v3.2.5 │
│ Testé : Oui (fichier.txt écrit → refusé ✓) │
│ │
│ ── ACQUISITION ── │
│ Outil : ewfacquire v20230705 │
│ Image : INC-001-C-DRIVE.E01 │
│ Format : EWF (Expert Witness) │
│ Segments : 1 (E01) │
│ Compression : fast (deflate) │
│ Hash : SHA256 │
│ │
│ ── HASH (SOURCE) ── │
│ SHA256 : A1B2C3D4E5F6... │
│ │
│ ── HASH (IMAGE) ── │
│ SHA256 : A1B2C3D4E5F6... (MATCH ✓) │
│ │
│ ── CHRONOLOGIE ── │
│ 14:00 : Réception du disque (Agent X) │
│ 14:05 : Test write-blocker │
│ 14:10 : Début acquisition │
│ 15:25 : Fin acquisition │
│ 15:30 : Hash vérifié (match) │
│ 15:35 : Copie rangée dans le coffre │
│ │
│ EXAMINATEUR : EVA-MASTER │
│ SIGNATURE : [signé numériquement] │
└────────────────────────────────────────────────────────────┘
Registre de Chaîne de Custody
┌──────────┬───────────────┬────────────┬──────────────┐
│ DATE │ DE │ À │ HASH (SHA256)│
├──────────┼───────────────┼────────────┼──────────────┤
│ 22/07/14 │ Scène │ Agent X │ A1B2... │
│ 22/07/14 │ Agent X │ Labo EVA │ A1B2... │
│ 22/07/15 │ Coffre EVA │ Analyste Y │ A1B2... │
│ 22/08/01 │ Analyste Y │ Coffre EVA │ A1B2... │
└──────────┴───────────────┴────────────┴──────────────┘
À chaque transfert :
✓ Hash vérifié (identique)
✓ Signature des 2 parties
✓ Date/heure notée
✓ Raison du transfert
9. Vérification et Validation
Tests d'Intégrité
sudo sha256sum /dev/sda > source.sha256
sha256sum image.dd > image.sha256
diff source.sha256 image.sha256
ewfverify image.e01
affverify image.aff
ewfmount image.e01 /mnt/ewf/
sudo dd if=/mnt/ewf/ewf1 bs=4M count=100 | sha256sum
Erreurs d'Acquisition
ERREURS CRITIQUES (image invalide) :
- Hash mismatch → corruption
- Taille différente → secteurs manquants
- CRC segment E01 invalide → fragment corrompu
ERREURS GÉRABLES (image partielle) :
- Bad sectors (ddrescue log)
- S.M.A.R.T. errors (read errors)
- Bitlocker verrouillé (image chiffrée)
- HPA/DCO (Host Protected Area / Device Configuration Overlay)
QUE FAIRE EN CAS D'ERREUR ?
1. Noter l'erreur dans le rapport
2. Ne PAS supprimer la preuve
3. Essayer ddrescue pour les bad sectors
4. Documenter tout
10. Script d'Acquisition Automatisé
#!/bin/bash
set -e
SOURCE_DEVICE="$1"
OUTPUT_DIR="$2"
CASE_ID="$3"
EXAMINER="${4:-EVA-MASTER}"
if [ -z "$SOURCE_DEVICE" ] || [ -z "$OUTPUT_DIR" ] || [ -z "$CASE_ID" ]; then
echo "Usage: $0 <device> <output_dir> <case_id> [examiner]"
echo "Ex: $0 /dev/sda /mnt/evidence INC-001"
exit 1
fi
mkdir -p "$OUTPUT_DIR"
DATE=$(date +%Y%m%d_%H%M%S)
DEVICE_NAME=$(basename "$SOURCE_DEVICE")
echo "=== DISK ACQUISITION ==="
echo "Device : $SOURCE_DEVICE"
echo "Output : $OUTPUT_DIR"
echo "Case : $CASE_ID"
echo "Examiner : $EXAMINER"
echo "Date : $(date)"
echo ""
udevadm info --query=all --name= >
lsblk >
smartctl -a > 2>/dev/null
fdisk -l >
mmls > 2>/dev/null
= bs=4M count=0 2>/dev/null
|
ewfacquire \
-t \
-C \
-N \
-e \
-d sha256 \
-S 2000MB \
-c fast -q
ewfverify
>
-lh *
11. Dépannage et Erreurs Fréquentes
PROBLÈME : "Permission denied" sur /dev/sda
SOLUTION : Utiliser sudo ou ajouter l'utilisateur au groupe disk
sudo usermod -a -G disk user
PROBLÈME : "dd: error reading: Input/output error" (bad sector)
SOLUTION : Utiliser conv=noerror (ignore l'erreur) + ddrescue
PROBLÈME : Write-blocker non détecté
SOLUTION : Vérifier le câble, l'alimentation, les drivers
dmesg | tail -20 → logs noyau
PROBLÈME : BitLocker / FileVault verrouillé
SOLUTION : Demander la clé de récupération
→ Acquisition de l'image chiffrée
→ Déchiffrement logiciel (Elcomsoft, Passware)
PROBLÈME : SSD NVMe non reconnu par write-blocker
SOLUTION : Certains T8u nécessitent un adaptateur NVMe → USB 3.0
PROBLÈME : Espace insuffisant sur la destination
SOLUTION :
- Compression E01/AFF (30-50% de réduction)
- Segmentation sur plusieurs disques
- Montage réseau (NFS, iSCSI)
12. Bonnes Pratiques Checklist
PRÉ-ACQUISITION :
□ Vérifier le write-blocker (test écriture)
□ Noter l'état du disque (S.M.A.R.T.)
□ Vérifier HPA/DCO
□ Documenter le matériel
□ Prendre des photos du disque + setup
□ Calculer le hash source
ACQUISITION :
□ Utiliser E01 ou AFF (compressé + métadonnées)
□ Segmenter pour transfert (650 MB ou 2 GB)
□ Vérifier l'absence d'erreur après acquisition
□ Calculer le hash final
POST-ACQUISITION :
□ Vérifier hash source = hash image
□ Générer le rapport d'acquisition
□ Signer numériquement le rapport
□ Remplir la chaîne de custody
□ Ranger l'original dans un endroit sécurisé
□ Créer une copie de travail
13. Ressources