Japan

関連リンク

関連リンク

関連リンク

関連リンク

サイト内の現在位置

EPSSとCVSSを組み合わせた脆弱性ハンドリング

NECセキュリティブログ

2023年11月10日

NECサイバーセキュリティ戦略統括部セキュリティ技術センターの小泉です。EPSSという指標を聞いたことはありますか?脆弱性ハンドリングではCVSSの値を使った対策の優先順位付けが主流だと思います。今回は、実際に攻撃に悪用される確率を表す指標であるEPSS(Exploit Prediction Scoring System)とCVSSを組み合わせることで、精度の高い脆弱性ハンドリングを行うことができるかを検証してみたので紹介します。

EPSSとは?

EPSSはソフトウェアの脆弱性が実際に悪用される「確率」を表した指標です。EPSSは、世界中のCERTが情報交換を行う目的で設立されたフォーラムである、FIRST(Forum of Incident Response and Security Teams)が主導しています。脆弱性識別番号(CVE)毎に、0~1(0~100%)の確率スコア(EPSS値)が算出され、スコアが高いほど脆弱性が悪用される可能性が高くなります。様々なデータソースから脆弱性に関するメタ情報およびその脆弱性が実際に悪用された証拠を収集し、1000以上の変数でトレーニングされた機械学習モデルにより算出されていますnew window[1]
FIRSTは、EPSS値を取得するためのAPIを公開しておりnew window[2]、2021/04/14以降のデータを、json形式で取得することができます。

脆弱性ハンドリングに使用される指標の例

CVSS

CVSS(Common Vulnerability Scoring System、共通脆弱性評価システム)は、各脆弱性の深刻度を0~10の間で表した指標です。スコア(CVSS値)に応じたラベル(深刻度ラベル)も定義されています。NISTが提供するNVD(National Vulnerability Database、米国の脆弱性データベース)new window[3]でCVSS値を取得するためのAPIが公開されていますnew window[4:利用ガイド]new window[4:APIリファレンス]。脆弱性が存在する製品やベンダなどの情報も、CPE(Common Platform Enumeration)名で取得することが可能です。

VPR

VPR(Vulnerability Priority Rating)は、各脆弱性の修復優先度を示す指標で、0~10の値で表されます。脆弱性診断ツールNessusを提供するTenable社によって定義されています。Tenable社のリサーチチームによって収集された情報をもとに、実際に悪用されている脆弱性のスコアが高くなるように調整されていますnew window[5:tenable]new window[5:NETWORLD]

SSVC

SSVC(Stakeholder-Specific Vulnerability Categorization)は、米カーネギーメロン大学ソフトウェア工学研究所によって提案された指標です。CVSSのように脆弱性の深刻度を数値で表すのではなく、その脆弱性が対処されるべきかどうかの判断(defer, scheduled, out-of-cycle, immediate)を示します。サプライヤー、デプロイヤー、コーディネーターごとに、異なる決定木を利用して最終判断されるので、判断に至るプロセスが明確ですnew window[6]

KEV

KEV(Known Exploited Vulnerabilities catalog)は、米国CISAが公開している、実際に悪用が確認された脆弱性のリストです。詳しくはNECセキュリティブログ「脆弱性対応の判断に有効なKEV(Known Exploited Vulnerabilities catalog)の解説[7]」をご確認ください。

EPSS x CVSS

CVSSは脆弱性の深刻度が、数値とラベル(Critical, High, Medium, Low)で表されます。CVSSは様々な場面で利用されているものの、脆弱性の実際の悪用状況が考慮されていません。そのため、上述のようなCVSSを「補完する」脆弱性の評価指標が提案されています。
これに対して、EPSSは脆弱性が悪用される「確率」を示しているものの、その脆弱性が悪用された場合の影響・深刻度はEPSS値からは判断することができません。
脆弱性の評価指標にEPSSとCVSSを同時に活用し、悪用されやすく、かつ深刻度が高い脆弱性を特定するというアプローチをFIRSTが提唱していますnew window[8]

そこで本検証ではEPSSとCVSSのデータを活用し、悪用確率が高い脆弱性(EPSS値の高い脆弱性)の中から、深刻度の高い脆弱性(CVSS値が高い脆弱性)を特定することができるか調査を行いました。

EPSSとCVSSを組み合わせた分析例

データの収集

EPSSはFIRSTがAPIを公開しておりnew window[2]、無償で利用できます。APIを利用することで、2021年4月14日以降のデータをjson形式で取得可能です(一部の日付で取得できない場合があります)。

取得例:

CVSS値についてもNVDのAPIから無償で取得することが可能ですnew window[4:利用ガイド]new window[4:APIリファレンス]。CVE IDが付いた脆弱性は調査時点で22万件以上あるため、全件取得するためには膨大な時間がかかります。APIキーを使用しない場合、30秒間に5回までというリクエスト制限があるので、APIキーを使用して実行することをお勧めします。
取得可能なデータはCVSS値以外にも多岐にわたりますが、EPSSと組み合わせて利用するために、以下のデータを取得しました。

なお、NVDのAPIから取得できる情報には、上述の通りCPE(Common Platform Enumeration)名も含まれています。CVSS値や深刻度ラベル、CVEの説明(descriptions)に加えてCPE名も併せて取得することで、より詳細な分析が可能となるでしょう。
また、CVSSはJVN iPediaから取得することも可能です。こちらのスコアはNVDとは別に算出されていますので、国産の値が必要な場合はJVN iPediaから取得することも検討が必要です。

スプレッドシートによるアプローチ

EPSS、CVSSそれぞれ取得したデータをcsv形式で出力することで、スプレッドシートにて分析することが可能です。ただし、EPSSは脆弱性が悪用される「確率」を表す指標であるため、脆弱性が発見された時期に関する考慮はありません。実際、調査時点(2023年9月)では最もEPSS値が高いとされている脆弱性は、CVE-2014-0160(Heartbleed)でした。他の高順位の脆弱性でも同様に、古い脆弱性が多く含まれています。このため、EPSSとCVSSを完全に突合させるためには、古い時点から網羅されたCVSSのリストを扱う必要があります。スプレッドシートで多量のEPSSとCVSSを突合させる場合、かなりのマシンスペックが要求される可能性があります。

Splunkによるアプローチ

SIEMなどで利用される統合ログ管理プラットフォームであるSplunk Enterprisenew window[9]を利用することで、スプレッドシートによるアプローチでの課題であった検索速度を改善することが可能です。また、ダッシュボード機能により分析にも活用することができます。Splunk Enterpriseは有償のソフトウェアですが、今回は無料トライアル版を使用し、システムの実現可能性を検証しました。

Splunkに取り込んだEPSSのデータ

APIで取得したデータにEPSS値のランク情報を持たせたデータを取り込みました。

  • EPSS値Top 100のデータ(2021年4月14日~調査日)
    このデータはEPSS値の値が高いデータの推移を確認するために使用します。
  • EPSS値Top 10000のデータ(調査日)
    このデータは調査日におけるEPSS値のランク付けを行うために使用します。

Splunkに取り込んだCVSSのデータ

APIで取得したデータから必要なデータを抽出し、Splunkで扱いやすいように整形したデータを取り込みました。

  • 全22万件余のCVSSデータ
    含まれる情報は、収集日・CVE ID・脆弱性の説明(en)・CVSS v2/3.0/3.1のスコア・深刻度ラベルです。

ダッシュボードによる検索と分析

フィルタ機能を追加したダッシュボードを作成すると、Splunkに取り込んだEPSS値を、CVSS値と突合して効率的に分析することができます。例えば、各脆弱性のEPSS値とCVSS値を突合した表を表示することで、EPSS値のランキングにCVSS値を組み合わせることができます。また、組み合わせた表に対して、CVE IDの発行年(CVE番号から算出)、CVSSの深刻度、Descriptionによるフィルタを出来るようにすれば、システムが対象とする年や脆弱性の深刻度、システムに含まれるアプリケーション(Descriptionから検索)を加味して、組織が対応を優先すべき脆弱性をランキングと共に確認することができます。

例えば、システムを導入後に脆弱性の対応を済ませたのが2021年とします。2021年以降に確認された脆弱性で、深刻度がCriticalのものを抽出すると次のようになりました。

EPSS値の順位 CVE ID Score Severity
7 CVE-2021-44228 10.0 CRITICAL
28 CVE-2022-22947 10.0 CRITICAL
36 CVE-2022-30525 9.8 CRITICAL
39 CVE-2022-22954 9.8 CRITICAL
     

さらに、これらの脆弱性のEPSS値やEPSS値の順位の変動を確認すると次のようになりました。

EPSS値の順位の推移で、常に上位に位置しているのが、調査時点で7位だった脆弱性「CVE-2021-44228(Log4j)」でした。この脆弱性は2021年に発見され、広く利用されているWebサーバ「Apache」が影響を受けるため、発見当時から現在に至るまで非常に注目されている脆弱性ですPDF[10]。今回の検証からも、いまだに悪用される可能性が高いことが伺えます。

おわりに

今回は脆弱性の深刻度を表す指標であるCVSSのスコアと、脆弱性が悪用される確率を表す指標である「EPSS」を組み合わせた分析について検証しました。これらの指標を同時に活用することで、悪用されやすく、かつ深刻度の高い脆弱性を効率的に見つけることができました。
一方でEPSSを利用する際は、以下についても考慮が必要です。

  • EPSSは世界全体での発生確率から算出される関係上、特定国・特定地域に絞った攻撃の場合にスコアが低く算出される可能性がある。
  • 機械学習を使って算出しているため「なぜその確率なのか」という根拠を示すのが難しい。

そのため、一つの指標に頼るのではなく様々な指標を組み合わることも、脆弱性ハンドリングでは重要です。

例:

  • EPSSとの組み合わせにより、悪用可能性を考慮する
  • KEVとの組み合わせにより、実際に悪用されている緊急度の極めて高いものを考慮する

この記事の内容が、少しでも皆さんのセキュリティ対策のお役に立てることを願っています。
最後までお読みいただき、ありがとうございました。

参考文献

  1. The EPSS Model – FIRST
    new windowhttps://www.first.org/epss/model
  2. NVD(National Vulnerability Database)– NIST
    new windowhttps://nvd.nist.gov/
  3. NVD Developers Vulnerability(利用ガイド)– NIST
    new windowhttps://nvd.nist.gov/developers/start-here
    NVD Developers Vulnerability(APIリファレンス)– NIST
    new windowhttps://nvd.nist.gov/developers/vulnerabilities
  4. 「VPR」とは何か。「CVSS」とはどう違うのか。 - tenable
    new windowhttps://jp.tenable.com/blog/what-is-vpr-and-how-is-it-different-from-cvss
    Tenable 技術ガイド - VPRとは – NETWORLD
    new windowhttps://www.networld.co.jp/product/tenable/technical-guide/vpr.html
  5. SSVC(Stakeholder-Specific Vulnerability Categorization)を活用した脆弱性管理 – PwC
    new windowhttps://www.pwc.com/jp/ja/knowledge/column/awareness-cyber-security/stakeholder-specific-vulnerability-categorization.html
  6. 脆弱性対応の判断に有効なKEV(Known Exploited Vulnerabilities catalog)の解説
    https://jpn.nec.com/cybersecurity/blog/221104/index.html
  7. What’s EPSS - Using EPSS and CVSS Together
    new windowhttps://www.first.org/epss/user-guide

執筆者プロフィール

小泉 嘉彦(こいずみ よしひこ)
セキュリティ技術センター リスクハンティング・システムグループ

NECサイバーセキュリティ訓練場演習の立ち上げを行った後に大規模国際イベントや官民向けのサイバーセキュリティ対応とし脅威インテリジェンス・フォレンジック・マルウェア解析・ペネトレーションテストに従事。現在はNEC Cyber Security Dashboardの企画・開発・運営に従事し、NECグループ全社員に向けてのセキュリティアウェアネス向上を目指す。

4×Splunk Boss of the SOCトロフィー、3×Taniumメダルを保持
情報処理安全確保支援士(RISS)、CISSPを保持

執筆者の他の記事を読む

Escキーで閉じる 閉じる