Logo Blog perso d'Ozwald

Le bon ouvrier possède de bons outils

Par Oz le - Sécurité
File Carving Forensic Outil

Hop, j'inaugure un nouveau type de post dans lequel je présente l'un des outils qu'il m'arrive d'utiliser en sécurité informatique et/ou que j'aurai aimé connaitre à un certain moment de ma vie. Pour ce premier article du genre je vais vous présenter "foremost", un outil de forensic (d'où l'image d'illustration que j'ai choisi).

Grave - Creative Common by "buschap" on Flickr

foremost

Laissez moi vous raconter une petite histoire : il y a bien longtemp il est arrivé à ma copine de l'époque de graver toutes ses photos de vacances sur un DVD, puis de les effacer de son disque dur et de vider la corbeille afin de gagner de la place sur le disque. Seulement voilà : une fois les photos définitivement supprimées du disque dur impossible de lire le DVD ! Il refusait d'être reconnu sur son ordinateur, sur le mien, et sur le lecteur de salon...Je ne vous raconte pas le désespoir dans ses petits yeux à ce moment là :(

Etant du genre persévérant (et sous linux) j'ai tenté un petit "dd"1 du DVD incriminé dans un fichier sur mon disque dur, puis j'y ai jeté un oeil "à l'arrache" (i.e. : string|less2) et j'y ai vu des séquences qui ressemblaient furieusement à ce qu'on trouve dans des en-têtes de fichiers JPG...Ni une ni deux je dégaine mes outils préférés de l'époque (à savoir VIM et GCC) et je pond un petit parser en C qui tente de repérer les en-têtes des images et des vidéos puis d'extraire les octets qui suivent pour recréer les fichiers illisibles du DVD. C'est ainsi que pendant les 2h qui ont suivi la constatation de la perte des fichiers sur le DVD je me suis retrouvé à faire des "trucs cabalistiques" 3. Et finalement, au bout de tout ce travail, petit moment de gloire quand j'ai finalement lancé un "startx" afin d'exhiber toutes les photos et vidéos que l'on croyait perdues mais que j'avais quand même réussi à récupérer "par magie" :) !

Et bien j'ai découvert, des années après, que des petits malins avaient codé sensiblement le même outil, mais sérieusement et proprement :) ! Le nom de ce petit outil c'est "foremost", il fait la même chose que ma bidouille en C (à savoir chercher des en-têtes connues dans de la donnée brute puis reconstruire le fichier) mais lui il gère un nombre impressionant de format de fichier différents (contre juste "JPEG" et "MOV" pour mon vieil outil) et il est truffé de petites options qui le rendent terriblement efficace et tout terrain. Bref : un véritable régal pour récupérer des fichiers effacés (par erreur ou pas ;) ).

Cerise sur le gateau : il est sous license GNU, vous pourrez donc en profiter avec un simple aptitude install foremost, et il est également par défaut sur backtrack 3. Mauvaise nouvelle par contre : sur ma gentoo le package est vieux et cassé, donc si vous ne voulez pas utiliser de ~x86 sur ce paquet oubliez tout de suite le emerge foremost qui vous est venu à l'esprit et allez plutôt récupérer les sources pour le compiler vous même.

Petite ouverture en guise de conclusion : foremost cherche les header mais également les footer, et en fait cette stratégie de récupération de fichier s'appelle le "File Carving". Cette stratégie est d'ailleurs assez répandue et il existe pas mal de soft de ce type, la star de la famille étant en ce moment "photorec". En deux mots photorec gère plus de type de fichiers que foremost (pour n'en citer qu'un : bz2), en revanche il n'est pas inclu dans backtrack3 par défaut (ou alors j'ai mal cherché) et il se trouve dans un paquet avec un nom à la c*n sur gentoo : testdisk.

  1. Comande de copie bas niveau, un must à connaitre absolument
  2. Ouais, à l'époque je m'y connaissais encore moins que maintenant en forensic lol.
  3. il faut bien avouer que du point de vue d'une windowsienne qui n'a jamais programmé : coder du C sous VIM sans interface graphique, ça fait étrange