Einer der Begleitpakete in NixOS stellte eine Angriffstechnik vor, die den Zugriff auf Daten auf verschlüsselten Festplattenpartitionen ermöglicht, in Konfigurationen, die bei der Bootzeit keine Eingabe eines Entsperrpassworts erfordern, dank der Platzierung von Informationen zur Entschlüsselung im TPM2 (Trusted Platform Module). Solche Konfigurationen werden häufig auf Servern oder Mehrbenutzer-Workstations verwendet, auf denen es problematisch ist, nach jedem Neustart manuell ein Passwort einzugeben.
Bei der Anwendung einer solchen Methode zur Festplattenverschlüsselung erfolgt die Entschlüsselung mit einem zusätzlichen Schlüssel, der im TPM gespeichert wird und nur bei Bestätigung des ursprünglichen Systemzustands ausgegeben wird. Der Systemzustand wird in Form von Hashes in den PCR-Registers (Platform Configuration Register) gespeichert und ist an eine digitale Signatur gebunden, mit der der Bootloader signiert ist, sowie an die Prüfziffern des Bootloaders und der anfänglichen Boot-Umgebung (initrd). Der Zugriff auf den Schlüssel im TPM wird nur gewährt, wenn alle an ihn gebundenen PCR-Register sich im gleichen Zustand befinden wie bei Speicherung des Schlüssels.
Es wird angenommen, dass die Bootkette des Betriebssystems mithilfe von UEFI Secure Boot verifiziert wird und der Zugriff auf die Schlüssel nur aus einem nicht modifizierten initrd-Abbild erfolgen kann. Bei erfolgreicher Überprüfung wird die Festplatte automatisch entsperrt, aber der Zugriff auf die entschlüsselten Daten kann nur über die Anmeldung in ihrem Benutzerkonto im System erfolgen. Bei einem Zugriff ohne verifiziertes Booten oder beim Versuch, Änderungen am initrd vorzunehmen, um Schlüssel abzufangen, wird die Vertrauenskette unterbrochen, der Zustand der PCR-Register ändert sich und das TPM2 gibt keine Informationen zur Entschlüsselung heraus.
Die veröffentlichte Angriffsmethode ermöglicht es, ohne Änderung des Inhalts von initrd in Konfigurationen zu arbeiten, die verschlüsselte LUKS-Partitionen nicht identifizieren. Es wird angemerkt, dass die Aktivierung einer solchen Überprüfung der Partitionen in allen gefundenen Anleitungen zur Einrichtung der Festplattenverschlüsselung nicht beschrieben wird, da die Identifizierung der Partition die Konfiguration wesentlich komplizierter macht (es ist erforderlich, ein zusätzliches PCR-Register zur Überprüfung des Partitionenschlüssels zu verwenden und initrd unter Berücksichtigung seines Wertes zu generieren). Beispiele für den Angriff wurden für Fedora Linux in Verbindung mit dem Tool clevis und für NixOS in Verbindung mit systemd-cryptenroll demonstriert. Für den Angriff ist physischer Zugriff auf den Computer und die Möglichkeit erforderlich, das Speichergerät zu extrahieren.
Die Methode basiert darauf, dass der Angreifer die vorhandene verschlüsselte Root-Partition durch seine eigene verschlüsselte Partition ersetzen kann, die mit demselben UUID-Identifikator erstellt wurde und deren Entschlüsselungsschlüssel dem Angreifer bekannt sind. Die Umgebung von initrd wird die Kontrolle an den init-Prozess in der Partition des Angreifers übergeben. Da der Inhalt von initrd nicht geändert wurde, wird der Zustand des TPM nicht gestört, und mit Kontrolle in seiner eigenen Umgebung kann der Angreifer TPM zur Entschlüsselung des Schlüssels der ursprünglichen Festplattenpartition verwenden.
Der Angriff lässt sich in folgende Schritte unterteilen:
- Extrahierung der Festplatte und Durchführung einer Analyse der unverschlüsselten Daten auf einer anderen Maschine in der Partition /boot. Bestimmung der Informationen über die verschlüsselte Partition und ihren UUID-Identifikator aus dem initrd-Image, das sich in der Partition /boot befindet.
- Erstellung eines Backups der ersten 64 MB der verschlüsselten LUKS-Partition.
- Ersatz der angegebenen 64 MB durch ein Image mit der eigenen Root-Partition, die mit einem dem Angreifer bekannten Schlüssel verschlüsselt ist und denselben UUID-Identifikator wie die alte Partition hat.
- Rückführung der Festplatte in den ursprünglichen Computer und Booten von der manipulierten Root-Partition. Da die automatische Entsperrung durch den Schlüssel aus TPM für die manipulierte Partition fehlschlägt, fordert initrd zur manuellen Eingabe des Passworts auf.
- Erhalt des ursprünglichen Schlüssels aus TPM unter Verwendung der TPM-Metadaten und des verschlüsselten Tokens aus dem LUKS-Header der alten Partition.
- Umdisposition der Festplatte in den Computer des Angreifers, Wiederherstellung des überschriebenen Teils der LUKS-Partition aus dem Backup und Verwendung des erhaltenen ursprünglichen Schlüssels zum Zugriff auf die Daten.
Quelle: opennet.ru
