コード実行不可?問題なし — VBS、HVCI、Kernel CFGの時代を生き抜く(2022年)
本稿では、VBS(仮想化ベースのセキュリティ)、HVCI(ハイパーバイザーによるコード整合性の強制)、およびKernel CFG(カーネル制御フローガード)がもたらすセキュリティ制約下での攻撃手法について解説する。コード実行が制限された環境においても、これらの防御機構を回避しながら目的を達成するテクニックを詳細に分析している。
背景メモ
- HVCI(ハイパーバイザーによるコード整合性チェック)はWindows 10以降で使われるセキュリティ機能で、カーネルモードで実行されるコードがMicrosoftの署名要件を満たしているかをリアルタイムに検証する。これをバイパスして任意コードを実行するのは極めて難しいとされる。
- VBS(Virtualization-Based Security)は、ハイパーバイザーを使ってOSの一部を隔離された仮想環境で動作させる技術。HVCIはVBSの上で動く。これらにより、たとえカーネル権限を得てもメモリ改変などの攻撃が制限される。
- 本記事の著者Connor McGarrは、HVCI/VBSが有効な環境下で「コード実行なし(No Code Execution)」——すなわち新たなコードを注入せず既存の制御フローのみを悪用する——でHVCIを回避する攻撃手法を実証したセキュリティ研究者。
- Kernel CFG(Control Flow Guard)は制御フー整合性を保護する仕組みで、間接分岐先を制限する。HVCI・VBS・KCFGが揃うことで、ドライバの脆弱性を突いても任意コード実行に至る経路が大幅に狭まるのが2022年時点の現実。
- この記事は「モダンなWindows防御をどう解体するか」という高度な攻撃研究であり、セキュリティコミュニティでは防御側が攻撃研究を理解することで次世代の対策を設計する参考資料として読まれている。