driver-vuln-research: カーネルドライバ脆弱性と BYOVD 兵器庫
driver-vuln-research は、BYOVD(Bring Your Own Vulnerable Driver) 向けの研究ノートとツール一式だ。有効な署名が残っている一方で、IOCTL 経由で物理メモリ / MSR / PortIO を晒している正規ドライバを集め、能力マトリクス、再現可能な攻撃チェーン、Rust 製の抽出パイプラインをまとめている。用途ははっきり書いている。独立したセキュリティ研究と教育用であり、本番環境を荒らすためのスクリプト集ではない。
なぜ作ったか
現代の Windows では、ユーザーモードから物理メモリを直接触るのはほぼ不可能だ。BYOVD は、既知の脆弱な署名付きドライバをロードする(あるいは既に動いているものを再利用する)ことで、ベンダーの「デバッグ口」経由に物理ページを読み、EPROCESS を書き換え、PPL を落とし、ユーザーモードに戻って鍵をスキャンしたり権限昇格したりする。面が広く、文書は散らばり、オフセットと CVE 番号はすぐズレる。再現できたものだけ arsenal に載せた。
リポジトリ内のバイナリは公開されている署名付きイメージ(SIVX64、AsIO3、ASTRA64、LnvMSRIO、ArgusMonitor、ThrottleStop 関連など)で、SHA256 を付けている。自作の rootkit.sys はない。
能力の階層(短版)
名声ではなく「実際に何ができるか」で tier を切る。
- Tier 0: 物理 R/W + MSR が揃い、実機検証を優先。
LnvMSRIO(物理 + MSR、EAC 環境での観測あり)、CorsairLLAccess64(WHQL、HVCI / メモリ整合性 ON でもロード経路あり)がここ。 - Tier 1: 物理メモリ窓 — Portwell(多 IOCTL)、SIVX64(複数モード)、IOMap64(スライド窓)、Dell WDT 系など。
- Tier 2: 特化。SparkIO は読み寄り。AsIO3 は ASUS 機で boot 時点から既にロード済み なことが多く、公開 CVE と組むと「追加ロードなし」経路になる。MSI WinIo 系の大窓もこの層。
マトリクスには WHQL / HVCI / EAC の実測・未測も載せる。詳細はリポジトリの CAPABILITY_MATRIX.md を見よ。
主な研究チェーン
Chain A — ステルス抽出(主経路)
LnvMSRIO をロード → KPCR から EPROCESS → 1 バイトで PPL クリア → ユーザーモード ReadProcessMemory + AES 鍵スケジュール検証でヒープを掃く。段階ごとの IOCTL 回数と所要時間を記録している(ロード約 0.5s、特定約 0.3s、PPL はほぼ瞬時、ヒープ掃き 2–5s 程度)。
Chain B — HVCI 強化ホスト
CorsairLLAccess64:MSR で KPCR → 物理読みで EPROCESS 鎖 → 物理書きで token 系。メモリ整合性 ON のまま SYSTEM 語義へ寄せる(検証状況はリポジトリの記述に従う)。
Chain C — 追加ロードなし
AsIO3/Asusgio が既に動いているなら、公開 CVE チェーン(TOCTOU 系や権限 / 許可リスト問題など、ツリー内ドキュメント参照)を重ねる。痕跡は小さいが、機種とパッチ水準に強く依存する。
BSoD リスクも表にしている。オフセットが正しければほぼゼロ。間違いや MMIO 穴は FATAL。物理アドレスは読み書き前に範囲検証する。
抽出器(Rust)
extractor/ は約 3000 行、外部 crate 依存ゼロ。SCM でのサービス生成・起動・停止・削除、PhysicalMemoryDriver trait、LnvMSRIO バックエンド、EPROCESS 走査 + PPL bypass、AES-128 展開と検証、ヒープページスキャナ。例として Superfetch 可否、カーネルオフセット確認、フル AES スキャンがある。
cd extractor && cargo build --release
cargo run --example test_offsets # 管理者。比較的安全な確認
cargo test # 直近 10/10
フルチェーンの前にオフセットを合わせよ。違うカーネルビルドに物理書きするな。
ドキュメントと境界
リポジトリには能力マトリクス、運用マニュアル、WHQL+HVCI 候補一覧、E2E 設計、敵対的レビューなどがあり、ブログより詳しい。この記事は位置づけの説明に過ぎない。実機再現は GitHub の文書と、手元のパッチ状態を信用すること。
繰り返しになるが、対象は 既知脆弱性を持つ正規署名ドライバ の研究だ。未認可環境での破壊、チート、窃取は意図の外にある。やった結果は自分で負う。