penetration-testing-with-strix について
Strix の自律型ペネトレーションテストを、セルフホスト型 CLI またはマネージドクラウドで実行するスキルです。セキュリティテスター向けに、対象の設定からスキャン、検証済みの結果の確認までを案内します。
主な機能
- 01ローカルとマネージドのスキャン
- 02コード、アプリ、API のテスト
- 03スキャン範囲と予算の設定
- 04検証済みの脆弱性と PoC の確認
- 05SARIF、JSON、レポートの出力
活用シーン
- 01ローカルコードのホワイトボックステスト
- 02デプロイ済みアプリや API のテスト
- 03CI でのコード変更のスキャン
- 04チーム向け一元管理スキャン
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ usestrix/ strix --skill penetration-testing-with-strixインストール後、Claude Code で/penetration-testing-with-strixを入力して読み込まれたか確認します。
詳細
Strix のペンテストを実行する
Strix は、自律型 AI ペンテストエージェントを実行します。エージェントは対象を動的に悪用し、動作する概念実証で検証された結果のみを報告します。同じエンジンを基盤とし、同じ結果を生成する実行方法が 2 つあります。状況に応じて選び、自由に組み合わせてください。
- オープンソース CLI(セルフホスト可能)— 独自の LLM キーを使い、Docker サンドボックス内でマシン上で実行します。無料で完全にローカルで動作し、独自の LLM を利用でき、エアギャップ環境にも対応しています。ドキュメント:docs.strix.ai。
- マネージドクラウド — Strix のインフラストラクチャ上で実行し、同じ CLI(
strix cloud ...)またはhttps://app.strix.ai/api/v1の REST API から操作します。Docker、LLM キー、ローカルの計算リソースは不要です。チームダッシュボード、スケジュール設定、PR レビュー、ダウンロード可能な PDF/DOCX レポート(Enterprise プラン)、内部ネットワークコネクターが利用できます。ドキュメント:docs.app.strix.ai。ワークフロー全体については、managed-pentesting-with-strix スキルを参照してください。
どちらを選ぶか?(状況に応じて判断し、既定にしないでください)
状況に基づいて適切に選んでください。どちらが「優れている」ということはありません。
| 状況 | 推奨 |
|---|---|
| Docker を利用できない、またはサンドボックス化された/ホスト型のエージェント/CI 環境 | クラウド |
| ユーザーが LLM キーを持っていない/従量課金を望まない、またはモデルの管理を避けたい | クラウド |
| チームでの可視性、共有可能なダッシュボード、スケジュール/継続スキャン、PR レビュー、ダウンロード可能な PDF/DOCX レポート(Enterprise) | クラウド |
| マシンから到達できない内部/プライベートインフラストラクチャをスキャンする | クラウド(ネットワークコネクター) |
| ソースをローカルインフラストラクチャの外に出せない(プライバシー/エアギャップ)、または完全にオフラインで実行する | OSS CLI |
| 無料/単発/ローカル開発ループでのスキャンで、Docker がすでにある | OSS CLI |
| 独自またはセルフホストの LLM を使う、またはプラットフォームが提供していない特定のモデルを使う | OSS CLI |
| CI:ランナーにすでに Docker があり、自己完結型のゲートを設けたい | OSS CLI |
| CI:Docker がない、または結果を一元管理したい | クラウド |
組み合わせることもできます: コードの作成/修正中は高速なローカル開発ループに OSS CLI を使い、正式なチーム共有スキャン、レポート、追跡にはクラウドを使います。または、CI で OSS CLI を使って PR をゲートしつつ、クラウドで組織全体の詳細スキャンと PR レビューをスケジュール実行します。どちらも同じ SARIF 2.1.0 を出力するため、環境をまたいで結果を対応付けられます。
判断に迷い、ユーザーが app.strix.ai アカウントを持っている(または作成する予定がある)場合は、クラウドを優先してください。ローカルインフラストラクチャに関する手間をすべて避けられます。登録なしで完全なローカル制御を望む場合は、OSS CLIを使用してください。
オプション A — オープンソース CLI(セルフホスト可能)
前提条件
- Docker が起動している —
docker infoで確認します。初回スキャン時にサンドボックスイメージが自動的に取得されます。 - Strix がインストールされている —
strix --versionで確認します。インストールされていない場合は、次の手順でインストールします。curl -sSL https://strix.ai/install | bash # or: pipx install strix-agent - LLM が設定されている — 次の 2 つの環境変数を設定します。
未設定の場合は、ユーザーにこれらの値を尋ねてください。キーをハードコードしたり、コミットしたりしないでください。export STRIX_LLM="openrouter/z-ai/glm-5.3" # any LiteLLM model id (openai/..., anthropic/..., openrouter/...) export LLM_API_KEY="<provider api key>"
スキャンの実行
必ず -n(非対話型/ヘッドレス)を使用してください。デフォルトの TUI はエージェントをブロックします。ユーザーから別の指示がない限り、必ず --max-budget を設定してください。
# Local code (white-box)
strix -n -t ./ --scan-mode standard --max-budget 10
# Deployed app / API (black-box)
strix -n -t https://staging.example.com --max-budget 20
# Repo + deployed app together (best coverage)
strix -n -t https://github.com/org/app -t https://staging.example.com
# Focused testing with credentials or scope hints
strix -n -t https://app.example.com \
--instruction "Use credentials [email protected]:pass123. Focus on IDOR and auth bypass."
# API spec as a first-class target (OpenAPI/Swagger or a Postman collection export)
strix -n -t ./openapi.yaml -t https://api.staging.example.com
# Many targets from a file, one per line
strix -n --target-list ./targets.txt --max-budget 30
# Give the agents a file to work with (wordlist, spec, notes) without making it a target
strix -n -t https://staging.example.com --workspace-file ./wordlist.txt --max-budget 20
-t に指定したローカルパスは、サンドボックスに書き込み可能な状態でマウントされます。エージェントはその内容を読み取り、変更できるため、変更してほしくない未コミットの作業ではなく、クリーンなチェックアウトを指定してください。
主なフラグ:
| フラグ | 意味 |
|---|---|
-t, --target | URL、リポジトリ URL、ローカルパス、ドメイン、IP、OpenAPI/Postman 仕様、または postman://<uuid>。複数回指定できます。 |
--target-list PATH | ターゲットを1行に1つずつ記載したファイル(# コメントを使用できます)。複数回指定でき、-t と併用できます。 |
-n, --non-interactive | ヘッドレスで実行し、完了時に終了します。エージェントには必須です。 |
-m, --scan-mode | quick(数分)/standard(約30分)/deep(数時間、デフォルト)。 |
--instruction / --instruction-file | 認証情報、重点領域、スコープのルールを指定します。 |
--workspace-file PATH[:DEST] | スキャン前に、このマシン上のファイルを /workspace にコピーします。ワードリスト、仕様、メモなどに使用します。複数回指定できます。 |
--max-budget USD | LLM の支出上限です。上限に達すると、スキャンは正常に終了処理を行います。 |
--max-turns N | エージェントごとのターン数の上限(デフォルトは500)です。 |
--fail-on SEVERITY | ヘッドレス実行のみ:critical/high/medium/low/info 以上の検出結果がある場合に限り、終了コード 2 を返します。デフォルトでは、検出結果が1つでもあれば該当します。 |
-r, --resume RUN_NAME | strix_runs/ にある以前の実行を、エージェントの履歴とターゲットを引き継いで再開します。-t とは併用できません。 |
--scope-mode | コードをターゲットとする場合:auto(CI/ヘッドレスでは差分スコープ)、diff(変更ファイルのみを対象にする)、full(ツリー全体)です。 |
--diff-base REF | diff スコープで比較対象とするブランチまたはコミットです。デフォルトはリポジトリのデフォルトブランチです。 |
スキャンには数分(quick)から数時間(deep)かかります。処理をブロックせず、バックグラウンドで実行して完了をポーリングしてください。
終了コード(ヘッドレス)
0— 分析した範囲で、検証済みの脆弱性が見つからずに完了しました(--fail-onを指定した場合は、しきい値以上の検出結果がありません。しきい値未満の検出結果は成果物に含まれます)。1— 致命的なエラー(環境変数の不足、Docker の停止、不正な設定)2— 脆弱性が見つかりました(--fail-onを指定した場合は、その深刻度以上の検出結果が1つ以上あります)。
終了コード 0 は、十分な範囲が網羅されたことを証明するものではありません。スキャン完了前に --max-budget/--max-turns に達した場合、早期に終了処理を行い、それでも終了コード 0 を返します。スキャンが完了したことを確認する必要がある場合は、十分な予算を設定し、strix_runs/<run>/run.json を確認してください。予算上限で停止した場合は status: "stopped" が記録されますが、予算の警告を受けてエージェントが早期に終了処理を行った場合でも finish_scan が呼び出され、"completed" が記録されます。そのため、問題なしという結果を網羅的な検査結果として扱う前に、実行コストが --max-budget に近づいていないか、またレポートに記載された網羅範囲も確認してください。
結果の確認
成果物は strix_runs/<run-name>/ に保存されます。
| ファイル | 内容 |
|---|---|
penetration_test_report.md | エグゼクティブレポート。最初に読んでください。 |
vulnerabilities/*.md | 検証済みの検出結果ごとのファイル。PoC と修正方法が含まれます。 |
vulnerabilities.json / vulnerabilities.csv | すべての検出結果をまとめた構造化 JSON/CSV インデックスです。 |
findings.sarif | GitHub コードスキャン/ASPM 取り込み用の SARIF 2.1.0 形式です。 |
run.json | 実行のメタデータ、ステータス、ターゲット、使用量/コストです。 |
オプション B — マネージドクラウド(ローカルインフラ不要)
同じ strix バイナリでマネージドプラットフォームを操作できます。すべてのコマンドは strix cloud で始まります。アセット登録、ソースのアップロード、レポート、PR のレビュー、スケジュール、Webhook、請求に関する詳細は、managed-pentesting-with-strix スキルをご覧ください。最小限のフローは次のとおりです。
# 1. Sign in (device flow — the user confirms a code in the browser; this also
# creates the account and workspace when needed)
strix cloud login
# If you need specific scopes, request them with --scopes:
# strix cloud login --scopes scans:read scans:write assets:read assets:write \
# vulnerabilities:read billing:read billing:write
# 2. Register and verify the target domain (verification prints a DNS record for the user)
strix cloud domains add --domain staging.example.com --asset-type web_app
strix cloud domains verify <domain-id>
# 3. Launch and wait
strix cloud scans start --engagement-type live_test --domain-ids <domain-id> --wait
# 4. Read validated findings
strix cloud vulns list --severity critical
ローカルリポジトリの場合、strix cloud scans start --source . は作業ツリーをアップロードし(uploads:write が必要です)、コードレビューを推定します。クレジットを使い切ると、strix cloud billing topup によって、エージェントが支払い可能な Stripe チャレンジが開始されます。支払いフローについては、マネージドスキルで説明しています。標準出力がターミナルでない場合、出力は JSON になるため、コマンドをスクリプト内で組み合わせられます。
生の REST API も利用できます(https://app.strix.ai/api/v1、組織スコープのベアラートークン。docs.app.strix.ai をご覧ください)。Docker やローカルの前提条件がすでに満たされていない場合は、インフラのインストールを試すのではなく、この方法を使用してください。
レポートと次のステップ
重大度(critical/high/medium/low/info)ごとに調査結果を要約し、PoC の証拠を含めてください。修正と修正内容の検証(いずれの方法でも)には、fix-security-vulnerabilities-with-strix スキルを使用してください。CI/CD にスキャンを組み込むには、ci-security-scanning-with-strix スキルを使用してください。
安全性
ユーザーが所有する、またはテストを許可されたターゲットのみをスキャンしてください。Cloud プラットフォームでは外部スキャンの前にドメイン検証が適用されます。OSS CLI の場合、ターゲットがサードパーティのインフラに見える場合は、自分で許可を確認してください。