vendredi 28 octobre 2011

La destruction de données sur disque

Il est courant de lire sur internet des déclarations sur le nombre de passes nécessaires à faire sur un disque pour nettoyer les données inscrites dessus. On retrouve les chiffres de 3,5,7 ou 35 passes avec des motifs différents, et le nom de Gutmann est généralement cité. L'étude de Gutmann date de 1996, ce qui est ancien.

1/ Le problème de l'effacement de données.
Lorsque l'on efface un fichier, il est rare que le fichier soit effectivement effacé du disque. Seule la référence vers ce fichier est effacée. Des outils permettent de récupérer des fichiers effacés par erreur (ma préférence va a photorec qui est très efficace).

2/ L'écrasement de données.
La solution pour supprimer une donnée d'un disque consiste alors à l'écraser par une autre. Les outils de récupération ne liront que la nouvelle donnée, et non l'ancienne, recouverte. A ce titre, l'avertissement de photorec est très clair: "Sitôt que manque à l'appel une photo ou un fichier ou que vous les avez détruits par erreur, cessez d'enregistrer toute autre photo ou fichier sur le disque dur ou la carte mémoire concerné; autrement vous risqueriez d'écraser les données perdues".
Néanmoins, Gutmann indique dans son étude que ce n'est pas toujours le cas.

Il s’appuie pour cela d'imageries au microscope électronique de disques dur pour montrer que les enregistrements successifs des bits sur les plateaux ne sont pas parfaits. Ainsi les enregistrements 'bavent' un peu, et il est possible de retrouver l'ancien bit après réécriture. L'hypothèse est jugée crédible en 1996.

La solution de Gutmann: 7 passes semblent trop peu, il préconsise donc 35 passes de réécriture de motifs différents afin de pouvoir éviter cette relecture.

3/ Alors on fait 35 passes
En fait, depuis le papier de Gutmann, il s'est passé beaucoup de temps. Son analyse portait sur des anciens disques, avec d'anciens modes d'écriture de données (MFM, RLL pour ceux qui s'en souviennent ça précède l'IDE).

Gutmann a updaté de nombreuses fois son article pour indiquer que les technologies évoluent (Epilogue, puis Further Epilogue, et enfin Even Further Epilogue). On peut y lire dans l'épilogue:
"In fact performing the full 35-pass overwrite is pointless for any drive since it targets a blend of scenarios involving all types of (normally-used) encoding technology, which covers everything back to 30+-year-old MFM methods"
Le further epilogue re-précise entre autre:
"even if you reproduced it, you'd just have done something with technology that hasn't been used for ten years"
Et enfin, dans l'Even Further Epilogue: "Flash memory barely existed at the time it was written, and SSDs didn't exist at all. (...) SSDs are a totally different technology than magnetic media, and require totally different deletion techniques. In particular you need to be able to bypass the flash translation layer and directly clear the flash blocks. In the absence of this ability, the best you can hope to do is thrash the wear-levelling to the point where as much of the data as possible gets overwritten, but you can't rely on any given piece of data being replaced, which means that an attacker who can bypass the translation layer can recover the original data."

4/ Mais que faire?
D'emblée, il est inutile de faire ces fameuses 35 passes. Faut il en faire alors 7 ou 5 ou 3?
Je préconise une seule passe avec dd if=/dev/urandom of=... , cela étant bien suffisant pour mes disques magnétiques.

La page http://en.wikipedia.org/wiki/Data_remanence (remplie de très bons liens) indique "On the other hand, according to the 2006 NIST Special Publication 800-88 (p. 7): "Studies have shown that most of today’s media can be effectively cleared by one overwrite" and "for ATA disk drives manufactured after 2001 (over 15 GB) the terms clearing and purging have converged." An analysis by Wright et al. of recovery techniques, including magnetic force microscopy, also concludes that a single wipe is all that is required for modern drives. They point out that the long time required for multiple wipes "has created a situation where many organisations ignore the issue all together – resulting in data leaks and loss. "

Quoi qu'il en soit, c'est toujours un sujet propre au FUD car il n'existe que peu de publications à ce sujet, et la plupart d'entre elles reprennent l'article de Gutmann sans vraiment l'avoir lu (genre, faites 35 passes avec shred pour effacer un fichier sur clé USB. Ouch.).

Concernant les SSD, c'est effectivement différent. Je cite http://nvsl.ucsd.edu/sanitize/ qui dit: "Our results show that naïvely applying techniques designed for sanitizing hard drives on SSDs, such as overwriting and using built-in secure erase commands is unreliable and sometimes results in all the data remaining intact."

Alors, oui on ne sait pas de quoi sont capables les organisations à grandes oreilles, oui, on a très peu de papiers techniques sur ce sujet, mais non, arrêtez de faire 35 passes sur ces pauvres disques :-)
Par contre, si vous êtes administrateur et que vous voulez vous couvrir auprès d'une autorité, alors détruisez les disques cela évite de se poser trop de questions.

5 commentaires:

  1. Tout à fait d'accord sur le fait qu'une seule passe suffit.

    On peut aussi passer un coup de truecrypt sur l'intégralité du disque. Il randomize tout l'espace.

    Disons qu'à l'époque la tête d'écriture pissait un peu à côté de la lunette et que maintenant c'est plus précis :)
    Donc moins de ménage à faire :>

    RépondreSupprimer
  2. Bonjour,

    Très bon billet, qui plus est compréhensible par un béotien :o)

    Promis, j'arrête les 35 passes pour nettoyer mes disques durs traditionnels ! dd fera l'affaire si je trouve de quoi m'occuper pendant le processus parce que 'urandom' c'est quand même très lent...

    Pour les supports à mémoire flash, les quelques essais que j'ai effectués avec photorec m'ont très souvent permis de retrouver des fichiers, impossibles à ouvrir certes, mais j'imagine qu'avec un bon éditeur de texte et quelques connaissances on saurait les faire parler.

    Et une question pour finir : que pensez-vous du "Darik's boot and nuke" (DBAN) ? Efficace ou non ? Overkill ou pas ?

    RépondreSupprimer
  3. Bonjour,

    "On peut aussi passer un coup de truecrypt sur l'intégralité du disque. Il randomize tout l'espace." <- truecrypt sur des serveurs en prod ? c'est une blague ?


    Il vaut mieux prevenir que guerir.

    Nous, on se base sur :
    - Circulaire de l'ANSSI n972-1/SGDN/DCSSI du 17 juillet 2003 - http://www.circulaires.gouv.fr/pdf/2009/04/cir_1166.pdf
    - NSA/CSS STORAGE DEVICE DECLASSIFICATION MANUAL - http://www.nsa.gov/ia/_files/government/MDG/NSA_CSS_Storage_Device_Declassification_Manual.pdf
    - http://www.ssi.gouv.fr/fr/bonnes-pratiques/recommandations-et-guides/securite-des-medias-amovibles/effacement-des-supports-de-stockage-de-masse.html

    Bref, on fait plusieurs passes (3-4) (dd if=/dev/random of=/dev/device) et ensuite, on detruit les disques durs (type magnetique, SSD et aussi cles USB) via des shredders. Et ca marche bien.

    RépondreSupprimer
  4. @Dnucna: truecrypt, dd if=/dev/urandom, même combat.

    @Fraise Tagada: Passer truecrypt sur des serveurs pour écraser des données implique qu'ils ne soient plus en prod, je pense.

    Les documents liés sont intéressants. Ceci dit, ils ne parlent pas de la récupération de données. Il est seulement dit qu'il "serait possible" sans préciser comment, que ces données seraient récupérables. C'est ce flou qui est agaçant.

    RépondreSupprimer
  5. En relation, il y avait eu un papier de l'OSSIR en 2006 :

    ' Effacement sécurisé de disques durs ' : http://web.ossir.org/windows/supports/2006/2006-11-13/EffacementDisques-v10.pdf

    RépondreSupprimer