
- 脆弱性管理
Log4Shellとは?最悪レベルの脆弱性に学ぶ脆弱性管理のメリット
Apache Log4jに発見された重大な脆弱性「Log4Shell」。脆弱性の重大度を示すCVSSスコアが10点中10点と最高レベルとなっているこのLog4Shellがどのようなものなのかをおさらいしながら、ツールを使った脆弱性管理のメリットをご紹介します。
|
第2回の記事で引用した「CVE-2000-0884」の脆弱性は、CVSSv2の基本値が「7.5」でした。しかし、この値はその脆弱性の「重大さ」を示すものですから、攻撃コードが存在するとか、流行のマルウェアが攻撃に利用するとか、そういった「実情」は考慮されていません。しかし、実際の運用を考えると、
「最近流行している○○というマルウェアは、あなたの会社のサーバで見つかったCVE-20xx-xxxxという脆弱性を攻撃してきますよ」
なんてことを言われたとしたら、急いで対処しなければと思いますよね。結局この辺りの「実情」こそが優先度を左右すると思うのです。
例えば、皆さんの家の玄関ドアが「弱い蝶番を使ってますね、これでは蝶番が壊されてドアを外されてしまいますよ」と指摘されたとして、「もっと頑丈なものに替えなきゃ」と思う人は少ないんじゃないでしょうか。
|
実はCVSSの値にもこの、実情を踏まえる、という考え方があります。それが「CVSS現状値」なのです。ただ、これには考慮点があります。
CVSS現状値とは、いわばCVSS基本値に「攻撃される可能性が低いなら、値を少し小さくする」といった調整を加えた数字です。具体的には、こんな数式と早見表で計算します。
●数式
現状値=(基本値×攻撃される可能性×利用可能な対策のレベル×脆弱性情報の信頼性)四捨五入または切り上げ
●早見表
v2 | v3 | ||
攻撃される可能性 |
未実証 | 1.00 | 0.91 |
実証可能 | 0.90 | 0.94 | |
攻撃可能 | 0.95 | 0.97 | |
容易に攻撃可能 | 1.00 | 1.00 | |
未評価 | 1.00 | 1.00 | |
利用可能な対策の レベル |
正式 | 0.87 | 0.95 |
暫定 | 0.90 | 0.96 | |
非公式 | 0.95 | 0.97 | |
なし | 1.00 | 1.00 | |
未評価 | 1.00 | 1.00 | |
脆弱性情報の信頼性 | 未確認 | 0.90 | 0.92 |
未確証 | 0.95 | 0.96 | |
確認済 | 1.00 | 1.00 | |
未評価 | 1.00 | 1.00 | |
小数点第2位の処理 | 四捨五入 | 切り上げ |
例えば「CVE-2000-0884」の場合、(※ここではv2を使って計算しています)
・攻撃される可能性:容易に攻撃可能=1.00
・利用可能な対策のレベル:正式=0.87 ※Microsoft社からパッチがリリース済み
・脆弱性情報の信頼性:確認済=1.00 ※Microsoft社から情報が公開されている
⇒基本値(7.5)×1.00×0.87×1.00=6.5
となって、基本値「7.5」に対して現状値は「6.5」、値が低くなっています。
さて、ここからが考慮点です。この結果を踏まえて、
「この脆弱性は、基本値は7.5ですが、現状値は6.5です」なんて言われると、どうでしょう。
「なんだ、今の時点では危険性は低いのか」と思ってしまいそうです。
しかも、CVSS基本値と違って、CVSS現状値はNVDからは公開されません。早見表の中で「容易に攻撃可能」なのか、攻撃コードがまだ開発段階で「実証可能」レベルなのか、といった判断を自分でした上で計算しなければならないのも、不安が残ります。
※セキュリティ製品をリリースしているようなメーカは独自に計算した値を公開している場合が多いです
しかも、ここでいう「現状」とは、「その脆弱性が現状どうなのか」を示しているだけで、「優先度」を示しているわけではありません。
また、上の早見表ですが、よく見ると「1.00」を超える数字はありません。つまり、
現状値=基本値×(最大で1.00)×(最大で1.00)×(最大で1.00)
ということなので、現状値は基本値を超えないようにできています。これも残念な所です。例えば、
「この脆弱性は、基本値は7.5ですがマルウェアが流行っているので現状値は9.0です」
みたいなことを言ってくれるのであれば、「急いで対処しなきゃ」となるのに、本当に惜しいところです。
以上から、CVSS現状値の良い所悪い所を簡単にまとめてみました。考慮点も多いので、CVSS現状値はあまり使われていないのではないかな、と、個人的には思っています。
<CVSS現状値の良い所/悪い所>
○「攻撃される可能性」が考慮されている
× 基本的には自分で早見表を見て自分で計算しないといけない
× 現状値が基本値を超えることはないよう設計されている
× 対処する/しないといった優先度判断には使えない
では、脆弱性の「優先度」を判断できる指標があったとしたら、それはどんなものでしょう?
CVSS基本値が示す「重大度」、これはこれで大事です。重大な脆弱性であれば、優先度は高そうです。しかしそれと同じくらい重要なのは、「攻撃される可能性」です。世の中にピッキング犯が大勢いればピッキング対策の優先度が高くなるように、ある脆弱性に関する攻撃コードがあったり、マルウェアが流行っていたりするなら、対策の優先度も高くなるはずです。なので、CVSS現状値にこの要素が含まれていること自体は正しいのだと思います。
では「攻撃される可能性」を左右するのは何なのか?これが、前回の記事でご紹介しました「脆弱性の利用しやすさ」つまり「攻撃コードの有無」であったり、「その脆弱性を攻撃するマルウェアの有無」であったりするわけですね。CVSS基本値に足し引きする、あるいは掛け合わせて算出するような値が良いのではないかと考えます。
実は、この考え方で「優先度」を示す数字を提供してくれるサービスがあります。脆弱性管理製品の
「Tenable」(tenable.com)が独自に算出している「VPR」(Vulnerability Priority Rating/脆弱性優先度格付け)という数字です。
CVSS基本値や、あるいは各社が独自に計算したCVSS現状値を示してくれる製品はいくつもあるのですが、独自の指標を示す製品は珍しいですね。どのような指標なのかを見てみましょう。
VPRとは、Tenable社のブログではこのように説明されています。
「VPR」とは何か。「CVSS」とはどう違うのか。(tenable.com) より
https://jp.tenable.com/blog/what-is-vpr-and-how-is-it-different-from-cvss
Tenable の予測に基づいた優先度設定による VPR(脆弱性優先度評価)は、技術的影響と脅威に基づいて脆弱性の深刻度レベル(緊急、高、中、低)を決定し、優先度を設定することにより、修復の効率と効果を改善します。
「技術的影響」とは、脆弱性が悪用された場合に発生する機密性、完全性、可用性への影響で、CVSSv3 の影響のサブスコアと同等です。「脅威」は、脆弱性に対する最近および今後の脅威活動の可能性を反映しています。公開された概念実証(PoC)研究、 ソーシャルメディアでの悪用の報告、エクスプロイトキットおよびフレームワークでのエクスプロイトコードのリリース、ダークウェブでの悪用に関するコメント、ハッカーフォーラム、マルウェアハッシュの悪用の確認などが VPR に影響を与えます。
|
CVSSv3基本値と、「脅威スコア」(Threat Score)を結合したものがVPRである、と説明されていますね。攻撃コードの有無や、ダークウェブの情報などを使ってAIで判断しているそうで、数字(0~10)や区分(致命的/高/中/低)についてはCVSSv3に合わせています。
CVSSv3基本値 | 重大度 |
9.0以上 | 致命的 |
7.0~8.9 | 高 |
4.0~6.9 | 中 |
0.1~3.9 | 低 |
0.0 | なし |
VPR | 優先度 |
9.0以上 | 致命的 |
7.0~8.9 | 高 |
4.0~6.9 | 中 |
3.9 以下 | 低 |
前々回の記事で、近年世間を騒がせた脆弱性とそのCVSS値の表をご覧頂きましたが、VPRを加えてみました。
見比べてみましょう。
[表]近年発見された主な脆弱性と影響、およびCVSS基本値+VPR
CVE番号 | 概要 | 主な影響 |
CVSS 基本値 |
VPR | |
v2 | v3 | ||||
CVE-2017-0144 | Windows SMBのリモートでコードが実行される脆弱性 | WannaCryの流行(2017年) | 9.3 | 8.1 | 9.8 |
CVE-2017-11882 | Microsoft Office数式エディタのスタックバッファオーバーフローの脆弱性 | 様々なマルウェア(遠隔操作ツール、ランサムウェア、コインマイナー等)の感染に悪用される(2018年~2019年) | 9.3 | 7.8 | 9.9 |
CVE-2018-8174 | Windows VBScriptエンジンのリモートでコードが実行される脆弱性 | 7.6 | 7.5 | 9.8 | |
CVE-2019-11510 | Pulse Secureで任意のファイルが読み出される脆弱性 | Pulse SecureのVPNパスワード流出事件(2020年) ⇒サイバー攻撃で社内LANへの侵入に悪用される(2020年) |
7.5 | 10.0 | 10.0 |
CVE-2019-11539 | Pulse Secureの管理インターフェースにログインしたユーザによって任意のコマンドを実行される脆弱性 | 6.5 | 7.2 |
9.0
(Pulse Policy Secure) 10.0 (Pulse Connect Secure) |
|
CVE-2019-11540 | Pulse Secureでリモートの攻撃者によるセッションハイジャックの脆弱性 | 7.5 | 9.8 | ||
CVE-2020-1472 | Netlogonの特権の昇格の脆弱性 | いわゆるZelologonの脆弱性(2020年) ⇒サイバー攻撃でドメイン管理者の権限奪取に悪用される(2020年) |
9.3 | 10.0 | 10.0 |
これらは何度もニュースになるくらい攻撃が流行っていましたから、VPR数値も高く出ています。「重大さを考慮しつつ、攻撃を受けそうだったら優先度を高く示す」という考え方が見て取れますね。AIが自動算出した値なのですが、あたかも「攻撃が流行っているから優先的に対処した方がいいよ」と言っているかのようです。
そして今年発見された脆弱性を3件取り上げましたが、こちらもVPRを加えてみました。
[表]2021年に発見された主な脆弱性とCVSS基本値+VPR
CVE番号 | 概要 | 主な影響 |
CVSS 基本値 |
VPR | |
v2 | v3 | ||||
CVE-2021-26411 | Internet Explorerのメモリ破損の脆弱性(2021年3月) | ??? | 5.1 | 7.5 | 9.8 |
CVE-2021-31956 | Windows NTFSの権限昇格の脆弱性(2021年6月) | ??? | 9.3 | 7.8 | 9.8 |
CVE-2021-34527 | Windows Print Spoolerサービスのリモートコード実行の脆弱性(2021年7月) | ??? | 9.0 | 8.8 | 9.8 |
これらは先ほどの脆弱性に比べると、そこまでニュース等では取り上げられていないと思っているのですが、
VPRの数値を見ると、かなり高く出ているようで、優先的に対処した方が良さそうです。CVSSの数値だけで、ニュース等でも取り上げられていないのでは、優先度の判断はしにくかったのではないでしょうか。まだパッチが当たっていない、という人がいらっしゃいましたら、早めのWindowsUpdateをお勧めします。
長谷川 まり
|
|
Apache Log4jに発見された重大な脆弱性「Log4Shell」。脆弱性の重大度を示すCVSSスコアが10点中10点と最高レベルとなっているこのLog4Shellがどのようなものなのかをおさらいしながら、ツールを使った脆弱性管理のメリットをご紹介します。
サイバー攻撃者は必ずしも「重大な」脆弱性ばかりを狙うわけではなく「利用しやすいかどうか」を重視しています。 そこでシリーズ2回目は「攻撃者が利用しやすい」脆弱性とは何なのかご紹介します。
近年、様々な脆弱性を突いて社内ネットワークに侵入したりランサムウェアに感染させたり、といった手口のサイバー攻撃が増えています。 このような被害を受けないようにするための「脆弱性管理」についてご紹介するシリーズ第1回です。