Parfois, il est nécessaire de supprimer un fichier dans un système de fichiers et de s'assurer que le fichier a vraiment disparu. Un fichier contenant des mots de passe sensibles, par exemple, doit être complètement effacé du disque.
Émettre un simple rm
sur un système de fichiers typique supprime l'inode ("pointeur") du fichier, mais il ne supprime pas le contenu du fichier sur le disque physique - ceux-ci sont laissés là jusqu'à ce qu'ils soient écrasés lorsque le système de fichiers a besoin de l'espace libre.
Sur de nombreux systèmes de fichiers, le programme shred permet une telle suppression sécurisée. Cependant, sur un système de fichiers CoW tel que btrfs, cette approche est inutile . Le problème est exacerbé par le fait que le fichier peut être présent sur les instantanés de volume.
Existe-t-il un moyen de supprimer en toute sécurité un fichier sur un système de fichiers btrfs? Est-il suffisant de supprimer tous les pointeurs (sur tous les volumes) et de remplir l'espace libre avec des zéros ?
la source
Réponses:
La suppression sécurisée est une proposition difficile sur n'importe quel système de fichiers. Sauf si le système de fichiers est très particulier et garantit qu'il n'y a pas d'autres copies du fichier qui traînent, vous devez effacer tout l'espace libre sur l'appareil. Bien que vous soyez plus susceptible de trouver de nombreux bits du fichier sur des systèmes de fichiers en copie sur écriture, encore plus de systèmes de fichiers «statiques» n'ont pas cette garantie dans la pratique, car de nombreux fichiers sont modifiés, il y a donc des bits d'anciennes versions de la fichier qui traîne.
Notez que l'effacement avec des zéros est aussi bon que l'effacement avec des octets aléatoires, et vous n'avez pas besoin de plusieurs passes. L'effacement avec des zéros a laissé des données résiduelles qui pourraient être partiellement récupérées dans des conditions de laboratoire avec les technologies de disque dur des années 1980; ce n'est plus applicable aujourd'hui. Voir Pourquoi l'écriture de zéros (ou de données aléatoires) sur un disque dur plusieurs fois est-elle meilleure que de le faire une seule fois?
Vous pouvez vous débarrasser des données confidentielles en texte clair en chiffrant tout sur le disque. Configurez un volume ecryptfs sur ce système de fichiers et déplacez-y tous vos fichiers (confidentiels). Remplacez ensuite tout l'espace inutilisé du système de fichiers. Vous pouvez en effacer la plupart en remplissant le système de fichiers avec
cat /dev/zero >zero
. Il peut encore y avoir des informations dans des blocs incomplets (blocs qui contiennent le dernier morceau d'un fichier, suivis de quelques ordures - qui pourraient être des restes d'un fichier confidentiel). Pour vous assurer qu'il n'y a pas de blocs incomplets, déplacez tout sur le système de fichiers vers ecryptfs (les fichiers ecryptfs utilisent des blocs entiers, au moins sur les configurations typiques où les blocs font 4 Ko). Assurez-vous de l'appliquer à tous les volumes et d'effacer tous les instantanés contenant des données confidentielles en texte brut.Il y a peut-être encore des informations dans le journal. Je ne sais pas comment frotter ça.
Sur SSD, en raison de la réaffectation des blocs, il peut y avoir des données qui ne peuvent pas être lues par des logiciels normaux mais qui peuvent être récupérées en piratant le micrologiciel ou avec un accès physique. Là, votre seul recours est un essuyage complet du SSD.
la source
0
correct, et non soumis au TRIMing, dirait que tout est écrit à1
la place? Ou certains lecteurs utilisent-ils la compression sur tout?Hmmm, btrfs semble vaincre toutes les méthodes de déchiquetage habituelles ...
nodatacow
mais qui ne semble pas affecter les fichiers déjà existants.debugfs
. C'est seulement pour les systèmes de fichiers ext mais il y a un correctif qui pourrait fonctionner. Vous pouvez l'utiliser pour trouver les adresses de bloc affectées, puis les remplacer directement sur / dev / sdXY. Mais c'est très dangereux et pourrait ne pas fonctionner (surtout s'il y a plus d'instantanés du fichier)La tentative la plus propre (pour les données vraiment très sensibles) serait de:
Ce n'est peut-être pas l'approche la moins chère, mais compte tenu des faibles coûts de stockage actuels et des problèmes que vous auriez avec les autres options, cela pourrait en fait être la moins chère (en termes d'heures de travail).
la source
nodatacow
définit l'état par défaut de l'C
indicateur pour les fichiers nouvellement créés . Certes, on pourrait justechattr +C ~/.browser/logins.sqlite
et ensuiteshred
?Il y en a
shred(1)
pour Unix / Linux (devrait être dans les packages de votre distribution). C'est ce que recommande l'EFF .la source