
Proof-of-Concept, das die Umgehung der TPM-gebundenen LUKS-Festplattenverschlüsselung auf Linux-Systemen demonstriert, indem Volume-Keys über einen Angriff auf das benutzerdefinierte Root-Dateisystem extrahiert werden.
Dieses Repository enthält einfachen Proof-of-Concept-Code, der eine häufige Schwachstelle ausnutzt, die vor über einem Jahr unter https://oddlama.org/blog/bypassing-disk-encryption-with-tpm2-unlock/ erstmals beschrieben wurde. Obwohl sie speziell auf IncusOS abzielt, ist der Angriff gegen die meisten modernen Linux-Systeme ziemlich generisch.
Wenn du deine LUKS-Verschlüsselung an ein TPM bindest, stelle sicher, dass du auch eine PIN für das TPM festlegst.
Dies ist ein schneller und schmutziger PoC. Er ist nicht vollständig ausgereift und hat einige raue Kanten. Es gibt keinen Support, und ich habe keine Pläne für weitere Entwicklungen.
Ich habe, wie die meisten Menschen, angenommen, dass die Einrichtung einer LUKS-Festplattenverschlüsselung, die an den TPM-Chip meines Laptops gebunden ist, sicher wäre und einen Angreifer daran hindern würde, den LUKS-Volume-Key (auch Master-Key genannt) zu extrahieren. Wie sich herausstellt, ist es fast deprimierend einfach, dies zu tun und keine Spuren des Angriffs zu hinterlassen.
Ja, das Problem ist, dass ein Angreifer ein benutzerdefiniertes Root-Dateisystem bereitstellen kann, und nachdem dein System gebootet ist, befindet sich das TPM in einem bekannten „guten“ Zustand, in dem es dein LUKS-Volume bereitwillig entsperrt. Der Angreifer kann dann tun, was er will, und alle Beweise des Angriffs leicht vertuschen.
Aber ein vorbereiteter Angreifer muss deinen Computer buchstäblich nur für ein paar Minuten in Besitz haben, und du bist erledigt. Deinen Laptop im Hotelzimmer lassen, während du zum Abendessen gehst? Was ist mit einem Sicherheitskontrollpunkt, an dem du für Verhör beiseitegezogen wirst? Ja, das ist nicht gut.
Das Skript ./prepare.sh führt die Schritte aus, die notwendig sind, um die Ziel-VM zu kompromittieren. Dieselben Schritte können leicht gegen eine echte Festplatte ausgeführt werden, die vorübergehend aus ihrem normalen Gehäuse entfernt wurde.
Der eigentliche „Exploit“ extrahiert den ursprünglichen LUKS-Volume-Key, was durch einen Blick in das Journal-Log für attack.service sichtbar wird. Viele Variationen dieses Angriffs sind möglich.
Führe ./restore.sh aus, um alle Beweise deiner Taten zu beseitigen, während du mit dem LUKS-Volume-Key deines Opfers davonläufst.