
2026/08/08 16:04
x86 CPU の一部のハードウェアバックドア
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Rosenbridge プロジェクトは、古い VIA C3 プロセッサに存在する重要なハードウェアの欠陥を暴露し、無権限(Ring 3)コードが保護されたカーネル(Ring 0)メモリを読み込みおよび修飾することを可能にする埋め込まれたコアが存在していることが判明しました。このバックドアは、通常のようなルート権限を必要とする起動条件とは異なり、チップアーキテクチャに深く統合されており、産業用自動化機器、POS ターミナル、ATM、医療機器、および一部の消費者システムで使用されている多くのレガシーデバイスでデフォルトで有効になっていることが観察されています。最近の CPU ジェネレーションではこの機能は削除されていますが、影響を受けるインフラストラクチャは依然としてリスクにさらされています。研究者らは即時の修復ツールのリリースを行い、ユーザーは
github.com/xoreaxeaxeax/rosenbridge からユーティリティをコンパイルし、baremetal 上で sudo ./bin/check(現在はアルファ状態)を実行して欠陥を確認するよう推奨しています。脆弱な場合は、fix ディレクトリからスクリプトをインストール(sudo make install)し、再起動することでバックドアを無効にできます。ただし、カーネルアクセスを持つ攻撃者は容易にこれを再有効化できるため、継続的な監視が不可欠です。分析用に開発された主なツールには sandsifter, asm, esc, および fuzz が含まれます。この研究は Christopher Domas(@xoreaxeaxeax)によって主導されており、彼は該機能が悪意のある設計ではなく、おそらく意図せず有効のままにされたものであったと述べています。本文
プロジェクト:ローゼンブリッジ
概要
- 発見: 一部の x86 プロセッサに存在するハードウェアバックドアが特定されました。
- 仕組み:
- リング 3(ユーザーランド)のコードが、プロセッサによる保護を回避可能です。
- これにより、リング 0(カーネル)のデータを読み書きできる状態になります。
- 通常は無効化されていますが、あるシステムではデフォルトで有効な状態になっていることが発見されました。
- リポジトリの目的:
- プロセッサへの影響有無を検出するユーティリティを提供。
- バックドアの閉鎖方法を示すスクリプトを公開。
- 発見・分析に使用された研究成果とツールの集積を提供。
バックドアの詳細
- 構造: メインの x86 コアとともに埋め込まれた小型の非 x86 コア。
- 有効化: モデル固有レジスタ(MSR)の制御ビットで制御され、起動指示(launch-instruction)でトグルされます。
- 機能(DEIS):
- 特別にフォーマットされた x86 命令を包み込んだコマンドを実行します(深く埋め込まれた命令セット:DEIS)。
- すべてのメモリアクセス保護や特権チェックを回避できます。
- 脆弱性: 本来はカーネルレベルアクセスが必要ですが、デフォルト有効化によりあらゆる非特権コードがカーネルを変更可能な状態になっています。
- 他との違い: Management Engine や Platform Security Processor などの管理用コプロセッサとは異なり、CPU のメモリ、レジスタファイル、実行パイプラインにも直接アクセス可能です。
影響を受けるシステム
- 対象 CPU: 現時点ではVIA C3 プロセッサのみが影響を受けると考えられています。
- 利用分野:
- 産業用自動化
- キャッシュレジスター
- ATM
- 医療機器向けハードウェア
- コンシューマ向けデスクトップ・ラップトップ
- 今後の対応: C3 よりも後の世代の CPU は、この機能を内蔵していません。
チェックと閉鎖方法
1. CPU のチェック手順
影響の有無を確認するには以下のコマンドを実行してください。
git clone https://github.com/xoreaxeaxeax/rosenbridge cd rosenbridge/util make sudo modprobe msr sudo ./bin/check
注意点:
- 環境: 仮想マシン内ではなく、**Baremetal(物理マシン)**でのみ動作します。
- リスク: アルファバージョンのため、バックドアを持たないシステムでクラッシュやパニック、フリーズを引き起こす可能性があります。
- 制限: 設計前提と異なる形式のプロセッサでは検出できない場合があります。
2. バックドアの閉鎖手順
脆弱性が確認された場合、ブートプロセス早期に無効化するスクリプトをインストールします。
cd fix make sudo make install reboot
警告:
- この方法でも、特権アクセスを持つ攻撃者がバックドアを再度有効化できる可能性があります。
- スクリプトは汎用的な枠組みであり、異なるシステムでは適応が必要な場合があります。
公開ツールと技術
研究で使用された主なユーティリティ一覧です。
- asm: DEIS 用のアセンブラ。自作プログラムを x86 命令に変換し、隠蔽されたコアへコマンドを送信します。
- esc: ローゼンブリッジを使用した特権昇格の概念検証ツール。
- fix: MSR の更新を通じてバックドアを閉鎖するためのスクリプトセット。
- fuzz: x86 コアおよびローゼンブリッジコアをファジーテストし、未知の命令形式を解明する集合体。
- deis: 隠蔽コアの動作を探求するためのファッザ(Fuzzer)。
- exit: DEIS シーケンス終了時に x86 コアに戻すための退出シーケンスを検索・管理するツール(一部のプロセッサでは不要と判明し開発中止)。
- manager: 分散実行されるファッザタスクを監視・管理する Python ユーティリティ。
- wrap:
の簡略版で、ブリッジ指示(コマンド送信)を特定するために使用されます。sandsifter - kern: ファッザされた DEIS 命令によるカーネルメモリ・レジスタ変更を検出するヘルパー。
- lock: バックドアのロック/アンロックを行うユーティリティ。
- proc: ファッザログからパターンを特定し、DEIS 命令の動作クラスを分類。
- test: 初期段階で既知の RISC 命令を実行し、アーキテクチャを試みるツール。
- util: 影響有無を検出するためのアルファバージョンツール。
リンク先
- GitHub: https://github.com/xoreaxeaxeax/rosenbridge
- (TODO: ホワイトペーパーへのリンク)
- (TODO: スライド資料へのリンク)
免責事項
- 記述内容は研究者による推論と意見に基づくものです。
- VIA プロセッサは低消費電力性と組み込み設計の卓越さで知られており、記述された機能は当初、組み込み市場にとって有用な機能として意図的に開発されたと考えられています。
- 初期世代の一部のプロセッサでは、誤って有効化されていた可能性が高いです。悪意ある意図は一切含まれていません。
著者
- Christopher Domas (@xoreaxeaxeax)