SSVC(Stakeholder-Specific Vulnerability Categorization)は、脆弱性対応の優先度を決定するフレームワークであり、2023年7月にv2.1がリリースされました。本バージョンでは、判断基準がシンプル化され、Decision Point「Utility」の削除や「Automatable」への統一によりリスク評価の精度と効率が向上しています。また、デプロイヤーツリーの分岐数が減少したことで、手動での判断がより簡単にできるようになりました。これらの変更により、Immediateとなるパスが減ったため、組織は緊急対応すべき脆弱性をより明確に特定し、効率的に対応できるようになります。本記事では、SSVC v2.1の変更内容とFutureVulsへの影響について詳しく解説します。
※注意事項
本記事はSSVCの基本知識を有している前提で執筆していますので、SSVCについて詳しく知りたい方は「脆弱性対応に有用なSSVCと、適用について」をお先にご一読ください。
カーネギーメロン大学ソフトウェアエンジニアリング研究所が提案した評価手法であり、ステークホルダーのニーズに基づいて脆弱性の対応優先度を決定します。SSVCは、脆弱性、システム環境、被害発生時の影響に関する情報を「Decision Tree」(決定木)に入力することで対応優先度を導出します。
決定木の各分岐点は「Decision Point」と呼ばれ、ステークホルダーが各分岐点でどのような判断をすればどのような対応優先度になるのかを表現可能です。これによって高い説明性を持った評価を実現できます。
SSVCの詳細な情報はGitHub上で公開されおり、仕様はオープンな場で議論されているため高い透明性があります。
更にSSVCは、米国サイバーセキュリティ庁(CISA)でも活用されており、その信頼性は高く評価されています。
デプロイヤー(脆弱性に対応する組織)が脆弱性の対応優先度を決定する際に使用する決定木のことを指します。
デプロイヤーの意思決定は緩和策や修復策をどの優先度でソフトウェアに対して実行するかに集中するため、対応優先度を決定するには以下のDecision Pointsを準備する必要があります。
上記のDecision Pointsの選択によって、対応レベルを4段階に分類します。
| Deployer Priority | Description |
|---|---|
| Immediate | 全てのリソースを集中し、必要に応じて組織の通常業務を停止して可能な限り迅速に対応する |
| Out-of-cycle | 通常よりも迅速に行動し、計画外の機会に緩和策または修復策を実施する |
| Scheduled | 定期メンテンナンス時に対応する |
| Defer | 現時点では対応しない |
※備考
v2.1ではDecision Pointの「Utility」が「Automatable」へ変更になりました。
「Utility」は、「Value Density」と「Automatable」によって値が決まる指標でしたが、v2.1では「Value Density」はSSVCの対応レベル算出時の対象から外れました。
GitHub上のissueで、デプロイヤーツリーはUtilityをAutomatableに置き換えるべきかどうかという観点で議論されていました。
issueの起票者は、デプロイヤー観点では業務影響(Mission Impact)を価値密度(Value Density)と同等に扱うべきと述べています。
すなわち、リソースが「集中的」であれば攻撃された場合の業務影響は大きく、「拡散的」であれば業務影響は小さいということを示唆していると考えられます。
結論としては、SSVCリポジトリのメンテナーはデプロイヤーツリーの「Utility」を削除し、「Automatable」に置き換える決定を下しました。
その理由は以下の通りです。
業務影響(Mission Impact)を識別可能であると予想される状況では、攻撃の自動化可能性(Automatable)と業務影響は対応優先度を考える指標として独立した関係となります。この文脈では、価値密度(Value Density)により追加される情報は主に「緩和策」や「修復策」の実施に必要な労力に関することになるが、デプロイヤー観点からするとリソースが「集中的・拡散的」であるかは、以下の2点を考慮すると明確な対応優先度を必ずしもつけられないと述べています。
そのため、「Value Density」を指標から外し、「Utility」を「Automatable」に置き換えるという判断となりました。
ちなみにデプロイヤーツリー上から「Utility」は削除されましたが、メンテナーは「Utility」の一部としての「Value Density」は脆弱性の影響を受ける可能性があるシステムの状況について不十分な知識のまま潜在的な影響について代理で判断する必要がある意思決定者(サプライヤーやコーディネーター)にとっては適した指標であると述べています。
サプライヤーやコーディネーターは、システムの状況について知ることはできないので、攻撃者と同じ目線に立って対応優先度を判断する必要がある(攻撃者にとって有用なものほど優先度が高い)と考えることができ、この理由から攻撃者にとっての有用性の判断に必要な「Value Density」はサプライヤーツリーやコーディネーターツリーで使用する指標として適しているという風に考えられます。
※備考
FutureVulsでは現時点のデプロイヤーツリーにおける「Human Impact」は実装簡素化のため、「Mission Impact」によって決定することを想定しています。上記で記載している「Mission Impact」はFutureVuls内では「Human Impact」として捉えています。
「Human Impact」を「Mission Impact」によって決定することを想定している理由については「SSVCにおける Human Impact 決定方法例」をご参照ください。
「Utility」から「Automatable」への変更により、決定木がシンプルになり分岐数が108から72に減少しました。
従来「Immediate」と判定されていた条件の一部が「Out-of-cycle」に変更されました。これにより、緊急対応が本当に必要な脆弱性だけに集中できるようになりました。
Decision Pointが「Utility」から「Automatable」に変更されたことで、一部の条件で対応優先度が「Immediate」から「Out-of-cycle」になる理由を以下の内容を確認しながら説明します。
まずは、v2.0の「Immediate」判定条件を確認します。
| Exploitation | Exposure | Utility | Human Impact |
|---|---|---|---|
| active | open | laborious | very high |
| active | open | efficient | high |
| active | open | efficient | very high |
| active | open | super effective | high |
| active | open | super effective | very high |
バージョン変更に関係する「Utility」の条件に注目します。
「Utility」は「laborious」「efficient」「super effective」のいずれかの値をとります。それぞれの条件は以下です。
| Value | Definition |
|---|---|
| laborious | Automatable: no AND Value Density: diffuse |
| efficient | (Automatable: yes AND Value Density: diffuse) OR (Automatable: no AND Value Density: concentrated) |
| super effective | Automatable: yes AND Value Density: concentrated |
これらより、「Immediate」になるのは以下の7パターンです。
| Pattern | Exploitation | Exposure | Utility | Human Impact |
|---|---|---|---|---|
| 1 | active | open | laborious (Automatable: no AND Value Density: diffuse) | very high |
| 2 | active | open | efficient (Automatable: yes AND Value Density: diffuse) | high |
| 3 | active | open | efficient (Automatable: no AND Value Density: concentrated) | high |
| 4 | active | open | efficient (Automatable: yes AND Value Density: diffuse) | very high |
| 5 | active | open | efficient (Automatable: no AND Value Density: concentrated) | very high |
| 6 | active | open | super effective (Automatable: yes AND Value Density: concentrated) | high |
| 7 | active | open | super effective (Automatable: yes AND Value Density: concentrated) | very high |
次にv2.1の「Immediate」判定条件を確認します。
| Pattern | Exploitation | Exposure | Automatable | Human Impact |
|---|---|---|---|---|
| A | active | open | no | very high |
| B | active | open | yes | high |
| C | active | open | yes | very high |
v2.0と2.1の「Automatable」と「Human Impact」の値を比較すると、パターン3以外は「Value Density」の値によらず、「Immediate」と判定されるので以下の対応関係が成り立ちます。
| Version 2.1 | Version 2.0 |
|---|---|
| Pattern A | Pattern 1, 5 |
| Pattern B | Pattern 2, 6 |
| Pattern C | Pattern 4, 7 |
上記の対応関係からv2.1への変更で影響を受けるのは、パターン3「Utility: efficient (Automatable: no AND Value Density: concentrated)、Human Impact: high」と言えます。
パターン3はv2.1ではAutomatable: no、Human Impact: highとして扱われるため「Out-of-cycle」と判定されます。これらより、v2.0からv2.1への変更で「Immediate」から「Out-of-cycle」に対応優先度が下がるのはパターン3の扱いの変化によるものと言えます。
※備考
SSVC v2.1で、Automatable: no、Human Impact: highをデプロイヤーツリー上で「Immediate」として扱うことは可能です。FutureVulsでは、Decision Pointsの値の組み合わせに対して任意の対応優先度を設定可能な機能を用意しているので、柔軟に対応優先度を変更できます。
SSVC 設定の Decision Pointは、「Exploitation、Exposure、Automatable、Human Impact」になりました。
バージョン更新により、「Value Density」が削除されたことで手動設定が必要な項目は3つから2つに減り、設定がさらに簡単になりました。手動設定が必要な項目は 「Exposure」 と 「Human Impact」 のみです。
対応優先度が「Immediate」から「Out-of-cycle」となるのは、v2.0のパターン3「Utility: efficient (Automatable: no AND Value Density: concentrated)、Human Impact: high」であるため、Decision Pointを以下の条件で検証しました。
想定環境は「インターネット公開の重要システム」で、「33,566」件の脆弱性をSSVCで分類しました。
| SSVC Version | Exposure | Human Impact | Value Density |
|---|---|---|---|
| v2.0 | open | high | concentrated |
| v2.1 | open | high | - |
結果は以下です。
| SSVC Version | Immediate | Out-of-cycle | Scheduled | Defer |
|---|---|---|---|---|
| v2.0 | 169 | 172 | 33225 | 0 |
| v2.1 | 28 | 432 | 33106 | 0 |
想定通り、v2.1では「Immediate」の判定基準が厳しくなり「Immediate」の数が減少することを確認しました。
v2.1への変更により「Immediate」は、これまで以上に緊急な対応を要する脆弱性のみに絞り込めるようになりました。
本記事では、SSVC v2.1への変更がデプロイヤーツリーやFutureVulsに与える影響について解説しました。v2.1への変更で「Immediate」判定の基準が厳しくなるため、SSVCを活用している運用担当者はこれまで以上に対応すべき脆弱性の絞り込み精度の高さを実感できるようになるでしょう。
FutureVulsでは、SSVCによる脆弱性の対応優先度付けの自動化を簡単に使える機能をご用意しております。
対応優先度付けのノウハウや業務負荷にお困りの方は、ぜひ一度FutureVulsからお問い合わせください。
[1] CERTCC/SSVC: Stakeholder-Specific Vulnerability Categorization – GitHub, CERTCC
[2] PRIORITIZING VULNERABILITY RESPONSE: A STAKEHOLDER-SPECIFIC VULNERABILITY CATEGORIZATION (VERSION 2.0), Carnegie Mellon University