CVSS v4.0が出ました。
巷ではv3.1からの変更点にフォーカスしたまとめ情報が見られますが、このブログではまっさらな目でCVSS v4.0全体を学びたいと思います。(一応、変更点にも触れます)
なお、本ブログでは、実際のセキュリティ運用におけるCVSSの有用性や他の情報(KEV、SSVC、EPSSなど)との組み合わせみたいな話には踏み込みません。あくまでCVSS v4.0の理解に集中します。
今回はFIRSTのspecification documentとFAQから学びます。
CVSSとは?(割愛)
「そもそもCVSSって何?」についてはググってください。
まぁ大体こんな感じで脆弱性のヤバさを計算してるアレですね。(適当)
CVSSの構成
CVSS v4.0 は、Base、Threat、Environment、Supplemental の 4 つのメトリックグループで構成されます。
とりあえずこの絵を見るのが手っ取り早いです。
基本メトリックグループ(B)
時間の経過やユーザー環境の影響を受けない、脆弱性の本質的な性質を表します。
悪用可能性メトリクスと影響メトリクスの 2 つのメトリクスで構成され、サプライヤ(製品やアプリケーションのベンダ)が決めます。
脅威メトリックグループ(T)
攻撃実績やPoCの出回り具合など、時間の経過とともに変化する脆弱性の特性を表します。
コンシューマ(製品やアプリケーションの利用組織)が決めます。
環境メトリックグループ(E)
コンシューマの環境における緩和策の状況や脆弱なシステムの重要度など、環境により変化する脆弱性の特性を表します。
コンシューマが決めます。
補足メトリクス
脆弱性の特性に対する補足事項的なものです。スコアには影響しません。
サプライヤが決めます。
CVSSスコアの呼び名は、メトリックグループの組み合わせにより変わります。
例えば、基本グループだけならCVSS-B、脅威グループも加味したらCVSS-BT、全てならCVSS-BTEといった感じです。
一般的にNVDなどで開示されるCVSS値はCVSS-Bです。
v3.1から何が変わったのか?
User Guideによると以下が変更点だそうです。
- CVSSスコアの命名法が変わった(基本メトリクスだけならCVSS-B、環境メトリクスを加えたらCVSS-BEなど)
- Attack Requirements(AT)メトリクスの追加
- User Interaction(UI)メトリクスの値の見直し
- Scopeメトリクスを廃止し、かわりに「後続システム」に関するSC,SI,SAメトリクスを追加
- TemporalメトリックグループからThreat メトリックグループに名前を変え、一部のメトリクスを廃止
- スコアの計算方法の見直し
ちなみに、「緊急度が高い脆弱性が多すぎる問題」はv4.0で解消するのか?については、残念ながらしません。
CVSS v4.0でその解決は試みておらず、そういうことは各コンシューマが脅威と環境のメトリックグループ(後述)を加味してスコアを下げてくれとFAQに明記されています。
こちらのポストの画像がCVSS 3.1からの変更点を視覚的に捉えやすいと思いました。
Evaluation de la gravité des vulnérabilités : la nouvelle norme CVSS 4.0 est disponible !https://t.co/cARq2lZdKQhttps://t.co/mDQzQropMuhttps://t.co/HxPmJrxdK6 pic.twitter.com/NHVJocLzqh
— Martial Gervaise (@argevise) November 3, 2023
また、四川麻婆豆腐 (@hogehuga) / XさんがFIRSTCON23の変更点要約スライドを翻訳されていて、大変参考になります。
FIRSTCON23の"Announcing CVSS v4.0"を、勝手に意訳しました。CVSS v4.0を検討していた方がどう考えているのか、がなんとなくわかる内容です。
— 四川麻婆豆腐 (@hogehuga) November 4, 2023
v3と何が違うの?(何を問題視していて、何が改善/追加されてるの)が分かると思います。https://t.co/Q0MsjNMjMu#vulnstudy
各メトリクスの定義
ここから各メトリクスの内容に入ります。 元々マークダウン記法の表でしたが、あまりに見づらいので画像にしました。
基本メトリックグループ(Base Metric Group)
悪用可能性メトリクス(Exploitability Metrics)
なお、例えば「当社にはWAFがあるんですけど」みたいな場合はACメトリクスに影響しますが、これは基本メトリックグループではなく、環境メトリックグループの変更済 基本メトリクスとして反映します。
影響メトリクス(Impact Metrics)
影響メトリクスは情報セキュリティのCIAに沿って定義されています。
影響の対象として「脆弱なシステム」とは別に「後続システム」がCVSS 4.0から加わった点は注意が必要です。
「脆弱なシステム」のCIAへの影響はVC,VI,VAメトリクスで、
「後続システムの」のCIAへの影響はSC,SI,SAメトリクスで表現します。
この場合、「どこからどこまでを1つのシステムと呼ぶのか?」がややこしく、Specification Documentには「一貫した機能と一連のセキュリティ ポリシーを備えた環境で実行されるコンピューティング ロジック」とあります。
また、FAQには以下の解説があります。
アプリケーションを構成するサービスのうちの1つに脆弱性があったとして、
「サービスが、より大きなサービスの集合体から独立していない、別の言い方をすれば、そのサービスと一体化している場合」
→VC,VI,VA=アプリケーション全体
「サービスが、残りのコンポーネントから分離できる場合」
→VC,VI,VA=サービス単体 →SC,SI,SA=アプリケーション
例えば、とあるデータベースに脆弱性があり、それがスマートスピーカーだけに使われる場合、
VC=データベース、SC=スマートスピーカーではなく、
VC=データベースを含むスマートスピーカーとなります。
言いたいことは分かる気がするものの、実際に自分がCVSSを決める時は悩みそうです。
下表では、値の観点では「脆弱なシステム」と「後続システム」で大きな違いはないのでまとめて扱います。
脅威メトリックグループ(Threat Metric Group)
その脆弱性についての攻撃コードや攻撃実績の出回り具合です。
ver3.1の「現状評価基準」(Temporal Metrics)が見直されたようです。
これは刻々と変化する指標であるため、コンシューマが脅威インテリジェンスとして情報を入手してCVSSへの評価に繋げる必要があります。本ドキュメントではそれをできるだけ高頻度に、自動化することを推奨しています。
このメトリクスを活用した場合、CVSSスコアが下がることはあっても上がることはありません。
環境メトリックグループ(Environmental Metric Group)
コンシューマが、自組織の事情を踏まえてスコア計算に味付けをするものです。
CIAの要件
実際に脆弱性の影響を受けた場合、CIAの3要素にどれだけの影響があるかは各組織やシステムの特性により異なります。
変更済 基本メトリクス(Modified Base Metrics)
コンシューマが講じるセキュリティ対策や設定に応じて、基本メトリックグループで挙げた11のメトリクスを調整できます。
調整は、高くも低くもできます。
基本的には基本メトリクスの表で挙げた値をいじるだけですが、例外的に、SIとSA つまり「後続システムの完全性(可用性)」のメトリクスに限っては、高(H)/低(L)/なし(N)の3種類に加えて安全性(S)という値が登場します。
これは、システムの脆弱性が後続システムに影響を与えた結果、ヒトの安全性に影響を及ぼすことを考慮するものです。
IEC 61508に定義されている以下4カテゴリのうち、Marginal以上が予想されるなら「S」を適用します。
「S」を適用した場合は、高(H)よりも高いものとしてスコア計算に反映されます。
カテゴリ | 定義 |
---|---|
Catastrophic | 複数の死者 |
Critical | 一人の死者 |
Marginal | 一人または複数人の重傷 |
Negligible | 最悪でも軽傷 |
補足メトリックグループ(Supplemental Metric Group)
CVSS v4.0から新たに加わったグループです。
「CVSSスコア以外にコンシューマに伝えたいことがあれば」的なメトリクスです。脆弱性に関するコンテキストを伝えることに役立ちます。
このグループのメトリクスはサプライヤ側が付けるもので、付けるかどうかは任意です。CVSSスコアにも影響しません。
この表の「Safety」について混乱したかもしれません。
変更済 基本メトリクスで登場したSafetyは、SIとSAメトリクスに対する値でした。つまり、SI:S みたいに扱われます。
対して、こちらのSafetyはメトリクスであり、S:X みたいに扱われます。
CVSS v4.0のメトリクスは以上です。
メトリクスごとの値を用いたスコアの算出方法もspecification documentにありますが、正直言って理解できなかったので書けません。
私は与えられたcalculatorで十分です。
v3.1と比べたスコア算出結果の変化
脆弱性のサンプルに対してv3.1と v4.0でスコアの算出結果を比べたものがこちらに公開されています。
長いので比較表だけ以下に抜き出しました。
「CVSS v4.0のスコア」列で何も書いていないのはCVSS-B(ベーススコアのみ)を意味します。