脆弱性スコアリングを理解することは難しい課題だと思われるかもしれません。まずはリスクについて理解し、リスクと脆弱性を区別できるようにすることをお勧めします。これら2つは、長年にわたり混同されてきました。
脆弱性とは、システムの機能、構成あるいはアーキテクチャーの側面であり、リソースに誤用、悪用、あるいはサービス停止をもたらす可能性のあるものを指します。
一方、リスクとは、特定の脆弱性が原因で脅威が現実化する可能性を意味します。
脆弱性をランク付けして、それにまつわるリスクのレベルを判断する方法は多数あります。共通脆弱性評価システム(CVSS)は、この目的のために最も広く採用されている業界基準です。CVSSには、CVSSv1、CVSSv2、CVSSv3の3つのバージョンがあります。CVSSv1は2005年、CVSSv2は2007年、CVSSv3は2015年に公開されました。
CVSSをよく理解するには、スコアリングシステムがどのように進化したかを知る必要があります。
図1:CVSSv1のメトリックグループ(1)
CVSSv1は、情報システムの脆弱性をランク付けし、脆弱性が呈する全体的な重大性およびリスクを表す複合的なスコアをエンドユーザーに提供すべく開発されました。CVSSは、3つのグループによるモジュラー型構造を採用しています。それらは、基本評価基準(Base Metrics)、現状評価基準(Temporal Metrics)、環境評価基準((Environmental Metrics)です。これらの3つのグループには3つの個別の公式が存在し、それらを組み合わせて0〜10の総合的な脆弱性スコアを算出します。このうち10が最も深刻です。
図 1.1:CVSSv1 基本評価基準グループ(1)
基本評価基準グループは、脆弱性評価の基礎となるグループです。これには、攻撃元区分、情報改ざんの可能性、影響の重み、攻撃条件の複雑さ、機密性への影響、可用性への影響、攻撃前の認証要否が含まれます。これらの中核的な特性は時間の経過や利用環境の変化によって変わることはありません。
図 1.2:CVSSv1 現状評価基準グループ(1)
現状評価基準グループは、攻撃される可能性、利用可能な対策のレベル、および脆弱性情報の信頼性といった動的な要因が、時間の経過に従って脆弱性の緊急性に与える影響を評価する基準です。
図 1.3:CVSSv1 環境評価基準グループ(1)
環境評価基準グループは、発見された脆弱性が組織とその関係者に与える可能性のある影響の種類を評価するための基準です。このグループは、二次的被害の可能性や影響を受ける対象システムの範囲からリスクを評価します。
それぞれの名前が示すように、基本値(Base Score)は脆弱性スコアの基盤として機能し、現状値(Temporal Score)および環境値(Environmental Score)によって、この基本値が増減します。CVSS SIG(Special Interest Group)は、後にCVSSに重大な問題があることを指摘しました。最も問題としたのは、「部分的」というカテゴリー、ゼロスコア、および独立した変数でした。これらにより、一貫性のない、あるいはあいまいなリスクスコアが算出されていました。2007年に公開されたCVSSv2では、CVSSv1の欠点を考慮して、改変を試みました。
図2:CVSSv2のメトリックグループ(1)
CVSSv2には、いくつかの制限があり、これらはCVSSv3で改善されています。たとえば、CVSSv2では、脆弱性はホストプラットフォームへの全体的な影響を点数化していましたが、CVSSv3では特定のコンポーネントレベルでの影響を点数化しています。CVSSに共通のもう1つの欠点は、攻撃者がその欠陥をどれだけの期間認識していたかが考慮されないことです。この時間コンポーネントは、攻撃が特定の脆弱性を悪用できる可能性に影響します。
Tripwireのスコアリングシステムでは、時間コンポーネントとして、脆弱性の存在期間を使用して、スコアリングを行います。
さらに、CVSSv2およびv3のスコアリングは、脆弱性のスコアが「なし」、「低」、または「高」という2つあるいは3つの評価に限定されるため、詳細さに欠けています。このことは、スコアが一律的になり、他とは異なるスコアがほんのわずかになることを意味します。そうなると、似たようなスコアを持つ脆弱性が多数存在することになるため、リスクの優先順位付けに関する問題が残ります。
脆弱性がもたらすリスクを算定するためのTripwireのヒューリスティックアプローチでは、脆弱性が公表されてから経過した日数(t)、クラスリスク(r)、および攻撃の実行に必要なスキルセットの程度(s)を使用して計算します。クラスリスク(r)は、0から6のレベルで分類します。0は「露出」を、6は「リモート権限でのアクセス」を可能する脆弱性を意味します。
スコアの計算では、クラスリスクの数字を階乗した値が使用されます。最後のスキルセット(s)は0から6に分類されます。0は「自動化エクスプロイトが存在すること」を、6は「既知のエクスプロイトが存在しないこと」を意味します。このスキルセットの値を二乗して、算出されるスコアの粒度を高めています。
Tripwireの脆弱性スコアは、脆弱性のリスクをCVSSよりも正確に表します。

図3:Tripwireのメソッド(2)
CVSSv2、CVSSv3、およびTripwireのスコアリングの違いを示すために、2017年に存在した10の脆弱性を選びました。CVSSv2の平均スコアは8.6でした。CVSSv3も同じく8.6で、Tripwireの平均スコアは13858でした。
図4:Tripwireのスコアリングデータ(3)
上のグラフは、10の脆弱性に対するCVSSv2、CVSSv3、およびTripwireのスコアを示しています。CVE-2017-0290は、CVSSのスコアリングがある脆弱性のリスクを他より過大評価してしまう場合があることを示す良い例です。
図5(A):CVE-2017-0290(3) 図5(B):CVE-2017-10271(3)
図5(A)と図5(B)は、比較しやすい材料として、上のチャートから抽出したCVEです。図5(A)は、「Microsoft Malware Protection Engineのリモートでコードが実行される脆弱性」です。Tripwireのスコアは3943、CVSSv2は9.3、CVSSv3は7.8です。メトリクスではCVSSはこのスコアを「高い」とランク付けしています。Tripwireのスコアは3943ですが、これは「低い」にランク分けされます。図5(B)は「Oracle Web Logic Serverの脆弱性」で、CVSSv2では5、CVSSv3は7.5です。これらは「中程度」から「高い」に当てはまります。Tripwireのスコアは13099です。なぜならば、CVE-2017-10271では自動化されたエクスプロイトが入手可能で、リモートから実行可能であることが文書化されているからです。
Tripwireのスコアリングでは、これら2つのCVEを区別しています。マイクロソフトの脆弱性には、それを悪用するエクスプロイトが存在するものの、そのエクスプロイトを起動させるには、「ユーザーがEメールを開いてリンクをクリックする」というような、ユーザーによる操作が必要です。それに反して、Oracle WebLogicの脆弱性には自動化されたエクスプロイトが存在し、ユーザーの介入は不要なため、スコアが高くなっています。
Tripwireの脆弱性スコアリングは、エンタープライズネットワークのITリスクを測定するための有効かつ正確なベースメトリックを提供します。それが重要であるのは、組織がITリソースを最も優先度の高いリスクに集中させることができ、優先順位に従って効果的にネットワークセキュリティリスクを軽減させることが可能になるからです。(2)
参考文書:
- 『CVSS v2 Complete Documentation.(n.d.).』2018年12月23日https://www.first.org/cvss/v2/guide
- Tripwireホワイトペーパー『Tripwire の脆弱性スコアリングシステム』2018年12月26日
- 『IP360 Scoring Vs CVSS Scoring』2018年12月26日
CVSSスコアリングメトリックに関する情報を提供してくれたTyler Regulyと、Tripwireのスコアリングの変数に関する理解を深められるようサポートしてくれたCraig Youngの両氏に感謝します。
Vulnerability Management: Myths, Misconceptions and Mitigating Risk – Part I、Tripwire提供
トリップワイヤ・ジャパンでは脆弱性管理、法規制遵守、インシデント対応やサイバーセキュリティに関する有益な情報をお届けしております。すべてのカタログ、セキュリティに関する情報はこちらからダウンロードいただけます。Tripwireセキュリティ リソース