Neben der sicheren Aufbewahrung von Daten steht man gelegentlich auch vor dem Problem, Dateien gründlich vom Datenträger zu putzen. Es gibt verschiedene Varianten, Datein vom Datenträger zu entfernen. Über die Arbeit der einzelnen Varianten sollte Klarheit bestehen, anderenfalls erlebt man evtl. eine böse Überraschung.
1. Dateien in den Papierkorb werfen
Unter Windows wird diese Variante als
"Datei(en) löschen" bezeichnet, was etaws irreführend ist. Es wird überhaupt nichts beseitigt. Die Dateien werden in ein spezielles Verzeichnis verschoben. Sie können jederzeit wiederhergestellt werden. Das ist kein Bug, sondern ein Feature.
2. Papierkorb leeren
Auch beim Löschen der Dateien in dem speziellen Müll-Verzeichnis werden keine Inhalte beseitigt. Lediglich die von den Dateien belegten Bereiche auf dem Datenträger werden als
"frei" gekennzeichnet. Falls sie nicht zufällig überschrieben werden, kann ein mittelmäßig begabter User sie wiederherstellen.
Forensische Tools wie Sleuthkit, Scalpel u.a. unterstützen Ermittler dabei. Sie bieten Werkzeuge, die den gesamten Datenträger nach Mustern durchsuchen können.
3. Dateien sicher löschen (Festplatten)
Um sensible Daten sicher vom Datenträger zu putzen, ist es nötig, sie vor dem Löschen zu überschreiben. Es gibt diverse Tools, die einzelne Dateien oder ganze Verzeichnisse shreddern.
- Windows: Es gibt mehere Tools, die sich in den Explorer intergrieren und beim Rechtsklick auf eine Datei oder Verzeichnis einen Menüpunkt zum sicheren Löschen bereitstellen.
- Das GpgSX bietet auch eine Erweiterung die Möglichkeit, Dateien und Verzeichnisse mit einem Mausklick sicher zu löschen: "Wipe..."
- Das kleine Tool AxCrypt zur Verschlüsselung und Löschung von Dateien integriert sich ebenfalls in den Explorer und stellt zusätzliche Menüpunkte für das sichere Löschen von Dateien bzw. Verzeichnissen bereit.
- Linux: Für Liebhaber der Kommandozeile gibt es shred und wipe.
Einzelne Dateien kann man mit shred löschen:
> shred -u dateiname
Das Kommando kann als ServiceMenü in verschiedene Dateimanager integriert werden. Für Konqueror und Dolfin (KDE4) ist die Datei shred.desktop nach dem Download in "$HOME/.kde/share/kde4/services/ServiceMenus" zu speichern. Zukünftig kann man Dateien mit einem Rechtsklick sicher Löschen.
Für Verzeichnisse kann man wipe nutzen. Das folgende Kommando überschreibt rekursiv (Option -r) alle Dateien in allen Unterverzeichnissen 4x (Option -q) und löscht anschließend das gesamte Verzeichnis.
> wipe -rq verzeichnis
Standardmäßig ohne "-q" überschreibt wipe die Daten 34x. Das dauert bei großen Dateien sehr lange und bringt keine zusätzliche Sicherheit.
Btrfs soll das kommende neue Dateisystem für Linux werden und wird bereits bei einigen Server-Distributionen eingesetzt. Bei diesem Dateisystem funktionieren shred und wipe NICHT. Btrfs arbeitet nach dem Prinzip "Copy on Write". Beim Überschreiben einer Datei werden die Daten zuerst als Kopie in einen neuen Bereich auf der Festplatte geschrieben, danach werden die Metadaten auf den neuen Bereich gesetzt. Ein gezieltes Überschreiben einzelner Dateien auf der Festplatte ist bei Btrfs nicht mehr möglich.
Auch bei diesen Varianten bleiben möglicherweise Spuren im Dateisystem zurück. Aktuelle Betriebssysteme verwenden ein Journaling Filesystem (NTFS, ext3/4). Daten werden nicht nur in die Datei geschrieben, sondern auch in das Journal. Es gibt kein Tool für sicheres Löschen von Dateien, welches direkten Zugriff auf das Journal hat.
4. Dateireste nachträglich beseitigen (Festplatten)
Mit
Bleachbit kann man die Festplatte nachträglich von Dateiresten säubern. Das Programm gibt es für Windows und Linux. Linuxer können es auch aus den Repositories installieren.
Nach der Installation ist Bleachbit als Adminstrator bzw. root zu starten und nur die Option
"Free disk space" zu aktivieren. Außerdem ist in den Einstellungen ein schreibbares Verzeichnis auf jedem Datenträger zu wählen, der gesäubert werden soll.
Anschließend startet man die Säuberung mit einem Klick auf den Button
"Clean".
Die Säuberung einer größeren Festplatte dauert einige Zeit. Dabei werden nur die als "frei" gekennzeichneten Bereiche überschrieben, das Dateisystem bleibt intakt.
5. Dateien sicher löschen (SSDs)
Alle oben genannten Tools für Festplatten funktionieren nicht mit Flash basierten Solid State Drives (SSD-Festpaltten und USB-Sticks)! Um die Speicherzellen zu schonen, sorgt die interne Steuerelektronik dafür, dass für jeden Schreibvorgang andere Zellen genutzt werden. Ein systematischen Überschreiben einzelner Dateien ist nicht möglich. Die Auswertung der Raw-Daten der Flash Chips ermöglicht eine Rekonstruktion mit forensischen Mitteln. Mehr Informationen liefert
Erasing Data from Flash Drives.
Für SSDs ist die Trim Funktion zu aktivieren. Dabei werden den Speicherzellen eines Blocks einige Zeit nach dem Löschen der Datei auf den Ursprungszustand zurück gesetzt. Zusätzliche Maßnahmen zum sicheren Löschen sind dann nicht mehr nötig. Die meisten aktuellen Betriebssystem aktivieren Trim nicht(!) standardmäßig.
Folgende Schritte sind nötig, um Trim nach der Installation für SSDs zu aktivieren:
- Windows: Starten sie das Programm cmd als Administrator, um ein Terminal zu öffnen. Im Terminal kann man mit folgendem Kommando den Status der Trim Funktion abfragen:
> fsutil behavior query disabledeletenotify
Wenn ein Wert = 0 ausgegeben wird, ist Trim aktiviert. Wird ein Wert = 1 ausgegeben, aktivieren sie die Trim Funktion mit folgendem Kommando:
> fsutil behavior set disabledeletenotify 0
- Linux unterstützt seit Kernel 2.6.33 die TRIM Funktions für SSDs. Das Dateisystem auf der SSD ist mit der Option discard zu mounten, um TRIM zu aktivieren.
- Für fest eingebaute Datenträger können die Optionen in der Datei /etc/fstab modifiziert und die Option discard eingefügt werden:
UUID=[NUMSLETTER] / ext4 discard,errors=remount-ro 0 1
- Die mount-Optionen für USB-Sticks können mit usbmount angepasst werden. Nach der Installations des Paketes usbmount kann man in "/etc/usbmount/usbmount.conf" die Mount-Optionen anpassen. Folgende Einstellungen funktionieren bei mir unter Ubuntu precise:
MOUNTOPTIONS="discard,noexec,nodev,noatime,nodiratime"
FS_MOUNTOPTIONS="-fstype=vfat,gid=floppy,dmask=0007,fmask=0117"
Alle Nutzer, die unter Windows mit vFAT formatierte USB-Sticks einsetzen wollen, müssen zur Gruppe floppy gehören (was standardmäßig unter Ubuntu der Fall ist). Die vFAT formatierten Sticks müssen als root ausgehängt werden (mit pumount), bevor man den Stick abzieht. Anderenfalls kann es zu Datenverlusten kommen.
Hinweise: Debian squeeze verwendet noch einen Kernel 2.6.32. und kann mit der Option discard nichts anfangen.
Ich werde für mich persönlich weiterhin die vollständige Verschlüsselung der USB-Sticks den Spielereien mit TRIM vorziehen. Damit werden nicht nur gelöschte Dateien geschützt sondern auch die noch vorhandenen Daten. Das Auslesen der RAW-Daten der Speicherzellen durch Forensiker ist dann ebenfalls wenig erfolgreich.
6. Gesamten Datenträger säubern (Festplatten)
Bevor ein Laptop oder Computer entsorgt oder weitergegeben wird, sollte man die Festplatte gründlich putzen. Am einfachsten erledigt man diesen Job mit
Darik's Boot and Nuke (DBAN) Live-CD. Nach dem Download ist das ISO-Image auf eine CD zu brennen und der Computer mit dieser CD zu booten. Es werden automatisch alle gefundenen Festplatten gelöscht - fertig.
Eine beliebige Linux Live-CD tut es auch (wenn man bereits eine Live-CD nutzt). Nach dem Booten des Live Systems öffnet man ein Terminal (Konsole) und überschreibt die gesamte Festplatte. Bei einem Aufruf wird der Datenträger 4x überschrieben, es dauert einige Zeit.
Für die erste IDE-Festplatte:
> wipe -kq /dev/hda
Für SATA- und SCSI-Festplatte:
> wipe -kq /dev/sda
Wenn die Live-CD das Tool
wipe nicht enthält, kann man alternativ
dd (disk doubler) nutzen. Um die erste IDE-Festplatte einmal mit NULL und dann noch einmal mit Zufallszahlen zu überschreiben, kann man folgende Kommandos nutzen:
> dd if=/dev/zero of=/dev/hda
> dd if=/dev/urandom of=/dev/hda
(Paranoia: Einmal mit NULL überschreiben reicht, alles andere ist paranoid.)
6. Gesamten Datenträger säubern (SSDs)
Das komplette Löschen einer SSD-Platte oder eines USB-Sticks funktioniert am besten, wenn der Datenträger den ATA-Befehl "SECURE-ERASE" unterstützt. Diese Funktion muss allerdings durch den Datenträger bereitgestellt werden. Unter Linux kann man das Tool
hdparm nutzen.
Als erstes ist zu prüfen, ob "SECURE-ERASE" unterstützt wird:
> sudo hdparm -I /dev/X
Das Ergebnis muss einen Abschnitt "Security" enthalten und muss auf
"not frozen" stehen. Falls die Ausgabe
"frozen" liefert, wird "SECURE-ERASE" im Bios des Rechners blockiert.
Security:
Master password revision code = 64060
supported
not enabled
not locked
not frozen
expired: security count
supported: enhanced erase
Dann kann man ein Passwort setzen und den Datenträger vollständig löschen:
> sudo hdparm --user-master u --security-set-pass GEHEIM /dev/X
> sudo hdparm --user-master u --security-erase GEHEIM /dev/X
Falls der Datenträger "SECURE-ERASE" nicht unterstützt, bleibt nur das einfache Überschreiben des Datenträgers. Dabei werden aber nicht alle Speicherzellen garantiert gelöscht:
> dd if=/dev/zero of=/dev/sdc