概要
project:rosenbridge は、x86 CPUに存在する ハードウェアバックドア を明らかにするリサーチプロジェクト。 このバックドアは ユーザーランドからカーネル領域への不正アクセス を可能にする。 主に VIA C3 CPU が影響を受ける。 リポジトリには 検出・無効化ツールやリサーチ資料 が含まれる。 この脆弱性の発見・検証方法と対応策を解説。
project:rosenbridge とは
- x86プロセッサ に埋め込まれた ハードウェアバックドア の存在を示すプロジェクト
- Christopher Domas (@xoreaxeaxeax) による研究活動
- デスクトップ、ノートPC、組み込み向けx86 CPU の一部に影響
- ユーザーランド(ring 3)コード が カーネル(ring 0)データ へ自由にアクセス可能となる問題
- 通常は カーネル権限での有効化が必要 だが、初期状態で有効なシステムも存在
rosenbridge バックドアの仕組み
- x86コアとは別に、非x86コア (hidden core)がCPU内部に埋め込まれている
- モデル固有レジスタ(MSR) の制御ビットで有効化、 特定命令 で起動
- 専用フォーマットのx86命令 でコマンドをhidden coreへ送信
- 全てのメモリ保護・権限チェックをバイパス して命令実行
- Management EngineやPlatform Security Processor とは異なり、 より深くCPU内部に存在
- CPUの全メモリ、レジスタ、実行パイプライン にアクセス可能
影響を受けるシステム
- VIA C3 CPU のみが対象と考えられている
- 産業用オートメーション、POS、ATM、医療機器、一般向けPC などに利用
- C3以降の世代 にはこの機能は存在しない
脆弱性の意義と今後
- 脆弱性の 影響範囲は限定的
- 後続CPU世代では廃止
- 複雑化するプロセッサ設計 におけるバックドアのリスク例としてのケーススタディ
- 研究者・エンドユーザーによる発見・対策の参考資料
影響確認と対策方法
影響調査手順
git clone https://github.com/xoreaxeaxeax/rosenbridgecd rosenbridge/utilmakesudo modprobe msrsudo ./bin/check- ベアメタル環境必須 (仮想マシン不可)
- アルファ版ツール のため、非対応CPUではクラッシュやフリーズの可能性
バックドアの無効化手順
cd fixmakesudo make installreboot- カーネル権限を持つ攻撃者 による再有効化は防げない
- システムごとにスクリプトの調整が必要
研究に用いられたツール・技術
- sandsifter :未知命令の発見用ファジングツール
- asm :Deeply Embedded Instruction Set(DEIS)用アセンブラ
- esc :バックドアを利用した権限昇格のPoC
- fix :脆弱性の暫定的な修正スクリプト
- fuzz :x86/rosenbridgeコア両方のファジングツール群
- deis :hidden coreの挙動調査用ファザー
- exit :DEIS命令終了後のx86コア復帰シーケンス探索用
- manager :分散ファジングタスク管理用Pythonツール
- wrap :sandsifterの簡易版、bridge-instruction探索用
- kern :カーネルメモリ・レジスタの変化モニタ用
- lock :バックドアのロック/アンロックツール
- proc :ファジングログ解析用パターン識別ツール
- test :hidden coreのアーキテクチャ推定用
- util :rosenbridge影響判定用アルファツール
参考文献・免責事項
- ホワイトペーパー・スライド は今後公開予定
- 本研究は VIAプロセッサの設計上の特徴 を調査・修正する目的
- 悪意のある意図は否定、組み込み市場向け機能が誤って有効化された可能性
著者情報
- Christopher Domas (@xoreaxeaxeax) によるリサーチプロジェクト
これ、もうかなり古い話だけど、今でもめっちゃ関連性あるよね。みんなあんまり注目してないけど、TPUユニットのチップが複雑化してるのに加えて、NVIDIAみたいなドキュメントが不十分なハードウェアへのシフトが、この問題に新たな火をつけてる。ドマス(もしかしたら彼のチームや同僚も?)は、ここ数年で高度なマルウェアやインプラント、カントールダストみたいな興味深い素材をたくさん出してるんだ。彼は自分のCPUファズァーやMSRファズィング技術を使って、ハードウェアのバグやバックドアを通じて攻撃を見つけて、逆アセンブルして、実装してる。バックドアが悪意のあるものかデバッグ用かは確認できないけど、要するにそれによって得られる能力が重要なんだ。彼の動画で見せてる技術は、そんなに難しくないから、興味がある人はぜひ挑戦してみて、再現して、この分野での認識や発見を広める手助けをしてほしいな。もう一つの良いアプローチは、Defcon 21 - デキャッピングチップスだよ。人々はNPMやPipなどのサプライチェーンの問題について話してるけど、これらはもっと深刻で検出が難しい。ほとんど誰も見てないし、大抵のベンダーは完全に無視してる。だって、これに対抗する製品を売れないからね。(もし検出したらハードウェアを廃棄する必要があるから、売上には不利だし…)