
CLIとMCPを介した人間とエージェント間の協調的なアプリケーションセキュリティテスト
コーディングエージェントのためのMCPベースのアプリケーションセキュリティテストツール。
スキャナーではなく、協調型ワークベンチです。エージェントはUIやステートフルなAPIを苦手としますが、あなたはその両方に長けています。Sectoolを使用すれば、プロキシ経由でアプリケーションを探索できる一方で、エージェントはあなたが生成した同じ認証済みトラフィックを分析・操作できます。
あなたが認証とUI操作を担当し、エージェントはフローの照会、リクエストの改変、リフレクションの検出、帯域外インタラクションの監視、その他の組み合わせの試行を行います。両者の能力を組み合わせることで、定型タスクが容易になり、隠れたインジケーターを見逃す可能性が低くなり、複雑なテストをより徹底的に実行できます。
go install github.com/go-appsec/toolbox/sectool@latest
Goをお持ちでない場合? 最新リリース からお使いのプラットフォーム(Linux、macOS、Windows — amd64およびarm64)向けのバイナリをダウンロードしてください。
sectool mcp
これにより、ポート8080に組み込みHTTPプロキシを持つMCPサーバーがポート9119で起動します。
ブラウザのプロキシ設定を 127.0.0.1:8080(または --proxy-port で指定したポート)に向けます。
HTTPSを傍受するには、~/.sectool/ca.pem(初回実行時に自動生成されます)からCA証明書をインストールします。ほとんどのブラウザは証明書設定から受け入れられます。macOSではシステムキーチェーンに追加することもできます。
Burpをご利用ですか? 代わりに Burpのプロキシ設定 に従い、その後 sectool mcp --burp でsectoolを起動してください。
Claude Code:
claude mcp add --transport http sectool http://127.0.0.1:9119/mcp
Codex (~/.codex/config.toml):
[mcp_servers.sectool]
url = "http://127.0.0.1:9119/mcp"
エージェントと協力してテスト計画を立て、一緒に実行します。エージェントはプロキシ履歴の照会、変更を加えたリクエストの再送信、エンドポイントのクロール、帯域外インタラクションのテストを行うことができ、その間あなたは認証やUIの操作・レビューといったブラウザベースのアクションを担当します。
ネイティブ: ワイヤーフィデリティを備えた組み込みプロキシで、HTTP/1.1、HTTP/2、WebSocketをサポートします。MITMテストにおいてBurpと同等の能力を持つように設計されています。単一のバイナリでMCPサーバー、プロキシ、CLIを提供し、完全に自己完結型でヘッドレス環境でも使用できます。
Burp(オプション): エージェントの動作をGUIで確認したい場合や、すでにBurpを実行している場合は、BApp StoreからMCP拡張機能をインストールし、MCPサーバーが http://127.0.0.1:9876/ で実行されていることを確認してください。
| オプション | 説明 |
|---|---|
| (default) | 自動検出: 最初にBurp MCPを試し、フォールバックとしてネイティブプロキシを使用 |
--proxy-port 8080 | 指定したポートでネイティブプロキシを強制 |
--burp | Burp MCPを強制(利用できない場合は失敗) |
Sectoolは、セッション開始時にエージェントが workflow ツールを呼び出すと、適切なワークフローを自動的に決定します。ワークフローを事前に指定することで、この手順をスキップしてトークンを節約できます:
sectool mcp # Default: agent selects task type via workflow tool
sectool mcp --workflow explore # Pre-set exploration mode
sectool mcp --workflow test-report # Pre-set validation mode
sectool mcp --workflow none # No workflow instructions
sectool mcp --workflow multi # Multiple agents share the server
ワークフロー指示は、エージェントがすべてを自律的に行おうとしたり、価値のない手順を案内したりするのではなく、協調的なテストへと導きます。エージェントの協調を改善するアイデアがあれば、issueを開いて ください。
--notes フラグは、フローにリンクされた観察結果を保存するための notes_save および notes_list ツールを有効にします。短いセッションでのコンテキスト使用量を最小限に抑えるため、デフォルトでは無効です。複数の発見事項や会話の圧縮(コンパクション)が見込まれる場合に有効にしてください。
サーバーは2つのエンドポイントを公開します:
/mcp - Streamable HTTP(推奨)/sse - SSE(レガシー、旧クライアント向け)CLIはエージェントと状態を共有し、レビュー、再送信、スクリプト作成のための人間に優しいインターフェースを提供します。すべてのCLIコマンドはMCPツールに対応しているため、エージェントも同じ状態を共有します。
# Review what the proxy captured while you browsed
sectool proxy summary
sectool proxy list --host example.com
sectool proxy cookies --name session_id
# Crawl an app to discover endpoints and forms
sectool crawl create --url https://example.com
sectool crawl summary <session_id>
# Replay a captured request with modifications
sectool replay send --flow <flow_id> --add-header "X-Test: value"
# Set up out-of-band interaction testing and check for callbacks
sectool oast create
sectool oast poll <oast_id>
sectool oast get <event_id>
# Compare two flows, detect reflections, inspect JWTs
sectool diff <flow_a> <flow_b> --scope response
sectool reflected <flow_id>
sectool jwt <token>
# Export a flow, edit it offline, and resend
sectool proxy export <flow_id>
# ... edit ./sectool-requests/<flow_id>/request.http ...
sectool replay send --bundle <flow_id>
詳細なオプションについては sectool <command> --help を使用してください。
sectoolを、ファーストパーティ製サイドカーである sidenuclei と組み合わせて使用します。sidenucleiは、あなたが触れるすべてのエンドポイントに対して Nuclei を実行します。--notes を付けてsectoolを起動し、セッションに sidenuclei を併設すると、実際にキャプチャされたリクエストを使用して各エンドポイントをスキャンするため、実際のパラメータ、Cookie、認証済みセッションでテストが実行されます。発見事項は、それを引き起こしたフローにリンクされた finding ノートとして記録され、あなたとエージェントが手動テストに集中している間も追加のカバレッジが得られます。
HTTPとWebSocketに加えて、sectoolはサイドカーアダプターモデルを通じてカスタムプロトコルおよびバイナリプロトコル(通常はリクエスト/レスポンス)をサポートします。アダプターを作成し、サイドカーAPIを使用して接続・通信します。サイドカーのトラフィックは同じ統一フロータイムラインに記録されるため、flow_get、diff_flow、replay_send などのツールは変更なしで機能します。アダプターはJSON-RPC 2.0 API上で任意の言語で記述できるほか、登録、ルールキャッシュ、フロー出力を処理するSDKクライアントを使用してGoでも記述できます。詳細はサイドカーSDK & プロトコルに記載されています。
| モード | 説明 |
|---|
| (default) | エージェントが workflow ツールを呼び出してタスク種別を選択し、協力のための指示を受け取る |
explore | 探索的なセキュリティテスト。すべてのツールが利用可能 |
test-report | 特定の脆弱性レポートの検証。クロールツールは除外 |
none | ワークフロー指示なし。すべてのツールがすぐに利用可能 |
multi | 複数のユーザーやエージェントがサーバーを共有する場合用。あるエージェントが別のエージェントを混乱させる可能性のある機能を非表示にする |