概要
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) によるリサーチプロジェクト