1.はじめに
NIST(※1)の脆弱性情報データベースNational Vulnerability Database(NVD)には2022年第3四半期終了時点(9月30日まで)で、14万件以上の脆弱性情報が登録されています(※2)。2022年7月1日から9月30日までに登録された脆弱性情報は4152件で、単純に計算すると1日におよそ50件の脆弱性情報が登録されていることになります。
脆弱性情報が公開されると、攻撃者は脆弱性が残存するシステムを狙って攻撃を開始します。過去には脆弱性情報の公開日当日から攻撃が開始された例もあり、情報の公開と攻撃開始までの時間は短くなっています。公開される膨大な数の脆弱性すべてに迅速に対応することはできません。したがって、脆弱性対応の遅れによる重大なインシデントの発生を防ぐためには、1日に多数公開される脆弱性に優先度を付けて対応することが重要です。また、迅速かつ正確に脆弱性を評価して優先度を決定するためには指標を正しく用いることが求められます。
アメリカ国立標準技術研究所(NIST:National Institute of Standards and Technology)
https://www.ipa.go.jp/security/vuln/report/JVNiPedia2022q3.html
2.CVSSによる脆弱性評価と課題
脆弱性の評価に多く用いられる指標の1つとして共通脆弱性評価システムCVSS(Common Vulnerability Scoring System)があります。CVSSは多くのベンダーやセキュリティ機関が採用している共通の評価方法です。規格が一般に公開されており、基本評価基準、現状評価基準、環境評価基準の3つの評価基準で構成されます。
基本評価基準は、最も一般的に用いられており、脆弱性そのものの危険度を評価する基準です。攻撃区分や複雑さ、必要な権限といった各評価項目をもとに、CVSS基本値という0.0~10.0の値を算出することができます。また、値によって5段階の危険度が定義されています。多くのベンダーがCVSS基本値および各評価項目のパラメータを公開していますが、各評価項目のパラメータが持つ意味を正しく理解するには十分な知識を要します。
現状評価基準は、脆弱性の現状を評価する基準であり、時間の経過とともに変動する値です。現状評価基準はベンダーから提供されることもありますが、未評価の場合も多く、活用は困難です。
環境評価基準は、対象製品の利用環境を評価する基準で、組織や個人でそれぞれ評価する必要があります。活用には専門的な知識を必要とするため一般的には難易度が高く、現状はあまり使用されていません。
以上の理由から、基本評価基準の0.0~10.0で表す基本値や5段階で定義される危険度のみが指標として用いられる場合が多いです。しかし、これらの数値や危険度は、対応する方針の定義はなく、脆弱性の優先度付けや具体的な対処方針の決定にはまた別の基準が必要となります。
3.SSVCについて
CVSSの代替の評価手法としてSSVC(Stakeholder-Specific Vulnerability Categorization)があります。SSVCはCVSSの課題に対応するために提案された、脆弱性の評価指標です。SSVCでは、ステークホルダーに応じて3種類(サプライヤー、デプロイヤー、コーディネーター)の決定木が用意されています。サプライヤー(パッチを提供する立場の人)とデプロイヤー(パッチを適用する立場の人)の決定木では、最終的に具体的な対処方針を示す4つのカテゴリー(defer, scheduled, out-of-cycle, immediate)に分類されます。本稿では、デプロイヤーを例にSSVCの活用について示します。
デプロイヤーの決定木の分岐項目は、Exploitation(脆弱性の悪用状況)、Utility(攻撃者にとっての有用性)、Exposure(システムの外部露出度)、Human Impact(影響の大きさ)の4つです(図)。ExploitationおよびUtilityはサプライヤーの決定木にも同様の項目が存在し、脆弱性の危険度や現在の状況を評価します。また、ExposureとHuman Impactはそれぞれのシステムに依存した判断項目であり、環境に合った評価が可能です。
このように、評価結果が直接対処方針につながることや、脆弱性の危険度や状況、利用環境を1つの決定木のなかで包括的に評価できることがSSVCの特徴です。
図:デプロイヤーに対応した決定木(※3)
https://resources.sei.cmu.edu/asset_files/WhitePaper/2021_019_001_653461.pdf
4.SSVCを用いた脆弱性評価
実際に、NTTDATA-CERTが危険と判断したいくつかの脆弱性に対してSSVCを用いた評価を実施しました(表)。システム環境によって結果が左右されるため今回は前提条件として、「停止した場合でも組織の業務は継続可能であるが、サービスレベルが低下するおそれのあるシステム」を想定しています。表の判定結果は、特定の環境下を想定した簡易的な判断であり、一例としてご理解ください。
Citrixの脆弱性(CVE-2022-27510)を例に補足します。NTTDATA-CERTでは個別のシステムによらない一般的な影響に基づいて判断を行っています。NTTDATA-CERTは、認証なしで秘匿性の高いリソースへアクセスされるおそれがあるため、システムが扱う情報によっては影響が大きいと判断し、該当製品をアップデートするよう注意喚起しました。これはサプライヤーの決定木におけるout-of-cycle相当の対応です。しかし、扱っているデータの秘匿性を考慮してデプロイヤーの決定木を用いた場合、下の表から定期的なアップデートでの対応で問題ないと判断できます。このように、SSVCを用いることで、ベンダーやセキュリティ組織が推奨する対応だけでなく、それぞれの環境にあった判断を行うことが可能です。
表:SSVCを用いた脆弱性判定結果
SSVCを用いた判断では、事前の準備が必要です。事前準備は大きく「正しく情報を活用する準備」と「システム環境や用途の整理」に分かれます。
「正しく情報を活用する準備」にあてはまる項目は、ExploitationとUtilityです。これらの項目はサプライヤーの決定木と共通しているため、SSVCがベンダーから提供されるようになれば、参考にすることができます。したがって、SSVCを提供するベンダーが増えるほど、デプロイヤーにとってSSVCを用いた判断が実施しやすくなります。UtilityはAutomatable(自動化の可能性)とValue Density(攻撃者が得る価値)の2種類の判断要素から成り立ちます。表のAutomatableの判断は、CVSSの攻撃区分(AV)、攻撃条件の複雑さ(AC)、ユーザー関与(UI)を参考に実施しました。このように、SSVCの提供がない場合には他の情報から判断することもできます。例えばCitrixの脆弱性の場合、ネットワーク経由で攻撃可能(AV:N)、攻撃条件の複雑さが低い(AC:L)、ユーザー関与なしで影響する(UI:N)であるため、攻撃の自動化は可能だと判断しました。実際にパッチをあてる立場の人は、CVSSやその他の脆弱性情報を活用できるように理解しておく必要があります。
「システム環境や用途の整理」にあてはまる項目は、ExposureとHuman Impactです。これらの項目はシステム情報や環境について整理しておくことで迅速な判断が可能です。例えばExposureは、システムの外部露出度を問う項目ですが、アクセス制限やネットワーク構成など判断要素が複数あるため人によって判断結果に差異が生じる可能性があります。緊急時に判断するのではなく、事前に関係者で話し合い、定義しておくことが望ましいです。同様に、Human Impactは利用しているシステムの用途や扱う情報に依存するので、事前に定義しておくことが可能です。
以上より、SSVCを使用する際には、公開される脆弱性情報を正しく理解できる状態にし、システムに依存する項目は事前に評価を決めておくことで迅速な判断が可能になります。ベンダーから脆弱性情報をすばやく受領できる状態、保有するシステムに依存する項目の評価が完了している状態を実現できれば、脆弱性情報公開後すぐに対処方針に直結する判断結果を導き出すことが可能です。
5.おわりに
毎日公開される多くの脆弱性に対して、組織や個人は迅速に判断と適切な対応が求められます。そのためには指標を適切に活用することが有効です。現在よく用いられているCVSSは、多くのベンダーが提供しているため情報取得が比較的容易です。情報をすぐに知りたい場合や、脆弱性を比較する場合に役立ちます。一方、SSVCは具体的な対策を導出する手段として有効です。実際に使用している組織はまだ少なく判断が難しいなどの課題はありますが、迅速かつ具体的な対処方針に直結する脆弱性評価が可能です。特に、システム管理が適切に実施されている状況において、脆弱性対応の優先度付けで効果を発揮します。
CVSSとSSVCでは、それぞれ異なる特徴がありますが、どちらを利用する場合でもそれぞれの判断基準をしっかり理解したうえで用いる必要があります。ベンダーから脆弱性情報が提供された際には、それらの情報を適切に活用することで、迅速な判断に役立てることができます。また、システムを使用する個人や組織は扱っているシステムの構成や用途を整理しておくことが重要です。そのためには、ハードウェアの交換やソフトウェアのアップデートなど、システムの構成要素が変化した際にも常に現状を把握できる状態が求められます。システム構成を把握、管理しておくシステムの構成管理を正しく行うことで、脆弱性評価に用いる指標によらず迅速な対応につなげることができます。