とりあえずブログ

普通のサラリーマンの雑多なブログ

エンジニアならCVSS(共通脆弱性評価システム )について知っとこ

日々、ハニーポットを運用していて様々な製品の脆弱性を狙った攻撃を観察していますが、その脆弱性を評価するCVSS(共通脆弱性評価システム )について疎かったので、今日はそのCVSSについてご紹介したいと思います。

CVSSとは

そもそもCVSSとは何なのでしょうか。

IPAによると、

共通脆弱性評価システム CVSS ( Common Vulnerability Scoring System) は、情報システムの脆弱性に対するオープンで包括的、汎用的な評価手法の確立と普及を目指し、米国家インフラストラクチャ諮問委員会( NIAC: National Infrastructure Advisory Council )のプロジェクトで 2004年10月に原案が作成されました。

と説明されております。

CVSSは脆弱性に対するオープンで汎用的な指標で、脆弱性定量的に評価できるのが大きなポイントになります。

CVSSは下記の3つの観点から脆弱性を評価します。

  • 基本評価基準(Base Metrics)
  • 現状評価基準(Temporal Metrics)
  • 環境評価基準(Environmental Metrics)

それぞれの説明はIPAのサイトで詳しく解説されております。

f:id:tkm03:20180606204830p:plain (引用:共通脆弱性評価システムCVSS概説:IPA 独立行政法人 情報処理推進機構

評価基準の詳細な内容

上記の3つの評価基準にはさらに詳細に区分があり、内容は上記サイトに詳しく記載されていますが、区分ごとに値が決まっています。

その各値を基に脆弱性定量的に算出することができるという仕組みになっています。

脆弱性の値の算出方法

値の算出方法も上記サイトに記載されていて、下記のとおりとなっています。

  • CVSS 基本値 (Base Score)

影響度 = 10.41×( 1 - ( 1 - C )×( 1 - I )×( 1 - A ) ) …式(1)

攻撃容易性 = 20×AV×AC×Au …式(2)

f(影響度) = 0(影響度が0の場合) , 1.176(影響度が0以外の場合) …式(3)

基本値 = ((0.6× 影響度)+(0.4× 攻撃容易性 )-1.5)×f(影響度) …式(4)        (小数点第 2 位四捨五入)

  • CVSS 現状値 (Temporal Score)

現状値 = 基本値 ×E×RL×RC (小数点第 2 位四捨五入) …式(5)

  • CVSS 環境値 (Environmental Score)

環境値 =( 調整後現状値 +(10- 調整後現状値 )×CD)×TD …式(8)       (小数点第 2 位四捨五入)

一番やばい値と一番やばくない値について

上記の算出式を基にCVSSの値の一番やばい値(最高値)と一番やばくない値(最低値)を求めてみた結果がこちらです。 f:id:tkm03:20180606224852p:plain

計算してみて分かったのですが、CVSS 基本値 (Base Score)、CVSS 現状値 (Temporal Score)、CVSS 環境値 (Environmental Score)のいずれも実際には「9.99・・・」になるので、小数点第2位を四捨五入すると最高値が10、最低値が0になりました。

全体的な値でやばそうとかやばくなさそうとかは分かるのですが、個々の区分を見ると、攻撃の実行容易生や攻撃の可能性(理論上可能だけど、実行は難しいとか)など細かな特性があるので、それぞれの脆弱性情報を見る際に役に立ちそうです。

ちなみに2018年が始まって、現時点で深刻度が危険レベル(7.0〜10.0)の脆弱性は「脆弱性対策情報データベース」によると、822件もあるので、結構やばい脆弱性がたくさんあるようです。

f:id:tkm03:20180606224807p:plain

上記のCCSSの各値を理解していると、「脆弱性対策情報データベース」を見ても脆弱性のレベル感が具体的に理解できるようになるので、エンジニアの方はぜひ知っといてほしいです。