Sicher löschen: RAM, Dateien, Swap und freien Speicherplatz unter Linux

Über Sinn, Unsinn und Paranoia bezüglich des sicheren Löschens von Daten kann man ausgiebig diskutieren. Wie viel Sinn es tatsächlich macht seine Daten sicher zu löschen und ob es den Zeitaufwand wert ist, das möchte ich hier offen lassen. Möge das jeder für sich entscheiden. Fakt ist: Das sichere Löschen dauert deutlich länger und kostet mehr Rechenzeit als das gewöhnliche Löschen, da der zu löschende Datenbereich mehrmals überschrieben wird und die dafür nötigen Zufallsdaten generiert werden müssen.

Wer sich dafür interessiert, findet im Repository seiner Distribution sicherlich irgendwo das Paket „secure-delete“, welches auf Ubuntu/Debian-Systemen mittels folgender Zeile aus der Shell heraus installiert werden kann:

sudo apt-get install secure-delete

Wer das Paket im Repository seiner Distribution nicht findet, kann es sich über die Seite des Autos herunterladen, in dem er dort nach „secure delete“ sucht: http://freeworld.thc.org

Die Tool-Sammlung besteht aus vier Befehlen für die Kommandozeile: sdmem, sfill, srm und sswap. Wer diese Befehle effektiv nutzen möchte, sollte sie am besten mit Root-Rechten ausführen (mit einem vorgesetzten sudo unter Ubuntu zum Beispiel). Da die Befehle sdmem und sfill den freien Speicher überschreiben, ist ihr Einsatz noch effektiver, wenn Programme bereits geschlossen wurden, die sensible Daten im Arbeitsspeicher oder temporär auf Festplatten gespeichert lassen könnten.

WICHTIG: Vorsicht im Umgang mit den Befehlen srm und sswap! Wer nicht aufpasst, kann damit versehntlich wichtige Daten löschen! Für Datenverluste welcher Art auch immer übernehme ich daher keine Verantwortung.



Secure-Delete im Überblick

sdmem: Überschreibt den vorhandenen Arbeitsspeicher sicher.

sfill <VERZEICHNIS>: Überschreibt den freien Speicherplatz auf der Festplatte. Wer möchte kann auch ein Verzeichnis angeben, dann werden alle freien Inodes eines angegebenen Verzeichnisses sicher gelöscht.

Beispiel:

sfill /home/mein_account/

srm <DATEI>: Löscht wie der Befehl rm Dateien bzw. mit der Option -r auch rekursiv Verzeichnisse – nur eben sicher, durch mehrmaliges Überschreiben.

Beispiel:

srm Dokument.doc

sswap /dev/[Partition]: Löscht die Swap-Partition durch mehrmaliges Überschreiben sicher.

Die Swap-Partition muss für diesen Prozess zunächst deaktiviert werden: swapoff -a. Nach Beendigung des Löschvorgangs kann die Swap-Partition wieder aktiviert werden: swapon -a. Da swapon/swapoff -a dazu führt, dass alle Swap-Partitionen deaktiviert werden und man eventuell nur eine bestimmte Swap-Partition aktivieren/deaktivieren möchte, kann man dies auch mittels swapon/swapoff -U <UUID> tun.

Wer sich unsicher ist wie die UUID seiner Swap-Partition lautet oder wo diese überhaupt im System verankert ist, kann dies mit dem Befehl blkid einsehen. Die Swap-Partition trägt am Ende der Zeile die Bezeichnung: TYPE=”swap”.

Beispiel:

sswap /dev/sda5

Alle Befehle unterstützen die Optionen -f und -l

Der Schalter -f steht für „fast“, zu Deutsch: „schnell“. Er führt den Löschvorgang deutlich schneller aus, da er nicht auf das Device-File /dev/urandom des Systems zugreift, welches Zufallsdaten produziert. Dieser Vorgang ist jedoch auch unsicherer!

Der Schlater -l steht für „lessens the security“, was so viel bedeutet wie „mit verringerter Sicherheit“. Die Daten werden nur in zwei Durchgängen überschrieben. Es wird daher empfohlen diesen Vorgang anschließend noch ein zweites Mal durchzuführen.

Übrigens: Wer sich für weitere Schalter/Optionen der jeweiligen Befehle sowie deren Löschprozedur und Hintergrundinformationen interessiert, kann zu jedem Befehl eine Manpage aufrufen:

man sdmem
man sfill
man srm
man sswap