
すべての発見を実証するオープンソースのAIペンテスター。機械オラクルが各エクスプロイトを再実行し、検証済みのバグには、自分で再現できる証明カプセルが同梱されます。
 [](https://pypi.org/project/ptai/) [](https://pypi.org/project/ptai/) [](https://github.com/0xSteph/pentest-ai/blob/main/LICENSE) [ウェブサイト](https://pentestai.xyz/) · [クイックスタート](#quick-start) · [バグバウンティ](#bug-bounty-automation) · [検証](#how-verification-works) · [ドキュメント](https://github.com/0xSteph/pentest-ai/tree/main/docs) · [Issues](https://github.com/0xSteph/pentest-ai/issues) **Pentest-AIは、あらゆる検出結果を証明するオープンソースのAIペネトレーションテストおよびバグバウンティツールです。** AIクライアントまたはモデルを実際のペネトレーションテストワークフローに接続し、ウェブアプリケーションの調査、脆弱性の発見と再現を行い、**マシンオラクルを用いてエクスプロイトが実際に機能するかを検証**します。証明がなければ検出結果とはみなしません。検証済みの結果には、あなた自身が再現できる証拠が付属します。 **MCP**(Claude Code、Codex、Cursor、VS Code)、**CLI**、または**CI/CD**から利用できます。モデルが調査を主導し、独立したオラクルが検出結果に検証済みの判定を与えるべきかどうかを決定します。したがって、出力はAIのスロップではなく、シグナルです。 **認可されたバグバウンティ向けに構築:** プログラムのスコープ(HackerOne、Bugcrowd、Intigriti、YesWeHack)をインポートし、スコープを強制したエンゲージメントを実行し、検証済みの各検出結果をプラットフォーム対応の提出物に変換します。[バグバウンティワークフローへ移動 →](#bug-bounty-automation) > あなたが所有するシステム、または評価の明示的な認可を得たシステムのみをテストしてください。エンゲージメントを実行する前に、[利用規定](https://pentestai.xyz/aup)と[利用規約](https://pentestai.xyz/terms)をお読みください。 ## クイックスタート ### 推奨:CodexまたはClaude Code Python **3.10~3.14**を使用し、まず[pipx](https://pipx.pypa.io/stable/installation/)をインストールしてください。必要に応じて`pipx ensurepath`を実行し、ターミナルを開き直します。pipxはPentest-AIの依存関係を分離し、そのコマンドをどのフォルダからでも利用できるようにします。 ```sh 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`の手順については、[単一クライアントおよびリポジトリ単位のセットアップ](https://pentestai.xyz/docs/ai-clients/)を参照してください。 アップグレードには`pipx upgrade ptai`を使用します。既存のアクティブ化された仮想環境では、`python -m pip install --upgrade ptai`もサポートされています。AIクライアントに登録した後も、その環境を利用可能な状態に保ってください。 ### 代替:Ollamaとローカルモデル 上記と同様にPentest-AIをインストールしますが、この方法ではMCPセットアップをスキップします。[Ollamaをインストールして起動](https://docs.ollama.com/quickstart)し、ツール呼び出しをサポートするモデルをプルします。インストールされた正確な名前を確認するには`ollama list`を使用します。 ```bash export PENTEST_AI_LLM_PROVIDER=ollama export PENTEST_AI_MODEL="your-installed-model" ptai start https://your-authorized-target.example --no-sync ``` PowerShellの場合: ```powershell $env:PENTEST_AI_LLM_PROVIDER = "ollama" $env:PENTEST_AI_MODEL = "your-installed-model" ptai start https://your-authorized-target.example --no-sync ``` 実行前にプレースホルダーを置き換えてください。ローカルモデルにはクラウドAPIキーは不要です。モデルの品質と利用可能なメモリが結果に影響します。エンドポイントの設定については[モデルガイド](https://pentestai.xyz/docs/ai-clients/)を参照してください。 ### 同梱のデモを試す APIキーも外部ターゲットも不要です。 ```bash pipx install ptai ptai demo ``` デモは同梱の脆弱なアプリケーションをテストし、そのプルーフカプセルから検出結果を再生し、強化されたルートをチェックします。実際のエンゲージメントを設定する前に、証拠ワークフローを確認してください。 ### その他のモデルプロバイダー スタンドアロンのクラウドモデルとオプションのスキャナー依存関係については、[インストールガイド](https://pentestai.xyz/docs/getting-started/)と[プロバイダーガイド](https://github.com/0xsteph/pentest-ai/blob/main/docs/llm-providers.md)を参照してください。APIキーはソース管理に含めないでください。 ## バグバウンティの自動化 Pentest-AIは、スコープ内に留まり、再現可能な検出結果のみを提出することが重要な、認可されたバグバウンティ作業のために設計されています。 ```sh # 1. Import the program's scope (HackerOne / Bugcrowd / Intigriti / YesWeHack) ptai bounty import --platform hackerone --file scope.json --out program.scope # 2. Run a scope-enforced engagement (a preflight shows exactly what will be # touched and asks you to confirm — nothing out of scope is ever hit) ptai start acme.com --scope-file program.scope --intensity stealth # 3. Turn verified findings into platform-ready submissions ptai bounty report <engagement-id> --platform hackerone --out submissions/ ``` - **スコープは助言ではなく強制されます**:ワイルドカード、CIDR、スコープ外の除外、フェイルクローズド、すべてのエージェントとツールにおいて。 - **提出物はそのまま提出可能**:各提出物には再現可能な`curl`、CVSS/CWE、影響、修復、および再生可能なプルーフカプセル付きのマシン判定が含まれます。 - または、組み込みの方法論プレイブックをエンドツーエンドで実行します: `ptai playbook run bug-bounty-web -i target=acme.com --execute`。 [バグバウンティ完全ガイド →](https://github.com/0xSteph/pentest-ai/blob/main/docs/bug-bounty.md) ## 検証の仕組み  1. **候補を見つける。** プローブまたはスキャナーが、調査に値する挙動を特定します。 2. **それを再現し、コントロールをチェックする。** 名前付きオラクルがエクスプロイトを繰り返し、その弱点を示さないはずのコントロールと比較します。 3. **証拠を保持する。** 検証済みの検出結果は、オラクルとその結果をポータブルなプルーフカプセルに記録します。再度チェックするには`ptai replay`を使用します。 例えば、信頼されたヘッダーのバイパスは、攻撃ヘッダー付きで特権コンテンツを返し、それなしではアクセスを拒否しなければなりません。すべてのリクエストにHTTP 200で応答するサーバーは、十分な証拠とはなりません。 **モデルは検証済みの判定を下すことはできません。** サードパーティスキャナーの出力は、オラクルが独立して証明するまで未検証のままです。サポートされた検証レシピのない検出結果は候補のままです。 検証済みの判定は、テストされた条件に適用されます。アプリケーション全体が安全であることを意味するものではありません。プルーフカプセルは署名されていません。チェックを再実行することが信頼の仕組みです。 [検証設計を読む](https://github.com/0xSteph/pentest-ai/blob/main/docs/why-verification.md) ## できること | ワークフロー | Pentest-AIが提供するもの | | --- | --- | | ウェブアプリケーションの調査 | インジェクション、アクセス制御、リクエスト処理、その他のアプリケーションの弱点に対するプローブ | | バグバウンティエンゲージメントの実行 | プログラムスコープのインポート、その強制、プラットフォーム対応の提出物の生成([ガイド](https://github.com/0xSteph/pentest-ai/blob/main/docs/bug-bounty.md)) | | AIクライアントを通じた作業 | エンゲージメント、調査、検証のためのMCPツール | | 検出結果の再現 | オラクルの結果と再生可能なプルーフカプセル | | 修正の確認 | 更新されたターゲットに対して記録されたチェックを再実行 | | チームへの報告 | 既存のエンジニアリングワークフロー向けのレポートとSARIF出力 | | エンゲージメントデータをローカルに保持 | 検出結果はSQLiteでお使いのマシンに保存 | カバレッジはプローブとオラクルによって異なります。オプションのスキャナーは独自のバイナリを必要とし、一部の統合は構造化された検出結果ではなく生の出力を提供します。お使いのバージョンについては[ドキュメント](https://github.com/0xSteph/pentest-ai/tree/main/docs)と[変更履歴](https://github.com/0xSteph/pentest-ai/blob/main/CHANGELOG.md)を参照してください。`main`には未リリースの作業が含まれている可能性があります。 [CIによってチェックされる機能インベントリを表示](https://github.com/0xSteph/pentest-ai/blob/main/docs/capability-inventory.md)。 ## 検証済みの検出結果をCIに組み込む CI環境でモデルプロバイダー、認可されたターゲット、初回実行の同意を設定します。シークレットはCIプロバイダーのシークレットストアに保管してください。 ```sh ptai start https://your-authorized-target.example --ci --fail-on verified --no-sync ``` 実行時のエンゲージメントIDを使用して、検証済みの検出結果をエクスポートします: ```sh ptai export YOUR_ENGAGEMENT_ID --sarif pentest.sarif ``` `--sarif`はエクスポートオプションであり、`ptai start`のオプションではありません。失敗したビルドの証拠が必要な場合は、検出ゲートが失敗した場合でもエンゲージメントIDを保持し、エクスポートを実行してください。生成されたファイルは、CIプロバイダーのSARIF統合を通じてアップロードします。 [CIセットアップとテンプレート](https://github.com/0xSteph/pentest-ai/blob/main/docs/ci-cd.md) ## 証拠、ベンチマーク、限界 ベンチマークの検出結果、チャレンジの完了、オラクル検証済みの検出結果は、それぞれ異なる測定値です。これらのレポートは、その結果の背後にあるバージョン、ターゲット、方法論を記録しています: - [ベンチマークレポートと成果物](https://github.com/0xSteph/pentest-ai/tree/main/benchmarks) - [Juice Shopの方法論](https://github.com/0xSteph/pentest-ai/blob/main/docs/benchmarks/juice-shop.md) - [脆弱なテストハーネス](https://github.com/0xSteph/pentest-ai/tree/main/tests/honeypot) - [クリーンアプリケーションのチェック](https://github.com/0xSteph/pentest-ai/tree/main/tests/cleanapp) **不完全なカバレッジを想定してください。** 検証済みの検出結果がないスキャンは、アプリケーションが行うすべてのことを対象としたセキュリティ評価ではありません。認証、アプリケーションの状態、サポートされていないバグクラス、環境の変化が、発見および再現できるものに影響します。結果をレビューし、エンゲージメントに人間を関与させ続けてください。 ## データとネットワークの挙動 検出結果はローカルに保存されます。匿名の使用状況カウンターは、`ptai telemetry enable`によるオプトインです。 ローカルストレージは、すべての操作がお使いのマシン上に留まることを意味するものではありません。モデルプロバイダーへの呼び出しとインストールされたスキャナーには、それぞれ独自のネットワーク挙動があります。ブラインド脆弱性チェックは外部のアウトオブバンドコラボレーターを使用する場合があり、コールバックのメタデータはそのサービスから見えます。 必要に応じて独自のコラボレーターを使用するか、コールバックを無効にしてください: ```bash ptai start https://your-authorized-target.example --oast-server https://your-collaborator.example ptai start https://your-authorized-target.example --no-oast ``` ## 参加する 再現可能なバグには[Issues](https://github.com/0xSteph/pentest-ai/issues)を、質問やアイデアには[Discussions](https://github.com/0xSteph/pentest-ai/discussions)を使用してください。ビルドとテストの手順については、[エージェントおよびコントリビューターガイド](https://github.com/0xSteph/pentest-ai/blob/main/AGENTS.md)を参照してください。 オプションの[pentest-ai-agents](https://github.com/0xSteph/pentest-ai-agents)リポジトリには、Claude Codeのサブエージェントファイルが含まれています。 Pentest-AIは[MITライセンス](https://github.com/0xSteph/pentest-ai/blob/main/LICENSE)の下でオープンソースです。