Windows 11 24H2 PatchGuard バイパス「kurasagi」の解説

Security

概要

「kurasagi」はWindows 11 24H2(ビルド26100.4351)を対象としたPatchGuardバイパスの完全なProof of Concept(PoC)を実装したリポジトリです。PatchGuardはWindowsカーネルの整合性を維持し、悪意のあるカーネルモードの改ざんを防ぐセキュリティ機構として知られていますが、その防御を回避する技術は高度な理解を要します。本リポジトリは最新のWindows 11環境に特化し、PatchGuardの検知回避・バイパス手法をC++で実装。研究者やセキュリティエンジニア向けに教育的な資料とコードを提供しています。なお使用は教育目的に限定されており、ハイパーバイザベースのセキュリティ機能は無効化して運用する必要があります。

GitHub

リポジトリの統計情報

  • スター数: 9
  • フォーク数: 0
  • ウォッチャー数: 9
  • コミット数: 18
  • ファイル数: 8
  • メインの言語: C++

主な特徴

  • Windows 11 24H2(ビルド26100.4351)向けPatchGuardバイパスの完全PoC実装
  • PatchGuard検知回避のための高度なカーネル改変技術をC++で表現
  • 研究・教育目的に特化し、詳細な技術解説を含むPDF論文も提供(productブランチ)
  • 最新ビルド(26100.4652)へのアップデートサポートも明示

技術的なポイント

PatchGuardはWindowsカーネルの整合性を保護するため、カーネルコードや重要なデータ構造の改変を検知してシステムをクラッシュ(BSOD)させる仕組みです。これによりルートキットやカーネルレベルの悪意あるコードの挿入を防いでいます。「kurasagi」はこのPatchGuardの保護メカニズムを回避するPoCコードであり、Windows 11 24H2の最新ビルドにおけるPatchGuardの検知ロジックを詳細に解析し、その検知パターンを突破する技術を実装しています。

具体的には、PatchGuardが監視するカーネル領域の改変を隠蔽したり、PatchGuardの検知コードの実行を逸らしたりする手法を用いています。これにはカーネルメモリの不整合を巧妙に操作し、PatchGuardの整合性チェックが失敗しないように偽装するテクニックが含まれます。また、PatchGuardの検知トリガーとなるイベントを先読みし、回避するためのフックやパッチを動的に適用する点も特徴的です。

ソースコードはC++で記述されており、Windowsカーネルドライバ開発に必要な低レベルAPIを活用しています。コード構造はシンプルながら、PatchGuardの複雑な検知ロジックを的確に捉えた設計となっており、開発者がPatchGuardの内部挙動を理解しやすいよう配慮されています。さらに、productブランチにはこのバイパス技術の詳細な解説をまとめたPDF論文が含まれており、技術的背景や解析過程を深く知ることができます。

注意点として、本PoCは教育目的に限定して使用すべきであり、実環境での悪用は法的・倫理的に問題があります。また、ハイパーバイザベースのセキュリティ機能(例えばHVCIなど)が有効な環境では動作せず、ブルースクリーンを誘発する可能性があるため、実行時にはこれらの機能を無効化する必要があります。この点はREADMEで明確に警告されています。

このように「kurasagi」は最新Windowsカーネルのセキュリティ機構を深く掘り下げ、その防御を突破する技術を体系的にまとめた貴重なリポジトリです。カーネルセキュリティやマルウェア対策の研究者にとって、PatchGuardの理解と回避技術習得に役立つ教材といえます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitattributes: file
  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • VerifyPg: dir
  • その他ソースコードファイル7個(C++コードを含む)

VerifyPgディレクトリはPatchGuard検証やバイパスに関する主要な実装を含むと推測されます。全体的にファイル数は少なめで、PoCとしてコンパクトにまとまっています。

まとめ

Windows 11 24H2 PatchGuardバイパスの最先端PoCとして技術的価値が高い。

リポジトリ情報: