初回レビューや、リポジトリまたはコンポーネントの定期評価には、まず標準の Codex Security スキャンを実行します。スキャンワークフロー全体が 1 回実行されます。
より徹底的に評価するには、結果をレビューしてから詳細 スキャンを実行します。詳細スキャンは時間がかかりますが、 より広範囲を探索します。
スキャン範囲の選択
デスクトップアプリで セキュリティを開き、 スキャン、 + スキャンの順に選択します。 既存のリポジトリまたは別のフォルダーを選んでから、 コードベースを選択します。
幅広いカバレッジが必要で、リポジトリがレビュー単位として適切な場合は、リポジトリ全体をスキャンします。モノレポでは、サービス、パッケージ、またはコンポーネントの担当者とセキュリティ境界が明確な場合、フォルダーを 1 つ選択します。
Codex との会話からスキャンを開始することもできます:
Use $codex-security:security-scan to scan this repository for security vulnerabilities.
会話の対象を特定のフォルダーに絞るには、コンポーネントを指定します:
Use $codex-security:security-scan to scan this repository for security vulnerabilities, focusing on the services/billing component.
大規模なモノレポでは、製品またはサービスの適切な境界を 1 つ選ぶことから始めます。
スキャンの設定
最高のスキャン品質を得るには、gpt-5.6-sol
を使用し、推論強度を xhigh に設定します。
- コードベース を選択し、 詳細スキャン はオフのままにします。
- 選択したリポジトリ、現在のブランチ、最新のリビジョンを確認します。
- スキャン範囲 をリポジトリ全体に設定するか、フォルダーを 1 つ選択します。
- モデルと推論強度を選択します。
- レビュー内容に影響する場合にのみ、 追加コンテキスト を開きます。有用なコンテキストには、 攻撃者が制御できる入力、信頼境界、セキュリティ上重要な操作、または 優先すべき特定の領域を記載します。
- スキャンを開始を選択します。
継続的に適用するセキュリティガイダンスとして、リポジトリのルートに SECURITY.md を追加します。
脅威モデル、セキュリティ不変条件、報告対象とする検出結果の基準、
除外事項、重大度判断の背景情報を記載します。ディレクトリ固有のガイダンスには、ネストした SECURITY.md ファイルを
追加します。ポリシーが競合する場合は、対象コードに
最も近いファイルが優先されます。Codex Security はこれらのファイルを
実行可能な指示ではなく、ポリシーのコンテキストとして扱います。
AGENTS.md には、サポート対象のビルドコマンドと検証コマンド、および
リポジトリ固有のその他の指示を記載します。
各フェーズの完了
スキャンでは、次のフェーズが順に実行されます:
- 脅威モデリング では、資産、エントリーポイント、信頼境界、 セキュリティ不変条件を特定します。
- 検出結果の探索 では、指定されたコードをレビューし、不備がある可能性のある制御や、 ソースからシンクへのパスを調べます。
- 検証 では、各候補をテストするなどして確認し、証拠、または 立証が不足している点を記録します。
- 影響とパスの分析 では、各候補について現実的に成立するパス、 影響、重大度を評価します。
- レポート作成 では、検証済みの検出結果、カバレッジ、スキャンのメタデータを記録します。 検出結果ごとの詳細レポートは、要求された場合に利用できます。
- 構造的な堅牢化では、要求された場合に検出結果一式を分析し、 設計ガイダンスを作成します。
- 最終処理 では、構造化されたスキャンコントラクトを検証し、
詳細レポートや堅牢化ガイダンスへのリンクを含む
report.mdを生成します。
ワークベンチには、実行中のスキャンフェーズと、プラグインから報告された進捗が表示されます。 アクティビティを表示 を選択して、Codex タスクを確認します。初期段階の候補だけで判断したり、 あるフェーズがほかより時間がかかることを理由に停止したりせず、結果が すべて揃うまで待ちます。
完了したスキャンのレビュー
次の順序で結果をレビューします:
- 対象、リビジョン、スキャン範囲を確認します。
- レビュー済みの対象領域と、明示的に対応を延期した領域またはフォローアップ対象とした領域をすべて確認します。
- 各検出結果について、根本となる制御またはシンク、攻撃者が制御できる入力、検証方法、残っている不確実性、現実的な到達可能性、重大度の根拠、提案された修正方法を確認します。
- 証拠が主張されたパスや影響を裏付けていない検出結果は却下します。
- 修正を始める前に、受け入れた検出結果を 1 件選択します。
検出結果の重大度、検証ステータス、根本原因、攻撃パスをレビューします。
初回スキャンの評価
スキャン前に、独力での検出、証拠の品質、偽陽性、修正案の品質など、評価基準を 2~4 個選びます。既知の検出結果を使ってテストする場合は、その情報を Codex に提供したか、スキャンでは伏せたかを記録します。
リポジトリのリビジョン、プラグインのバージョン、モデル、推論強度を記録します。このベースラインを基準に、コード、セキュリティ制御、またはスキャン設定を変更した後のスキャンと比較します。
スキャン頻度の選択
リポジトリのリスクと、チームが検出結果に対応できる余力に基づいて、スキャン頻度を設定します。次のタイミングでスキャンを実行します:
- ベースライン: リポジトリを新たに扱い始めるとき、コンポーネントの担当を 引き継ぐとき、または新しい脅威モデルの出発点が必要なときに、標準スキャンを実行します。
- コード変更: コード変更の レビューは、Pull Request またはコミットによって、 セキュリティ上重要なコードや外部連携が変更されたときに実施します。
- 定期レビュー: システムの外部への露出度とコードの変更頻度に基づき、定期レビューの 間隔を設定します。検出結果への対応に割けるチームのリソースに合わせて 調整します。
- 修正後: 検出結果の修正と 検証を行います。問題が再現しなくなったことを確認し、 比較用に元のスキャンを保持します。
これらのスキャントリガーによってスケジュールが自動作成されることはありません。
以前のスキャンの再表示
セキュリティを開き、 スキャン から保存済みのスキャンを選択して、 検出結果、カバレッジ、利用可能なレポートのアーティファクトをレビューします。最新のコードを評価するには、 同じリポジトリで新しいスキャンを開始します。新しいスキャンによって、 以前のスキャンやそのアーティファクトが置き換えられることはありません。
結果の活用
生の JSON を調べることなく、セキュリティワークベンチで検出結果、カバレッジ、フォローアップ領域を
レビューできます。利用可能な場合は report.md を開きます。これは、スキャンディレクトリ全体を確認するための
読みやすいエントリーポイントです。共有またはアーカイブするときは、ディレクトリを
まとめて保持してください。任意のアーティファクトが利用可能な場合、レポートには findings/
内の詳細レポートと hardening/ 内の構造的な堅牢化ガイダンスへの
リンクが含まれます。
ワークスペースの内部では、各スキャンに、自動化や連携で使用する scan-manifest.json、findings.json、
coverage.json が保持されます。通常、これらのファイルを
自分で開く必要はありません。
移植可能なアーティファクトや外部のイシュートラッキングについては、検出結果のエクスポートまたは 追跡を参照してください。
次のステップ
検出結果を受け入れたら、検出結果の修正と 検証を使用して、対象範囲を限定したパッチを 1 つ 生成し、レビューします。1 回のチャットで、1 件のスキャンから得られたすべての検出結果を修正するよう Codex に依頼しないでください。