mcpField
P
penetration-testing-with-strix

penetration-testing-with-strix

github.com/usestrixセキュリティ72.6k17.3k 回インストール1 日前に更新
リポジトリ

penetration-testing-with-strix について

Strix の自律型ペネトレーションテストを、セルフホスト型 CLI またはマネージドクラウドで実行するスキルです。セキュリティテスター向けに、対象の設定からスキャン、検証済みの結果の確認までを案内します。

主な機能

  1. 01ローカルとマネージドのスキャン
  2. 02コード、アプリ、API のテスト
  3. 03スキャン範囲と予算の設定
  4. 04検証済みの脆弱性と PoC の確認
  5. 05SARIF、JSON、レポートの出力

活用シーン

  1. 01ローカルコードのホワイトボックステスト
  2. 02デプロイ済みアプリや API のテスト
  3. 03CI でのコード変更のスキャン
  4. 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(セルフホスト可能)

前提条件

  1. Docker が起動している — docker info で確認します。初回スキャン時にサンドボックスイメージが自動的に取得されます。
  2. Strix がインストールされている — strix --version で確認します。インストールされていない場合は、次の手順でインストールします。
    curl -sSL https://strix.ai/install | bash   # or: pipx install strix-agent
    
  3. 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, --targetURL、リポジトリ URL、ローカルパス、ドメイン、IP、OpenAPI/Postman 仕様、または postman://<uuid>。複数回指定できます。
--target-list PATHターゲットを1行に1つずつ記載したファイル(# コメントを使用できます)。複数回指定でき、-t と併用できます。
-n, --non-interactiveヘッドレスで実行し、完了時に終了します。エージェントには必須です。
-m, --scan-modequick(数分)/standard(約30分)/deep(数時間、デフォルト)。
--instruction / --instruction-file認証情報、重点領域、スコープのルールを指定します。
--workspace-file PATH[:DEST]スキャン前に、このマシン上のファイルを /workspace にコピーします。ワードリスト、仕様、メモなどに使用します。複数回指定できます。
--max-budget USDLLM の支出上限です。上限に達すると、スキャンは正常に終了処理を行います。
--max-turns Nエージェントごとのターン数の上限(デフォルトは500)です。
--fail-on SEVERITYヘッドレス実行のみ:critical/high/medium/low/info 以上の検出結果がある場合に限り、終了コード 2 を返します。デフォルトでは、検出結果が1つでもあれば該当します。
-r, --resume RUN_NAMEstrix_runs/ にある以前の実行を、エージェントの履歴とターゲットを引き継いで再開します。-t とは併用できません。
--scope-modeコードをターゲットとする場合:auto(CI/ヘッドレスでは差分スコープ)、diff(変更ファイルのみを対象にする)、full(ツリー全体)です。
--diff-base REFdiff スコープで比較対象とするブランチまたはコミットです。デフォルトはリポジトリのデフォルトブランチです。

スキャンには数分(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.sarifGitHub コードスキャン/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 の場合、ターゲットがサードパーティのインフラに見える場合は、自分で許可を確認してください。

コメント