DeepZeroは、悪用可能なWindowsカーネルドライバーの探索を自動化するオープンソースのエンジンです。バイナリが入ったフォルダを指定するだけで、パースから分解、スキャン、大半の除外、そして生き残ったものに対して「これは攻撃可能か」を言語モデルに問いかけるところまでを一気に処理します。パイプラインはYAMLで記述され、コード自体はPython 3.11以上で書かれています。

本プロジェクトのメンテナーであるRehman Ahmadzai氏によると、DeepZeroは「Snappy Driver Installerコーパスの一部において、複数の検証済み脆弱性を発見しており、一部については現在も開示プロセスが進行中」だといいます。付属のパイプラインが狙うのはBYOVD(bring your own vulnerable driver、「持参した脆弱なドライバーを悪用する」手口の略)です。これは攻撃者が正規に署名されているものの欠陥を抱えたドライバーを読み込ませ、それを足がかりにカーネルへ到達する手法です。
パイプラインの処理内容
処理は7つの段階を順に経ます。最初の段階ではPEヘッダーを解析します。2段階目では、ユーザー空間がドライバーに何らかの動作をさせるための制御コードである「IOCTLサーフェス」を公開しているカーネルモードドライバーのみを残します。3段階目では、防御側がブロック対象として参照する公開リストloldrivers.ioに既に登録済みのドライバーを除外します。続いてGhidraがヘッドレスモードで残ったドライバーに対して実行され、Semgrepのルールがエクスポートされたソースコード(C言語)をスキャンします。その後、pick_top_10という名称のリデュース処理で候補を上位ティアへと絞り込み、最後にようやくモデルが悪用可能性を評価します。
つまり、モデルの目に触れる時点で、対象は既に3段階目のフィルターを通過済みというわけです。
「AIによる評価ステップを最後に配置しているのは、それ以前の段階(バイナリの逆コンパイルや、既知の脆弱なドライバー・非対応の32ビットバイナリのパイプラインからの除外など)でコンテキストを収集させ、それを最終的にAIステップで評価させるためです」とAhmadzai氏はHelp Net Securityに語りました。
検出結果の確認に実機ハードウェアが必要な場合も
多くのドライバーは、対応するハードウェアが列挙されて初めてデバイスオブジェクトを生成します。そのデバイスを持たないマシンやVM上では該当のパスが開かれることはなく、ドライバーが公開している機能にも到達できません。そのためレポート上だけを見ると、これは本来何の問題もないドライバーと見分けがつかなくなってしまいます。逆コンパイル段階では、どの関数がIoCreateDeviceを呼び出しているか、そしてその関数がDriverEntryなのか、あるいはDriverEntryから呼び出される関数なのかを記録します。この値が真であれば、当該ドライバーを読み込むあらゆるマシン上にデバイスが出現することを意味し、検出結果を確認できます。偽の場合は通常、プラグアンドプレイのコールバックがデバイスを生成しているケースであり、確認には実機ハードウェアが必要になります。IoCreateDevice自体が全く見つからない場合は、推測に頼らず、いずれの値も記録しない仕様になっています。
「DeepZeroの基盤となるエンジンは、そもそも対象を特定のターゲットに限定しないパイプラインオーケストレーターとして構築されています。付属のloldrivers調査用パイプラインはWindowsカーネルドライバーに特化したものですが、フレームワーク自体は単一のアーキテクチャやバイナリ形式に縛られるものではありません」とAhmadzai氏は述べています。
DeepZeroはGitHubで無料公開されています。
翻訳元: https://www.helpnetsecurity.com/2026/09/16/vulnerable-windows-drivers-deepzero-open-source/