
pentest-ai v1.4.0
すべての発見を実証するオープンソースのAIペンテスター。機械オラクルが各エクスプロイトを再実行し、検証済みのバグには、自分で再現できる証明カプセルが同梱されます。

ウェブサイト · クイックスタート · バグバウンティ · 検証 · ドキュメント · Issues
Pentest-AIは、実証済みの検出結果と推測を区別するオープンソースのAIペネトレーションテストおよびバグバウンティツールです。 AIクライアントやモデルを実際のペネトレーションテストのワークフローに接続し、ウェブアプリケーションの調査、脆弱性の発見と再現、そしてマシンオラクルを用いたエクスプロイトが実際に機能するかの検証を行います。オラクルが証明できない検出結果は候補としてラベル付けされたままとなり、検証済みのものにはそれを証明したリクエストとレスポンスが付随します。
MCP(Claude Code、Codex、Cursor、VS Code)、CLI、またはCI/CDから利用できます。モデルが調査を主導し、独立したオラクルが検出結果に検証済みの判定を与えるべきかを決定するため、モデルの推測が結果を装って届くことはありません。
認可されたバグバウンティ向けに設計: プログラムごとに1つのプロファイルがスコープ、規定のレート、研究者ハンドルを保持し、ドライランで何かが送信される前に計画を確認でき、レポートのドラフトは検証済みの検出結果のみから生成されます。バグバウンティのワークフローへ移動 →
自身が所有するシステム、または評価について明示的な認可を得たシステムのみをテストしてください。エンゲージメントを実行する前に、利用規約ポリシーと規約をお読みください。
クイックスタート
推奨: Codex または Claude Code
Python 3.10から3.14を使用し、最初にpipxをインストールしてください。必要に応じてpipx ensurepathを実行し、ターミナルを再度開いてください。pipxはPentest-AIの依存関係を分離し、そのコマンドをフォルダをまたいで利用可能にします。
pipx install ptai
ptai setup --mcp
まずAIクライアントのCLIをインストールしてください。セットアップでは、検出されたすべてのサポート対象クライアントに接続する前に確認を求めます。これにはCodexとClaude Codeの両方がインストールされている場合の両方が含まれます。既存の登録は保持されます。その後、クライアントを再起動してください。
ウィザードはユーザー全体の設定を使用します。クライアントのインストール、サインイン、モデルのダウンロード、Ollamaの設定は行いません。モデルはAIクライアントが提供するため、MCPサーバー側で別途モデルAPIキーは必要ありません。変更内容をプレビューするにはptai setup --mcp --dry-runを使用してください。Codexの.codex/config.tomlおよびClaude Codeの.mcp.jsonの手順については、シングルクライアントおよびリポジトリ単位のセットアップを参照してください。
アップグレードにはpipx upgrade ptaiを使用してください。既にアクティベートされた仮想環境内では、python -m pip install --upgrade ptaiもサポートされています。AIクライアントに登録した後も、その環境を利用可能な状態に保ってください。
代替手段: Ollamaとローカルモデル
Pentest-AIは上記と同様にインストールしますが、このルートではMCPセットアップをスキップしてください。Ollamaをインストールして起動し、ツール呼び出しをサポートするモデルをプルします。インストールされた正確な名前を確認するにはollama listを使用してください。
export PENTEST_AI_LLM_PROVIDER=ollama
export PENTEST_AI_MODEL="your-installed-model"
ptai start https://your-authorized-target.example --no-sync
PowerShell の場合:
$env:PENTEST_AI_LLM_PROVIDER = "ollama"
$env:PENTEST_AI_MODEL = "your-installed-model"
ptai start https://your-authorized-target.example --no-sync
実行前にプレースホルダーを置き換えてください。ローカルモデルにはクラウドAPIキーは不要です。 モデルの品質と利用可能なメモリが結果に影響します。エンドポイントの設定については モデルガイドを参照してください。
バンドルされたデモを試す
APIキーや外部ターゲットは不要です。
pipx install ptai
ptai demo
このデモは、同梱の脆弱なアプリケーションをテストし、そのプルーフカプセルから検出結果を再生し、強化されたルートを検証します。実際のエンゲージメントを設定する前に、エビデンスのワークフローを確認してください。
その他のモデルプロバイダー
スタンドアロンのクラウドモデルとオプションのスキャナ依存関係については、インストールガイドとプロバイダーガイドを参照してください。APIキーはソース管理の外に保管してください。
バグバウンティの自動化
バグバウンティモードは、自動テストを許可しているプログラム向けです。プログラムごとに1つの
プロファイルを作成し、そのスコープ、申告されたレート、およびあなたのリサーチャーハンドルを記述します。
--program を指定すると、それがすべてのリクエストに適用され、--dry-run を指定すると何も送信せずに
計画を出力します。
# ~/.pentest-ai/programs/acme.toml
platform = "hackerone"
handle = "acme"
researcher = "your-h1-username" # sent on every request in X-Bug-Bounty
rps = 5.0 # the rate the program states
scope = ["*.acme.com", "api.acme.com"]
excluded = ["status.acme.com"]
scanners_allowed = true
allow_race = false
ptai start https://api.acme.com --program acme --dry-run # sends nothing
ptai start https://api.acme.com --program acme --auto-auth
ptai bounty-report <engagement-id> --program acme --output-dir drafts/
--program の指定時:
- すべてのリクエストはプログラムのレートに従い、外部ツールも含まれます。レートの割り当てを守れないツールはスキップされ、スキャンはその旨を報告します。
- スコープはプロファイルからのみ取得され、それ以外からは取得されません。スコープ外のリクエストは拒否され、除外設定はワイルドカードより優先されます。
- 各リクエストには、
X-Bug-Bountyヘッダー、またはプログラムが指定するヘッダー(PTAI_BOUNTY_HEADER_NAME)に、あなたの研究者ハンドルが付与されます。 - gobuster や ffuf などのワードリストツールは使用されません。ただし、2つの組み込みディスカバリプローブは、依然として可能性の高いパスのリスト(約500リクエスト)を試行します。
- ターゲットを枯渇させたりクラッシュさせたりするために構築されたペイロードは送信されません。他のユーザーのアカウントや共有状態を変更するプローブは実行されません。レースコンディションのバーストは、プロファイルで
allow_race = trueが設定されている場合にのみ実行されます。 429とRetry-Afterは尊重されます。速度が低下したターゲットにはより低いレートが適用され、劣化した状態が続く場合は理由を記録してスキャンを停止します。- スキャナーを禁止しているプログラムでは、スキャンによってセーフハーバーが無効になる可能性があるため、
yesの入力が必要です。
ptai bounty-report は、オラクルで検証済みの検出結果のみからレポートを起草し、再現手順はオラクル自身のリクエストから取得します。各検出結果は手動で再現し、ご自身で提出してください。ptai bounty import は、プログラムがエクスポートしたスコープファイルを、プロファイルの許可エントリと除外エントリに変換します。
実時間はリクエスト数をレートで割った値になります。当社のテストアプリケーションでは、3 rps でのフルパスは約8,700リクエストで51分かかり、10 rps のパスで見つかるすべての critical と high を検出します。10 rps では約6,600リクエストで11分でした(低速プローブが低レートで完了する余裕ができる前に測定)。
到着時点で計測したところ、3 rps でも10 rps でも宣言されたレートを超えた秒はなく、外部ツールから送信されたリクエストも含まれています。
検証の仕組み
- 候補を見つける。 プローブまたはスキャナーが、調査する価値のある挙動を特定します。
- 再現し、コントロールを確認する。 名前付きオラクルがエクスプロイトを繰り返し、その弱点を示さないはずのコントロールと比較します。
- 証拠を保持する。 検証済みの検出結果には、オラクル、送信したリクエスト、判定したレスポンスが記録されます。
ptai retestはターゲットを再スキャンし、ptai diffは変更内容を表示します。ptai demoは、ptai replayが再チェックするポータブルなプルーフカプセルを表示します。
例えば、信頼済みヘッダーバイパスは、攻撃ヘッダー付きで特権コンテンツを返し、ヘッダーなしではアクセスを拒否しなければなりません。すべてのリクエストに HTTP 200 で応答するサーバーは、十分な証拠ではありません。
モデルは検証済みの判定を下すことはできません。 サードパーティスキャナーの出力は、オラクルが独立して証明するまで未検証のままです。サポートされた検証レシピがない検出結果は候補のままです。
検証済みの判定は、テストされた条件に適用されます。アプリケーション全体が安全であることを意味するものではありません。プルーフカプセルは署名されていません。チェックを再実行することが信頼の仕組みです。
できること
| ワークフロー | Pentest-AI が提供するもの |
|---|---|
| Web アプリケーションの調査 | インジェクション、アクセス制御、リクエスト処理、その他のアプリケーション弱点に対するプローブ |
| バグバウンティ案件の実行 | スキャンをプログラムのスコープとレートに従わせ、検証済みの検出結果からレポートを起草(ガイド) |
| AI クライアント経由での作業 | 案件、調査、検証のための MCP ツール |
| 検出結果の再現 | オラクル結果と再生可能なプルーフカプセル |
| 修正の確認 | 記録されたチェックを更新後のターゲットに対して再実行 |
| チームへの報告 | 既存のエンジニアリングワークフロー向けのレポートと SARIF 出力 |
| 案件データをローカルに保持 | 検出結果は SQLite でお使いのマシンに保存 |
カバレッジはプローブとオラクルによって異なります。オプションのスキャナーは独自のバイナリを必要とし、一部の統合は構造化された検出結果ではなく生の出力を提供します。お使いのバージョンについてはドキュメントと変更履歴を参照してください。mainには未リリースの作業が含まれている場合があります。
検証済みの検出結果をCIに組み込む
CI環境でモデルプロバイダー、認可されたターゲット、初回実行の同意を設定してください。シークレットはCIプロバイダーのシークレットストアに保管してください。
ptai start https://your-authorized-target.example --ci --fail-on verified --no-sync
実行から得られたエンゲージメントIDを使用して、検証済みの検出結果をエクスポートします:
ptai export YOUR_ENGAGEMENT_ID --sarif pentest.sarif
--sarif はエクスポートオプションであり、ptai start のオプションではありません。失敗したビルドの証拠が必要な場合は、検出ゲートが失敗してもエンゲージメント ID を保持し、エクスポートを実行してください。生成されたファイルは、CI プロバイダーの SARIF 連携を通じてアップロードしてください。
証拠、ベンチマーク、制限
ベンチマークの検出結果、チャレンジの完了、オラクルで検証された検出結果は、それぞれ異なる測定です。これらのレポートには、結果の背後にあるバージョン、ターゲット、方法論が記録されています: