Was passiert, wenn ich mit 'dd' die Festplatte überschreibe, auf der Ubuntu ausgeführt wird?


9

Was würde passieren, wenn ich benutze

sudo dd if=/dev/zero of=/dev/sda

von einer Ubuntu-Installation aus /dev/sda ?


Ich habe es in einer VM versucht und es scheint , dass die Festplatte korrekt gelöscht wurde. Wird dies jedes Mal der Fall sein? Ist dies eine sichere Möglichkeit, eine Ubuntu-Installation und alle Daten zu "löschen"?

Meine Frage ist etwas inspiriert von:

  1. Wie deinstalliere ich Ubuntu von einem Computer?
  2. Wie kann 'rm -rf /' alle Dateien im System löschen? .

2
Nein nein Nein. Schlechte Idee. Verlassen Sie sich nicht darauf, wenn Sie Ihre Daten sicher löschen möchten.
André Borie

Antworten:


16

Tatsächlich ist das Dateisystem noch gemountet, und einige Schreibvorgänge sind gepuffert, was bedeutet, dass sie sich noch im RAM befinden und darauf warten, auf die Festplatte geschrieben zu werden. Nehmen wir an dd, alles wird korrekt überschrieben, und direkt dahinter werden die Puffer geleert und einige potenziell sensible Daten werden auf die Festplatte zurückgeschrieben. Nein, dies ist keine sichere Methode zum Löschen einer Festplatte.

Sie können dieses Problem vermeiden, indem Sie zuerst das Root-Dateisystem und alle anderen Dateisysteme, die sich auf der Festplatte befinden, im schreibgeschützten Modus erneut bereitstellen (oder die Bereitstellung vollständig aufheben, dies jedoch mit dem Root-Dateisystem nicht möglich ist) Es sollten überhaupt mehr Schreibvorgänge auf den Dateisystemen zulässig sein (daher müssen keine Puffer geleert werden), damit Ihr Befehl jetzt sicher ist, auch wenn es im Falle einer Panik immer noch eine schlechte Idee ist, da dies lange dauert.

Wenn Sie eine Art Paniklöschfunktion haben möchten, empfehle ich, Ihre Festplatte mit LUKS zu verschlüsseln (das Ubuntu-Installationsprogramm kann das) und dann meiner Antwort auf Security Stack Exchange zu folgen . Dies beinhaltet das Abwischen des Cryptheaders, der nur 2 MB groß ist und dessen Überschreiben weniger als eine Sekunde dauert. Starten Sie dann das System neu, und die Festplattenverschlüsselungsschlüssel werden aus dem Speicher entfernt. Sie können nicht wiederhergestellt werden, da auch der Cryptheader selbst nicht mehr vorhanden ist.



10

Ich habe eine VM mit einer etwas fortgeschritteneren Verwendung von ddgeliehenen und leicht modifizierten von den Arch Wiki-Seiten geopfert .

Installieren Sie zuerst eine schöne Fortschrittsanzeige:

sudo apt-get install pv

Führen Sie dann den ddBefehl 'erweitert' aus

sudo openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null \
| base64)" -nosalt </dev/zero \
| pv -bartpes "$(sudo blockdev --getsize64 /dev/sda)" \
| sudo dd bs=64K of=/dev/sda

Dadurch bleibt die Festplatte mit AES-Chiffretext gefüllt. Ein vollständiges und sicheres Löschen der Festplatte? Wahrscheinlich besser als Ihr eigenes ddBeispiel, aber nichts ist völlig sicher oder garantiert ...

Geben Sie hier die Bildbeschreibung ein

Und du schuldest mir eine VM :)

Verweise:


Können Sie ein Beispiel geben, wie die Syntax aussehen würde, wenn man die Festplatte lieber mit ddund pvbitte mit Nullen (if = / dev / zero) füllen würde ?
Stormlord

1
@Stormlord Sie leiten es einfach durch pv(Pipe Viewer), alsodd if=/dev/zero | pv | dd of=/dev/sdX
irgendwann mit dem

2
Sie müssen keine VM opfern - machen Sie einfach vorher einen Schnappschuss und stellen Sie ihn wieder her, wenn Sie fertig sind :-)
JonasCz - Stellen Sie Monica

Selbst wenn es etwas Rückschreibung gibt, ist das Gesamtergebnis steganographisch komplex. Ohne den "Müll" wäre es ansonsten einfach, die Festplatte zu hexdumpen, um Werte ungleich Null zu finden.
McKenzm

6

Kurze Antwort: Es wird ungefähr das tun, was Sie wollen, und dann wird nichts funktionieren. Wenn ddSie auf einer Ebene unterhalb des Dateisystems arbeiten, sind die dort geltenden Einschränkungen nicht mehr relevant (dies bedeutet nicht, dass der Kernel Sie nicht daran hindern konnte - dies ist jedoch nicht der Fall). Einige Inhalte aus dem Dateisystem befinden sich bereits im Speicher, z. B. der Kernel und das ddProgramm selbst, andere befinden sich im Cache. Es besteht die Möglichkeit, dass im Mehrbenutzermodus des Systems einige Dateien während des ddVorgangs zurückgeschrieben werden, sofern sie sich tatsächlich geändert haben. Wenn Sie unter Speicherdruck stehen, werden möglicherweise auch einige Seiten von dort ausgelagert (Sie sollten verschlüsselt und daher nach dem Neustart unbrauchbar sein).

Die meisten Befehle, die Sie danach ausgeben rebootwürden - einschließlich -, befinden sich nicht im Cache und funktionieren daher nicht. Wenn Sie sich also im Einzelbenutzermodus befinden, funktioniert dies sehr gut. Wenn Sie sich im Mehrbenutzermodus befinden, werden die meisten Daten gelöscht. Idealerweise sollten Sie es von einem anderen Medium aus starten (vielleicht sogar auf der initrd anhalten), damit Sie sicher sein können, woher alle Schreibvorgänge kommen.

Wenn Sie ein sicheres Löschen wünschen, reicht dies nicht aus, da noch einige Spuren der Originaldaten vorhanden sind, wenn Sie sie nur auf Null setzen. Normalerweise würden Sie bis zu drei Random Writes wollen, die aus dem Kopieren bedeuten würde /dev/urandomstatt /dev/zero- viel langsamer , aber sicherer. Einige schlagen möglicherweise vor, dass Sie /dev/randomdas Gerät für "reine" Zufallsdaten verwenden - kein Pseudozufalls -, aber zu diesem Zweck ist die Wahrscheinlichkeit, dass jemand den PRNG-Startwert knackt und die Daten erfolgreich maskiert, im Wesentlichen vernachlässigbar.

Wenn Sie wirklich paranoid sind, müssen Sie das Speichergerät in einen Ofen werfen, damit es entmagnetisiert / entladen wird.


1
Erinnerst du dich an die dd Herausforderung? Dies war vor Jahren, aber sie boten jedem Unternehmen eine Prämie an, das Daten von einer Festplatte wiederherstellen konnte, die einmal auf Null gestellt worden war. Sie hatten keine Abnehmer.
Casey

1
Das "dreimalige" Ding ist völliger Unsinn. Zufällige Daten 1 Mal sind sicherlich nicht wiederherstellbar. Sogar die Wiederherstellung von Nullen ist unerschwinglich teuer (siehe @ Caseys Kommentar). Vielleicht, wenn das Kopfgeld $ 1b oder so wäre, hätten sie Abnehmer ...
R .. GitHub STOP HELPING ICE

Hängt von Ihrem Budget und der Technologie der Festplatte ab. Wenn es sich um eine Platte handelt, können Sie möglicherweise Daten abrufen. Auch mit "vertikaler" Magnettechnik. Je flüchtiger der Speicher, desto sicherer sind Sie.
McKenzm

4

Es wird wie in Ihrer VM die Festplatte löschen und Ihr System unbrauchbar machen.

Wenn Sie jedoch an eine Art "Paniklöschung" denken, ist dies ddmöglicherweise nicht schnell genug, und ich bin mir nicht sicher, ob es in diesem Fall schnellere Befehle oder Programme gibt, die dies bereitstellen.


1

Es sollte funktionieren, der laufende Prozess wird in Ram gehalten und benötigt die Festplatte nicht. Ich würde sowieso ein Live-System verwenden, das von CD oder USB läuft. Es gibt sogar dban, ein spezialisiertes Live-Linux zum Löschen von Festplatten.

Das Überschreiben Ihrer Festplatte mit Nullen ist sicher, aber wenn Sie paranoid genug sind oder gesetzliche Regeln haben, können Sie mit zufälligen Daten mehrmals überschreiben.

Seien Sie vorsichtig, wenn Sie ssd verwenden. Das Überschreiben garantiert nicht das Löschen aller Daten aufgrund von Verschleißausgleich.

Wenn Sie die vollständige Festplattenverschlüsselung (luks) verwenden, müssen Sie nicht die vollständige Festplatte löschen. Das Löschen des luks-Headers reicht aus.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.