脆弱性管理における主な課題の1つは、脆弱性の圧倒的な数と限られたリソースが組み合わされていることである。すべての脆弱性が同様に危険であるわけではないし、すべての脆弱性が緊急の修正を必要とするわけではない。 前回の記事では、A この記事では、EPSS サポートをどのように実装し、このメトリックをフィルタリングおよび分析プロセスに統合して修正努力を強化するかを示します。 Budibaseを使用した脆弱性優先化のためのノーコードソリューション EPSS ベースの優先順位設定を採用することで、本当に重要な脆弱性に焦点を当てることによって、修正戦略の有効性を大幅に向上させることができます。 良いニュースは、EPSSベースの優先順位設定を実装するのに高価なプラットフォームは必要ないということです。 EPSSとは何ですか?なぜ役に立ちますか? オリジナルタイトル: The Prediction Scoring System ( )は、次の30日以内に特定の脆弱性が悪用される確率を示し、パーセントとして表現します。 EPSS 現在のモデルのバージョンは、2025年3月17日にリリースされたバージョン4です。 プロジェクトを維持し、データは毎日更新され、csv形式でダウンロードできます。 FIRST.org 利用可能性が非常に低い脆弱性は、より小さな直ちの脅威を構成します。 利用可能性が非常に低い脆弱性は、より小さな直ちの脅威を構成します。 このアプローチは、時間や努力などのリソースを、より重大なリスクを引き起こす脆弱性に向け、リスクが高くなった場合、または追加のリソースが利用可能な場合に、より少ない重要な脆弱性に対処することを可能にすることによって、効率性を向上させます。 たとえば、CVSS スコアが 7.0 と EPSS スコアが 0.01 (取の確率 1% を示す) と、CVSS スコアが 6.5 と EPSS スコアが 0.91 (取の確率 91% を示す) の 2 つを考慮してください。 CVSS は理論的な深刻性を示す一方で、EPSS は脆弱性が悪用される可能性についての洞察を提供し、潜在的な現実世界の脅威に関する貴重な文脈を提供します。 上記の画像で示すように、10%を超える値でEPSS方法を適用する場合: 努力はわずか 2.7% に減少し、CVSS 値が 7 以上である場合に必要な努力よりもはるかに低い。 このカバー率は、CVSSアプローチよりもわずかに低く、63.2%に達し、これにより、関連性の低い脆弱性の過度の優先化を防ぐのに役立ちます。 効率は 65.2% で、CVSS 7+ メソッドで達成された値よりもはるかに高い。 EPSSスコアに加えて、利用の確率が同じまたは低い脆弱性の割合(または割合)を示すパーティルメトリックもあります。 たとえば、脆弱性が EPSS スコアが 0.10 (10%) で、パーチルが 88 である場合、他の脆弱性の 88% が EPSS スコアが低いことを意味します。 EPSS スコアを使用すると、特に大規模なデータセットを扱う場合、そのパーティティールとともに、より正確な優先順位設定が可能になります。 https://www.first.org/epss/articles/prob_percentile_bins?embedable=true EPSSスコアは予測であり、利用の保証ではないことを覚えておくことが重要です。モデルがどのように機能するかについての詳細については、公式ページをご覧ください。 https://www.first.org/epss/model. Budibase を使用してシステムに EPSS を実装した方法 EPSS値に基づくフィルタリングを実装するには、最初に公式のアーカイブからファイルをダウンロードしました。 脆弱性の最新の取確率スコアを含むウェブサイトです. Here is an example of the content from the CSV file in the archive: first.org #model_version:v2025.03.14,score_date:2025-08-02T12:55:00Z cve,epss,percentile CVE-1999-0001,0.0142,0.79836 CVE-1999-0002,0.14818,0.94265 CVE-1999-0003,0.90339,0.99584 ... 次に、VM ソリューションから脆弱性を輸出するために使用する Python スクリプトを更新しました。 Parsing the EPSS and percentile values Converting these values into percentages by multiplying by 100 Rounding them to whole numbers すべての CVE が EPSS データセットに含まれているわけではありませんが、含まれていないものには値 99 を割り当てます。 すべての CVE が EPSS データセットに含まれているわけではありませんが、含まれていないものには値 99 を割り当てます。 データをデータベースにインポートした後、Budibase で以下の機能を実装しました。 EPSS トレンドのためのフィルタリング形式、例えば>10% 選択された値に基づいてダッシュボードを自動的にリフレッシュするメカニズム Two control buttons: One for viewing the list of vulnerabilities in a pop-up window Another for exporting the results to a .csv file for further analysis or reporting. その後、Budibase で SQL クエリを更新し、条件を追加して EPSS 値とパーチルでフィルタリングしました. This enabled flexible control over the display of vulnerabilities based on the selected thresholds. 条件ブロックの例: ... ( CASE WHEN {{epssthr}}::text IS NULL THEN TRUE ELSE epssScore >= {{epssthr}} END ) AND ( CASE WHEN {{epssrating}}::text IS NULL THEN TRUE ELSE epsspercentile >= {{epssrating}} END ) ... 以下は、トップ脆弱なサービスを表示するダッシュボード用の SQL クエリの例です。 SELECT COUNT(hostname) AS total, VulnerableEntity || ' ' || VulnerableEntityVersion AS VulnerableObject FROM mat_allassets WHERE osname ILIKE '%windows 20%' AND VulnerableEntity IS NOT NULL AND status = 'new' AND VulnerabilityIssueTime < CURRENT_DATE - {{days}}::interval AND ( CASE WHEN {{ sev }}::text IS NULL THEN TRUE ELSE severity = {{ sev }}::text END ) AND ( CASE WHEN {{expltbl}}::bool IS NULL THEN TRUE ELSE metrics ILIKE 'Exploitable: {{expltbl}}%'::text END ) AND ( CASE WHEN {{expltbl}}::bool IS NULL THEN TRUE ELSE metrics ILIKE 'Exploitable: {{expltbl}}%'::text END ) AND ( CASE WHEN {{netvector}}::bool IS NULL THEN TRUE ELSE metrics ILIKE '%HasNetworkAttackVector: {{netvector}}%'::text END ) AND ( CASE WHEN {{remedy}}::bool IS NULL THEN TRUE ELSE metrics ILIKE '%HasFix: {{remedy}}%'::text END ) AND ( CASE WHEN {{vulntrend}}::bool IS NULL THEN TRUE ELSE VulnerIsTrend = '{{vulntrend}}'::text END ) AND ( CASE WHEN {{hostimport}}::text IS NULL THEN TRUE ELSE HostImportance = '{{hostimport}}'::text END ) AND ( CASE WHEN {{epssthr}}::text IS NULL THEN TRUE ELSE epssScore >= {{epssthr}} END ) AND ( CASE WHEN {{epssrating}}::text IS NULL THEN TRUE ELSE epsspercentile >= {{epssrating}} END ) GROUP BY VulnerableObject ORDER BY total DESC LIMIT 10; その後、I included variable bindings from the UI into the SQL query. I discussed this in my previous . 脆弱性優先化に関する記事一覧 最後に、私はExploit Prediction Scoring System(EPSS)の値を含む優先順位フィルターを設定することを可能にするシンプルでユーザーフレンドリーなアプリケーションを開発しました。下のスクリーンショットでは、EPSSの値を10以上に設定し、14日以上前のトレンド脆弱性を選択し、エクスプットの存在を要求しました。 EPSS(Exploit Predictive Scoring System)の10%の値を活用することで、利用された脆弱性の63.2%をカバーし、リハビリ効率が65.2%を達成し、リソースを減らすことができます。 EPSS フィルタリングを無効にするには、単に値値を 0 に設定し、フィルタはもはや適用されなくなります。 さらに、重症度フィルターを平均以上に設定すると、通常、リモートコード実行(RCEs)、コマンド実行、またはSQLインジェクションなどの脆弱性が強調されます。 Focus Where It Matters EPSSは、脆弱性の優先化の効率性を大幅に高める強力なツールです。「火災を盲目的に消す」のではなく、今では最も重要な問題に焦点を当て、意図的に取り組んでいます。 したがって、すべてのインフラストラクチャはユニークであり、あらゆる優先順位設定システムは特定の環境に適応する必要があります。脆弱性管理プロセスは、資産の発見と記録から始まることを覚えておくことも重要です。 コメントの中であなたの考えを聞きたいと思います: Do you use EPSS in your work?