
TPM Genie ist ein I2C-Bus-Interposer für diskrete Trusted Platform Modules
TPM Genie wurde entwickelt, um die Schwachstellenforschung von Trusted Platform Modules zu unterstützen. Als Seriellbus-Interposer kann TPM Genie den gesamten Datenverkehr abfangen und modifizieren, der über den I2C-Kanal zwischen dem Host-Rechner und einem diskreten TPM-Chip gesendet wird.
Außerhalb der Forschung würde das von TPM Genie demonstrierte Bedrohungsmodell erfordern, dass ein Angreifer vorübergehenden physischen Zugang zum betroffenen Rechner hat, um das Interposer-Gerät zu implantieren. Ein solcher Angriff könnte in einem „Evil-Maid“-Szenario durchgeführt werden, durch einen feindlichen Mitarbeiter in einem Rechenzentrum mit TPM-fähigen Unternehmensservern oder durch einen Lieferketten-Interdiktionsangriff nach Art der im NSA ANT-Katalog von Hardware-Implantaten gefundenen.
Viele diskrete TPMs sind auf eine Tochterkarte ausgeführt, die über einen einfachen Header oder Sockel mit der Hauptplatine verbunden ist. Folglich ist der Prozess des Implantierens eines Interposers recht einfach, da der Angreifer keine Schaltungsmodifikationsangriffe durchführen müsste. Das Implantat könnte in nur wenigen Sekunden installiert werden.
TPM Genie wurde ausgiebig mit dem Infineon SLB9645 I2C TPM getestet, das der TPM v1.2-Protokollspezifikation entspricht.
Dieses Tool wurde hauptsächlich entwickelt, um TPM-Antwortpakete zu manipulieren und so Parsing-Fehler in den hostseitigen TPM-Treibern auszulösen. Diese Fehler können im Linux-Kernel sowie in einer Vielzahl von Bootloadern wie Tboot und Tianocore EDKII gefunden werden. Durch Ausnutzung dieser Schwachstellen könnte ein Angreifer einen Host-Rechner kompromittieren, nachdem dieser erfolgreich in einen vollständig gemessenen und attestierten Zustand hochgefahren ist.
TPM Genie ist außerdem in der Lage, PCR-Extend-Operationen per Man-in-the-Middle zu manipulieren, was die Möglichkeit bietet, die meisten der genannten Zwecke eines TPM zu untergraben: gemessener Startvorgang, Remote-Attestierung und versiegelter Speicher. Normalerweise sollte die Attestierung oder das Entsiegeln fehlschlagen, wenn ein Angreifer eine Komponente des gemessenen Startvorgangs modifiziert. Der Interposer ermöglicht es jedoch, diese Messungen zu spoofen, indem die Nutzlast, die mit dem PCR-Extend-Ordinal verbunden ist, während der Übertragung über den Bus ausgetauscht wird.
Darüber hinaus kann TPM Genie den Linux-Hardware-Zufallszahlengenerator schwächen. Auf einigen Systemen ist /dev/hwrng mit dem Trusted Platform Module verbunden, sodass alle Lesevorgänge auf dem Zeichengerät tatsächlich dazu führen, dass der TPM-Chip die Zufallsbytes bereitstellt. Auf diese Weise kann der Interposer den RNG der Plattform subtil verändern, was kryptografische Operationen auf dem Host beeinträchtigen kann.
Schließlich kann TPM Genie einfach zum Abhören des Busses verwendet werden, um Geheimnisse zu erfassen, wie z. B. Sitzungsdaten, die mit den OIAP- und OSAP-Befehlen verbunden sind. Und mit geringem zusätzlichem Entwicklungsaufwand sollte TPM Genie in der Lage sein, den Endorsement Key zu spoofen, die Kontrolle über die AuthData zu erlangen und den Authorization Session HMAC neu zu berechnen. (Weitere Informationen dazu in meinem Whitepaper. Ich verspreche, dass ich das bald implementieren werde.)