PSIRTチーム向け
PSIRTチームと製品セキュリティ責任者のためのCRACI
あらゆるPSIRT案件で最初に問われるのは、自社のどの製品とバージョンに脆弱なコンポーネントが含まれているかです。CRACIは各ビルドが実際に取得したものの記録からこの問いに答え、新たなCVEが公開されるたびに答え続けます。
更新日
PSIRTマネージャーが抱える課題
製品セキュリティ責任者は、PSIRTだけでは導き出せない答えに責任を負っています。広く使われているライブラリにCVEが公開されると、顧客や経営層、そしてますます規制当局までもが、数時間以内に同じことを尋ねます。影響を受けているのか、どの製品とバージョンで、いつから、そしていつ修正されるのか、と。
その答えはインベントリ次第ですが、インベントリは通常、事後にロックファイルやマニフェストを読み取るスキャナーから作られます。スキャナーは出荷されない開発用の依存関係を記載する一方、ビルドがほかの方法でダウンロードしたパッケージを見逃します。そのためPSIRTはエンジニアリングチームに手作業での確認を依頼し、答えが届くのは数日後、しかも但し書き付きです。
FIRST PSIRT Services Frameworkは、製品コンポーネントのインベントリを「継承された脆弱性の影響を受ける製品を迅速に特定するために不可欠」としています。CRACIはこのインベントリから始まります。役割の全体像についてはPSIRTとはをご覧ください。
CRACIがPSIRTに提供するもの
ビルドから記録されたインベントリ
CRACIはGitHub Actionsのビルドを自社のランナーで実行し、各ジョブが実際に取得したパッケージを記録します。推移的依存関係、CIキャッシュから復元されたパッケージ、どのロックファイルにも記載されない依存関係も含まれます。CRACIはスキャナーではなく、レコーダーです。各SBOMには完全性の状態が付くため、部分的な記録は部分的であると示され、SBOMはCycloneDXまたはSPDXでエクスポートできます。
出荷したものの継続的な監視
監視対象のSBOMは新たな脆弱性が公開されるたびに継続的に再評価され、検出結果はビルドとリポジトリをまたいで集約されます。来月公開されるCVEも、次のビルドだけでなく、すでに出荷したリリースと照合されます。CVEが公開されている既知の悪意あるリリースは、ほかの脆弱性と同様にフラグが付けられます。
影響を受ける製品、バージョン、期間
ビルド履歴には、過去のすべてのビルドとそのSBOM、そしてどのビルドに脆弱な依存関係(直接・推移的を問わず)が含まれていたかが表示されるため、保持期間内であれば影響を受けていた期間がわかります。インベントリビューでは、どのソフトウェアのバージョンがどの製品にデプロイされているかを正確に確認できます。この2つを組み合わせれば、「影響を受けているか」という問いは調べるだけで答えられるようになります。
購入したコンポーネント
製品が自社のコードだけでできていることはまれです。ベンダーのSBOMを追加できるため、サードパーティのコンポーネントも自社のビルドと並べて監視できます。
トリアージ、割り当て、VEX
セキュリティチームは検出された脆弱性をトリアージし、修正を担当するチームに送ります。これは、製品チームが修正を行う分散型のPSIRTモデルに合致します。CRACIはVEXに対応しています。影響なしとするステートメントがPSIRTとその顧客の作業をどう減らすかは、VEXをご覧ください。
修正済みのCVEを以降のビルドに入れない
ポリシーゲートは、特定のCVEを含むビルドを含め、検出結果に基づいてビルドをブロックできます。PSIRT案件のクローズ後、そのCVEに対するゲートを設定すれば、脆弱なバージョンが以降のリリースにひそかに戻ってくるのを防げます。
監査と顧客向けのエビデンス
APIから各ビルドのSBOM、ネットワークトレース、来歴を取得できるため、アドバイザリや監査への回答の裏付けとなる記録をUIの外でも利用できます。EU Cyber Resilience Actが適用される場合、CRACIは必要な通知の内容を準備し、メーカーの担当者がSingle Reporting Platformを通じて提出します。ただし義務はメーカーに残ります。CRAとはをご覧ください。
PSIRTプロセスにおけるCRACIの位置づけ
| PSIRTのステージ | CRACIが提供するもの |
|---|---|
| 準備 | ビルドごとに実行中に記録され、完全性の状態が付いたSBOM |
| 発見 | ベンダーのSBOMを含む、監視対象SBOMの継続的な再評価 |
| 検証 | どのビルド、バージョン、製品にコンポーネントが含まれ、いつからか |
| 修正 | 担当チームへのトリアージ、CVEを以降のビルドに入れないポリシーゲート |
| リリースと開示 | VEX対応、SBOMのエクスポート、ビルド記録へのAPIアクセス |
各ステージは脆弱性管理のライフサイクルに沿っています。
CRACIが行わないこと
- 到達可能性分析。CRACIが示すのは脆弱なパッケージがビルドに含まれていたことであり、自社のコードが脆弱な関数を呼び出しているかどうかではありません。
- ソースコードのスキャン。SASTとシークレットスキャンは対象外です。CRACIと併用できる優れたツールが数多くあります。
- GitHub Actions以外のCIシステム。現在はGitHub Actionsに対応しており、ほかのCIシステムはロードマップに掲載されています。
- お客様に代わってのコンプライアンス対応。CRACIはエビデンスを提供します。NIS2、CRA、その他のフレームワークへの準拠は引き続きお客様の組織のプロセスです。
PSIRTチーム向けCRACI:よくあるご質問
CRACIはPSIRTツールですか?
CRACIは、PSIRT業務のうち出荷するものの把握に依存する部分をカバーします。ビルド時SBOM、その継続的な監視、どのビルドと製品に脆弱なコンポーネントが含まれているかの特定、そして担当チームへのトリアージです。開示窓口やアドバイザリのプロセスは、この記録の上に構築します。
CRACIはどのようにして製品の中身を把握するのですか?
ビルドはCRACIのGitHub Actionsランナー上で実行され、CRACIは各ジョブが実際に取得したパッケージを記録します。推移的依存関係、CIキャッシュから復元されたパッケージ、どのロックファイルにも記載されない依存関係も含まれます。CRACIはスキャナーではなく、レコーダーです。各SBOMには完全性の状態が付くため、記録が部分的な場合にはそれがわかります。
CVEの影響を受けた過去のリリースをCRACIで特定できますか?
はい、保持期間内であれば可能です。ビルド履歴には、過去のすべてのビルドとそのSBOM、そしてどのビルドに脆弱な依存関係(直接・推移的を問わず)が含まれていたかが表示されるため、影響を受けていた期間がわかります。インベントリビューでは、どのソフトウェアのバージョンがどの製品にデプロイされているかを確認できます。
サプライヤーから購入したコンポーネントもCRACIの対象になりますか?
ベンダーのSBOMを追加できるため、購入したコンポーネントも自社のビルドと並べて監視できます。
CRACIはVEXに対応していますか?
CRACIはどのCIシステムに対応していますか?
現在はGitHub Actionsに対応しています。ほかのCIシステムはロードマップに掲載されています。
ビルドから製品の露出状況を把握
自社のGitHub Actionsビルドでデモをご予約ください。CRACIが記録するSBOM、CVEが及んだビルド、そしてPSIRTが使うトリアージビューをご覧いただけます。
デモを予約