Systèmes de fichiers · Leçon 8 sur 8
Récupération de fichiers supprimés : récupération par métadonnées ou récupération par carving
13 min de lecture
La suppression d'un fichier efface rarement son contenu : le système de fichiers marque les métadonnées et les clusters comme libres, et les octets restent en place jusqu'à ce que l'espace soit réutilisé ou que le périphérique les élimine. Cette leçon compare la récupération par métadonnées et la récupération de fichiers par carving : ce que chacune permet de récupérer, leurs limites et la manière de valider et de documenter le résultat. Les questions d'examen portent souvent sur les données exactes soumises au hachage, le numéro d'enregistrement ou le décalage en octets impliqué dans une telle récupération.
Deux familles de récupération
La récupération par métadonnées fonctionne tant que le système de fichiers décrit encore le fichier supprimé. La structure qui contenait le nom, la taille et l'emplacement du fichier est marquée comme inutilisée, mais n'a pas été écrasée ; un outil peut donc suivre les anciens pointeurs vers les anciens clusters.
- NTFS. Lors de la suppression, l'indicateur d'utilisation dans l'en-tête de l'enregistrement MFT (le champ d'indicateurs de 2 octets au décalage 0x16) est mis à zéro : 0x0001 devient 0x0000 pour un fichier, 0x0003 devient 0x0002 pour un répertoire. Le bit de l'enregistrement dans la table de bits propre à la MFT et les bits des clusters du fichier dans
$Bitmapsont mis à zéro, et l'entrée est retirée de l'index du répertoire parent. L'enregistrement lui-même, avec ses attributs$STANDARD_INFORMATION,$FILE_NAMEet$DATA, reste normalement intact jusqu'à sa réutilisation. Un fichier résident (dont les données se trouvent dans l'enregistrement) est récupéré à partir du seul enregistrement. - FAT. Le premier octet de l'entrée de répertoire de 32 octets est défini sur 0xE5 et la chaîne de clusters du fichier dans la FAT est mise à zéro. Le reste du nom, les horodatages, le cluster de départ et la taille du fichier subsistent ; un outil peut donc récupérer le fichier en supposant qu'il était contigu et en lisant, à partir du cluster de départ, un nombre de clusters égal à l'arrondi à l'entier supérieur de (taille / taille d'un cluster). Sur exFAT, le bit d'utilisation de chaque type d'entrée est mis à zéro (0x85 devient 0x05, 0xC0 devient 0x40). La leçon 1.5 traite de ces deux organisations.
- ext4. La récupération par métadonnées est beaucoup plus difficile. Lorsqu'ext4 supprime un fichier, il met généralement à zéro les entrées d'extents dans l'inode et définit sa taille à zéro ; l'inode n'indique donc plus où se trouvaient les données. Le nom peut subsister dans le bloc de répertoire, et d'anciennes copies de l'inode peuvent subsister dans le journal (leçon 1.6), mais le carving est souvent la seule possibilité.
La récupération de fichiers par carving ne nécessite aucune métadonnée du système de fichiers. L'examinateur recherche dans les octets bruts, généralement dans l'espace non alloué ou dans une image complète, la structure de types de fichiers connus : une signature d'en-tête, un marqueur de fin ou d'autres marqueurs. Cette méthode fonctionne également sur des volumes reformatés, des systèmes de fichiers endommagés et des captures mémoire.
Ce que chaque méthode conserve
| Propriété | Récupération par métadonnées | Carving |
|---|---|---|
| Nom d'origine du fichier | Oui | Non ; l'outil génère un nom |
| Chemin | Oui, si l'enregistrement du répertoire parent existe encore | Non |
| Horodatages du système de fichiers | Oui | Non |
| Taille exacte | Oui, à partir des métadonnées | Estimée à partir du marqueur de fin ou de la structure |
| Contenu | Oui, si les clusters n'ont pas été réutilisés | Oui, s'il est contigu et n'a pas été écrasé |
| Fonctionne sans système de fichiers | Non | Oui |
Le carving perd les métadonnées du système de fichiers, et non celles contenues dans le contenu : un JPEG récupéré par carving peut conserver des balises EXIF telles que DateTimeOriginal, et un DOCX son fichier docProps/core.xml. Présentez-les dans le rapport comme des métadonnées applicatives intégrées, et non comme des horodatages du système de fichiers.
Ce qui limite la récupération
Réutilisation et écrasement. Les deux méthodes échouent lorsque l'espace est réutilisé, mais de manière différente. Avec la récupération par métadonnées, l'enregistrement peut subsister alors que ses clusters appartiennent désormais à un autre fichier, et l'outil extrait alors le nouveau contenu sous l'ancien nom. Avec le carving, un en-tête peut subsister alors que les clusters suivants ont été écrasés, ce qui produit un fichier qui commence correctement puis se poursuit avec des données sans rapport. Une fois qu'un enregistrement MFT est réutilisé, ses métadonnées ont disparu, même si les clusters peuvent encore être récupérés par carving.
TRIM sur les SSD. Lorsqu'un fichier est supprimé sur un SSD qui prend en charge cette fonction, le système d'exploitation envoie une commande TRIM (UNMAP sur SCSI, Deallocate sur NVMe), immédiatement ou lors d'un passage planifié ultérieur selon le système d'exploitation et ses paramètres, pour indiquer au disque quels blocs logiques ne contiennent plus de données. Le disque efface ces pages lors de la récupération d'espace, et de nombreux SSD renvoient immédiatement des zéros pour les blocs visés par TRIM, avant tout effacement physique. Une image acquise ensuite contient généralement des zéros ; aucune des deux méthodes ne peut donc récupérer les données. Le formatage d'un SSD peut déclencher TRIM sur l'ensemble du volume.
Clés USB. La plupart des clés USB et de nombreux ponts USB ne prennent pas en charge TRIM via le stockage de masse USB ; les données supprimées sur une clé USB classique subsistent donc généralement jusqu'à leur écrasement. Cela dépend du périphérique et du pont : certains boîtiers et ponts UASP transmettent les commandes UNMAP. Ne présumez ni de l'un ni de l'autre ; la présence de zéros là où devraient se trouver les données supprimées est compatible avec TRIM ou un effacement, et doit être rapportée comme telle.
Signatures, marqueurs de fin et structure
| Type | En-tête (hex) | Marqueur de fin |
|---|---|---|
| JPEG | FF D8 FF | FF D9 (fin d'image) |
| PNG | 89 50 4E 47 0D 0A 1A 0A | Bloc IEND, se terminant par 49 45 4E 44 AE 42 60 82 |
25 50 44 46 2D (%PDF-) | 25 25 45 4F 46 (%%EOF), éventuellement suivi d'une fin de ligne | |
| ZIP, DOCX, XLSX, PPTX | 50 4B 03 04 | Fin du répertoire central 50 4B 05 06, 22 octets plus le commentaire |
Le carving par en-tête et marqueur de fin copie les données d'un en-tête jusqu'au marqueur de fin correspondant suivant, ou jusqu'à une taille maximale. Il est rapide mais rudimentaire. Un JPEG contenant une miniature EXIF comporte une seconde paire FF D8 FF … FF D9 ; le premier FF D9 peut donc terminer la miniature plutôt que la photo. Un PDF modifié par mises à jour incrémentales contient plusieurs marqueurs %%EOF, et c'est le dernier qui termine le fichier.
Le carving fondé sur la structure analyse le format. Un outil de carving JPEG parcourt les segments de marqueurs, chacun ayant une longueur codée sur 2 octets, jusqu'aux données de l'image, puis recherche FF D9. Un outil de carving ZIP lit l'enregistrement de fin du répertoire central, dont le champ de longueur du commentaire sur 2 octets au décalage 20 indique la fin exacte du fichier, et vérifie que les entrées du répertoire central renvoient à des en-têtes locaux valides. Dans les fichiers Office Open XML, [Content_Types].xml et des dossiers tels que word/ ou xl/ identifient le type de document.
Comme les fichiers non résidents commencent à une limite de cluster, les outils de carving ne recherchent souvent les en-têtes qu'au début des secteurs ou des clusters, ce qui accélère le traitement et réduit les faux positifs.
Fragmentation et validation
Le carving simple suppose un stockage contigu. Un fichier fragmenté est récupéré sous la forme de son premier fragment suivi de tout ce qui vient ensuite sur le disque ; un JPEG se décode généralement correctement dans sa partie supérieure, puis devient gris ou brouillé plus bas. Chaque fichier récupéré par carving doit donc être validé : ouvrez-le ou analysez-le, vérifiez la cohérence de sa structure interne (répertoire central ZIP, table de références croisées PDF, CRC des blocs PNG) et comparez son empreinte à celles de fichiers connus, lorsqu'elles sont disponibles, par exemple une liste d'empreintes de fichiers d'intérêt ou un ensemble de fichiers de référence sains utilisé pour exclure les fichiers système. Un fichier partiel ne correspondra pas à une empreinte de référence, même s'il est reconnaissable ; signalez-le comme partiel.
Exemples d'outils
- Récupération par métadonnées : The Sleuth Kit
fls -d -r -prépertorie les entrées supprimées avec leurs chemins complets ;icatextrait le contenu d'un fichier à partir de l'adresse de ses métadonnées ;blkstatindique si un cluster est alloué ;ifind -dtrouve à quelle entrée de métadonnées appartient un cluster. Autopsy fournit une interface pour ces mêmes fonctions. - Carving : PhotoRec (qui tient compte de la structure de nombreux formats), Foremost et Scalpel (outils de carving configurables par en-tête et marqueur de fin) produisent chacun un fichier d'audit ou de rapport indiquant où chaque fichier a été trouvé.
- Extraction de caractéristiques : bulk_extractor analyse les octets bruts à la recherche de caractéristiques telles que des adresses électroniques, des URL et des noms de domaine, en enregistrant le décalage en octets de chacune.
Si vous effectuez un carving sur la sortie de blkls (clusters non alloués uniquement), les décalages se rapportent à ce flux ; faites correspondre ses adresses de blocs à celles du volume avec blkcalc -u avant de les consigner dans le rapport.
Exemple détaillé 1 : récupération à partir de la MFT
fls -d -r -p -o 2048 disk.E01, exécuté sur une image de volume NTFS (volume commençant au secteur 2 048, clusters de 4 KiB), répertorie un fichier supprimé sous l'enregistrement MFT 41. Le champ d'indicateurs de l'enregistrement contient 00 00. Son attribut $DATA non résident indique une taille réelle de 14 862 octets, une taille allouée de 16 384 octets et la liste de séquences de clusters 31 04 A0 3F 01 00.
- Décodez la séquence. En-tête 0x31 : le demi-octet de poids faible (1) donne la taille du champ de longueur et le demi-octet de poids fort (3) la taille du champ de décalage. Longueur 0x04 = 4 clusters. Décalage
A0 3F 01en petit-boutiste = 0x013FA0 = 81 824. Les données occupaient les clusters 81 824 à 81 827 ; le00terminal clôt la liste. - Calculez les décalages. Décalage dans le volume : 81 824 × 4 096 = 335 151 104. Décalage dans l'image : 335 151 104 + 2 048 × 512 = 335 151 104 + 1 048 576 = 336 199 680. La séquence couvre 4 × 4 096 = 16 384 octets, dont 14 862 sont les données du fichier et 1 522 constituent l'espace résiduel.
- Vérifiez
$Bitmap. Chaque cluster dispose d'un bit, en commençant par le bit de poids faible. 81 824 / 8 = 10 228, reste 0 ; les clusters 81 824 à 81 827 correspondent donc aux bits 0 à 3 de l'octet 10 228. Si les quatre bits valent 0, les clusters ne sont pas alloués. Si l'un d'eux vaut 1, le cluster appartient désormais à un autre fichier :ifind -o 2048 -d 81824 usb.E01l'identifie, et le contenu ne peut pas être attribué à l'enregistrement 41. Une table de bits dont les bits sont à zéro ne prouve pas que les clusters n'ont jamais été réutilisés puis libérés à nouveau ; validez donc le contenu. - Extrayez, hachez et validez.
icat -o 2048 usb.E01 41 > rec41.binécrit exactement 14 862 octets (n'utilisez pas-s, qui ajoute l'espace résiduel). Calculez son empreinte SHA-256. Si le nom se termine par.pdf, les premiers octets au décalage 336 199 680 dans l'image doivent être25 50 44 46 2D, le fichier doit se terminer par%%EOFet il doit pouvoir être ouvert dans un analyseur PDF.
Exemple détaillé 2 : récupération d'un JPEG par carving
Un outil de carving signale un en-tête JPEG FF D8 FF E1 au décalage 419 430 400 dans l'image (secteur 819 200). Par rapport au volume, (419 430 400 − 1 048 576) / 4 096 = 102 144 exactement ; l'en-tête se trouve donc au début du cluster 102 144, comme il convient pour un début de fichier. L'outil de carving fondé sur la structure ignore le segment EXIF, y compris sa miniature intégrée, et trouve le marqueur de fin d'image FF D9 au décalage 419 478 226. La longueur du fichier est de 419 478 226 + 2 − 419 430 400 = 47 828 octets. Le fichier de sortie reçoit un nom généré, généralement construit à partir d'un numéro de séquence ou de secteur. Validez-le en décodant l'image entière, calculez son empreinte et consignez que son nom d'origine, son chemin et ses horodatages du système de fichiers sont inconnus.
Documentation de la récupération
Pour chaque fichier récupéré, consignez : l'image source et son empreinte vérifiée ; le décalage de la partition ; la méthode (récupération par métadonnées ou carving), ainsi que l'outil et sa version ; pour la récupération par métadonnées, le numéro d'enregistrement MFT ou l'emplacement de l'entrée de répertoire et les séquences de clusters ; pour le carving, le décalage de départ en octets et la longueur ; l'empreinte SHA-256 du fichier récupéré ; la validation effectuée et son résultat ; et, pour les fichiers récupérés par carving, une mention explicite indiquant que le nom d'origine et les horodatages sont inconnus. Cela contribue à la répétabilité attendue par ISO/IEC 27042.
D'anciennes copies de fichiers supprimés peuvent également exister dans les clichés instantanés de volume et les instantanés du système de fichiers ; la leçon 1.7 traite des instantanés APFS, et les clichés instantanés de volume sont abordés plus loin dans le cours.
Points clés pour l'examen : Attendez-vous à calculer un décalage en octets à partir d'un numéro de cluster, à décoder une courte séquence de données et à déterminer si les clusters d'un fichier supprimé ont été réutilisés. Connaissez les signatures et les marqueurs de fin du tableau, ainsi que les propriétés qui subsistent avec chaque méthode. Sachez que l'empreinte SHA-256 du contenu récupéré doit être calculée uniquement sur la taille logique, sans l'espace résiduel, et sachez comment trouver le numéro d'enregistrement MFT d'un fichier supprimé.
Points essentiels
- La récupération par métadonnées utilise les enregistrements subsistants du système de fichiers et conserve le nom, le chemin, les horodatages et la taille exacte ; le carving ne conserve que le contenu et lui attribue un nom généré.
- Les suppressions sur NTFS et FAT laissent généralement les emplacements intacts ; ext4 met habituellement les extents à zéro, ce qui rend souvent le carving nécessaire.
- Avant de vous fier au contenu récupéré, vérifiez la table de bits d'allocation et validez le fichier en l'analysant et en calculant son empreinte.
- TRIM sur les SSD entraîne souvent la lecture de zéros à la place des données supprimées ; les clés USB ne reçoivent généralement pas de commandes TRIM, selon le périphérique et le pont.
- Le carving par en-tête et marqueur de fin échoue avec les fichiers fragmentés et les signatures imbriquées ; le carving fondé sur la structure est plus fiable, mais nécessite tout de même une validation.
- Documentez les décalages, la méthode, la version de l'outil, l'empreinte SHA-256 et, pour les fichiers récupérés par carving, le fait que le nom d'origine et les horodatages sont inconnus.
Questions d’entraînement
Vérifiez votre compréhension. Ces questions ne comptent pas pour l’examen.
Connectez-vous pour enregistrer votre progression et reprendre là où vous vous êtes arrêté. C’est gratuit. Se connecter