Dateien unter Linux(Suse8.1) sicher löschen

LX-Ben

nicht mehr wegzudenken
Diese Lösung wird vermutlich unter etlichen Linux-Versionen funktionieren,
aber man sollte nicht mehr versprechen als selbst ausgetestet wurde. Und da
der Erläuterungsbedarf ein Einsteigertagebuch sprengt und auch möglicherweise
'gestandende Linux-Nutzer' sich mit diesem Thema bisher nicht intensiv ausein-
ander gesetzt haben, ist ein eigenes Tutorial sinnvoll. Im Hintergrund klagt
meine Frau "Was schreibst du denn schon wieder, ich denke du bist schon längst
auf LINUKS umgestiegen.." :D

Mit dem 'Löschen von Dateien' werden wie unter Windows'en nur der jeweilige
Dateiname im Linux-Dateisystem unzugänglich gemacht und die bisher belegten
Datensektoren/Plattenspuren zur Neubelegung freigegeben. Es gibt aber 'Rettungs-
programme', die eine Wiederherstellung ermöglichen. Um dieses Risiko (aus
welchen Gründen auch immer) auszuschalten, müssen die freien Datenbereiche
mit neuem Code überschrieben werden. Nach eigenen Tests unter Win98 mit einer
kompatiblen Methode und Wiederherstellungstools, die auch vom Bundesnachrichten-
dienst benutzt werden, wird folgende ausgetestete Lösung angeboten:

1.Knowhow-Geber war ragaller von supernature-forum.de*) mit link zu
http://www.newbie-net.de/anleitung_imagebackup.html
*) korrigiert, muss gestern spät gewesen sein :sleep

2. Die dort aufgezeigte Grundsatzlösung 'split -b 1000m < /dev/zero' musste zu
einem benutzerfreundlichen Script aufgebohrt werden - erst zweimaliges Über-
schreiben der freien Dateibereiche ergeben laut meinen Wiederherstellungstests
unter Win98 eine Zerstörsicherheit von MEHR ALS 99,9 Prozent! Das Script muss
also doppelt nähen. Wer einen dritten Löschlauf will, muss das Script erweitern.

3. Das Script soll zukunftssicher sein, also werden temporäre Dateien in Größe
von 2GB ausgewählt, so dass maximal 200 GB freier Plattenplatz mit diesem
Script gekillt werden können.

4. Problem1: Solch ein Script kann nur vom root autorisiert/gestartet werden -
interaktiv gelöst im Script mit 'ssh root@localhost'

5.Problem2: "Ich sehe zwar, dass die Platten-LED aufleuchtet, aber du kannst
uns viel erzählen.. Und irgenwie kann ich nicht erkennen, wann das Script
ferig ist!" STIMMT GENAU, sind die gleichen Fragen, die ich mir gestellt habe.
a) Da ich meinen Lösungsbedarf durchziehen wollte, aber in LX-Scripten noch
nicht voll fit bin, empfehle ich einmalig PARALLEL nach Starten des Scripts
putz-linux das Starten der Konsole und Eingeben von 'df -m' sowie das ggf.
mehrfache Starten von 'df -m' - bringt die gewünschte Fortschrittsanzeige.
b) Um eine Linux-Meldung über Ende-Job zu erhalten, ist am Schluss des Scripts
die Zeile 'ENDE' eingefügt, die zur Suse-Meldung 'Programm "putz-linux" ist
nicht auffindbar' führt. Lustig aber einprägsam, diese Meldung erfolgt bei
allen Scriptfehlern, hier nützlich, da beep (Tonsignal-fertig) im Script
leider versagt.
PS: Auch wenn ich mich selbst als Absicherer beschimpfen muss, die letzte
Zeile ENDE bleibt in meinem Script drin, die Fehlermeldung zum Abschluss
wirkt irgendwie beruhigend. Die Löschgeschwindigkeit bei einfachem Über-
schreiben (nicht empfohlen) beträgt bei meinem PIII-500 rund 1GB/Minute,
die Wiederherstellbarbeitsquote (bei einmaligem Überschreiben) knapp
ein Prozent.

6. Und so geht es, so wird einmalig das Script 'putz-linux' erstellt:

a) Auf das Home-Symbol links unten klicken. Auf freie Fläche mit rechter Maustaste
klicken - Neu erstellen - Textdatei - Name putz-linux ENTER - Rechtsklick auf
putz-linux - Öffnen mit kwrite oder kate und folgende Zeilen dorthin kopieren:

#!/bin/bash
# Überschreiben der ungenutzten Spuren auf / mit /dev/zero zu je 2000 MB

#Lauf 1
ssh root@localhost
split -b 2000m < /dev/zero
rm -f xa*
rm -f xb*
rm -f xc*
rm -f xd*

#Lauf 2
split -b 2000m < /dev/zero
rm -f xa*
rm -f xb*
rm -f xc*
rm -f xd*

ENDE

b) putz-linux durch Klick auf Disk-Symbol oder Klick auf X schreiben.
Rechtsklick auf das neue Symbol putz-linux, Eigenschaften - Berechtigungen
und Ausführen anhaken - OK. Der Abschlusstest durch Klick auf putz-linux
verläuft erfolgreich.
 
Zuletzt bearbeitet:
Nach einigen praktischen Erfahrungen ein paar Zusatzinformationen:

1. Früher brauchte man solche Routinen, um blacklisted Software total
zu killen. Aber auch heute gibt es Gründe: ZB. eine Datenbank soll für
niemanden mehr rekonstruierbar sein, die Festplatte soll umgetauscht
werden..

2. Die Festplatte soll umgetauscht werden..
Von einer CD mit rescue starten. Die zu löschenden Partitionen mounten
und folgenden Befehl starten (am Beispiel für die erste logische Partition):
dd if=urandom of=/dev/hda5

if=inputfile of=outpufile; urandom ist ein Zufallswert-Treiber, der vorher von
/dev/urandom zB. auf Diskette kopiert werden muss oder von einer
Partition geladen wird, die zuletzt geputzt wird - liegt standardmäßig
in /dev/urandom .

Mit dem genannten Befehl wird die Partition total überschrieben, egal was
sich darauf befindet! Also mit Vorsicht einsetzen.

2. Der freie Platz wird überschrieben, und damit auch 'gelöschte Datenbanken'..
Auf die gewünschte Partition wechseln und split -b 2000m < /dev/zero

eingeben, wie im ersten Beitrag ausgeführt. Man kann auch /dev/urandom
benutzen, ist noch wesentlich 'tödlicher.'

3. Durchsatzzeiten
10 GB mit /dev/zero und Zweifachlauf dauerte 13 Minuten.
10 GB mit /dev/urandom und Einfachlauf dauerte 42 Minuten.

4. Sicherheit gegen Rekonstruktion
Zweifaches zero führt bereits dazu, dass nur weniger als 0,1 Prozent der
Daten unzusammenhängend/in sehr kleinen Bruchstücken rekonstruiert
werden können - Erfahrungen aus meinen Tests mit Windows-encase.

Mein FACIT: Nur wer Geheimdienstangriffe fürchtet, sollte zu urandom
oder mehr greifen; das Script aus dem 1. Betrag sollte also reichen.
 
Original geschrieben von LX-Ben
Mein FACIT: Nur wer Geheimdienstangriffe fürchtet, sollte zu urandom
oder mehr greifen; das Script aus dem 1. Betrag sollte also reichen.
Hallo LX-Ben,

erstmal ein allgemeines Danke für deine Arbeit.

Bei letzterem musste ich aber dann doch schmunzeln ;)
Wer Geheimdienstangriffe fürchtet, wird sich selbst mit zweimaligem Löschen nicht zufrieden geben können.
Nicht umsonst empfiehlt das DoD (Department of Defense = US-Verteidigungsmysterium) in einem Standard (DoD 5220.22-M) ein siebenmaliges Löschen, um eine Rekonstruktion (nahezu) unmöglich zu machen.
Dabei ist vorgesehen, dreimal mit 0x00, einmal mit 0xF6 und dreimal mit 0xFF zu überschreiben.
Ich persönlich würde statt dessen 2x mit 0x00, 3x random und 2x 0xFF verwenden. Der Restmagnetismus an den Rändern der Spuren sollte so nicht mehr auswertbar sein, da man nicht weiß, mit welchem Bitmuster da überschrieben wurde.

Hier noch einige interessante Links (englisch), teilweise recht fachlich...

discussion on BugTraq about NSA and DoD data overwrite standards

Secure Deletion of Data from Magnetic and Solid-State Memory

Simson Garfinkel and Abhi Shelat's IEEE Security & Privacy paper summarizing their experience recovering data from used hard drives purchased at auction

Admin Tip #223: SDelete securely deletes files
 
Zuletzt bearbeitet:
Danke Ernst_42 für die Links, habe mir einiges kopiert.

Zu diesem Thema habe ich in diesem Beitrag "Sicheres Löschen von Datenträgern" eine
'Wiederherstellungs-Mengenauswertung' gefunden - zweimal dürfte für Privatanwender
also ganz gut reichen:

https://www.supernature-forum.de/showthread.php?threadid=42&highlight=encase*

3. Methoden-Festlegung:
In meinen Recovery-Tests mit Encase, Convar usw. habe ich festgestellt, dass keines der Uneraser-Programme mehr als 0,02 Prozent wieder herstellen konnte, nachdem vorher die
Sektoren der Zielobjekte einmal mit hex00 überschrieben wurden.

Damit FreeKill möglichst vielseitig einsetzbar ist, kam eine nur DOS-Lösung mit Assembler-naher Codierung infrage (getestet auf Win9x, WinNT4, OS/2 Warp4 ..)

Edit:
Link gefixt wegen Serverumstellung
 
Zuletzt bearbeitet von einem Moderator:
Habe noch eine interessante Sicherheitsfunktion gefunden
für diejenigen, die Dateisystem ext2/ext3 einsetzen:

"When a file with the `s' attribute set is deleted, its
blocks are zeroed and written back to the disk."

Auf deutsch - wenn mit dem Befehl chattr bei einer
Datei das -s-Attribut gesetzt wird, so wird die Datei
beim Löschen automatisch mit hex-null überschrieben.
 
@LX-Ben

Hmm :)

das mit dem Sticky-Bit wusste ich auch noch nicht.
Man ist eben doch nie dumm genug, um nicht noch dazu lernen zu können... ;)

Danke.

[Edit]
Quatsch mit Soße. >>Sticky-Bit<< muss natürlich SUID-Bit heißen...
[/Edit]
 
Zuletzt bearbeitet:
Ich verwende hierfür Secure Delete:
http://www.thc.org/releases.php

Das Paket enthält 4 Programme:
swap reinigt den Swap
sfill reinigt leere Bereiche auf der HD
smem reinigt den Speicher
srm löscht Dateien.

Habe ich übrigens aus der Linux - User.


MfG, Bio-logisch
 
Oben