Wie kann ich sicher sein, dass ein Verzeichnis oder eine Datei tatsächlich gelöscht wird?

14

Ich weiß, dass die meisten gelöschten Dateien nicht wirklich von der Festplatte entfernt werden und später wiederhergestellt werden können.

Wie kann ich sicherstellen, dass ein gelöschtes Verzeichnis tatsächlich von der Festplatte entfernt wird? Gibt es dafür Dienstprogramme?

Ich benutze Debian Linux.

jcora
quelle
5
Die kurze Antwort: Sie können nicht! Die lange Antwort: Entweder die Festplatte physisch zerstören oder die Frage neu formulieren: Wie viel Aufwand würde es kosten, die Daten wiederherzustellen, und wie hoch wäre die Erfolgsquote eines solchen Versuchs?
Marco

Antworten:

11

Verschlüsseln Sie die Daten, bevor Sie sie speichern. Wischen Sie den Schlüssel, um die Daten zu löschen.

Wenn Sie die Daten bereits im Klartext geschrieben haben, ist es zu spät, um sie auf einfache Weise zu löschen. Es können mehrere Kopien der Daten an verschiedenen Orten herumliegen:

  • auf dem Dateisystem, wenn die Datei mehrmals geschrieben wurde (entweder überschrieben oder ersetzt);
  • auf dem Dateisystem, wenn es im Rahmen der Defragmentierung neu angeordnet wurde;
  • im Tagebuch (dies wird wahrscheinlich ziemlich schnell verschwinden, nachdem die Daten zuletzt geschrieben wurden);
  • in Backups;
  • in behinderten Sektoren (vor allem auf SSD).

Um Kopien der Daten im Dateisystem zu entfernen, müssen Sie den freien Speicherplatz ausfüllen ( cat /dev/zero >somefileund warten, bis das Dateisystem voll ist). Dies überschreibt alle vollen Blöcke.

Kleine Teile der Daten können in unvollständigen Blöcken verbleiben, die teilweise von anderen Dateien verwendet werden. Dies betrifft insbesondere Dateinamen, die in Blöcken verbleiben können, in denen Verzeichnisinhalte gespeichert sind. Um alles loszuwerden, sichern Sie alle Dateien, überschreiben Sie das Gerät mit dem Dateisystem vollständig und stellen Sie die Dateien wieder her.

Speichermedien können Daten in Blöcken speichern, die nicht mehr verwendet werden. Auf Festplatten bedeutet dies, dass fehlerhafte Blöcke neu zugeordnet wurden. Dies ist ein ziemlich seltenes Ereignis, bis die Festplatte abgenutzt ist. Bei SSDs tritt dies häufig aufgrund von Abnutzungsnivellierungen auf. In beiden Fällen ist die Bedrohung sehr gering, da für den Zugriff auf diese Daten ein eher erfahrener Angreifer mit mäßig teurer Hardware und Zeitverschwendung erforderlich ist. Wenn Sie sich um diese Bedrohungen kümmern, verschlüsseln Sie Ihre Daten und lassen Sie Ihren Schlüssel nicht herumliegen.

Beachten Sie, dass Sie möglicherweise Hinweise zum Löschen von Daten erhalten, indem Sie mehrere Durchgänge durchführen oder zufällige Daten anstelle von Nullen verwenden („Gutmann-Wipe“). Vergiss es: Dies gilt nur für Festplatten der 1980er Jahre (und selbst dann sind die Daten nicht so billig zu rekonstruieren und die Rekonstruktion ist ziemlich unzuverlässig). Das Überschreiben mit Nullen ist gut genug. mehrere zufällige Durchläufe sind veraltete Ratschläge oder Schlangenöl. Siehe Warum ist es um ein Vielfaches besser, Nullen (oder zufällige Daten) auf eine Festplatte zu schreiben, als es nur einmal zu tun?

Gilles 'SO - hör auf böse zu sein'
quelle
12

Es gibt ein sehr beliebtes Tool namens shred. Jede Datei wird 25-mal überschrieben, bevor sie gelöscht wird. Das könnte mir was du suchst.

Die Verwendung von Shred ist ganz einfach

$ shred secret_archive.tar.gz

Beachten Sie jedoch , dass auf modernen Systemen shredsein könnte ineffizient oder nutzlos , wenn:

  • Ihre Programme erstellen temporäre Dateien, die Sie nicht kennen (wie viele GUI-Anwendungen)
  • Ihr FS ist Copy-On-Write-basiert (wie ZFS oder Btrfs)
  • Ihr FS basiert auf Protokollen (wie NILFS)
  • Ihr FS verwendet Datenjournal (wie JFS, ReiserFS, XFS, ext3 oder ext4 in einigen Konfigurationen)
  • Ihr FS verwendet die Komprimierung
  • Ihr FS weist neue Versionen von Dateien an verschiedenen Speicherorten zu
  • Sie haben Snapshots oder Backups
  • Sie befinden sich in einem Netzwerk FS
  • Sie verwenden eine SSD mit Algorithmen zum Abnutzungsausgleich

Andere und möglicherweise sicherere Optionen sind:

  • Verschlüsselung kritischer Daten
  • Überschreiben der gesamten Partition oder des gesamten Speichergeräts
  • Physische Zerstörung des Gerätes
Taffer
quelle
1
Laut meiner Manpage shredfunktioniert das sogar mit ext3 (und ich denke auch ext4), wenn die Modi data = ordered (Standard) und data = writeback verwendet werden. Darüber hinaus gibt es eine einfache Alternative: Erstellen Sie einfach eine große Datei, die den gesamten verbleibenden Speicherplatz des Dateisystems belegt, damit Ihre gelöschte Datei überschrieben wird.
Scai
Vielen Dank. Ich habe es gerade behoben. journaling -> data jornaling
Taffer
@scai, die Methode für große Dateien wird nicht unbedingt funktionieren, da die Blöcke der Datei möglicherweise bereits neu zugewiesen und noch nicht geschrieben wurden (wie fehlgeleitete Daten, letzter Block von Dateien oder Verzeichnisse ...)
Stéphane Chazelas
3
shredist Schlangenöl: es ist nicht besser als head -c $(wc -c secret_archive.tar.gz)>! secret_archive.tar.gz`. Die Verwendung von Shred ist immer sinnlos, es sei denn, Sie verwenden eine Festplatte aus den 1980er oder frühen 1990er Jahren.
Gilles 'SO- hör auf böse zu sein'
3
shred / bcwipe / etc. sind Schlangenöl auf Dateisystemebene. Für jedes Dateisystem. Aufgrund der Art und Weise, wie Sie mit Dateien arbeiten: Jedes Mal, wenn Sie auf Speichern klicken, wird die alte Datei gelöscht (sie befindet sich im freien Speicherplatz) und eine neue Datei erstellt. Sie können es nicht zerkleinern, wenn das Dateisystem es bereits vergessen hat. - Auf Geräteebene ist dies anders oder es wird der gesamte freie Speicherplatz überschrieben. Dort ist shred eine der wenigen schnellen Zufallsdatenquellen, die unter Linux / Unix verfügbar sind. / dev / (u) random Es ist zu langsam, um große Datenmengen zu überschreiben. - Also ein einziger Shred Pass ist OK für Gerät oder freien Speicherplatz, nur nicht für einzelne Dateien
Frostschutz