Exploit Prediction Scoring System(EPSS)は、2021年1月に全世界のCSIRT連携組織であるFIRSTによって提供が開始された取り組みで、30日以内に当該脆弱性が悪用される可能性(確率)をスコアリングする取り組みです。EPSSのスコアはFIRSTのWebサイトで公開されており無料で使用できます。CSV形式でダウンロードも可能です。ちなみに、CVSS(Common Vulnerability Scoring System)の仕様もFIRSTで検討され公開されたものです。
EPSSのモデルについて
EPSSのモデルは、脆弱性情報と悪用活動の関係を機械学習によって特定したものです。モデルは2021年1月のリリース以降、2022年2月と2023年3月にアップデートされています。機械学習のモデル開発においては、パフォーマンスを測定し評価することが重要ですが、EPSSのモデルは以下の手順でパフォーマンスを測定し評価しています。
1.14ヶ月分のデータを準備する
2.最初の12ヶ月分のデータでモデルをトレーニングする
3.残りの2ヶ月分のデータをトレーニング済みのモデルに予測させ、実際の結果と比べる
私はAIの専門家ではないので詳しいことはわかりませんが、この方法はAIモデルのパフォーマンス評価によく用いられる方法だと思います。いずれにせよ、EPSSとは、過去における脆弱性情報と悪用活動のデータから導き出した関係性を元に個々の脆弱性の悪用可能性を予測することと言えるでしょう。
そのような仕組みであれば、脆弱性情報と悪用活動のデータがどれだけ収集できるかということも重要です。脆弱性情報については、以下の情報を収集しています。
- 該当製品の開発元
- 脆弱性が発生してからの日数
- 脆弱性の説明から抽出された単語
- 脆弱性の種類
- CVSS メトリクス
- Webサイトでのリストや議論(CISA KEV, Google Project Zero, Zero Day Initiative等)
- 攻撃コードの有無(Exploit-DB, GitHub, MetaSploitから収集)
- セキュリティツールやスキャナーの対応状況
一方、悪用活動の収集については、パートナー企業(2024年1月時点で8社)から実際の悪用活動のデータを収集しています。ここでいう悪用活動とは、攻撃者がターゲットシステムにおいて脆弱性の悪用に成功したという情報ではなく、ハニーポットやIDS/IPS、ホストベースの検知機能等のセンサーから収集された悪用の試みになります。ちなみに、CISA KEVは、悪用の試みと悪用の成功のいずれかが確認された脆弱性をリストに掲載しています。
EPSSの効果(マクロの視点)
FIRSTによると、公開された脆弱性のうち実際に悪用されている脆弱性は全体の2~7%であるとのことです。つまり、ほとんどの脆弱性は、リソースを投入して対応しても実際は悪用されていない、つまり、(言い方は悪いですが)無駄な努力だったということです。EPSSの効果を示すシミュレーションとして、次のような結果が公表されています。CVSS 基本値が7以上の脆弱性を対応した場合と、EPSSのスコア10%以上の脆弱性を対応した場合の比較です。
出典: https://www.first.org/epss/model
この結果によると、CVSS 7以上を対応する場合は、公表された全脆弱性の大部分 (灰色と重なっている青色の部分) を対応することになり、対応したにも関わらず悪用されない脆弱性 (赤色と重なっていない青色の部分) が大量に発生します。また、悪用された脆弱性の未対応(灰色と赤色の重なっている部分)が残ります。一方、EPSS スコア10%以上 を対応する場合は、労力(青色の部分)が大幅に削減されます。対応したにも関わらず悪用されない脆弱性は大幅に減少しますが、悪用された脆弱性の未対応は増加してしまいます。
FIRSTからは、カバレッジ(悪用された脆弱性のうち対応した脆弱性の割合)と効率(対応した脆弱性のうち悪用された脆弱性の割合)の関係についても興味深いグラフが公表されています。
出典: https://www.first.org/epss/model
これによると、CVSSスコア 7以上と同等のカバレッジを求める場合、EPSS スコアの閾値は1%になります。ただし、効率は26%程度になり、閾値を10%とした場合の65.2%から低下します。このカバレッジと効率はトレードオフの関係になりますが、CVSSスコアを閾値とするよりEPSSスコアを閾値とした方がより効率的な戦略を立てることができるというのがEPSSの主張です。なお、CVSSスコアには9.0から10.0はCriticalといったレーティングがありますが、EPSSにおいては公式なレーティングはなく、それぞれの組織が自組織のリソースやリスク許容度等に応じて閾値を設定するべきとしています。
EPSSの効果(ミクロの視点)
次に、具体的な脆弱性におけるEPSSスコアを見てみましょう。2023年に公表されたOracle WebLogic Serverの脆弱性は19件あります。以下の表は、それらのCVSSスコアとEPSSスコアを比較したものです。
1件を除きEPSSスコアは低い値になっています。そして、その高い値となっているCVE-2023-2189は、悪用が発生しているとしてCISAのKEVに掲載されている脆弱性です。
次の表は、2023年10月以降に公表されたCVSS基本値8.8以上の脆弱性をサンプル抽出し、CVSSとEPSSのスコアにKEVとJPCERT/CC注意喚起の情報を付加したものです。
この表からもEPSSスコアと悪用の発生に強い相関関係があると言えると思います。特に注目してもらいたいのはApache Struts2の脆弱性CVE-2023-50164です。この脆弱性はPoCが公開されており、今後、悪用の発生が十分考えられる脆弱性ですが、EPSSのスコアも相応に高い数値となっています。なお、Proselfの脆弱性CVE-2023-45727ですが、Proselfは日本のベンダーの製品で主に日本で使用されている製品であるためか悪用が発生しているにも関わらずKEVに掲載されていないのですが、EPSSスコアも低くなっています。KEVは米国の企業・組織向けですので理解できますが、EPSSは全世界が対象です。言語等の理由で評価のための情報が入手できなかったのかも知れません。
EPSSの活用方法
EPSSの特徴を踏まえ、以下のような活用方法が考えられます。
1.緊急対応になり得る脆弱性を把握
実際に悪用が始まりKEVに掲載されたりJPCERT/CCから注意喚起が出されたりする前に、そうなる可能性が高い脆弱性を把握することが期待されます。
2.パッチ適用ポリシーへの活用
パッチ適用ポリシーにCVSSのスコアを用いている場合、CVSSの代わりにEPSSを用いることで、パッチ適用の労力を下げることが期待されます。その場合、CVSSスコアの閾値と同程度のカバレッジのEPSSスコアを閾値とするといいでしょう。
3.脆弱性診断やペネトレーションテストの評価への活用
脆弱性診断やペネトレーションテストでOS・ミドルウェアの脆弱性が検出された場合、CVSSスコアを用いて評価がなされていることが多いと思います。これをEPSSスコアを用いて評価を行うことで、よりメリハリのある評価になることが期待されます。
EPSSを活用する際に、EPSSスコアは頻繁に変更されるということを留意しておく必要があります。公表された時点のスコアは低く、その後、上昇するというケースも少なくありません。そのため、EPSSスコアを定期的(週次等)にチェックしたり洗い替えたりする必要があります。
OS・ミドルウェアの脆弱性対応については、公表される脆弱性の数が増加していることや、他のセキュリティ対策の増加等によって、優先付けや効率性が重要視されるようになってきました。EPSSはまだ発展途上の取り組みですが、興味深い取り組みであり、動向に注目し上手く活用されるといいのではないでしょうか。
<参考URL>
Exploit Prediction Scoring System(EPSS)
https://www.first.org/epss/data_stats
北尾 辰也
サイバーセキュリティコンサルタント。三菱UFJ銀行で12年間サイバーセキュリティに従事し、2022年4月にフリーランスとして独立。現在はサイバーセキュリティに関するコンサルティングやアドバイザー業務を行うとともに、国土交通省最高セキュリティアドバイザーや日本シーサート協議会専門委員、⾦融ISAC個⼈賛助会員として活動している。