CVSSによるセキュリティ脆弱性評価【イマドキの予防保守方法は?】

今の時代、セキュリティに対する意識は高くもたないと、大惨事になりかねません。情報漏洩のニュースを最近良く耳にしますが、明日は我が身とはまさにこのことです。なので、企業の情報システム部やセキュリティエンジニアは、ソフトウェアベンダーの予防保守サイトやセキュリティのニュースサイトなどで、自身が管理するシステムで利用しているソフトウェアの脆弱性情報を日々チェックしている方も多いと思います。最近では、TwitterなどのSNSを活用する方も多いですね。

そしてもし、利用しているソフトウェアの脆弱性が発見されたら、その脅威がどれほどのものかいち早く判定し、必要に応じて対策を講じなければいけません。

では、脆弱性の脅威がどれほどのものかをエンジニアはどのように判定しているのでしょうか。世の中にはいろいろな判定方法がありますが、今は、CVSSを活用することが多いと思います。

今回は、そのCVSSとは何なのかを詳しく取り上げていきます。

CVSSとは

CVSS(Common Vulnerability Scoring System)とは共通脆弱性評価システムのことで以下3つの基準でIT製品のセキュリティ脆弱性の深刻さを評価するものです。

CVSS評価基準
  • 基本評価基準
  • 現状評価基準
  • 環境評価基準

各ソフトウェアベンダが配信する脆弱性情報では、同じような脆弱性でもベンダごとに評価が異なってしまうことは往々にしてあり、本当のところどれほど深刻なのか判断できない問題がありました。

CVSSはベンダに依存せずオープンで包括的、汎用的な同一基準で評価することができます。つまり、CVSSを用いた評価であれば、脆弱性の深刻度を同一の基準のもとで定量的に比較できるようになり、上記の問題点を克服できるというわけです。

では、上記3つの評価基準がそれぞれどのようなものなのかを見ていきましょう。

基本評価基準

脆弱性そのものの特性を評価するものです。機密性、完全性、可用性の、いわゆるCIAに対する影響を、ネットワークから攻撃可能かどうかといった基準で評価して、CVSS基本値(Base Score)と呼ばれる結果を出力します。この基準による評価結果は固定であり、時間の経過や利用環境の異なりによって変化しません。脆弱性固有の深刻度がわかる基準であり、ソフトウェアベンダーや脆弱性を公表する組織のWebサイトなどに、この基本評価基準により導き出されたCVSS基本値が公開されることが多いです。

現状評価基準

脆弱性の現在の深刻度を評価するものです。攻撃コードの有無や対策の有無などを基準に評価して、CVSS現状値を出力します。脆弱性の現状を表す基準で、対応が進むことなどにより変化する値です。

環境評価基準

最終的な脆弱性の深刻度を評価するもので、利用者の利用環境などが加味されます。各々の利用環境における対象製品の使用状況や、二次被害の大きさなどを評価して、CVSS環境値を出力します。対象システムの利用者が自らの環境における深刻度を評価するために用いるもので、利用者によって結果は異なります。利用者が脆弱性への対応を決めるための判断材料として、とても有用な基準と言えます。

CVSSを活用するメリット

CVSSのポイントのひとつとして、対象の脆弱性の深刻度が数値であるスコアとして出力され、その数値の大小で判断できるという点です。3種類の指標を0.0から10.0までのスコアで表し、値が高いほど、深刻度が高くなります。

対象の脆弱性について、対策した方が良いのか、それは緊急で対応しなければいけないのか、といったことがスコアとして表されるので、とてもわかりやすいというのがメリットと言えるでしょう。

例えば、スコアが「9.0」以上であれば、緊急で対策するといったような、わかりやすい判断基準を設けておくことができます。

ただ、そのスコアが評価者によって違ってしまっては、その信ぴょう性は疑わしいと言わざるを得ません。

CVSSは、システムの種類や開発元の違い、評価者の違いなどよらず共通の尺度で深刻度を表すことができ、脆弱性についての情報と一定水準以上のセキュリティ知識があれば、誰が評価しても結果に差が出にくいという特徴があります。

CVSSのスコアは誰がどうやって算出する?

CVSSで出したスコアは、本当に誰が評価しても同じになるのでしょうか。私でもできるんですか?そういうのって、セキュリティのスペシャリスト的な人がやるものだと思ってました。

脆弱性について評価するには、当然、その脆弱性がどのようなものなのかという情報を持っていなければいけません。そのため、基本評価基準と現状評価基準はベンダーや脆弱性を公表する専門組織が評価することになります。

ただ、その脆弱性によりどのような被害を被るのかは、利用者(ユーザー自身)しかわかりません。そのため、環境評価基準は製品利用者自身が評価する基準となっています。

CVSSの特徴のひとつとして、脆弱性についての情報と一定水準以上の知識があれば、誰が評価しても結果に差が出にくい点が挙げられます。

では、なぜ差が出にくいのか、それはスコアを出す上での判断基準が明解だからです。

スコアは下記サイトから算出できます。なぜ明解なのか、実際に算出してみればイメージが湧くと思います。

例えば、基本評価基準のひとつである「攻撃元区分」について考えてみます。これはどこから攻撃できるかを評価します。

ネットワークインターネットなど、ネットワーク経由でリモートから攻撃可能である
隣接ローカルIPサブネット、ブルートュースなど、隣接ネットワークから攻撃する必要がある
ローカルローカルアクセス権限での攻撃やワープロのアプリケーションに不正なファイルを読み込ませる攻撃など、ローカル環境から攻撃する必要がある
物理USB経由など、物理アクセス環境から攻撃する必要がある

その脆弱性がどのようなものか知ってる人であれば、上記選択肢のどれに該当するかは一目瞭然というわけです。

我々、利用者が評価する環境評価基準についてもひとつ考えてみましょう。ここでは「緩和策後の攻撃元区分」について見てみます。これはどこから攻撃できるかを、現状(緩和策や対策後の利用環境)に合わせて再評価します。

選択肢は、基本評価基準の「攻撃元区分」とまったく同じです。ポイントは、利用環境に応じた評価をするという点です。例えば、ネットワーク経由で攻撃可能な脆弱性であったとしても、脆弱性を持つ対象機器がFW内にあるのであれば、選択肢から「ネットワーク」をはずすことができます。

また、環境評価基準は、最終的な脆弱性の深刻度を評価するものであるというのもポイントで、何らかの緩和策を行ったのであれば、その後で、改めて再評価することで、その脆弱性の対策が十分なものであるかどうかの最終評価を下すことができます。

脆弱性の深刻度

スコアが高いほどキケンなことはわかりました。ただ、どのくらいキケンなのか、イマイチわかりません。

スコアから見る深刻度の目安は以下のようになります。

深刻度スコア
緊急9.0~10.0
重要7.0~8.9
警告4.0~6.9
注意0.1~3.9
なし0

基本的に、基本評価基準で出したスコアが最も高く、現状評価基準、環境評価基準とスコアが小さくなっていきます。

環境評価基準で出したスコアが緊急や重要であれば、それは、リモートからシステムを乗っ取られたり、外部に情報が漏洩してしまう可能性があるということなので、すぐにでも対策を講じるべきと言えます。警告以下であれば、予算と相談ということになるでしょう。

CVSSのスコアはどこで確認できる?

CVSSのスコアは前述のとおり、基本評価基準と現状評価基準はベンダーや脆弱性を公表する組織が評価し、算出することになります。誰が評価しても差が出にくいとは言え、その脆弱性について正確な情報を持ち、正しく判定できる人が評価し、算出したスコアでないと意味がありません。

脆弱性についての対策を講じると言葉では簡単に言えても、それにかかるコストが膨れ上がってしまうことは多いです。対策のひとつとして、セキュリティパッチを適用することが挙げられますが、パッチひとつ適用するにしても、システムに影響がないか、リグレッションテストを実施しなければいけません。それに、脆弱性は日々、見つかっており、その度に、対策していてはキリがありません。

そのため、スコアの精度はとても重要なのです。

では、我々エンジニアはどのようなところから情報を収集しているのでしょうか。
脆弱性についての情報を一番持っているのは、そのソフトウェアの開発元であるベンダーと言えますので、まずは、ベンダーが公開するスコアを確認します。

客観的な評価となる第3者のスコアも確認した方が良いです。日本では、情報処理推進機構(IPA)がCVSS基本値を算出し、JVN iPedia(脆弱性情報データベース)に公開しています。

NIST(アメリカ国立標準技術研究所)が管理している脆弱性情報データベースであるNVDでも、CVSS基本値を算出し、公開しています。

JVN iPdeiaは日本の脆弱性情報に焦点を置いたものであるのに対し、NVDは世界中の脆弱性情報が集まっています。

こういった組織・団体が算出したスコアも確認し、対策要否を判定することになります。