Daten sicher löschen mit „shred“ unter GNU/Linux

IMG_20140807_061903Die Harddisk hat defekte Sektoren und sollte in Garantie ausgetauscht werden. Natürlich möchte man nicht, dass die Daten darauf einsehbar sind und möchte diese entsprechend sicher und nachhaltig löschen. Auch wenn ein Computer inkl. Harddisk verkauft wird, sollte man vorher die Daten auf der Harddisk sicher löschen.
Hier kommt bei mir das kleine Programm „shred“ zum Einsatz. Es löscht Dateien oder Device-Dateien (Datenträger/Partitionen) und überschreibt diese wenn gewünscht danach. Dabei nutzt es die sogenannten „Gutmann-Methode„.

Parameter von shred

-f Erzwinge das Überschreiben. Setzt die Dateirechte automatisch neu, wenn dies zum Überschreiben notwendig ist.
-n N Überschreibe die Datei N mal (Standard ist 3).
-s N Überschreibe die Datei mit N Bytes. Suffixe K,M und G (für Kilo, Mega und Gigabyte) sind erlaubt.
-u Entferne Datei nach dem Überschreiben.
-v Zeige den Fortschritt während des shreddens.
-x Runde die Dateigrößen nicht bis zum nächsten Block auf.
-z Überschreibt die Datei am Ende nochmal nur mit Nullen, um das vorangegangene Shredden zu verschleiern.

Beispiele

Einzelne Dateien löschen:

shred -vun <Durchgänge> <Datei1> <Datei2>

Soll ein Verzeichniss mit allen Dateien und Unterverzeichnissen gelöscht werden, wird zusätzlch „find“ und „xargs“ verwendet:

find <Verzeichnis> -type f -print0 | xargs -0 shred -vun <Durchgänge>

Für unser Beispiel des Garantie-Austausches oder eines PC-Verkaufs, kommt das überschreiben ganzer Partitonen, oder im Speziellen der ganzen Harddisk zum Einsatz. Hierzu muss man über root-Rechte verfügen (shred z.B. mit „sudo“ starten). Beim ersten Beispiel wird das Gerät (Harddisk) mit Nullen überschrieben. Dies ist die schnellste, aber nicht sicherste Methode. Als Gerät kann immer ein kompletter Datenträger (z.B. /dev/sda) oder eine Partition (z.B. /dev/sda3) angegeben werden.
ACHTUNG: Die Partition sollte nicht im System eingebunden sein! Shred warnt bei der Ausführung nicht, wenn dies der Fall ist.

sudo shred -vzn 0 <Gerät>

Das Überschreiben mit Zufallszahlen dauert länger, da diese generiert werden müssen. Zusätzlich kann die Anzahl der Überschreib-Zyklen angegeben werden.

sudo shred -vn <Durchgänge> <Gerät>

 Persönliches vorgehen an einem Beispiel

USBtoSATA-SeagateHDDIch habe die Harddisk (aus einem NAS mit RAID6) über einen „USB TO SATA“  Adapter an meinem Desktop-PC (mit Ubuntu-Linux) angeschlossen. Die Harddisk kann, auch wenn sie noch funktioniert, nicht einfach gelesen werden, da sie aus einem RAID-Verbund stammt. Um nun zu erfahren, als welches Device die Harddisk in das System eingebunden wurde, schalte ich die HDD ein und schaue mir mit dem Befehl „dmesg“ die letzten Einträge an. Bei mir sieht das so aus:

[ 1218.104663] usb 2-1.3: new high-speed USB device number 8 using ehci-pci
[ 1218.268877] usb 2-1.3: New USB device found, idVendor=067b, idProduct=2773
[ 1218.268883] usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1218.268886] usb 2-1.3: Product: USB-SATA Bridge
[ 1218.268888] usb 2-1.3: Manufacturer: Prolific Technology Inc.
[ 1218.268891] usb 2-1.3: SerialNumber: XXXXXXXXXXXXXX
[ 1218.269272] usb-storage 2-1.3:1.0: USB Mass Storage device detected
[ 1218.269981] scsi7 : usb-storage 2-1.3:1.0
[ 1219.269188] scsi 7:0:0:0: Direct-Access     ST3000DM 001-XXXXX       CC4H PQ: 0 ANSI: 0
[ 1219.269571] sd 7:0:0:0: Attached scsi generic sg2 type 0
[ 1219.270265] sd 7:0:0:0: [sdb] Very big device. Trying to use READ CAPACITY(16).
[ 1219.271728] sd 7:0:0:0: [sdb] 5860533168 512-byte logical blocks: (3.00 TB/2.72 TiB)
[ 1219.272842] sd 7:0:0:0: [sdb] Write Protect is off
[ 1219.272846] sd 7:0:0:0: [sdb] Mode Sense: 03 00 00 00
[ 1219.273865] sd 7:0:0:0: [sdb] No Caching mode page found
[ 1219.273870] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[ 1219.275127] sd 7:0:0:0: [sdb] Very big device. Trying to use READ CAPACITY(16).
[ 1219.278096] sd 7:0:0:0: [sdb] No Caching mode page found
[ 1219.278102] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[ 1219.330608]  sdb: sdb1 sdb2 sdb3
[ 1219.331821] sd 7:0:0:0: [sdb] Very big device. Trying to use READ CAPACITY(16).
[ 1219.335978] sd 7:0:0:0: [sdb] No Caching mode page found
[ 1219.335984] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[ 1219.335987] sd 7:0:0:0: [sdb] Attached SCSI disk

Im zweiten Teil der Ausgabe findet man dann bereits „[sdb]“, was dem Device-Namen entspricht. Nun haben wir alle benötigten Informationen für ein sicheres Löschen zusammen.

Übrigens kann man die Ausgabe von „dmesg“ zusammen mit „tail“ abkürzen. Wenn man nur die letzten 20 Zeilen sehen möchte, sieht das so aus:

dmesg | tail -20

Starten des Löschvorgangs

root@x201:~# shred -vzn 0 /dev/sdb
shred: /dev/sdb: Durchgang 1/1 (000000)...
shred: /dev/sdb: Durchgang 1/1 (000000)...471MiB/2,8TiB 0%
shred: /dev/sdb: Durchgang 1/1 (000000)...472MiB/2,8TiB 0%
...
shred: /dev/sdb: Durchgang 1/1 (000000)...29GiB/2,8TiB 1%
shred: /dev/sdb: Durchgang 1/1 (000000)...30GiB/2,8TiB 1%
shred: /dev/sdb: Durchgang 1/1 (000000)...31GiB/2,8TiB 1%
...
shred: /dev/sdb: Durchgang 1/1 (000000)...2,6TiB/2,8TiB 95%
shred: /dev/sdb: Durchgang 1/1 (000000)...2,7TiB/2,8TiB 98%
shred: /dev/sdb: Durchgang 1/1 (000000)...2,8TiB/2,8TiB 100%

Das Löschen mit lauter Nullen geht einiges schneller, als wenn die Harddisk mit Random-Zahlen überschrieben wird. Der Grund ist einfach: Random-Zahlen (Zufallszahlen) müssen zuerst generiert werden, was Zeit benötigt. Das mehrmalige Überschreiben mit Nullen reicht aber meistens vollkommen – ausser man hat extrem heikle Daten auf der Harddisk, die eine professionelle Wiederherstellung wert wären. In diesem Fall zerstört man den Datenträger sowieso besser komplett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.