Codex use case
初めてのセキュリティスキャン
コードの脆弱性を見つけ、その根拠を確認して、対応が必要な箇所を判断します。
Codex Security プラグインでローカルリポジトリをスキャンします。検出の根拠とスキャン範囲を確認し、どの問題から調査や修正に取り組むかを決めます。
Best for
- 自身が所有しているか、レビューの許可を得ているリポジトリやサービスを評価する開発者
- 脆弱性の状況と追加レビューが必要な箇所を初期段階で把握したいセキュリティチーム
- 修正対象を決める前に、根拠となるコードと検証結果を確認したいレビュアー
Contents
初めてのセキュリティスキャン
コードの脆弱性を見つけ、その根拠を確認して、対応が必要な箇所を判断します。
Codex Security プラグインでローカルリポジトリをスキャンします。検出の根拠とスキャン範囲を確認し、どの問題から調査や修正に取り組むかを決めます。
Codex Security プラグインでローカルリポジトリをスキャンします。検出の根拠とスキャン範囲を確認し、どの問題から調査や修正に取り組むかを決めます。
Related links
Best for
- 自身が所有しているか、レビューの許可を得ているリポジトリやサービスを評価する開発者
- 脆弱性の状況と追加レビューが必要な箇所を初期段階で把握したいセキュリティチーム
- 修正対象を決める前に、根拠となるコードと検証結果を確認したいレビュアー
Skills & Plugins
- リポジトリまたは指定したフォルダーをスキャンし、脆弱性が疑われる箇所を検証して、検出結果とスキャン範囲を報告します。
| Skill | Why use it |
|---|---|
| Codex Security:security Scan | リポジトリまたは指定したフォルダーをスキャンし、脆弱性が疑われる箇所を検証して、検出結果とスキャン範囲を報告します。 |
Starter prompt
Codex Security プラグインでローカルリポジトリをスキャンし、各指摘事項の根拠を確認して、調査や修正が必要なものを判断します。まずはリポジトリかサービスを 1 つ選び、どこまでスキャンできたかを確認してから対象を広げます。
事前準備
自分が所有しているか、セキュリティ評価を行う許可を得ているローカルリポジトリを Codex で開きます。Codex Security プラグインをインストールして有効にし、アカウントとワークスペースが必要なセキュリティアクセスの要件を満たしていることを確認します。
最初は、リポジトリ全体か単一のサービスを対象に標準スキャンを実行します。スキャンのワークフローが 1 回実行され、指摘事項、その根拠、スキャンできた範囲を確認してから修正対象を決められます。大規模なモノレポでは、サービスや製品の境界が明確なフォルダーを 1 つ選びます。
そのリポジトリの Codex プロジェクトで開始用のプロンプトを使い、パスをスキャンしたい範囲に合わせて置き換えます。セキュリティのサイドバーから同じスキャンを設定する場合は、初回スキャンの実行の手順に従います。スキャンの開始方法はいずれか一方を選びます。
初回スキャンの実行
- セキュリティを開き、スキャン、+ スキャンの順に選択します。
- リポジトリを選び、現在のブランチと最新のコミットがレビューしたいコードと一致していることを確認します。コードベースでは、チェックアウトしたコードをローカルの変更も含めてスキャンします。
- コードベースを選び、スキャン範囲をコードベース全体または 1 つのフォルダーに設定します。初回は詳細スキャンをオフのままにします。
- 最新のスキャンの推奨設定を参考に、モデルと推論強度を選びます。
- セキュリティルールや優先して確認したい箇所を伝える場合は、追加のコンテキストを開いて入力します。その後、スキャンを開始を選択します。
顧客ごとに別のワークスペースでデータを管理するアプリケーションであれば、セキュリティに関するコンテキストとして次のように入力できます。
ユーザーが取得できるドキュメントは、そのユーザーが所属するワークスペースのものに限定する必要があります。
ユーザーが別のワークスペースの識別子を指定して、そのワークスペースの非公開ドキュメントを取得できるかどうかを調べてください。
バックグラウンドジョブや API の直接呼び出しも含め、どの処理でドキュメントの取得を対象ワークスペースのメンバーに制限しているかを確認してください。
セキュリティドキュメントに掲載されているスキャンの設定例です。開始する前に、対象のリポジトリ、スキャン範囲、設定を確認してください。
スキャンの進捗とカバレッジの確認
Codex は、アプリケーションの資産とセキュリティ境界を特定し、コードを調べて脆弱性の候補を洗い出します。各候補を検証して影響を評価したうえで、レポートを作成します。アクティビティを表示を選ぶと、スキャンを実行している Codex タスクを確認できます。スキャンが完了するまで待ちます。
完了したスキャンを開き、対象とリビジョンを確認します。指摘事項を読む前に、スキップされた箇所や後回しになった箇所も含めて、どこまでスキャンできたかを確認します。完了したスキャンの結果には、脆弱性が含まれることがあります。スキャンできていない箇所があれば、指摘事項が 0 件でもコードが安全だとは判断できません。
スキャンが途中で止まった場合や未確認の箇所が残った場合は、後で調査できるように該当箇所を記録します。スキャンにかかる時間とリソースの使用量は、対象のコードと必要な検証作業によって変わります。
指摘事項の読み方
指摘事項を 1 つ選び、概要を開きます。次の 3 点を併せて確認します。
- 攻撃者は何ができるか? 影響を受けるコード、根本原因、報告された影響を確認します。
- どのような経路で攻撃できるか? 攻撃者が制御できる入力から、保護すべき操作に至るまでの攻撃経路をたどり、途中にある保護策も確認します。
- スキャンで何を実証できたか? 検証で得られた証拠、深刻度の判定根拠、まだ確かめられていない点を確認します。深刻度のラベルだけでは、指摘が妥当かどうかは判断できません。
セキュリティドキュメントに掲載されている指摘事項の例です。この手順を実行して得られた結果ではありません。
この例では、リクエストでワークスペースの識別子を指定すると、ユーザーがそのワークスペースに所属しているかを確認せずに非公開ドキュメントの取得処理が実行されます。自分のコードで同様の指摘を評価するときは、別の仕組みでメンバーだけにアクセスを制限しているか、また、別のワークスペースのデータにアクセスできることが検証で実証されているかを調べます。
指摘の内容について相談したい場合は、同じリポジトリのプロジェクトでチャットを開き、指摘のタイトル、影響を受けるコード、根拠を含めて依頼します。
次の対応の選択
レビューした指摘事項ごとに、スキャンしたリビジョン、影響を受けるコード、根拠、まだ確かめられていない点、担当チームを簡潔に記録します。その根拠に基づいて次の対応を決めます。
- 修正が必要な場合: 妥当と判断した指摘事項を 1 つ選び、セキュリティスキャンの指摘事項の修正に進みます。
- 調査が必要な場合: 指摘事項は未解決のままにし、修正方針を決める前に、どの確認が済んでいないか、どの情報が足りないかを明らかにします。
- 修正が不要な場合: トリアージでの判断と、その根拠を記録します。指摘事項をクローズすると、その判断が記録されます。コード自体は変更されません。
ここまでで、レビュー済みの指摘事項とスキャンできなかった箇所が整理され、それぞれの次の対応が決まります。より詳細な評価が必要な場合は、詳細なセキュリティスキャンの実行を参照してください。特定の pull request や差分を評価する場合は、コード変更のセキュリティスキャンを参照してください。
Related use cases
コード変更のセキュリティスキャン
Codex Security プラグインで Git 管理下の一連の変更を調べ、セキュリティの低下が疑われる箇所を検証します。マージ前に、検証結果とその根拠をまとめたレポートを作成します。
複数リポジトリの一括スキャン
Codex Security CLI を使い、一覧にある各リポジトリを指定したコミットの時点でスキャンします。結果を個別に確認し、どの項目に調査や修正が必要かを判断します。
詳細なセキュリティスキャン
Codex Security...