Entrevue avec Christophe Grenier, développeur de testdisk et photorec

Posté par  . Édité par BAud, Benoît Sibaud, Pierre Jarillon et Ysabeau 🧶. Modéré par Ysabeau 🧶. Licence CC By‑SA.
77
18
sept.
2024
Communauté

testdisk et photorec sont deux outils libres (GPLv2+) formidables… que l’on souhaite pourtant ne jamais avoir à utiliser ! En effet, les deux sont dédiés à la récupération de données après une panne matérielle, ou une bévue.

TestDisk

Le premier est axé supports de stockage et leurs partitions, le second orienté récupérations de fichiers (mais il est loin de se limiter aux images).

Cocorico : le développeur de ces outils est français, et il a bien voulu répondre à notre sollicitation d’entrevue :).

Bonjour Christophe ! Pouvez-vous présenter votre parcours ?

Quand j’ai commencé à développer testdisk, mon premier outil de récupération de données, j’étais encore étudiant en école d’ingénieur.
Maintenant, cela fait plus de 20 ans que je suis diplômé de l’ESIEA, j’interviens d’ailleurs dans son Mastère Spécialisé Sécurité et Information des systèmes depuis 2004.
Après avoir travaillé dans la sécurité informatique, j’ai travaillé autours des systèmes Linux, du réseau et de la sécurité.
Depuis un peu plus de 10 ans, je suis directeur d’exploitation pour un hébergeur parisien.
Dans le cadre de mon auto-entreprise, je fais de la récupération de données.

Comment avez-vous démarré ce projet ?

Un ami développeur professionnel sous Windows venait d’acheter un nouveau disque dur et pour éviter d’avoir trop de lettres de lecteurs (C:, D:, E:, …) avait décidé de réduire le nombre de partitions de son disque de données ; ce disque contenait 3 partitions.
Il a sauvegardé les données, supprimé les 3 partitions, en a créé 2 et — au moment de restaurer les données — il s’est rendu compte qu’il avait été trop vite et qu’il lui manquait la sauvegarde d’une des partitions.
Sachant que j’avais des connaissances sur le partitionnement des PC (je m’étais intéressé au fonctionnement des virus de boot qui se logeaient dans le premier secteur des disques durs), il m’a contacté.

Armé d’un éditeur hexadécimal, il nous avait fallu la journée pour reconstruire manuellement la table des partitions et récupérer ces données. Un peu plus tard ayant appris les rudiments de la programmation en C, je me suis dit qu’il devait être possible d’automatiser la récupération des partitions et c’est ainsi qu’est né testdisk en 1998.

Pour photorec, il a fallu attendre mon premier appareil photo numérique en 2002. Ayant peur de perdre des photos (effacement par mégarde de photos non sauvegardées, reformatage de la mauvaise carte mémoire…), avant même de partir en voyage, j’ai bricolé un programme en C sous Linux capable de récupérer les photos et vidéos prises par mon appareil photo. C’est ainsi que photorec est né pour récupérer des photos. Il a gardé son nom même s’il récupère des centaines de formats de fichier différents.

Quels sont les points marquants qui ont, selon vous, marqué l’évolution de ces logiciels ?

Les points principaux ayant permis le succès de ces logiciels sont :

  • de rendre ces logiciels multiplateformes pour PC : MS-Dos et Linux, puis Windows. La prise en charge de macOS est venu bien plus tard et a eu peu d’impact.
  • de distribuer ces logiciels gratuitement. L’utilisation d’une licence opensource (GPL v2+) m’a aussi permis d’avoir quelques contributions.
  • d’être plutôt à l’écoute des utilisateurs et d’enrichir les formats de fichiers gérés par photorec. Certains sont vraiment exotiques.
  • de la documentation en plusieurs langues à une époque où les traductions automatiques étaient quasi-inexploitables. Mais aujourd’hui, la documentation principale de plus de 60 pages est en anglais.

Un point marquant a été la reconnaissance officielle de l’utilisation de ces logiciels par des organismes étatiques.

testdisk a été conçu pour un public technique, j’ai eu des retours de différents sociétés de récupération de données de part le monde l’utilisant mais en général, elles ne souhaitent pas communiquer sur leur utilisation de logiciels (libres ou du commerce).

Un tournant a eu lieu en 2014 quand le NIST, dans le cadre du Computer Forensics Tool Testing Program (CFTT), a testé et publié ses résultats sur les capacités de photorec. En comparant les résultats de chaque outil, on découvre que photorec a les meilleurs résultats (1ère place ex aequo).
Ainsi, photorec figure dans le catalogue de logiciels que les agences d’États américains peuvent utiliser.

photorec apparaît dans les diapositives de la formation SecNum Academie de l’ANSSI.

Pourquoi un seul paquet pour deux logiciels, ou pourquoi pas un seul logiciel ?

Quand on parle de testdisk et photorec, il y a aussi fidentify, un outil en ligne de commande qui permet de tester rapidement l’identification de fichiers en utilisant les mêmes parsers que photorec, sans oublier qphotorec, une version graphique de photorec.

Selon les distributions, vous pouvez avoir un package testdisk comprenant testdisk, photorec et fidentify et un package qphotorec pour qphotorec.

testdisk utilise un accès en écriture au disque, photorec n’utilise qu’un accès en lecture. photorec est plus facile d’utilisation que testdisk, c’est presque du next/next/next, il ne fait que du « file carving » (récupération de fichiers par identification des entêtes).

Quelles sont les fonctionnalités les plus attendues que vous pensez implémenter ?

La vérification formelle du code des parsers de photorec est ce qui m’a le plus occupé ces dernières années, je continue de travailler dessus.
Je n’ai pas prévu d’implémenter de nouvelles fonctionnalités dans l’immédiat.

Avez-vous des retours d’utilisateurs, des remerciements de personnes qui ont pu grâce à ces outils retrouver une partie de leur vie numérique, ou de grincheux ?

Perdre une partie de sa vie numérique est très stressant.
De fait, j’ai été confronté à des grincheux très agressifs dont un cas extrême de menaces répétées de mort de la part d’un individu qui n’avait pas pu récupérer ses données. Les hébergeurs de ses messageries successives ont agi rapidement lorsque j’ai signalé ses messages, mais je me suis posé la question à ce moment-là si cela valait bien la peine de m’investir autant pour risquer cette violence numérique.

Les retours positifs des utilisateurs et leurs remerciements sont ce qui a permis de me motiver à continuer de développer sur toutes ces années ce projet.
À une époque, je recevais quotidiennement des mails de remerciements et/ou des donations. C’est moins fréquent désormais, mais c’est peut-être parce que les sauvegardes vers le cloud sont beaucoup plus courantes et qu’ainsi les gens ont moins recours à la récupération de données.

Effectivement, perdre une partie de sa vie numérique est très stressant, avez-vous des conseils à donner sur la sauvegarde ?

Ce sont des conseils très généraux :

  • que cela soit au niveau personnel ou au niveau professionnel, il est important de vérifier le périmètre de la sauvegarde. Si vous n’aviez plus que votre dernière sauvegarde, que vous manquerait-il ?
  • testez une restauration de données
  • si possible, multipliez les sauvegardes (sauvegarde avec historique ou versionning, pas une simple synchronisation)
  • dans l’idéal, plusieurs lieux de sauvegarde.

Sur ces projets, y a-t-il d’autres contributeurs ?

testdisk et photorec reçoivent principalement des contributions ponctuelles. J’en profite pour remercier toutes les personnes qui m’ont aidé pour les traductions, pour avoir partagé des fichiers dans des formats exotiques, ou pour avoir contribué au code.
Merci aussi aux personnes ayant participé à la modération du forum et au modérateur actuel !

Y a-t-il des fonctionnalités importantes qui ne seront pas développées, et pourquoi ?

À moins de recevoir des contributions, je ne pense pas pousser davantage le support mac.
Le chiffrement des disques sous Windows va devenir la norme, comme c’est le cas sous macOS. Je pense que cela va freiner le développement de testdisk et photorec. La récupération va devenir bien plus complexe en exigeant un déchiffrement préalable.

Des souvenirs marquants de cette expérience ?

Je crois que l’une des anecdotes qui m’a le plus amusé est celle que j’ai reçue en janvier 2007 : dans un premier mail, l’utilisateur explique qu’un appareil photo a été volé dans sa voiture, mais qu’une semaine plus tard, la police a trouvé le coupable et a pu restituer l’appareil photo. Le contenu avait été effacé, mais grâce à photorec, l’utilisateur avait récupéré plus de 300 photos.

Currently I am recovering over 300 photos using PhotoRec that my sister in law took over the holidays. Our car was broken into and the camera was stolen. A week later the police found the guy! They found the camera, but it had been wiped.
I had read about recovering photo's from flash cards via a story on slashdot, and now here I am.

Quelques heures plus tard, j’ai reçu la suite de l’histoire :

I have recovered some pictures that look to be taken by the thief […]
I am submitting a CD of the data I have recovered to the Detective involved in the case. My little camera was involved in a much larger theft, so hopefully the pictures they took will help nail them all!

Le voleur avait utilisé l’appareil photo, photorec a permis de récupérer des photos ayant beaucoup intéressé le détective en charge du dossier : celui-ci espère découvrir les autres personnes impliquées dans un vol de plus grande envergure.

Avez-vous eu des échanges avec des éditeurs de logiciels similaires (opensource ou propriétaires) ?

photorec a été victime de plusieurs contrefaçons.

Dans un cas, un fabricant de carte mémoire a distribué un logiciel de récupération de données, ce fabricant avait sous-traité le développement qui avait « optimisé » son temps de développement en récupérant le code source de photorec, remplaçant tous les entêtes de copyright et ajoutant une interface graphique.
Après avoir contacté le fabricant, celui-ci a fait rétablir les copyrights manquants et le code a été distribué en GPLv3.

Dans d’autres cas, des développeurs ont volontairement publié des contrefaçons qu’ils revendaient. Après avoir fait fermer leur hébergement plusieurs fois, ils ont fini par trouver un hébergeur bullet-proof, un hébergeur qui ne répondait plus aux plaintes…

Concernant le forum, avez-vous déjà rencontré des difficultés avec le respect du code de conduite ?

La modération sur le forum est obligatoire, les spammeurs sont très nombreux et inventifs en réutilisant par exemple du contenu d’autres sujets. Aucun code de conduite n’a été formalisé.
Le forum ne tient plus que grâce à la présence d’un modérateur, je ne sais pas si cette partie du projet va perdurer.

Quel est votre modèle économique ?

Le projet est né comme un projet personnel et reste géré comme tel.
Je travaille chez Global Service Provider, une société de services et hébergement informatique, qui me permet de disposer gracieusement (Merci à eux) de machines virtuelles (VM), sauvegarde, monitoring pour le projet.
Diverses donations ponctuelles couvrent les frais des différents noms de domaine, mon équipement informatique personnel…

Au niveau personnel, quels logiciels libres utilisez-vous, sur quel système d’exploitation ?

À l’exception des raspberry pi sous Raspbian, les différents ordinateurs de la maison sont sous Fedora Linux.
J’utilise gnome comme environnement graphique, alpine et roundcube pour la messagerie, vim comme éditeur de texte, du docker avec moby, gcc, python…

Et au niveau professionnel ?

Mon ordi portable est aussi Fedora Linux.
Les serveurs Linux que mon équipe et moi gérons sont principalement sous AlmaLinux et Debian.

J’utilise tous les jours ansible (automatisation des configurations), git (versionning), netbox (gestion de datacenters), oxidized (sauvegarde réseau), mediawiki (documentation)…

Merci pour votre disponibilité, et pour ces merveilleux outils !

Aller plus loin

  • # Ça m'a servi…

    Posté par  . Évalué à 10 (+10/-0).

    …pas plus tard qu'hier, une carte SD formatée un peu rapidement.

    Pour testdisk, un truc sympa serait de pouvoir scanner des partitions btrfs. Mais j'imagine que c'est assez compliqué à implémenter…

    • [^] # Re: Ça m'a servi…

      Posté par  . Évalué à 5 (+4/-0).

      Idem, ça m'a sauvé la vie une fois sur un malheureux "rm -f test *" (un espace indésirable s'est glissé dans cette commande. sauras tu le retrouver?)

  • # Android crypte

    Posté par  (site web personnel) . Évalué à 1 (+3/-3).

    J'ai voulu nettoyer mon téléphone Android avec un script Android debloat, ca a fonctionné dans un premier temps, puis j'ai voulu désinstallé toutes les applis Google, résultat le téléphone ne redémarre plus jusqu'à l'écran de déverrouillage.

    Depuis Android 9, la partition est cryptee, impossible de récupérer mes données.

    Une idée?

    C'est un Redmi Note 8 de 2019.

    • [^] # Re: Android crypte

      Posté par  (Mastodon) . Évalué à 6 (+3/-0). Dernière modification le 19 septembre 2024 à 08:32.

      Ça va être compliqué.

      1. le stockage flash interne est impossible à accéder facilement

      2. une sdcard chiffrée mais dont le stockage n'est pas cumulée au stockage interne peut en théorie être déchiffrée sur un système linux avec dm-crypt car la clé est stockée sur le stockage flash interne dans /data/misc/vold/expand_*.key. Problème c'est que android doit être rooté pour y accéder.

      Du coup ben, il fallait faire des backups réguliers, et quand on utilise une carte SD, ce n'est pas une mauvaise idée si le smartphone est rooté de faire un backup de la clé de chiffrement séparément.

  • # Merci !!!

    Posté par  . Évalué à 10 (+13/-0).

    Bon, je ne suis pas le premier, et j'aimerais tant être le dernier à remercier pour Photorec !!
    ;-)

  • # photorec et ddrescue ❤️

    Posté par  . Évalué à 7 (+5/-0). Dernière modification le 20 septembre 2024 à 14:51.

    déjà sauvé mainte fois : cdrom abîmé, sdcard ayant pris la pluie

    Merci !

  • # Pourquoi la détection des fichiers supprimés est-elle plus compliquée qu'avec Undelete?

    Posté par  (site web personnel) . Évalué à 2 (+2/-1).

    Ce que je ne comprends pas, c'est que du temps de M$-Do$, l'outil Undelete parcourait la FAT et savait lister les fichiers supprimés. Et, s'il n'avait pas été écrasé depuis, la récupération était très simple, seul le nom du fichier était altéré. Pourquoi plus aucun outil ne fait-il cela, y compris en FAT? Désormais ils reposent tous sur le principe du balayage des données avec détection de signatures…

    • [^] # Re: Pourquoi la détection des fichiers supprimés est-elle plus compliquée qu'avec Undelete?

      Posté par  . Évalué à 9 (+7/-0).

      Undelete profite de l'aspect particulièrement simple de la FAT et de sa gestion avec DOS: lorsqu'un fichier est supprimé, son entrée dans le répertoire dans la FAT est juste masquée, mais peut être facilement retrouvée.

      C'est loin d'être aussi simple pour les autres systèmes de fichiers (ext4, NTFS…), et de plus il faudrait une implémentation par FS, ce qui est long et laborieux.

      Parcourir tout le disque physique à la recherche de signatures est plus générique, et a plus de chances de succès.

      • [^] # Re: Pourquoi la détection des fichiers supprimés est-elle plus compliquée qu'avec Undelete?

        Posté par  (site web personnel) . Évalué à -1 (+0/-2).

        Mais justement, au moins pour la Fat… j'ai par exemple un projet Audacity sur un Gigamo(en FAT32 avec secteurs de 2k je crois) que je voudrais récupérer, contenant une partie de la "Saga Dire Straits" avec un son moins compressé que les quelques rediffusions qui ont eu lien ensuite, et pour cela la solution la plus simple, voire la seule valable, serait la méthode "Undelete".

        Sinon, j'utilise un peu Photorec et Testdisk au boulot, mais je n'ai pas souvenir qu'ils m'aient impressionnés plus que cela. Par contre, Diskdrake m'a sauvé le contenu d'un DD SCSI de 2Go il y a vingt ans, sur lequel j'avais fait des expériences d'écrasement du premier secteur avec "dd"

  • # Remerciements

    Posté par  (site web personnel) . Évalué à 5 (+4/-0).

    Je profite de cet entretien pour remercier Christophe (on s'est déjà croisé plusieurs fois au SSTIC où tes "traditionnelles" Rump manquent ;) ).

    Ton outil testdisk m'a sauvé à plusieurs reprises lorsqu'il a fallu que j'exhume des vieux fichiers/partitions d'un disque qui montrait des problèmes hardware.

    Merci pour le boulot de développement libre pendant toutes ces années \o/

  • # Jamais eu besoin mais...

    Posté par  . Évalué à 6 (+4/-0).

    J'ai la chance de n'avoir jamais eu besoin de photorec mais j'ai le nom de ce logiciel dans un coin de ma tête depuis très longtemps au cas où. C'est dingue, un logiciel que personne n'a envie d'utiliser mais dont tout le monde remercie l'auteur de l'avoir fait :-)

    Un grand merci ! Belle histoire, en plus.

  • # Récupération NTFS

    Posté par  (site web personnel) . Évalué à 4 (+2/-0). Dernière modification le 28 septembre 2024 à 11:47.

    J'ai du récupérer les données d'une partition NTFS d'un disque extrèmement dégradé.

    1er étape : ddrescue pour avoir une image raw la plus complète possible du disque dur… 99,3% récupéré…
    2eme étape : faire une copie de cette image raw pour travailler dessus

    Étapes suivantes :
    - Essayer de réparer la partition NTFS avec les outils Linux ntfsfix et ntfsck… ça mène pas loin
    - Utiliser testdisk pour restaurer la MFT primaire avec la MFT secondaire qu'il me dit être OK… Toujours pas possible de monter la partition…

    Sous Windows, toujours pas possible de réparer le NTFS de la partition avec CHKDSK et testdisk.

    Je me résigne à tester des outils de récupérations de données propriétaires et… ils sont capables de me retrouver quasiment toute l'arborescence, le nom des fichiers et leurs métadonnées et bien sûr les données avec en prime une interface graphique plutôt convivial.

    Existe t'il des outils libres capables de faire ça ?

    PS: testdisk et photorec sont bien sûr des outils extraordinairement puissant… mais ne couvrent malheureusement pas tous les besoins de récupération de données.

    • [^] # Re: Récupération NTFS

      Posté par  . Évalué à 8 (+6/-0).

      ah j'ai voulu faire ca aussi, puis pendant l'étape 1, je me suis marié, j'ai eu des enfants et maintenant qu'ils sont majeurs, mon ddrescue est presque terminé, j'ai hâte de m'y remettre !

    • [^] # Re: Récupération NTFS

      Posté par  (site web personnel) . Évalué à 4 (+1/-0).

      Derrière les outils proprio, il y a certainement photorec.

      "La première sécurité est la liberté"

  • # Un français, magnifique!

    Posté par  . Évalué à 1 (+1/-0).

    Salut tout le monde,

    Un développeur français! Génial! C’est ce qu’on aime.

    Bisous d’Algérie à la France et à tous les français ;-)

    Et vive le Libre!

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.