Löschen Sie den RAM beim Herunterfahren, um einen Cold-Boot-Angriff zu verhindern

Löschen Sie den RAM beim Herunterfahren, um einen Cold-Boot-Angriff zu verhindern

Mein System ist mit Full Disk Encryption verschlüsselt, d. h. alles außer /boot ist mit dmcrypt/luks verschlüsselt. Ich mache mir Sorgen überCold-Boot-Angriffe, wo Forschergezeigt, dieser Inhalt könnte extrahiert werden füretwa 5 Minuten.

Können Sie mir bitte Anweisungen geben zu:

  • So lösen Sie Kexec in den allerletzten Schritten des Herunterfahrens/Neustarts in einem neuen Kernel aus (um eine saubere Trennung sicherzustellen, eine Beschädigung des Dateisystems zu verhindern und sicherzustellen, dass der alte Kernel überschrieben wird)
  • wie man den Kernel erstellt, der den gesamten RAM löscht

Können Sie bitte erklären, wie das Gleiche unter Ubuntu geht?

Wie erkennt man das Herunterfahren? Wie startet man den RAM Wipe? Der RAM sollte gelöscht werden, wenn der Benutzer auf „Herunterfahren“ klickt oder ein „Panikskript“ startet.

Danke für Ihr Bemühen!

Vorherige Arbeit:

Wenn Sie möchten, dass die Funktion Wirklichkeit wird, stimmen Sie bei Ubuntu Brainstorm ab!

http://brainstorm.ubuntu.com/idea/30076/

Antwort1

Wenn Sie keinen alten RAM wie DDR2, 512 MB oder 1024 MB verwenden, müssen Sie sich um CBA keine Sorgen machen.

Schauen Sie sich die Originalforschung anHier(PDF).

Wenn Sie es sorgfältig lesen, werden Sie feststellen, dass nur DDR2 und ältere Modelle für diesen Angriff anfällig sind. DDR3 verliert zu schnell an Spannung, um das Abnehmen und Einfrieren des Computergehäuses zu ermöglichen. Ziehen Sie also einfach den Stecker, bevor Sie die Tür öffnen.

Auch,dieses Papierbestätigt, dass DDR3 nicht anfällig für einen CBA ist. Wenn Sie sich tatsächlich absichern möchten, weil Sie DDR2-RAM haben, aktivieren Sie im BIOS:

  1. Autostart nach Stromausfall
  2. RAM-Prüfung beim Booten

und machen Sie dasselbe wie bei DDR3, aber nachdem Sie den Stecker gezogen haben, stecken Sie ihn wieder ein. Ihr Computer startet automatisch und löscht den RAM, indem er ihn überprüft. Wenn er nicht effizient genug löscht, lädt der Startvorgang das System erneut in den RAM. Das geht viel zu schnell, um CBA zu ermöglichen.

Von demVerknüpfungSie haben in den Kommentaren Folgendes angegeben:

Abschließend kann festgehalten werden, dass der Cold-Boot-Angriff nicht als die primäre Methode zum Zugriff auf den Speicher eines verdächtigen Computersystems angesehen werden sollte. Stattdessen sollten andere Techniken, darunter software- und hardwarebasierter Zugriff (z. B. FireWire), ausprobiert werden, bevor ein Cold-Boot-Angriff auf das besagte System durchgeführt wird. Sollte jedoch eine Situation eintreten, in der die oben genannten Techniken entweder nicht verfügbar sind (z. B. keine FireWire-Verbindung oder Systemanmeldekonsole oder Remote-Speicherzugriff ist nicht möglich) oder wirkungslos sind, kann der Cold-Boot-Angriff durchgeführt werden, vorausgesetzt, dass der Ermittler versteht, wie und wo Probleme auftreten und schiefgehen können.
Wie diese Studie gezeigt hat, kann der Cold-Boot-Angriff nicht als besonders forensisch solide oder zuverlässig eingestuft werden, da in den meisten der hier durchgeführten Experimente speicherresidente Verschlüsselungsschlüssel nicht konsistent gefunden oder extrahiert werden konnten, obwohl dies hätte möglich sein sollen. Dasselbe gilt auch für die verschiedenen Zeichenfolgen- und Schlüsselwortsuchen, die weitaus mehr Zeichenfolgen und Schlüsselwörter hätten ergeben sollen, als bei den meisten Experimenten gefunden wurden. Darüber hinaus ist, wie gezeigt wurde, das bloße Einfrieren des Computerspeichers keine Garantie für den erfolgreichen Zugriff auf den besagten Speicher. Andere Faktoren und Variablen, die bereits untersucht wurden, haben diese Probleme und ihre zugrunde liegenden Ursachen umfassend untersucht. Daher sind die Autoren dieser Studie der Meinung, dass der Cold-Boot-Angriff in einigen Fällen nützlich sein kann, um an den Speicher eines verdächtigen Systems zu gelangen, dass diese Methode jedoch nicht als Allheilmittel betrachtet werden sollte und nur als letztes Mittel eingesetzt werden sollte, wenn alle anderen Möglichkeiten ausgeschöpft sind.
Schließlich wird selbst eine erfolgreiche Übernahme, die kaum oder gar keine Beeinträchtigung erfahren hat, vor Gericht wahrscheinlich nicht als stichhaltiger Beweis gelten, zumindest bis ein Urteil gefällt wurde und die Integrität des übernommenen Speichers mit einer stichhaltigen und verständlichen Methode nachgewiesen werden kann. Die Suche nach einer geeigneteren und zuverlässigeren Methode zur Übernahme des Speichers des Computers eines Verdächtigen wird fortgesetzt ...

Wenn Sie sich die Ergebnisse des Experiments ansehen, werden Sie außerdem feststellen, dass die AES-Schlüssel nur in System 2 und 6 erfolgreich extrahiert wurden und dass es sich dabei um Warm-Boot-Angriffe handelte, wenn Sie sich die Spezifikationen von System 2 ansehen – 1024 MB RAM, 533 MHz – das ist altes Zeug. Das andere System – System 6 mit 256 RAM / 128 RAM – ist, glaube ich, selbsterklärend.

Aus genau diesem Grund lautete ihr Fazit:

Die Suche sucht weiterhin nach einer geeigneteren und zuverlässigeren Methode, an den Speicher des Computers eines Verdächtigen zu gelangen …

Eigentlich bin ich der Meinung, dass man bei sehr, sehr, sehr wichtigen Daten nicht nur die vollständige Laufwerkverschlüsselung verwenden, sondern diese auch in einer separaten verschlüsselten Datei speichern sollte. Verschlüsselt mit kaskadierenden Algorithmen und einem anderen Passwort als dem, das bei der Festplattenverschlüsselung verwendet wird. Sie möchten den PC sicher herunterfahren? Hier ist er:

  1. Bewahren Sie sichere Daten in einer mit dem True Crypt-Kaskadenalgorithmus verschlüsselten Datei auf
  2. Verwenden Sie Serpent
  3. Erstellen Sie ein Skript zum Herunterfahren:

Für Windows:

truecrypt.exe /wipecache
shutdown -s -f -t 1

Für Linux:

truecrypt /wipecache
shutdown -h now

Durch das Löschen des Caches wird sichergestellt, dass nach dem Herunterfahren keine anfälligen Daten im RAM verbleiben. Wenn jemand einen Cold-Boot-Angriff durchführt, hat er bestenfalls Zugriff auf Ihr System. Er verfügt nicht über Daten, die in einer separat verschlüsselten Datei gespeichert sind.

Antwort2

Peter AH Peterson von der UCLA schrieb einen Proof of Concept-Technologie und entwickelte die Theorie für den sicheren Betrieb Ihres Systems mit verschlüsseltem RAM. Die Lösung lautetausdrücklichentwickelt, um Cold-Boot-Angriffe zu verhindern. Der Titel seines Papiers ist Cryptkeeper. Ich weiß nicht, ob er die Software zum Download zur Verfügung stellt oder ob es möglich ist, sie von der UCLA zu lizenzieren. Es ist jedoch anscheinend zumindest prinzipiell möglich, ein Kryptosystem für RAM zu entwickeln, das sicher ist, selbst wenn der gesamte Inhalt des RAM offengelegt wird.

Die gemessenen Leistungseinbußen dieser Lösung liegen zwischen einem Mehraufwand von 9 % und einer Verlangsamung um den Faktor9, je nachdem, wie „pathologisch“ das Szenario ist. Die Zahl von 9 % wird für das Surfen im Internet mit Firefox angegeben, aber es wurde nicht angegeben, welcher Anwendungsfall die Leistung um den Faktor 9 verlangsamen würde.

Petersons Lösung „löscht“ den RAM nicht, wie Sie vorschlagen. Vielmehr verwendet sie einen „sicheren Mechanismus zum Verbergen des Schlüssels“, um zu verhindern, dass der Entschlüsselungsschlüssel allein durch das Abrufen des RAM-Inhalts offengelegt wird. Ich bin mir über die Details der Implementierung nicht sicher, aber ich gehe davon aus, dass sie im Dokument erklärt wird.

Das Papier wurde 2010 veröffentlicht.

Es kann auf der IEEE-Website ieeexplore erworben werden. Es kann auch kostenlos als PDF von einer Website heruntergeladen werden. Es erscheint ganz oben in den Google-Suchergebnissen für „Cryptkeeper RAM“ … aber ich bin nicht sicher, wie lange dieses Ergebnis dort oben bleiben wird.

Ich war versucht, dies als Kommentar statt als Antwort zu verfassen, da diese Lösung den RAM nicht „löscht“, wie Sie es verlangt haben. Ich glaube jedoch, dass dies, wenn Petersons Forschung technisch korrekt ist, den gleichen praktischen Effekt – oder möglicherweise sogar einen „besseren“ Effekt – haben wird als das Löschen des RAM. Der Grund dafür ist, dass ein geschickter physischer Angreifer den Versuch Ihres Systemprogramms, den RAM zu löschen, wahrscheinlich unterbrechen könnte, wenn er mit einer solchen Operation rechnet – beispielsweise indem er die Batterie aus dem Gerät zieht oder den Einschaltknopf gedrückt hält, bevor der Vorgang abgeschlossen werden kann. Petersons Lösung ist sicherer, da sie nicht auf einem erforderlichen Zeitfenster basiert, innerhalb dessen der Computer weiterhin Anweisungen ausführen darf, um das Löschen abzuschließen. Stattdessen wird der Speicherständiggeschützt, selbst wenn die CPU selbst durch eine unglaubliche technische Leistung augenblicklich ausgeschaltet wird, bevor Sie überhaupt eine Chance haben, auf den Angreifer zu reagieren.

Und mit „unglaublicher technischer Leistung“ meine ich so etwas wie Stuxnet.

Antwort3

Ich könnte mir vorstellenmemtest86wäre ziemlich gut zum Löschen des RAM. Ich wollte das Folgende schon immer ausprobieren, habe es aber nicht getan. Wenn ich es versuche, werde ich es aktualisieren.

Lesen Sie die kexecManpage. Und versuchen Sie nicht, kexecdie .iso-Datei zu verwenden, sondern Sie müssen die ISO-Datei entpacken und sich die bootfähige Binärdatei schnappen. Auf der oben genannten memtest86-Site können Sie einfach die Binärdatei herunterladen.

Sie müssen kexeczuerst einen Befehl verwenden, um das zu laden, in das Sie booten.

Ich denke, Sie können Folgendes tun:

kexec -l {path-to-memtest86-bootable-binary} --append=console=ttyS0,115200n8

und wenn Sie bereit sind, den Abzug zu betätigen:

kexec -e

Ich denke (aber ich könnte mich irren), dass --append=console=ttyS0,115200n8memtest86 über den seriellen Port funktioniert. Wenn Sie also einen haben, können Sie überprüfen, ob er funktioniert, auch wenn er nicht in der Videoausgabe angezeigt wird, was durchaus möglich ist, da memtest86 keine Videoinitialisierung durchführt. Es ist wahrscheinlich eine gute Idee, alle laufenden Instanzen von X zu beenden.

Das Debian kexec-tools-Paket (auch für Ubuntu verfügbar) hängt dies in die Shutdown-Skripte ein, sodass Sie durch Bearbeiten /etc/default/kexecden Shutdown-Prozess anweisen können, dies kexecals letztes auszuführen, anstatt neu zu starten. Das heißt, wenn Sie an einem sauberen Herunterfahren interessiert sind.

Im Notfall sync; kexec -ewürde ein funktionieren.

Es ist jedoch möglich, dass einige Chipsätze nach der Initialisierung zu Systemabstürzen führen, wenn bestimmte Speicherbereiche angesprochen werden. Ich weiß nicht, wie das in der Praxis funktionieren würde.

Ein guter Kompromiss, falls kexecdas nicht funktioniert, ist, memtest86 in Ihrem Bootloader zu installieren, es als Standard-Boot-Element festzulegen und eine Verzögerung von 1 Sekunde bis zur automatischen Auswahl zu haben (oder keine Verzögerung und auf einen Tastendruck angewiesen, um das Menü aufzurufen). Dies könnte Sie aus einem „Neustart“-Zustand ziemlich schnell in memtest86 bringen, aber nicht sofort.

Beachten Sie, dass hier der Video-RAM nicht berücksichtigt wird. Eine Lösung hierfür istRichten Sie Ihren Video-RAM als Blockgerät ein.und /dev/randomfür einige Iterationen an das Blockgerät ausgegeben.

Antwort4

Das Problem entsteht, wenn Ihr Computer läuft und der Bildschirm gesperrt ist. Zu diesem Zeitpunkt ist der AES-Schlüssel im RAM gespeichert und der Benutzer befindet sich nicht am Computer. Ein Eindringling könnte das Computergehäuse öffnen und die RAM-Module entfernen, während sie mit Strom versorgt bleiben, und sie in ein separates Gerät einbauen, das ihren Inhalt liest. Es besteht keine Notwendigkeit, das System herunterzufahren oder die Module vor der Extraktion einzufrieren. RAM ist nicht vertrauenswürdig, wenn es darum geht, den AES-Schlüssel zu speichern, der Cache des Prozessors jedoch schon, wie bei der Lösung namens TRESOR. Leider erfordert dies einen alten Linux-Kernel und fortgeschrittene Kenntnisse im Patchen und Kompilieren des Kernels.

verwandte Informationen