Codex Security スキャンを実行する¶
最初のレビューや、リポジトリまたはコンポーネントの通常の評価の大半には、Codex Security スキャンを使用します。完全なスキャンワークフローを 1 回実行します。
結果に納得したら、より包括的な評価を行うために ディープスキャン を実行します。ディープスキャンは時間がかかりますが、より詳細に調査します。
スキャン範囲を選択する¶
広い範囲をカバーする必要があり、リポジトリが妥当なレビュー単位である場合は、リポジトリ全体をスキャンします。
モノレポが大きすぎる場合や、1 つのサービス、パッケージ、またはコンポーネントに明確な所有者とセキュリティ境界がある場合は、フォルダーをスキャンします。
Use $codex-security:security-scan to scan this repository for security vulnerabilities, focusing on the services/billing component.
大規模なモノレポでは、意味のあるプロダクトまたはサービスの境界を 1 つ選んで開始します。
スキャンを設定する¶
- スキャンの種類 が
Codebaseであり、ディープスキャン がオフになっていることを確認します。 - コードベース、現在のブランチ、最後のコミットを確認します。
- スキャン範囲を
Entire codebaseに設定するか、リポジトリ相対のフォルダーを 1 つ入力します。 - レビュー内容が変わる場合にのみ、脅威モデルのガイダンスを追加します。攻撃者が制御する入力、信頼境界、機密性の高い操作、または優先すべき特定の領域を示すガイダンスが役立ちます。
- スキャンを開始を選択します。
リポジトリに永続的なセキュリティガイダンスを追加するには、リポジトリのルートに SECURITY.md を追加します。脅威モデル、セキュリティ不変条件、報告対象となる検出結果の基準、除外事項、重大度のコンテキストを記述するために使用します。ディレクトリ固有のガイダンスには、ネストした SECURITY.md ファイルを追加します。ポリシーが競合する場合は、コードに最も近いファイルが優先されます。Codex Security は、この内容を実行可能な命令ではなく、ポリシーのコンテキストとして扱います。
サポートされているビルドおよび検証コマンドや、その他のリポジトリ固有の指示には AGENTS.md を使用します。
フェーズを完了させる¶
スキャンでは、次のフェーズが順番に実行されます。
- 脅威モデリングでは、資産、エントリーポイント、信頼境界、セキュリティ不変条件を特定します。
- 検出結果の発見では、要求されたコードを調査し、破損している可能性のある制御と、ソースからシンクまでの経路を確認します。
- 検証では、各候補をテストするか、その他の方法で確認し、証拠または証明の不足を記録します。
- 攻撃経路分析では、現実的な到達可能性、影響、重大度を評価します。
- 詳細レポートでは、報告対象となる検出結果ごとに、ソースに裏付けられた脆弱性レポートを 1 件作成し、利用可能な場合は裏付けとなる概念実証ファイルも作成します。
- 構造的な強化では、検出結果の完全な集合を分析し、報告対象となる検出結果が残っている場合は設計ポートフォリオを作成します。
- 最終処理では、構造化されたスキャン契約を検証し、詳細レポートと強化ポートフォリオへのリンクを含む
report.mdを生成します。
Codex は、スキャンの実行中にフェーズとカバレッジの進捗を報告します。初期の候補だけを見て結果を判断したり、あるフェーズに別のフェーズより時間がかかることを理由にスキャンを停止したりしないでください。
完了したスキャンをレビューする¶
結果は次の順序でレビューします。
- 対象、リビジョン、スキャン範囲を確認します。
- レビュー済みのサーフェスと、明示的に延期された、またはフォローアップが必要なすべての領域を読みます。
- 各検出結果について、根本となる制御またはシンク、攻撃者が制御する入力、検証方法、残る不確実性、現実的な到達可能性、重大度の根拠、提案された修正を確認します。
- 証拠が主張された経路または影響を裏付けていない検出結果は却下します。
- 修正を開始する前に、受け入れる検出結果を 1 つ選択します。
結果を使用する¶
通常のレビューには、検出結果ワークスペースを使用します。生の JSON を調べなくても、検出結果、カバレッジ、フォローアップが必要な領域を確認できます。完全なスキャンディレクトリを読みやすい主要なエントリーポイントとして report.md を開きます。レポートから findings/ にある詳細レポートへリンクされ、報告対象となる検出結果がある場合は hardening/ に構造的な強化ガイダンスへのリンクも含まれるため、共有またはアーカイブする際はディレクトリ全体をまとめて保持してください。
ワークスペースの背後では、各スキャンが自動化と統合のために scan-manifest.json、findings.json、coverage.json を保持します。通常、これらのファイルを自分で開く必要はありません。
検出結果ワークスペースでは、移植可能な JSON、CSV、SARIF ファイルも作成できます。検出結果をエクスポートまたは追跡するを参照してください。
次のステップ¶
ユーザーが検出結果を受け入れたら、検出結果を修正して検証するを使用して、範囲を限定したパッチを 1 つ生成し、レビューします。1 回のチャットで、スキャンから得られたすべての検出結果を Codex に修正させないでください。