はじめに
学術研究者らが、IntelのSGXおよびTDX、AMDのSEV-SNPといったCPU内の信頼実行環境(TEE)から秘密情報を抽出するサイドチャネル攻撃「TEE.Fail」を開発しました。この攻撃はDDR5システムに対するメモリバス割り込み攻撃であり、1,000ドル未満の費用でコンピューター愛好家でも実行可能です。
機密コンピューティング(TEE)とは
信頼実行環境(TEE)は、認証や認可に使用される暗号鍵などの機密データの機密性と完全性を保証する、メインプロセッサ内の「機密コンピューティング」ハードウェアです。この環境はオペレーティングシステムから隔離されており、コードとデータが安全に実行できる保護されたメモリ領域を作成します。
攻撃の背景と脆弱性
ジョージア工科大学とパデュー大学の研究者らは、現代のIntel SGX、Intel TDX、AMD SEV-SNPの実装が、最近の世代におけるアーキテクチャ上のトレードオフにより、宣伝されているほど安全ではないと指摘しています。具体的には、TEEはクライアントCPUからDDR5メモリを使用するサーバーグレードのハードウェアに移行し、決定論的なAES-XTSメモリ暗号化を採用し、パフォーマンスとスケーラビリティを優先してメモリの完全性およびリプレイ保護を排除しました。彼らの実験により、これらの弱点を悪用して鍵抽出やアテステーション偽造が可能であることが確認されました。TEE.Failは、WireTapやBatteringRAMのような以前のDDR4での研究を拡張した、初のDDR5ベースの暗号文攻撃です。
TEE.Fail攻撃の詳細
この攻撃には、ターゲットへの物理的なアクセスとカーネルドライバ変更のためのルートレベルの特権が必要ですが、チップレベルの専門知識は不要です。研究者らは、システムのメモリクロックを3200 MT/s(1.6 GHz)に下げることで、信号を確実に捕捉できることを説明しています。これには、DDR5 DIMMとマザーボードの間にRDIMMライザーとカスタムプローブ分離ネットワークを取り付けました。ロジックアナライザに接続されたインターポーザーを使用することで、攻撃者はDDR5のコマンド/アドレスおよびデータバーストを記録し、物理DRAMロケーションに書き込まれたり読み込まれたりする暗号文を視認できます。
Intel SGXに対する攻撃では、研究者らは仮想アドレス内のデータを、インターポーザーを介して監視できる単一のメモリチャネルに強制する必要がありました。Intelがメモリアドレス変換コンポーネントに公開した物理アドレス用のインターフェースを通じて、研究者らはこのデコードインターフェースをsysfs経由でユーザー空間にさらに公開し、物理アドレスのDIMMロケーションを特定できるようにしました。しかし、SGXは物理メモリ割り当てにOSカーネルを使用するため、研究者らは「仮想アドレスと物理アドレスのペアをグローバルカーネルメモリに保存するパラメータとして受け入れるように、カーネルのSGXドライバを変更」する必要がありました。
研究者らは、特定のメモリ仮想アドレスに対して読み書き操作を繰り返し行うSGXエンクレーブを作成しました。これにより、メモリインターポーザーで観測された暗号化された暗号文が、物理メモリアドレスとその内容の決定論的な関数であることを確認できました。AES-XTS暗号化の使用により、情報が常に同じ出力に暗号化されるため、チームは既知の値を観測可能な物理アドレスに書き込み、暗号文と値のマッピングを構築しました。その後、ターゲットとなる暗号操作をトリガーして記録することで、中間テーブルエントリへの暗号化されたアクセスを観測し、署名ごとのノンス桁を回復しました。回復されたノンスと公開署名から、彼らはプライベート署名鍵を再構築し、有効なSGX/TDXクォートを偽造して、正規のTEEになりすますことが可能になりました。同様のアプローチは、AMDのSEV-SNPによって保護された仮想マシンで実行されているOpenSSLから署名鍵を抽出するためにも使用されました。AMD SEV-SNPに対する攻撃は、「Ciphertext Hiding」セキュリティオプションが有効な場合でも機能することに注目すべきです。
実証された攻撃と影響
研究者らは、TEE.Failを通じて以下の攻撃を実証しました。
- Ethereum BuilderNetでTDXアテステーションを偽造し、機密トランザクションデータと鍵にアクセスして、検出不可能なフロントランニングを可能にする。
- IntelおよびNVIDIAのアテステーションを偽装し、TEE外でワークロードを実行しながら正当に見せかける。
- エンクレーブから直接ECDH秘密鍵を抽出し、ネットワークのマスター鍵を回復して、機密性を完全に侵害する。
また、Xeonサーバーをターゲットにし、デバイスの身元確認に使用されるプロビジョニング証明書鍵(PCK)も取得しました。
攻撃の現実的な脅威とベンダーの対応
TEE.Failは物理的なアクセスを必要とする複雑な攻撃であり、現実世界でのシナリオでは実用性が低く、平均的なユーザーにとっての脅威とは程遠いものです。研究者らは、4月にIntelに、8月にAMDに、6月にNVIDIAに調査結果を報告しました。これら3社はすべて問題を認識しており、機密コンピューティングの脅威モデルに対する緩和策と適応策に取り組んでおり、TEE.Failの論文が公開された際に公式声明を発表する予定であると述べています。
