Wie eine Platte unwiederherstellbar und sicher loeschen

Aus Linupedia.org
Version vom 6. Januar 2015, 10:55 Uhr von Gehrke (Diskussion | Beiträge) (Das Programm dd: Verteilte Generierung von Zufallszahlen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Problembeschreibung

Hin und wieder kann es vorkommen, man hat eine Festplatte oder einen USB-Stick auf der sich wichtige private oder dienstliche Dinge befinden könnten, und muss oder möchte dieses Medium aus der Hand geben, sei es wegwerfen, zum Händler zurück oder verkaufen, verschenken was auch immer.
Die Daten auf diesem Medium können, wenn wir nichts dagegen unternehmen von jedem ausgelesen und in den falschen Händen auch missbraucht werden. Man sollte also dringend etwas dagegen tun, möglichst schon wenn man eine solche Platte aus dem Rechner ausbaut und irgendwo in sein Hardware-Reserve-Regal legt.


Möglichkeiten die Wiederherstellbarkeit zu erschweren

Löschen aller Dateien

Das einfache löschen aller Dateien bietet je nach verwendeten Filesystem einen winzigen Schutz, allerdings man muss sich darüber im klaren sein, es sind nur die Dateinamen und manchmal nicht mal diese richtig gelöscht sind. Die Daten, die in den Dateien standen, sind nach wie vor unverändert auf der Festplatte, man braucht nicht allzuviel im Internet suchen um einige Methoden zu finden, wie man diese Dateien wieder herstellen kann. Auch ansonsten ist es einfach die Daten "raw" (physikalisches Auslesen der Daten) vom Medium zu lesen.


Ändern oder Löschen der Partitionstabelle

Diese Methode ist wohl die schnellste, bietet aber fast keinen Schutz, da es keinerlei Hinderniss darstellt, diese wieder herzustellen.


neue Filesysteme darüber legen

Auch wenn man mehrfach unterschiedliche Filesysteme neu über eine Partition legt, bietet das noch nicht viel Schutz. Es dürfte hinterher etwas schwerer fallen, die Dateien automatisch als Ganzes wieder zurückzuholen, aber spätestens wenn man sich die "raw" Daten anschaut, kann man wieder herstellen was man gerne sehen möchte.


Wichtige Daten sicher löschen

Dabei werden bestimmte Dateien oder Verzeichnisse gezielt überschrieben.( siehe Verfahren weiter unten ) So überschriebene Dateien sind dann nicht mehr zurückzuholen. Allerdings sollte man berücksichtigen.

  • bei Journalfilesystemen kann es durchaus vorkommen, das die Datei gar nicht so oft überschrieben wird, wie man es gerne hätte.
  • kennt man wirklich alle Dateien die wichtige Daten enthalten, damit man sie so löschen kann?
  • schon gelöschte Dateien und deren Fragmente (z.B. Backup- oder Vorgängerversionen der Originaldateien) können nach wie vor wieder hergestellt werden bzw solche Fragmente "raw" von der Platte gelesen werden.


Ganze Partitionen oder gesamte Platte überschreiben

Dabei wird die Platte meist mit einem festem Datenmuster oder mit "FF" oder "00" überschreiben. Hier ist meistens für einen Amateur Schluss. Der normale PC oder Serveranwender wird hier nichts mehr herstellen oder lesen können, aber eben auch nur der "normale". Es ist z.B. in einem speziellen Labor oder beim Hersteller durchaus möglich alles oder bedeutende Teile davon wieder herzustellen.

gesamte Platte neu Low Level formatieren

Hier ist das Hardwareformatieren gemeint. Es bietet einen gewissen Schutz. Der normale User wird wohl hier nichts mehr ausrichten können. Es ist jedoch nicht das einfachste Verfahren, da es abhängig von der Hardware ist, ob und wie das überhaupt durchzuführen wäre. Es gibt von den Herstellern von Controllern und Festplatten solche Tools, mit denen man so was machen könnte. Dieses Verfahren wird wohl nicht allzuoft verwendet. Wer seine Daten sicher verbergen muss, der kann auch hier nicht auf Tools der Hersteller setzen, wenn es Hintertüren gibt, dann sind diese dann ja beim Hersteller bestens bekannt.

Platte mehrfach überschreiben

Dabei wird die gesamte Platte mehrfach mit bestimmten Mustern oder mit Zufallszahlen komplett überschrieben. Mit jedem Übeschreiben wird es in speziellen Forensischen Labor schwieriger, den Originalinhalt wiederherstellen zu können. Aber erstmal ist nichts unmöglich. Es gibt aber auch durchaus jetzt auf der Platte noch einige Bereiche, die hierbei gar nicht überschrieben werden, z.B. einige Blöcke die irgendwann mal von der Platte als defekt markiert wurden und anstatt deren dann Reserveblöcke benutzt wurden. Die Wahrscheinlichkeit, dass aber genau dort noch wichtige Daten stehen könnten, ist abhängig von der Gesamtdichte der geheimen Informationen auf dem Medium.

Programme zum sicheren Löschen

Achtung alle hier vorgestellten Beispiele und Programme löschen wirklich vollständig, deshalb müsst ihr sicher sein, dass ihr die richtige Festplatten Verzeichnisse oder Dateien damit bearbeitet. Ansonsten kann euch hier keiner mehr weiterhelfen


Das Programm dd

dd ist ein Tool mit dem unter anderem auch "raw" auf die Festplatte zugegriffen werden kann.

Bei den folgenden Beispielen nehmen wir an unsere zu löschende Platte ist hdc

  • Löschen MBR mit Partitionstabelle
dd if=/dev/zero of=/dev/hdc bs=512 count=1


  • Überschreiben der gesamten Platte mit NULLEN (also Hexadezimal 0x00) (kann je nach Plattengröße und -geschwindigkeit auch einige Stunden dauern)
dd if=/dev/zero of=/dev/hdc bs=64K 


  • Überschreiben der gesamten Platte mit Zufallszahlen (kann je nach Plattengröße und Rechnergeschwindigkeit viele Stunden oder Tage dauern):
dd if=/dev/urandom of=/tmp/hdc bs=64K

Um die Gesamtdauer dieses Prozesses abzukürzen, kann bei Verfügbarkeit ausreichender Ressourcen dieses Verfahren verwendet werden: Verteilte Generierung von Zufallszahlen

Überschreiben mittels Verschlüsselung

Nach einem Tip von joka

Eine deutlich schnellere Methode, um eine Partition mit "Zufalls"-Zahlen zu überschreiben wurde in der c't 11/2006 vorgestellt. Bis OpenSUSE 10.1 benötigt man hierfür cryptsetup-luks (z.B. auf Packman für SuSE), ab OpenSUSE 10.2 ist das Package cryptsetup (ohne -luks) in der Distribution enthalten. Die Grundidee dabei ist, ein verschlüsseltes Device mit Nullen zu beschreiben. Der Verschlüsselungsalgorithmus aes-xts.. sorgt dafür, dass die Nullen in jedem Block verschieden verschlüsselt werden, so dass das Ergebnis von Zufallszahlen kaum zu unterscheiden ist:

Beispiel: Überschreiben einer LVM-Partition /dev/system/testlv

# cryptsetup luksFormat -c aes-xts-essiv:sha256 -s 256 -y /dev/system/testlv

WARNING!

This will overwrite data on /dev/system/testlv irrevocably.
Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.
# cryptsetup luksOpen /dev/system/testlv testdd
Enter LUKS passphrase:
key slot 0 unlocked.
Command successful.
# dd if=/dev/zero of=/dev/mapper/testdd
dd: writing to `/dev/mapper/testdd': No space left on device
407545+0 records in
407544+0 records out
208662528 bytes (209 MB) copied, 17.7456 seconds, 11.8 MB/s

Diese Methode ist ca. 3-4 mal schneller als /dev/urandom

Tool wipe

mit wipe lassen sich Dateien, Verzeichnissbäume oder ganze Partitionen und Festplatten sicher löschen genaueres erfahren sie aus der ManPage die wipe mitbringt. ( Das Löschen einer ganzen Platte kann je nach Größe und Programmoptionen durchaus auch Tage dauern)


  • Beispiel: /dev/hdc durch mehrfaches Überschreiben sicher löschen. Der Parameter -p4 steht für 4 statt default 1 Durchgang beim Überschreiben. Der Parameter -D bewirkt, dass die Gerätedatei hdc im Verzeichnis /dev/ erhalten bleibt. (Genau genommen wird damit die Platte ganze 32 Mal mit Zufallszahlen überschrieben. 32 ergibt sich aus 8 mal aus der default Option -x8 multipliziert mit 4 aus der Option -p4 . Das kann dann bei einer durchschnittlichen Platte schon ganz schön lange dauern.)
wipe -Dp4 /dev/hdc


  • Beispiel Verzeichnis tempdir rekursiv durch mehrfaches Überschreiben sicher löschen. Der Parameter f (force) bewirkt, dass wipe nicht nachfragt ob das Verzeichnis wirklich gelöscht werden soll.
wipe -rf testdir
  • Einfaches Ausnullen (wie dd if=/dev/zero) geht mittels
wipe -z datei

Im Gegensatz zu dd erhält man dabei auch eine Statusanzeige.

Tool shred

shred wird wohl auf den meisten Rechnern gleich mit den coreutils mit installiert und kann sowohl zur Löschung von einzelnen Dateien als auch gesamter Festplatten herangezogen werden. Die physikalische Löschung erfolgt durch mehrmaliges Überschreiben der betreffenden Sektoren mit zufälligen Bitmustern, so dass eine Wiederherstellung der gelöschten Daten erschwert wird. Genauere Infos gibts in der manpage.

Beispiele:

  • Durch den Kommandozeilenparameter "-n" kann die Anzahl der Überschreibungen beeinflusst werden:
shred -n 35 -u /home/geheimfile

überschreibt die geheimfile 35-mal und löscht sie anschließend. Standardmäßig wird die angegebene Datei nicht gelöscht, sondern nur überschrieben.

  • Dieses bietet die Möglichkeit, auch Device-Namen anzugeben:
shred -n 35 /dev/hdc

Das kann je nach größe der Fesplatte aber sehr lange dauern,

  • deshalb lohnt sich ein Blick auf eine Fortschrittsanzeige, die man sich mit "-v" anzeigen lassen kann:
shred -n 35 -v /dev/hdc

Externe Tools zum sicheren Löschen

Tool dban

dban steht für Darik's Boot and Nuke und ist ein Tool das von Disk CD/DVD oder USB bootbar ist, und mit dem komplette Platten ausreichend sicher gelöscht werden können. ( je nach Größe der Platte durchaus viele Stunden)

http://dban.sourceforge.net/


Links

Forensic-Discovery Buch (auch online) zum sich mal etwas näher in diese Problematik einzulesen



Zurück zur Security Übersicht