
AI搭載のSASTスキャナーで、認証バイパス、IDOR、およびSemgrep/CodeQLが見逃すロジックバグを見つけます。無料のGitHub Action。Python、JS/TS、Go、PHP、Rubyをサポート。
AI を活用したコードセキュリティスキャナー。Semgrep や CodeQL が見逃す脆弱性を発見します。
クイックスタート • GitHub Action • 比較 • 対応言語 • FAQ
従来の SAST ツールはパターンマッチングと AST ルールに依存しています。既知の脆弱性パターンの検出には優れていますが、意図を推論することは基本的にできません。
API に 20 のエンドポイントがあり、そのうち 19 がリソース操作前に認可を確認している場合、Semgrep はその確認を行っていない 1 つを通知する方法がありません。マッチさせるパターンがないからです。脆弱性はパターンの 不在 なのです。
VulnHawk は AI でコードを分析し、検査するコードの断片ごとに、コードベースの他の場所にある関連コードをコンテキストとして含めます。この拡張ステップにより、AI は類似のコンポーネントがセキュリティをどのように処理するかを比較し、そうでないものを特定できます。
pip install vulnhawk
バックエンドを選択します:
# Claude Code CLI - サブスクライバーは無料 (推奨)
vulnhawk scan ./src -b claude-code
# Codex CLI - ChatGPT Pro/Plus サブスクライバーは無料
vulnhawk scan ./src -b codex
# Claude API
export ANTHROPIC_API_KEY=sk-ant-...
vulnhawk scan ./src
# OpenAI API
vulnhawk scan ./src -b openai -m gpt-4o
# Ollama - 無料、ローカル、完全プライベート
vulnhawk scan ./src -b ollama -m llama3.1
設定ファイルは不要。ルールを書く必要もなし。データベースの構築も不要。
Claude Code および Codex バックエンドは無料です(既存のサブスクリプションをお持ちの方)。VulnHawk はプロンプトをローカル CLI 経由でパイプするため、追加の API コストは発生しません。
*Claude Code、Codex CLI、または Ollama で無料。API バックエンドはスキャンあたり約 $0.50~$2.00 です。
VulnHawk は補完的なレイヤーとして設計されており、置き換えではありません:
| レイヤー | ツール | 目的 |
|---|---|---|
vulnhawk scan ./src # フルスキャン (デフォルト)
vulnhawk scan ./src --mode auth # 認証バイパス、チェックの欠落、セッションの欠陥
vulnhawk scan ./src --mode injection # SQLi、コマンドインジェクション、SSTI、XSS
vulnhawk scan ./src --mode secrets # ハードコードされたキー、トークン、パスワード
vulnhawk scan ./src --mode config # デバッグモード、緩いCORS、安全でないクッキー
vulnhawk scan ./src --mode crypto # 弱いハッシュ、ハードコードされたキー、悪い乱数生成
vulnhawk scan ./src -o json -f results.json # JSON
vulnhawk scan ./src -o sarif -f results.sarif # SARIF (GitHub Code Scanning)
vulnhawk scan ./src -o markdown -f report.md # Markdown レポート
vulnhawk scan ./src --severity high # Critical + High のみ
vulnhawk scan ./src --severity info # すべて
Semgrep、CodeQL、または SARIF を生成するツールの出力を VulnHawk に渡します。VulnHawk はそれらの発見を追加コンテキストとして使用し、検証、拡張、連鎖させてより深い脆弱性にします。
# 最初に Semgrep を実行し、次に VulnHawk で拡張
semgrep --config auto ./src -o semgrep.sarif --sarif
vulnhawk scan ./src --sarif-input semgrep.sarif
これにより可能になること:
vulnhawk info ./src # ファイル、チャンク、言語の内訳をプレビュー
VulnHawk はデフォルトブランチではベースラインスキャンとして、プルリクエストではインクリメンタルに実行されます。
name: VulnHawk Security Scan
on:
push:
branches: [main, master]
pull_request:
permissions:
security-events: write
contents: read
jobs:
vulnhawk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: momenbasel/vulnhawk@main
with:
target: '.'
backend: 'claude-code'
claude-code-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
severity: 'medium'
fail-on-findings: 'true'
発見結果は SARIF を介して GitHub の Security > Code Scanning タブに自動的にアップロードされます。
steps:
- uses: actions/checkout@v4
- name: Semgrep (高速パターンスキャン)
uses: returntocorp/semgrep-action@v1
with:
config: auto
generateSarif: true
- name: VulnHawk (深い AI 分析)
uses: momenbasel/vulnhawk@main
with:
target: '.'
backend: 'claude-code'
claude-code-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
sarif-input: 'semgrep.sarif'
コードベース ──> 探索 ──> チャンク化 ──> 拡張 ──> 分析 ──> 検証 ──> レポート
│ │ │ │ │
.gitignore を 関数 関連コード セキュリティ 重複除去 +
尊重 クラス (同じディレ プロンプト 信頼度
.vulnhawk- ルート クトリ + 認 を持つ LLM スコアリング
ignore モジュール 可パターン)
拡張ステップが主要な差別化要因です。各コードチャンクに対して、VulnHawk は以下を含めます:
これにより、AI は不整合を特定するために必要なコンテキストを得られます。
スキャンからパスを除外します(gitignore 構文):
generated/
vendor/
third_party/
*.gen.go
| 変数 | 説明 |
|---|---|
CLAUDE_CODE_OAUTH_TOKEN | Claude Code CLI 認証(サブスクライバーは無料) |
ANTHROPIC_API_KEY | Claude API キー |
OPENAI_API_KEY | OpenAI API キー |
Claude Code のサブスクリプション(Max は $100~$200/月、Team プラン)には無制限の CLI 使用が含まれています。VulnHawk は内部で claude --print を呼び出し、既存のサブスクリプションを介して分析プロンプトをパイプします。API キーもトークン単位の課金も不要です。
ローカルマシンで claude config get oauth_token を実行します。出力を CLAUDE_CODE_OAUTH_TOKEN という名前の GitHub Actions シークレットとして追加します。
両方です。main へのプッシュスキャンはセキュリティベースラインを確立し、Security タブを埋めます。PR スキャンはマージ前に新たな脆弱性をキャッチします。推奨ワークフロー設定は両方のトリガーを処理します。
はい – コードチャンクは設定された LLM プロバイダー(Anthropic または OpenAI)に送信されます。完全にプライベートでエアギャップされたスキャンには、Ollama バックエンドを使用してください。これはローカルマシン上で完全に動作します。
いいえ。VulnHawk は補完的なレイヤーです。Semgrep と CodeQL は得意分野(パターンマッチングと汚染追跡)に優れています。VulnHawk はビジネスロジックのバグ、認可の隙間、ルールでは表現できない不整合をキャッチします。3つすべてを一緒に使用して、最も強力なカバレッジを実現してください。
はい。VulnHawk は両方に対してフレームワーク認識型のチャンク化を含んでいます。Laravel の Route::get() 定義、PHP のクラス/トレイト/インターフェース、Rails のルート宣言(get、post、resources)、Ruby のクラス/モジュールを検出します。また、フレームワーク固有のインポート(use、require、include)も抽出します。
他のスキャナー(Semgrep、CodeQL、Snyk など)が生成した SARIF ファイルを VulnHawk に渡すことができます。VulnHawk は分析中にそれらの発見を追加コンテキストとして使用し、検証、近くの関連問題の発見、ツール間の発見を接続する多段攻撃チェーンの構築を行います。
CONTRIBUTING.md を参照してください。
git clone https://github.com/momenbasel/vulnhawk.git
cd vulnhawk
uv venv .venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest
VulnHawk が役に立つなら、プロジェクトをスポンサーして継続的な開発を支援することを検討してください。
VulnHawk は米国法人のオフェンシブセキュリティ企業 GreyCore Labs によって構築・メンテナンスされています。あなたの製品にも同じ目線を適用したいですか?
VulnHawk は VulnHawk License のもとで ソースコード利用可能 です。
個人、チーム、スタートアップ、企業を含むすべての人が無料で、公式配布チャネルからインストールする限り、内部セキュリティスキャンに VulnHawk を無料で使用できます:
本ソフトウェアを販売したり、競合サービスとして提供したり、フォークを製品として再配布することはできません。フォークはこのリポジトリにプルリクエストを送信する目的にのみ許可されます。詳細な条件は LICENSE を参照してください。
| 機能 | VulnHawk | Semgrep | CodeQL | Snyk Code | Checkmarx | SonarQube |
|---|
| 検出方法 | AI 推論 | AST パターン | QL データフロー | ML + ルール | パターン + フロー | パターン |
| ビジネスロジックの欠陥 | はい | いいえ | 制限あり | 制限あり | 制限あり | いいえ |
| ファイルをまたぐコンテキスト | 自動 | カスタムルール | カスタムクエリ | 一部 | 有料 tier | 制限あり |
| セットアップの複雑さ | ゼロ設定 | ルール設定 | DB 構築 + QL | 設定ファイル | 複雑 | サーバー設定 |
| カスタムルールの必要性 | 不要 | 必要 (YAML) | 必要 (QL) | 一部 | 必要 | 必要 |
| コンテキストを考慮した修正 | はい | 汎用的 | 汎用的 | 汎用的 | 汎用的 | 汎用的 |
| ローカル/プライベートモード | Ollama | はい | はい | いいえ | いいえ | セルフホスト |
| CI/CD 統合 | 1行の Action | Action | Action | Action | プラグイン | プラグイン |
| SARIF 入力 (ツール連鎖) | はい | いいえ | いいえ | いいえ | いいえ | いいえ |
| 価格 | 無料* | 無料 / 有料 | 無料 / 有料 | 無料 / $$$ | $$$$$ | 無料 / $$$ |
| 脆弱性クラス | ルールベースのツールが見逃す理由 |
|---|
| N エンドポイント中1つの認可欠落 | マッチするパターンがない – バグはチェックの不在である |
| IDOR / BOLA | JWT 内のユーザー ID が URL 内の ID と一致すべきであることを理解する必要がある |
| 支払い金額の改ざん | ビジネスロジック – amount フィールドはクライアントから信頼されるべきではない |
| 入力検証の不整合 | 5つのハンドラはサニタイズするが、6つ目はしない – ファイル間の比較が必要 |
| 保存された入力の悪用 | 入力は安全に保存されるが、3ファイル離れた場所で eval() または生 SQL で使用される |
| 状態更新の競合状態 | ロックなしでの同時残高変更 |
| 1 |
| Semgrep |
| 既知の悪質パターンに対する高速で決定的なゲートキーピング |
| 2 | CodeQL | 複雑なコールチェーンを横断する深い汚染追跡 |
| 3 | VulnHawk | ビジネスロジック、認可の隙間、IDOR、およびルールでは表現できない不整合 |
| バックエンド | 設定 |
|---|---|
| Claude Code (無料) |
トークンを取得: |
| Codex (無料) |
ランナー上で |
| Claude API |
|
| OpenAI API |
|
| 言語 | 拡張子 | フレームワーク検出 |
|---|
| Python | .py | Django, Flask, FastAPI |
| JavaScript | .js .jsx | Express, Fastify, Next.js |
| TypeScript | .ts .tsx | Express, NestJS, Fastify |
| Go | .go | net/http handlers |
| Java | .java | クラス/メソッド分割 |
| PHP | .php | Laravel ルート、クラス、トレイト、インターフェース |
| Ruby | .rb .erb | Rails ルート、クラス、モジュール |
| バックエンド | スキャンあたり(約100ファイル) | 要件 |
|---|
| Claude Code CLI | 無料 | Claude Code Max または Team サブスクリプション |
| Codex CLI | 無料 | ChatGPT Pro または Plus サブスクリプション |
| Claude API | 約 $0.50~$2.00 | Anthropic API クレジット |
| OpenAI API | 約 $1.00~$4.00 | OpenAI API クレジット |
| Ollama | 無料 | 8GB+ VRAM のローカルマシン |