
TPM Genie è un interposer per bus I2C per Trusted Platform Modules discreti.
TPM Genie è progettato per assistere nella ricerca di vulnerabilità dei Trusted Platform Module. Funzionando come un interposer per bus seriale, TPM Genie è in grado di intercettare e modificare tutto il traffico inviato attraverso il canale I2C tra la macchina host e un chip TPM discreto.
Al di fuori della ricerca, il modello di minaccia dimostrato da TPM Genie richiederebbe a un attaccante di avere accesso fisico temporaneo alla macchina interessata per impiantare il dispositivo interposer. Un tale attacco potrebbe essere condotto in uno scenario "Evil Maid", da un dipendente malintenzionato in un data center contenente server enterprise abilitati TPM, o da un attacco di interdizione alla supply chain nello stile di quelli presenti nel catalogo NSA ANT di hardware implantabili.
Molti TPM discreti sono montati su una scheda figlia collegata alla scheda madre tramite un semplice header o socket. Di conseguenza, il processo di impianto di un interposer è piuttosto semplice, poiché non richiederebbe all'attaccante di eseguire attacchi di modifica del circuito. L'impianto potrebbe essere installato in pochi secondi.
TPM Genie è stato testato estensivamente con l'Infineon SLB9645 I2C TPM, che è conforme alla specifica del protocollo TPM v1.2.
Questo strumento è stato sviluppato principalmente per manipolare i pacchetti di risposta TPM al fine di innescare bug di parsing nei driver TPM lato host. Questi bug si trovano nel kernel Linux, così come in vari bootloader come Tboot e Tianocore EDKII. Sfruttando queste vulnerabilità, un attaccante potrebbe compromettere una macchina host dopo che questa è stata avviata con successo in uno stato completamente misurato e attestato.
TPM Genie è anche in grado di eseguire attacchi man-in-the-middle sulle operazioni di PCR Extend, offrendo la possibilità di compromettere la maggior parte degli scopi dichiarati di un TPM: avvio misurato, attestazione remota e archiviazione sigillata. Normalmente, l'attestazione o lo scongelamento dovrebbero fallire se un attaccante modifica qualsiasi componente del processo di avvio misurato. Tuttavia, l'interposer rende possibile falsificare queste misurazioni sostituendo il payload associato all'ordinale PCR Extend mentre viene trasmesso attraverso il bus.
Inoltre, TPM Genie può indebolire il generatore di numeri casuali hardware di Linux. Su alcuni sistemi, /dev/hwrng è collegato al Trusted Platform Module in modo tale che tutte le letture sul dispositivo a caratteri portino effettivamente il chip TPM a fornire i byte casuali. In questo modo, l'interposer può alterare sottilmente l'RNG della piattaforma, compromettendo potenzialmente le operazioni crittografiche sull'host.
Infine, TPM Genie può essere utilizzato semplicemente per intercettare il bus al fine di catturare segreti, come i dati di sessione associati ai comandi OIAP e OSAP. E con un impegno di ingegneria aggiuntivo nominale, TPM Genie dovrebbe essere in grado di falsificare la Endorsement Key, ottenere il controllo di AuthData e ricalcolare l'HMAC della sessione di autorizzazione. (Maggiori informazioni su questo nel mio whitepaper. Prometto che lo implementerò presto).