バックログをトリアージする¶
$codex-security:triage-finding を使用して、既存のセキュリティ検出結果を現在のリポジトリと照合します。このワークフローでは、読み取り専用の静的解析を実行します。Codex は各検出結果を未証明の主張として扱い、コードを実行せずにリポジトリの証拠を調査します。
評価対象のリポジトリをスコープとする Codex プロジェクトから、このワークフローを実行します。Codex がリポジトリのソースコードを読み取れる必要があります。Jira、Linear、GitHub のコネクターは検出結果のデータを提供しますが、ソースコードへのアクセスの代わりにはなりません。
内部では、Codex は引用されたコードまたはバージョン情報から開始します。主張された攻撃者制御のソース、関連するセキュリティ制御、危険なシンク、到達可能なパスを追跡します。また、プロダクトのサーフェスと信頼境界を確認し、反証を探し、証明の不足箇所を記録します。その後、検出結果ごとに 1 つの判定を返し、対応または追加レビューが必要な検出結果をランク付けします。
これは、コードのビルドまたは実行、対象を絞ったテストや概念実証の作成、実際のインターフェイスの操作による検出結果の再現または反証が可能な $codex-security:validation とは異なります。既存のバックログを分類して優先順位付けするには、トリアージを使用します。静的な証拠だけでは不確かな検出結果を、実行時の証拠によって解決できる場合は、検証を使用します。
バックログのトリアージは既存の検出結果から開始します。リポジトリで新しい脆弱性を検索するには、セキュリティスキャンを実行します。トリアージによってリポジトリが変更されたり、修正が実装されたりすることはありません。
トリアージする検出結果を選択する¶
以下のソースから、1 件の検出結果または複数の検出結果を指定できます。
| ソース | 提供する内容 | 要件 |
|---|---|---|
| 貼り付けた検出結果またはローカルの検出結果 | SARIF の結果、CVE または GHSA、アドバイザリ、スキャナーのチケット、バグバウンティのレポート、Codex Security の検出結果アーティファクト、または自然言語による脆弱性の主張です。 | コネクターは不要です。 |
| Jira または Linear | セキュリティまたは脆弱性に関する課題の正確な URL または識別子、Jira JQL、あるいは Linear のチーム、プロジェクト、検索語句です。Codex はトリアージの前に、選択された課題の内容を取得します。 | Atlassian Rovo 経由の Jira または読み取りアクセス権を持つ Linear です。 |
| GitHub | リポジトリと、1 つの検出結果ソースを指定します。検出結果ソースは、コードスキャン、Dependabot の脆弱性とマルウェア、セキュリティアドバイザリと非公開の脆弱性レポート、またはすべてのソースです。リポジトリを指定しない場合、利用可能であれば、Codex は現在の Codex プロジェクトに関連付けられた GitHub リポジトリを使用します。GitHub Issues は既定の GitHub ソースに含まれません。トリアージする場合は、特定の issue を指定するか、GitHub Issues を明示的に要求してください。 |
選択したリポジトリと検出結果の種類へのアクセス権を持つ GitHub です。 |
Codex は、指定された検出結果ごとに、入力順で 1 つの結果を保持するため、各ソースの検出結果を追跡できます。重複しているように見える検出結果を統合したり、削除したりすることはありません。
読み取り専用のトリアージを実行する¶
貼り付けた検出結果またはローカルのアーティファクトの場合は、次のようなプロンプトを送信します。
Use $codex-security:triage-finding to triage these existing security findings against this repository:
[Paste the findings or provide the artifact path.]
Jira または Linear の課題の場合は、課題のセットを特定し、ソースシステムを読み取り専用にします。
Use $codex-security:triage-finding to import and triage the security findings from [Jira or Linear issue URLs, identifiers, or query] against this repository.
Do not change the source issues.
GitHub の検出結果の場合は、リポジトリとソースを指定します。
Use $codex-security:triage-finding to import and triage [code scanning, Dependabot vulnerabilities and malware, security advisories and private vulnerability reports, or all] from [owner/repository] against this repository.
現在の Codex プロジェクトに関連付けられた GitHub リポジトリを使用するには、検出結果のソースのみを指定します。
Use $codex-security:triage-finding to import and triage [code scanning, Dependabot vulnerabilities and malware, security advisories and private vulnerability reports, or all] from GitHub against this repository. Use the GitHub repository attached to the current Codex project.
ワークフローは次の順序で進みます。
- 検出結果を収集して整理する
Codex は要求された課題または GitHub のコンテンツを取得し、ソースの識別子と参照を保持し、入力ごとに 1 つのトリアージ項目を作成します。判定を割り当てる前に、項目の完全な一覧を作成します。
- リポジトリのコンテキストを確認する
Codex は、利用可能な場合、現在のリポジトリとリビジョンを解決します。SECURITY.md が存在する場合は読み取り、サポート対象バージョン、信頼できる入力、プロダクトの境界、対象外のサーフェスを評価に反映します。
- 静的な証拠を調査する
各検出結果について、Codex は主張された攻撃者制御のソース、関連するセキュリティ制御、脆弱なシンク、到達可能なパス、サポート対象のセキュリティ境界を追跡します。主張を裏付ける証拠、主張に反する証拠、証明の不足箇所を記録します。
- 判定とランクを割り当てる
Codex はすべての検出結果に判定と信頼度を割り当てます。confirmed と needs_review の検出結果を、悪用可能性に基づいて別々のキューでランク付けします。
結果を確認する¶
| 判定 | 意味 |
|---|---|
confirmed |
リポジトリの証拠から、記載された前提条件の下で脆弱なパスに到達でき、サポート対象のセキュリティ境界を越えることが示されています。 |
not_actionable |
リポジトリの証拠から、影響を受けないバージョン、到達不能なパス、有効なガード、出荷されないサーフェスなどによって、主張が否定されています。 |
needs_review |
必要な情報が不足している、曖昧である、実行時に依存する、環境に依存する、またはポリシーに依存するため、リポジトリの証拠だけでは判断できません。 |
悪用可能性のランクには 1 から始まる正の整数を使用し、各判定キュー内で個別に付与します。これにより、修正の優先順位と未解決のレビュー作業を分けて管理できます。ランク 1 は、その結果セットにおける最も悪用可能性の高い confirmed 検出結果、または最優先の needs_review 検出結果です。ランクはスキャナーの重大度スコアではなく、not_actionable の検出結果にはランクが付けられません。
各検出結果について、次の項目を確認します。
- 判定とランクの根拠
- 主張を裏付ける証拠と、主張に反する証拠
- 未解決の質問と残っている証明の不足箇所
- 影響を受ける場所とコンポーネント
- プロダクトのサーフェスとソースの信頼レベル
- 推奨される次のステップ
- 検出結果が
confirmedの場合の$codex-security:fix-findingハンドオフ
指定したすべての検出結果に 1 つずつ結果があり、Codex がソースの識別子を保持し、不確実性が明示されていれば、トリアージは完了です。トリアージ結果を確認した後に Codex へ書き戻すよう依頼しない限り、Jira、Linear、その他のバックログレコードは変更されません。
次のステップ¶
confirmed: 担当者が修正対象として検出結果を受け入れた後、$codex-security:fix-findingを使用して修正し、検証します。トリアージではプロンプト対応済みのハンドオフが準備されますが、スキルが自動的に呼び出されることはありません。needs_review: コードを実行することで証明の不足箇所を解消できる場合は、$codex-security:validationを使用して範囲を限定した動的検証を実行します。トリアージ結果から、検出結果の主張、影響を受ける場所、前提条件、静的な証拠、証明の不足箇所を渡します。
Use $codex-security:validation to dynamically validate finding [triage item ID or source ID] from the backlog triage result. Use the strongest realistic, bounded method, record exactly what was tested, and preserve any remaining proof gaps.
トリアージとは異なり、検証ではコードのビルドまたは実行、対象を絞ったテストや概念実証の作成、実際のインターフェイスの操作を行う場合があります。提案されたコマンドを承認する前に確認し、Codex の承認とセキュリティポリシーを適用したままにしてください。
needs_review: 検出結果がプロダクトポリシーまたはデプロイ環境に依存する場合は、コードを変更する前に、記載された未解決の質問に回答します。not_actionable: 証拠をトリアージレコードとともに保持します。Codex がソースチケットを自動的にクローズまたは更新することはありません。- 指定したバックログ以外の脆弱性を探すには、セキュリティスキャンを実行します。