
TPM Genieは、ディスクリートTrusted Platform Module用のI2CバスインターPOSERです。
TPM Genieは、Trusted Platform Moduleの脆弱性研究を支援するために設計されています。シリアルバスインターセプタとして、ホストマシンと個別TPMチップ間のI2Cチャネルを流れるすべてのトラフィックを傍受および変更できます。
研究以外では、TPM Genieが示す脅威モデルでは、攻撃者はインターセプタデバイスを埋め込むために、影響を受けるマシンに一時的に物理アクセスする必要があります。このような攻撃は、「Evil Maid」シナリオで、TPM対応エンタープライズサーバーを含むデータセンター内の不正な従業員によって、またはハードウェアインプラントのNSA ANTカタログに見られるようなサプライチェーン妨害攻撃によって実行される可能性があります。
多くの個別TPMは、単純なヘッダーやソケットを介してメインボードに接続されるドーターカードに引き出されています。その結果、インターセプタの埋め込みプロセスは非常に簡単であり、攻撃者が回路変更攻撃を実行する必要はありません。インプラントは数秒で設置できます。
TPM Genieは、TPM v1.2プロトコル仕様に準拠したInfineon SLB9645 I2C TPMで広範囲にテストされました。
このツールは主に、ホスト側TPMドライバーのパースバグをトリガーするためにTPM応答パケットを操作するために開発されました。これらのバグは、Linuxカーネルや、TbootやTianocore EDKIIなどのさまざまなブートローダーに見られます。これらの脆弱性を悪用することで、攻撃者は完全に測定および証明された状態で起動したホストマシンを侵害できる可能性があります。
TPM Genieはまた、PCR Extend操作を中間者攻撃でき、TPMの本来の目的のほとんど(測定ブート、リモートアテステーション、シールドストレージ)を弱める能力を提供します。通常、攻撃者が測定ブートプロセスのコンポーネントを変更した場合、アテステーションまたはアンシールは失敗するはずです。しかし、インターセプタは、バス上で送信されるPCR Extendオーディナルに関連するペイロードを置き換えることで、これらの測定値を偽装することが可能になります。
さらに、TPM GenieはLinuxのハードウェア乱数生成器を弱体化できます。一部のシステムでは、/dev/hwrng がTrusted Platform Moduleに結び付けられており、キャラクタデバイスからのすべての読み取りが実際にTPMチップからランダムバイトを提供することになります。このようにして、インターセプタはプラットフォームのRNGを微妙に変更し、ホスト上の暗号操作を損なう可能性があります。
最後に、TPM Genieは、バスをスニッフィングして、OIAPおよびOSAPコマンドに関連するセッションデータなどの秘密をキャプチャするために使用できます。そして、わずかな追加のエンジニアリング努力で、TPM Genieはエンドースメントキーを偽装し、AuthDataを制御し、認証セッションHMACを再計算できるはずです。(詳細は私のホワイトペーパーを参照。近いうちに実装する予定です。)