
攻撃者のようにソースコードを推論し、実行可能なPoCで悪用可能な脆弱性を確認し、hunt・fix・verifyスキルを通じてテストファーストの修正を推進するエージェント型AIセキュリティスキャナー。
[!NOTE] Capital OneのVulnHunter(Apache-2.0)のメンテナンスされたフォーク — Claude Codeだけでなく、あらゆるエージェントハーネスで動作するように構築されています。このフォークの焦点は、ハーネスのポータビリティ、サンドボックス化された(コンテナ化された)エクスプロイト検証、そして影響を測定したPoCです。詳細は変更の理由 · このフォークが変更する内容 · 数値をご覧ください。
パターンマッチングから証明可能性へ。
VulnHunterは、ソースコードに直接プロアクティブで攻撃者優先の分析を適用する、オープンソースのエージェント型AIセキュリティツールです。
疑わしいパターンを検出して誤検知を多発させる従来の受動的なSASTスキャナとは異なり、VulnHunterは敵対者のように推論します。どの欠陥が実際に悪用可能かを特定し、想定される攻撃経路をマッピングし、証拠に基づいた的を絞った修正を提案します。
現代のソフトウェアサプライチェーンは深く相互接続されています。広く使われているオープンソースコンポーネントの単一の脆弱性が、何千もの企業に同時に波及する可能性があります。
VulnHunterはCapital One社内で開発され、コミュニティ向けにオープンソース化されました。このフォークはその作業を引き継ぎます — 同じ方法論を、あらゆるエージェントハーネスで動作するように作り直し、サンドボックス化された(コンテナ化された)エクスプロイト検証と影響を測定したPoCをロードマップとして掲げています。詳細はこのフォークが変更する内容をご覧ください。
デュアルユースの注意 VulnHunterはデュアルユースのサイバーセキュリティ作業(脆弱性の発見と悪用)を行います。ガードレールを想定してください。市販のモデルのほとんどはデュアルユースのサイバーセーフガードを適用しており、攻撃的な悪用行為はレート制限や使用フラグに引っかかる可能性があります。VulnHunterの開発とテストは、オープンウェイトでコミュニティ提供のモデル — リスクを低減し、abliterate(検閲除去)され、無検閲のもの — で実行されました。これらは今後、組織での利用において重要になる可能性が高いモデルです。監査は、あなたが所有する、または監査を許可されているコードのみに対して行ってください。
[!IMPORTANT] 前提条件とモデル要件 VulnHunterの方法論は、オープンウェイトでコミュニティ提供のモデル — 組織が実際にデプロイできる、リスクを低減し、abliterateされ、無検閲のもの — で動作するように構築されています。能力の高い推論モデルが必要です。ハーネスが提供する最も強力なモデルが最良の結果をもたらしますが、方法論は特定ベンダーのフロンティアモデルに依存しません。モデルへのアクセスはご自身で用意してください。
| 機能 | アップストリーム(Capital One) | このフォーク | ステータス |
|---|---|---|---|
| ハーネスのポータビリティ | スキルはClaude Codeを明示的に呼び出す。インストーラは~/.claude/skillsを対象。モデルゲートはOpusをハードコード。ハーネスはclaude-opus-4-8を固定 | スキルはハーネスポータブルなプロンプトファイル(スキルディレクトリ+サブエージェントを持つ任意のハーネス)。VULNHUNT_SKILLS_DIR / VULNHUNT_AGENTS_DIR / VULNHUNT_BIN_DIR / VULNHUNT_HOST_CMD / VULNHUNT_MODEL環境契約。モデルゲートは「あなたのハーネスで最も能力の高い推論モデル」と言い換え | 出荷済み |
| 推測しないインストーラ | install.shは~/.claude/skillsを前提とする | 明示的なディレクトリ、GROK_HOMEのセマンティクスを尊重、vhランチャーをVULNHUNT_BIN_DIR/~/.local/binに書き込み、vulnhunter-runスキル+エージェント定義をインストール。Windowsの.cmd相当も更新 | 出荷済み |
vulnhunter-runオペレータスキル | —(なし) | 無人オペレータ:クローン → ハント → 結果の検出 → スキャンマニフェストの書き込みと検証。明示的な停止ルール付きで、即興なし | 出荷済み |
| ベンチマーク/ジャッジの強化 | 固定モデル+基本的なリトライ | 環境経由のモデル、リトライ/バックオフ設定、analyze_missesパイプラインの損失点追跡、所見ごとの履歴追跡 | 出荷済み |
| ハーネス中立のレポート言語 | スキル全体を通じてClaude固有の表現 | ハーネス中立のツール言語(Agent → subagent、Claude CLI → harness session) | 出荷済み |
| サンドボックス優先のエクスプロイト検証 | エクスプロイトテストは静的トレースの場合あり。ランタイム選択は場当たり的 | Docker優先のランタイムプロビジョニング。ランタイムは所見ごとに記録。Medium以上の重大度は実行必須 | 進行中 |
| 影響を測定したPoC | PoCはドキュメント。影響は主張のみ | 実行可能なPoC+所見内の影響数値(露出した行数、増幅されたリクエスト数、滞留したキー時間) | 進行中 |
VulnHunterの方法論は本質的にホスト非依存です。それはツールのバインディングではなく、プロンプト手順です。アップストリームプロジェクトはClaude Codeの中で育ちました — 一貫した選択であり、最初の住処として正しいものでした。しかしエージェントハーネスの状況は広がり、そのうちの1つにしかインストールできないセキュリティ方法論は、監査能力であることをやめ、ベンダー機能になり始めます。このフォークは4つの変更を行い、それぞれに理由があります。
ここにあるすべてのスキルは、明示的な環境契約(VULNHUNT_SKILLS_DIR、VULNHUNT_AGENTS_DIR、VULNHUNT_MODEL、VULNHUNT_HOST_CMD)を持つポータブルなプロンプトファイルであり、モデルゲートは特定の製品ではなくあなたのハーネスで最も能力の高い推論モデルを要求するようになりました。より良いとは: 同じ方法論が、あなたのチームがすでに運用しているハーネスにインストールされ、ベンチマーク実行においてハーネス間で比較可能になります。これがこのフォークの開発方法です。
アップストリームのインストーラは、スキルを無条件に~/.claude/skillsへコピーしていました。2つのハーネスが動作しているマシン、あるいはホームが移転されたハーネスでは、その推測は誤った場所に、しかも静かにインストールします。このフォークのインストーラは尋ねるか、環境変数を受け取り、答えが欠けている場合は正確な指示とともに大きな音で失敗します。より良いとは: マルチハーネスマシンで安全、移転されたホームでも正しく、設定ミス時には静かではなく大きな音で知らせます。
元の設計はすでに反証とエクスプロイトテストを要求していました。開かれたままだったのは、それらを実際に実行するためにどれだけ努力するかでした:静的トレース、モックテスト、あるいは実際のコンテナ化サーバー。単一コミットに対する6回のベンチマーク実行で、その裁量は3件から42件までの所見を生み出しました — そして同じシンクに対して正反対の判定、1つはモックに対して証明され、1つは実サーバーに対するテストでクローズされました。このフォークはランタイムプロビジョニング手順(Docker優先、所見ごとに記録)と、影響が測定されるPoC規律 — 漏洩した行数、×倍の増幅、滞留したキー時間 — を追加し、物語るのではなく測定します。より良いとは: 所見の妥当性が、コンテナを立ち上げる本能を持っていたモデルがどれかにもはや依存しません。(進行中 — ビルド計画は公開ロードマップにあります。issuesで尋ねるか、リポジトリのDiscussionsをウォッチしてください。)
このフォークの新機能:vulnhunter-run、クローン、ハント、結果の検出、そして明示的な停止ルールでスキャンマニフェストを書き込み検証する無人オペレータ。ベンチマークツールは環境経由のモデル設定、リトライ/バックオフの調整ノブ、見逃した所見の損失点分析を獲得します。より良いとは: デモするツールとスケジュールするツールの違いです。
私たちはVulnHunterをそれ自身に対してベンチマークします:1つの実際の本番Goサービスの6回の完全スキャン — 同じコミット、5つのハーネス/モデルスタック。以下の数値はそれらの実行から得られたものであり、このフォークが存在する理由です。
| 14× | 同じコミットの実行間で確認された所見のばらつき。プロセスが自らを測定していたことが最初の脆弱性でした — そのギャップを埋めることがこのフォークのビルド計画です。 |
| 42/42 | 確認された所見が実行可能なエクスプロイトテストを伴っていました — すべてPASS、すべてが独自のPoC付き。所見は勘で出荷されません。 |
| 55% | 候補所見のうち、あなたに届く前に敵対的検証パスによって排除または格下げされた割合。他はスキャンする。VulnHunterは訴訟を起こす。 |
| 315 | 単一スキャンでインベントリされた攻撃者制御の入力 — すべてが追跡され、すべての処分が記録されました。完全性は願望ではなく規律です。 |
| 20/20 | 1回の実行でライブサーバーに対して実行された敵対的ペイロード — 結果を測定し、主張はしません。 |
6回の完全なVulnHunterスキャンが、同じ本番Goサービスの1つのコミットに対して、5つのハーネス/モデルスタックにわたり、およそ3週間にわたって実行されました。上記のすべての数値は、保持されたスキャン成果物 — 入力ごとの処分テーブル、敵対的判定テーブル、PoC、実行されたエクスプロイトテスト — に遡ります。生の出力はメンテナによって保持されています。尋ねるか、ご自身で再実行してください。
VulnHunterは、完全で自動化された修復ループを形成する3つの組み合わせ可能なエージェントスキルとして出荷されます:
| スキル | フェーズ | 中核的な責務 |
|---|---|---|
/vulnhunt | ハント | エントリポイントを危険なシンクにマッピング。多段階の反証パイプライン(Recon → Parallel Hunt → Adversarial Disprove → Capability Filter)を通じて所見をフィルタリング。実行可能なエクスプロイトと提案された修正を伴う検証済みの問題のみを出力。 |
/vulnhunter-fix | 修正 | 開発者主導のテスト駆動型修復。エクスプロイトのデモを書き、失敗するセキュリティテスト(RED)を作成し、コード修正(GREEN)を実装し、リグレッションなしでエクスプロイトがブロックされることを検証し、レビュー可能なPRを作成します。 |
/vulnhunt-fix-verify | 検証 | 所見が正常に修復されたかを独立に検証する、完全に分離された読み取り専用エージェント。所見ごとの判定を出力するので、修正は信仰ではなく証明されます。 |
注: このループを大規模に無人で実行するには、
vulnhunter-agent/がスキャナをヘッドレスランタイムでラップし、harness/が複数のリポジトリにわたってバッチで駆動します。
命名について: スイートはVulnHunterですが、コアスキャナコマンドは
/vulnhunt(および検証者/vulnhunt-fix-verify)です — 短い形式は意図的なもので、タイポではありません。/vulnhunter-fix修復スキルとvulnhunter-agent/ランタイムは完全な綴りを保ちます。
各コンポーネントは自己完結型のサブツリーに整理されています:
| パス | 説明 |
|---|---|
vulnhunt/ | コアの/vulnhuntスキャナスキル(プロンプトのみ:SKILL.md+フェーズ)。vulnhunt/README.mdを参照。 |
vulnhunter-fix/ | /vulnhunter-fixスキル、そのコンパニオンPythonヘルパーパッケージ、およびテスト。vulnhunter-fix/README.mdを参照。 |
vulnhunt-fix-verify/ | /vulnhunt-fix-verifyスタンドアロン検証スキル(プロンプトのみ)。vulnhunt-fix-verify/README.mdを参照。 |
vulnhunter-agent/ | スキャンを実行しGitHub issueを起票する、設定駆動のヘッドレスランタイムラッパー。vulnhunter-agent/README.mdを参照。 |
harness/ | 大規模なバッチスキャンの実行と検出精度のベンチマークのための開発者ツール。harness/README.mdを参照。 |
vh/ | 単一スキャンのための決定論的オペレータCLI:クローン、結果ディレクトリの検出、スキャンマニフェストの書き込みと検証、ホストのヘッドレスコマンドの起動。モデルSDKなし。 |