banner

Blog

Jul 28, 2023

Umgehen von Bitlocker mit einem Logikanalysator

Der Sicherheitsingenieur [Guillaume Quéré] verbringt den Tag damit, Penetrationstests für Systeme seines Arbeitgebers durchzuführen, und hat auf eine ziemlich offensichtliche Schwachstelle im Vollvolumenverschlüsselungssystem BitLocker hingewiesen und diese erfolgreich ausgenutzt, die es einem, wie es im verlinkten Artikel heißt, ermöglicht, einfach den Datenverkehr zwischen ihnen auszuspionieren diskreter TPM-Chip und CPU über einen SPI-Bus. Die Funktionsweise von Bitlocker besteht darin, einen im TPM-Chip gespeicherten privaten Schlüssel zu verwenden, um den vollständigen Volume-Schlüssel zu verschlüsseln, der wiederum zur Verschlüsselung der Volume-Daten verwendet wurde. Dies geschieht alles über Low-Level-Gerätetreiber im Windows-Kernel und ist für den Benutzer transparent.

Der Zweck von BitLocker bestand darin, den Zugriff auf Daten auf dem gesicherten Volume im Falle eines Diebstahls oder Verlusts eines physischen Geräts zu verhindern. Durch einfaches Herausziehen des Laufwerks und Einsetzen in eine nicht gesicherte Maschine oder einen anderen Adapter würden ohne den vom TPM gespeicherten Schlüssel keine Daten bereitgestellt. Da dieser Schlüssel jedoch während der Boot-Sequenz als Klartext vom TPM an die CPU übergeben werden muss, zeigt [Guillaume], dass es ganz einfach ist – mit sehr kostengünstigen Tools und kostenloser Software –, dieses TPM einfach zu lokalisieren und auszuspionieren -CPU-Transaktion, Dekodierung des Datenstroms und Lokalisierung des Schlüssels. Mit kaum mehr als einem billigen Logikanalysator, der an einige praktisch große Pins auf einem nahegelegenen Flash-Chip angeschlossen ist (da die SCK-, MISO- und MOSI-Pins mit dem TPM geteilt werden), wurde der einfache TIS so weit dekodiert, dass er sich an die Bytes des TPM anschließt rahmen. Dies könnte dann mit einer TPM-Stream-Decoder-Web-App dekodiert werden, mit freundlicher Genehmigung der TPM2-Software-Community-Gruppe. Der Befehl, nach dem gesucht werden muss, ist TPM_CC.Unseal. Dabei handelt es sich um die Anfrage der CPU an das TPM, den für uns interessanten Schlüssel zu senden. Danach reicht es aus, den TPM-Antwortrahmen zu erfassen und zu dekodieren, um die Sache sofort zu offenbaren.

Was Sie als Nächstes tun, ist eine Frage der Bequemlichkeit, aber die meisten Sicherheits- und Forensik-Typen sitzen bereits auf einer Low-Level-Disk-Image-Datei des Zielvolumes fest. Durch die Verwendung des Linux-Befehls xxd, um diesen 32-Byte-Hex-Dump-Schlüssel in eine binäre Schlüsseldatei umzuwandeln, kann das Dislocker-Fuse-FUSE-Modul ein dynamisch entschlüsseltes virtuelles Dateisystem erstellen, das Sie einfach mounten können. Wenn Sie möchten, können Sie die entschlüsselten Volume-Daten dann auf eine neue Festplatte schreiben, sie auf einem Computer ablegen und das Betriebssystem starten. Sie konnten sich wahrscheinlich nicht anmelden, aber wie [Guillaume] betont, können Sie durch Überschreiben der Sticky-Keys-App (sethc.exe) mit cmd.exe zu einer Eingabeaufforderung gelangen, indem Sie einfach fünfmal auf die Umschalttaste drücken. Gute Zeiten!

Wenn Sie tatsächlich TPM-Unterstützung für ein älteres System benötigen, um Windows 11 zu installieren (wenn Sie es wirklich müssen), können Sie jederzeit einfach Ihre eigene erstellen. Und da die LPC-Schnittstelle auf vielen Motherboards vorhanden ist, warum nutzen Sie sie nicht und nutzen sie, um einen ISA-Bus-Adapter anzuschließen, um die alte klassische Soundblaster-Karte anzuschließen, deren Schrott es nicht ertragen würde?

AKTIE