シナプス技術者ブログ

シナプスの技術者公式ブログ。インターネットで、鹿児島の毎日を笑顔にします。

CVSS の環境評価基準をやってみた

技術部ネットワーク課の二之宮です。

はじめに

前々からやってみたかった CVSS の環境評価基準による脆弱性の評価をやってみました。

CVSS とは

概要

CVSS (Common Vulnerability Scoring System、共通脆弱性評価システム) とは、簡単に言うと、情報システムの脆弱性を 3つの基準で評価し、深刻度を 0 ~ 10.0 の数値で表して、レベル分けを行う仕組みです。

www.ipa.go.jp

CVSS は 2005年に公開された v1 以降、2023年に公開された v4 まで、複数のバージョンが公開されています。

www.ipa.go.jp

2024年5月現在、最新は v4 ですが、まだ一般的ではないようなので、今回は、広く使用されている 1つ前の 2019年公開のバージョン v3.1 を使用しています。

脆弱性を評価する 3つの基準

CVSS v3.1 では、脆弱性を以下の 3つの基準で評価します。

評価基準 評価値 説明
基本評価基準 基本値 脆弱性そのものの特性を評価する
現状評価基準 現状値 現在の深刻度を評価する
環境評価基準 環境値 ユーザの利用環境も含む最終的な脆弱性の深刻度を評価する

脆弱性を評価する人

CVSS v3.1 の 3つの評価基準を用いて脆弱性の評価を行うのは、以下の方々です。

評価基準 評価する人
基本評価基準 製品を提供する人(または脆弱性を公表する組織)
現状評価基準 製品を提供する人(または脆弱性を公表する組織)
環境評価基準 製品を利用する人

私は製品を利用する立場ですので、環境評価基準を用いた脆弱性の評価を行います。

深刻度を表す数値とレベル分け

各基準で評価を行うと、深刻度を表す数値が算出されて、その数値を用いて、レベル分けを行うことになります。

深刻度を表す数値 レベル分け
9.0 ~ 10.0 緊急
7.0 ~ 8.9 重要
4.0 ~ 6.9 警告
0.1 ~ 3.9 注意
0 なし

CVSS での評価に必要なもの

  • 脆弱性
    CVSS による評価の対象となる、情報の安全を脅かすシステム上の欠陥です。

  • 脆弱性の影響を受けるシステム
    評価の対象となる脆弱性の影響を受けるシステムです。

  • 脆弱性情報
    評価の対象となる脆弱性の情報です。 影響を受けるソフトウェアの名称やバージョン、脆弱性の内容、影響、回避策、解決方法、修正版のバージョンなどです。

  • 計算ツール
    CVSS v3.1 の評価から、基本値、現状値、環境値を算出してくれる便利なツールです。

  • 基本評価基準による評価結果
    ソフトウェア開発元などが公開している、cvss v3.1 の基本評価基準により脆弱性を評価した結果です。

  • 現状評価基準による評価結果
    ソフトウェア開発元などが行うとされている、cvss v3.1 の現状評価基準により脆弱性を評価した結果です。

今回評価する脆弱性

2024年2月14日に JPRS から注意喚起が行われた以下の脆弱性について評価しました。

(緊急)BIND 9.xの脆弱性(メモリ不足の発生)について(CVE-2023-6516)
- バージョンアップを強く推奨 -
https://jprs.jp/tech/security/2024-02-14-bind9-vuln-cache-cleaning.html

脆弱性の概要は以下の通りです。

  • CVE識別番号:CVE-2023-6516
  • DNSサーバー・ソフトウェアの BIND には、キャッシュ DNS サーバーに攻撃が可能な欠陥がある。
  • 特定のタイプの問い合わせで named によるキャッシュクリーニングを継続的に誘発させると、処理が渋り、メモリ消費量が増大することでシステムがメモリ不足になり、異常動作や停止が発生する可能性がある。
  • 回避策は無い。
  • 解決策は修正版の BIND への更新。

今回想定する脆弱性の影響を受けるシステム

Linux と BIND で構築された、インタネットからアクセス可能なキャッシュ DNS サーバー。

使用する計算ツール

共通脆弱性評価システム
(Common Vulnerability Scoring System) Version 3.1 Calculator
https://jvndb.jvn.jp/cvss/ja/v31.html

基本評価基準による評価結果の確認

BIND の開発元が公表している基本評価基準による評価結果は以下の通りでした。

CVE-2023-6516
https://kb.isc.org/docs/cve-2023-6516

項目 内容
CVSS Score 7.5
CVSS Vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

ここで、計算ツール「共通脆弱性評価システム」に CVSS Vector の評価結果を入力します。例えば、CVSS Vector の AV:N の場合、基本評価基準の攻撃元区分: Attack Vector (AV) の[ネットワーク (N)]ボタンを押します。

基本評価基準による評価を入力

現状評価基準による評価

現状評価基準は、製品を提供する人(または脆弱性を公表する組織)が使用して脆弱性の評価を行うとされていましたが、CVE-2023-6516 の現状評価基準による評価結果を見つけることができませんでしたので、自分で評価しました。

現状評価基準の 3つの評価項目

以下の 3つの項目のそれぞれの選択肢を選んで評価していきます。

  • 攻撃される可能性: Exploit Code Maturity (E)
  • 利用可能な対策のレベル: Remediation Level (RL)
  • 脆弱性情報の信頼性: Report Confidence (RC)

攻撃される可能性: Exploit Code Maturity (E)

評価の選択肢
項目 内容
未評価(X) この項目を評価しない。
容易に攻撃可能(H) 攻撃コードがいかなる状況でも利用可能である。
攻撃コードを必要とせず、攻撃可能である。
攻撃可能(F) 攻撃コードが存在し、ほとんどの状況で使用可能である。
実証可能(P) 実証コードが存在している。
完成度の低い攻撃コードが存在している。
未実証(U) 実証コードや攻撃コードが利用可能でない。
攻撃手法が理論上のみで存在している。
評価結果

未実証(U)

評価の理由

ソフトウェア開発元の以下の情報から、「実証コードや攻撃コードが利用可能でない。」と判断しました。

CVE-2023-6516
https://kb.isc.org/docs/cve-2023-6516

Active exploits:
 We are not aware of any active exploits.

利用可能な対策のレベル: Remediation Level (RL)

評価の選択肢
項目 内容
未評価(X) この項目を評価しない。
なし(U) 利用可能な対策がない。
対策を適用できない。
非公式(W) 製品開発者以外からの非公式な対策が利用可能である。
暫定(T) 製品開発者からの暫定対策が利用可能である。
正式(O) 製品開発者からの正式対策が利用可能である。
評価結果

なし(U)

評価の理由

ソフトウェア開発元の「回避策なし」との情報と、

CVE-2023-6516
https://kb.isc.org/docs/cve-2023-6516

Workarounds:
  No workarounds known.

ディストリビューションの修正版のパッケージの提供がまだだったことから、「利用可能な対策がない。対策を適用できない。」と判断しました。

脆弱性情報の信頼性: Report Confidence (RC)

評価の選択肢
項目 内容
未評価(X) この項目を評価しない。
確認済(C) 製品開発者が脆弱性情報を確認している。
ソースコードレベルで脆弱性の存在を確認されている。
脆弱性情報が実証コードや攻撃コードなどにより広範囲に確認されている。
未確証(R) セキュリティベンダーや調査団体から、複数の非公式情報が存在している。
ソースコードレベルで脆弱性の存在が確認できていない。
脆弱性の原因や検証が十分ではない。
未確認(U) 未確認の情報のみ存在している。
いくつかの相反する情報が存在している。
評価結果

確認済(C)

評価の理由

既に BIND の開発元が脆弱性情報を発表していましたので、「確認済み(C)」としました。

現状評価基準による評価のまとめ

評価項目 評価
攻撃される可能性: Exploit Code Maturity (E) 未評価(X)
利用可能な対策のレベル: Remediation Level (RL) なし(U)
脆弱性情報の信頼性: Report Confidence (RC) 確認済(C)

計算結果

共通脆弱性評価システム
(Common Vulnerability Scoring System) Version 3.1 Calculator
https://jvndb.jvn.jp/cvss/ja/v31.html

現状値:7.5 (High)

現状評価基準による評価を入力

環境評価基準による評価

評価項目の 2つの分類

環境評価基準には 11 の評価項目があり、2つに分類されています。

  • 対象システムのセキュリティ要求度を評価する項目
  • 環境条件を加味した基本評価の再評価を行う項目

対象システムのセキュリティ要求度を評価する項目

3つの評価項目があります。

  • 機密性の要求度: Confidentiality Requirement (CR)
  • 完全性の要求度: Integrity Requirement (IR)
  • 可用性の要求度: Availability Requirement (AR)

ここで出てくる「機密性」「完全性」「可用性」は、情報セキュリティの 3要素と呼ばれるもので、情報セキュリティとは、これらを維持することとされています。

要素 簡単な説明
機密性 認められた者だけが情報にアクセスできる
完全性 情報が破壊、改ざん又は消去されない
可用性 認められた者が必要な時に情報にアクセスできる

環境条件を加味した基本評価の再評価を行う項目

8つの評価項目があります。

  • 緩和策後の攻撃元区分: Modified AV (MAV)
  • 緩和策後の攻撃条件の複雑さ: Modified AC (MAC)
  • 緩和策後の攻撃に必要な特権レベル: Modified PR (MPR)
  • 緩和策後の利用者の関与: Modified UI (MUI)
  • 緩和策後の影響の想定範囲: Modified S (MS)
  • 緩和策後の機密性への影響: Modified C (MC)
  • 緩和策後の完全性への影響: Modified I (MI)
  • 緩和策後の可用性への影響: Modified A (MA)

機密性の要求度: Confidentiality Requirement (CR)

対象システムのセキュリティ要求度を評価する項目の中の、「機密性の要求度」についての評価です。

評価の選択肢
項目 内容
未評価(X) この項目を評価しない。
高(H) 機密性が失われると、壊滅的な影響がある。
中(M) 機密性が失われると、深刻な影響がある。
低(L) 機密性が失われても、一部の影響にとどまる。
評価結果

低(L)

評価理由

キャッシュDNSサーバーには、漏洩すると困る情報はありませんので、「機密性が失われても、一部の影響にとどまる。」と判断しました。

完全性の要求度: Integrity Requirement (IR)

対象システムのセキュリティ要求度を評価する項目の中の、「完全性の要求度」についての評価です。

評価の選択肢
項目 内容
未評価(X) この項目を評価しない。
高(H) 完全性が失われると、壊滅的な影響がある。
中(M) 完全性が失われると、深刻な影響がある。
低(L) 完全性が失われても、一部の影響にとどまる。
評価結果

中(M)

評価理由

キャッシュポイズニング攻撃のような方法でキャッシュされた情報を改ざんされると、悪意のあるサイトに誘導されるなど、「深刻な影響がある」と判断しました。

可用性の要求度: Availability Requirement (AR)

対象システムのセキュリティ要求度を評価する項目の中の、「可用性の要求度」についての評価です。

評価の選択肢
項目 内容
未評価(X) この項目を評価しない。
高(H) 可用性が失われると、壊滅的な影響がある。
中(M) 可用性が失われると、深刻な影響がある。
低(L) 可用性が失われても、一部の影響にとどまる。
評価結果

中(M)

評価理由

名前解決ができなくなると、あらゆるインターネットのサービスに影響が及ぶことから、「深刻な影響がある。」と判断しました。

緩和策後の影響の想定範囲: Modified S (MS)

環境条件を加味した基本評価基準による評価の再評価を行う項目の中の、基本評価基準の「影響の想定範囲: Scope (S)」の再評価です。

なお、環境条件を加味した基本評価基準による評価の再評価を行う項目については、ソフトウェア開発元などの評価から変更がある項目のみ記述させていただきます。

評価の選択肢
項目 内容
未評価(X) この項目を評価しない。
変更なし(U) 影響範囲が脆弱性のあるコンポーネントの帰属するオーソリゼーションスコープに留まる。
変更あり(C) 影響範囲が脆弱性のあるコンポーネントの帰属するオーソリゼーションスコープ以外にも広がる可能性がある。
例えば、クロスサイトスクリプティング、リフレクター攻撃に悪用される可能性のある脆弱性など。
評価結果

変更あり(C)

評価理由

攻撃を受けたサーバーに留まらず、他のサーバーが提供するサービスにも影響が及ぶので、「変更あり(C)」としました。

環境評価基準による評価結果まとめ

対象システムのセキュリティ要求度
評価項目 評価
機密性の要求度: Confidentiality Requirement (CR) 低(L)
完完全性の要求度: Integrity Requirement (IR) 中(M)
可用性の要求度: Availability Requirement (AR) 高(H)
環境条件を加味した基本評価の再評価
評価項目 評価
緩和策後の攻撃元区分: Modified AV (MAV) ≪基本評価基準による評価から変更なし≫
緩和策後の攻撃条件の複雑さ: Modified AC (MAC) ≪基本評価基準による評価から変更なし≫
緩和策後の攻撃に必要な特権レベル: Modified PR (MPR) ≪基本評価基準による評価から変更なし≫
緩和策後の利用者の関与: Modified UI (MUI) ≪基本評価基準による評価から変更なし≫
緩和策後の影響の想定範囲: Modified S (MS) 変更あり ※基本評価基準による評価では「変更なし」
緩和策後の機密性への影響: Modified C (MC) ≪基本評価基準による評価から変更なし≫
緩和策後の完全性への影響: Modified I (MI) ≪基本評価基準による評価から変更なし≫
緩和策後の可用性への影響: Modified A (MA) ≪基本評価基準による評価から変更なし≫

計算結果

共通脆弱性評価システム
(Common Vulnerability Scoring System) Version 3.1 Calculator
https://jvndb.jvn.jp/cvss/ja/v31.html

環境値:8.6

環境評価基準による評価を入力

評価結果まとめ

評価基準 点数 深刻度 評価した人
基本評価基準 深刻度 7.5 重要 (High) ソフトウェア開発元
現状評価基準 現状値 7.5 重要 (High)
環境評価基準 環境値 8.6 重要 (High)

終わりに

とりあえず、CVSS v3.1 の環境評価基準による脆弱性の評価をやってみました。

実際にやってみて、評価した結果が本当に正しいのか?との疑念はあるものの、基本評価基準による評価から、最終的な評価である環境評価基準による評価の値が変わることが実感てきたのが良かったです。

やるだけなら、時間もさほど掛からず、難しくもないので、みんなで評価して、その評価結果を持ち寄って、ああだこうだ議論するとCVSS のみならず、情報セキュリティや管理するシステムへの理解が深まって良いのではないかと思いました。

参考文献