Google のセキュリティ研究者たちが、AMD の CPU マイクロコードセキュリティシステムに重大な脆弱性を発見し、プロセッサの動作を完全に制御できるようになりました。研究チームは Zentool というユーティリティをリリースし、ユーザーが AMD Zen プロセッサのマイクロコードパッチを分析、操作、生成できるようにしました。
この脆弱性は、AMD がマイクロコード署名プロセスで AES-CMAC RFC ドキュメントの標準サンプルキーを使用していたことに起因します。この基本的なセキュリティエラーにより、研究者たちは AMD の保護メカニズムをバイパスし、プロセッサが正当なものとして受け入れるカスタム署名されたマイクロコードアップデートを作成することができました。
セキュリティの欠陥
このセキュリティ問題は AMD の Zen1 から Zen4 までのプロセッサに影響し、Zen5 の脆弱性状況はまだ調査中です。研究者のコメントによると、AMD の重大なミスは AES-CMAC RFC のサンプルキーを実際の署名キーとして使用したことでした。この見落としにより、CPU マイクロコードを保護する全体的なセキュリティモデルが事実上崩壊しました。
「手頃なハードウェア上のソフトウェアで破られる暗号化/署名は、まさにそのとおり:破られているのです。」
この欠陥は特に懸念されるのは、マイクロコードの変更が基本的なセキュリティ対策をバイパスできるからです。マイクロコードへのアクセスがあれば、カーネル権限を持つ攻撃者は物理メモリに直接アクセスし、権限チェックをバイパスし、AMD の Secure Encrypted Virtualization(SEV)などのセキュリティ機能を危険にさらす可能性があります。
AMD マイクロコードの脆弱性に関する重要な事実
- 影響を受けるハードウェア: AMD Zen1 から Zen4 までのプロセッサ
- 脆弱性: マイクロコード署名に AES-CMAC RFC の例示キーを使用
- リリースされたツール: Zentool - AMD Zen マイクロコード操作ユーティリティ
- 対策: AMD はカスタムセキュアハッシュ関数と AMD Secure Processor アップデートを組み合わせた修正をリリース
- 研究チーム: Google ハードウェアセキュリティチーム(Josh Eads、Matteo Rizzo、Kristoffer Janke、Eduardo Vela Nava、Tavis Ormandy、Sophie Schmiege、その他)
Zentool の機能
Zentool ユーティリティはマイクロコード操作のための広範な機能を提供します。ユーザーはマイクロコードヘッダーの検査、リビジョン番号の変更、マッチレジスタの編集、さらには個々の命令のパッチ適用も可能です。このツールには、マイクロコードを構成する内部 RISC 操作(クアッド)を表示できる逆アセンブラが含まれています。
特に強力な機能の一つは、変更されたマイクロコードに再署名する能力で、これにより CPU が受け入れる有効な署名を生成して変更を補償します。これによりユーザーは特定の CPU コアにカスタムマイクロコードパッチをロードすることができます。
影響と対策
AMD はマイクロコード検証ルーチンを変更し、カスタムセキュアハッシュ関数を使用する修正をリリースしました。これは AMD Secure Processor のアップデートと組み合わされ、x86 コアが改ざんされたマイクロコードをインストールしようとする前に、パッチ検証ルーチンが更新されることを保証します。
議論に参加したセキュリティ専門家は、この脆弱性の影響が現代のファームウェアセキュリティアーキテクチャによって増幅されると指摘しています。CPU には不揮発性メモリがない(電源が切れるとマイクロコードはリセットされる)ものの、システムフラッシュを侵害する能力により、影響を受けるシステムの永続的かつ不可逆的な侵害が可能になる可能性があります。
研究者たちは、マイクロコードアップデートプロセスをリバースエンジニアリングしてバリデーションアルゴリズムを特定するに至った方法について、今後数ヶ月でさらなる詳細を提供する予定です。
倫理的および法的考慮事項
このようなツールのリリースは、セキュリティ脆弱性ツールを公開することの倫理と合法性についての議論を引き起こしました。一部のコメンターは、しばしば DMCA の削除要請に直面するコンソールのジェイルブレイクツールとの類似点を指摘し、一方で他の人々はこのような作業の学術的およびセキュリティ研究としての価値を擁護しました。
AMD K8 および K10 CPU マイクロコードに関する以前の学術研究が先例として言及され、研究者たちは暗号化(スクランブルに近いと表現された)を破り、AMD からの法的な報復なしにツールをリリースしました。
この作業を行った Google Hardware Security Team には、Josh Eads、Matteo Rizzo、Kristoffer Janke、Eduardo Vela Nava、Tavis Ormandy、Sophie Schmiege などが含まれます。彼らの研究は、Ruhr-Universitat Bochum の Koppe らによる「Reverse Engineering x86 Processor Microcode」という論文を含む過去の研究に基づいています。