find-security-vulnerabilities-in-code について
ソースコードを解析し、実際の悪用を試みて問題を検証する Strix のホワイトボックスセキュリティレビュー手順です。概念実証と修正情報を含む検出結果を必要とするチーム向けです。
主な機能
- 01ソースからルートと認可チェックを把握
- 02セキュリティ問題の悪用を試行
- 03概念実証と修正情報を提示
- 04ローカルパスや GitHub リポジトリを対象化
活用シーン
- 01コードベースの認可ロジックのレビュー
- 02特定サービスやサブツリーに絞った検査
- 03実行中のアプリで悪用可能性を検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ usestrix/ strix --skill find-security-vulnerabilities-in-codeインストール後、Claude Code で/find-security-vulnerabilities-in-codeを入力して読み込まれたか確認します。
詳細
コードのセキュリティ脆弱性を見つける
Strix によるホワイトボックスセキュリティレビューでは、エージェントがソースコードを読み込んでルート、シンク、認可チェックのモデルを構築し、実際の悪用を試みます。検出結果には概念実証(PoC)が付属するため、パターンマッチングスキャナーが出す何百もの「潜在的な」検出結果ではなく、実証済みの問題を短くまとめたリストが出力されます。
インストール、LLM のセットアップ、すべてのフラグ、マネージドクラウドの利用方法については、penetration-testing-with-strix スキルをご覧ください。Docker も LLM キーも使わずに実行する場合は、同じバイナリでマネージドプラットフォームを利用できます。strix cloud login を実行してから、strix cloud scans start ... を実行します(詳細は managed-pentesting-with-strix をご覧ください)。
実行する
# Local working tree
strix -n -t ./ --scan-mode standard --max-budget 15
# A GitHub repo directly
strix -n -t https://github.com/org/app --max-budget 15
# Monorepo: point at the service that matters, not the whole tree
strix -n -t ./services/checkout --max-budget 20
# Only what a branch changed (whole-repo review is wasteful on a large repo)
strix -n -t ./ --scope-mode diff --diff-base origin/main --max-budget 10
ローカルパスはサンドボックスに書き込み可能な状態でマウントされるため、エージェントはそのパスを変更できます。クリーンなチェックアウトに対して実行してください。
次の 2 点で結果が大きく改善します。
- アプリの実行中インスタンスを追加します。
-t ./ -t http://host.docker.internal:3000と指定すると、静的な推論ではなく、実際の挙動に対してエージェントが悪用可能性を検証できます。これにより、「安全でなさそう」な状態から、検証済みの検出結果へと変わります。実行中のインスタンスがない場合は、静的解析のみの検出結果を未確認として説明してください。 - レビュー対象を絞り込みます。 リスクの高いサブツリーを指定し、重要な点を伝えてください。
マルチテナントのモデル、信頼境界、攻撃者が制御できる入力は、エージェントが確実に推測できる情報ではありません。明示的に伝えてください。strix -n -t ./services/api --max-budget 15 \ --instruction "Focus on the authorization layer in src/auth and every route under src/routes/admin. Multi-tenant app: tenant id comes from the JWT. Flag any query that filters by object id without also filtering by tenant."
リポジトリ全体ではなくプルリクエストをレビューする
ブランチまたは PR の差分に絞ったレビュー(および検出結果に基づくマージのブロック)には、ci-security-scanning-with-strix を使用してください。差分の絞り込み、PR コメント、GitHub コードスキャンへの SARIF アップロードに対応しています。マネージドプラットフォームから API 経由で PR を直接レビューすることもできます(managed-pentesting-with-strix)。
結果を読む
strix_runs/<run>/ にあるファイルを確認してください。penetration_test_report.md(まずこちらを確認)、vulnerabilities/*.md(検出結果ごとに 1 件。PoC と修正方法を記載)、vulnerabilities.json / .csv、findings.sarif(コードスキャンにアップロード)、run.json があります。
ユーザーに報告する前に、各検出結果を開き、PoC が実際に影響を実証していることを確認してください。修正箇所がすぐわかるよう、悪用方法とともにファイル名と行番号を報告してください。
終了コード 0 は、解析した範囲内で悪用可能な問題が実証されなかったことを意味します。コードベースに問題がないという意味ではありません。run.json のステータスとコストを --max-budget と照らし合わせて確認し、実行上限に達していた場合はレビューされなかったパスを明記してください。
補完的なツール
これは悪用を検証するレビューであり、網羅的な一覧を作るものではありません。既知の CVE がある依存関係やコミット済みの認証情報を漏れなく検出するため、依存関係スキャナー(SCA)とシークレットスキャンも引き続き使用してください。Strix は、これらのツールでは仕組み上検出できないロジック、認可、インジェクションのバグを検出するために使用します。
修正して検証する
結果を fix-security-vulnerabilities-with-strix に渡してください。根本原因(1 つのルートではなく、共有の認可ヘルパー)にパッチを適用し、Strix を再実行して悪用できなくなったことを確認してください。