EPSS / KEV (Pro)
DefectDojo Pro 会自动使用两个外部威胁情报来源——EPSS 和 CISA KEV——来丰富您的发现项,使优先级排序不仅反映 CVSS 严重程度,还反映漏洞被利用的可能性。这两个来源都通过 CVE 与发现项匹配,按每日计划刷新,并直接影响每个发现项计算得出的优先级分数。
丰富数据按每个漏洞存储一次,然后应用于引用它的每个发现项。这意味着即使某个 CVE 出现在一万个发现项中,系统也只会查询一次,您可以直接在漏洞浏览器中查看其 EPSS 和 KEV 值,而不必逐条查看发现项。
在 DefectDojo Cloud 上,丰富功能是完全托管的:DefectDojo 负责维护底层威胁情报数据并将其提供给您的实例。您无需安装任何内容、无需配置任何数据源 URL,也无需安排每日任务——一切都由 DefectDojo 为您运行。
两个数据来源
EPSS——漏洞利用预测评分系统
EPSS 是由 FIRST 发布的一种数据驱动模型,用于估算某个 CVE 在未来 30 天内被在野利用的可能性。DefectDojo Pro 会在每个匹配的发现项上存储两个 EPSS 值:
| 字段 | 含义 |
|---|---|
| EPSS Score(EPSS 分数) | 未来 30 天内被利用的概率,数值范围从 0.0 到 1.0(例如 0.94 表示 94%)。 |
| EPSS Percentile(EPSS 百分位) | 该 CVE 在所有已评分 CVE 中所处的排名位置,数值范围从 0.0 到 1.0(例如 0.99 表示位于最可能被利用的前 1%)。 |
当单个发现项携带多个 CVE 时,DefectDojo 会保留其中最高的 EPSS 分数,并将其与该 CVE 对应的百分位配对。百分位始终与分数属于同一个 CVE——两者绝不会来自不同的 CVE,因为百分位只有与其自身的分数搭配才有意义。
KEV——CISA 已知被利用漏洞
CISA KEV 目录是美国政府发布的权威列表,收录已确认在野被利用的漏洞。与 EPSS(一种预测)不同,KEV 陈述的是已观察到的真实利用情况。DefectDojo Pro 会在每个匹配的发现项上存储三个 KEV 值:
| 字段 | 含义 |
|---|---|
| Known Exploited(已知被利用) | 当该 CVE 出现在 CISA KEV 目录中时为 True。 |
| Ransomware Used(勒索软件已使用) | 当 CISA 标注该 CVE 已被用于勒索软件攻击活动时为 True。 |
| KEV Date(KEV 日期) | 该漏洞被加入 KEV 目录的日期。 |
当一个发现项携带多个 CVE 时,只要其中任意一个 CVE 出现在目录中,该发现项就会被标记为 Known Exploited;只要任意一个符合条件,就会被标记为 Ransomware Used;而 KEV Date 则取其中最早的目录加入日期。
KEV 信号绝不会被另一个 EPSS 分数更高的 CVE 所压制。如果一个发现项携带的其中一个 CVE 具有较高的 EPSS 分数但未被列入 KEV,而另一个 CVE 的 EPSS 分数较低但已被列入 KEV,那么该发现项会同时取用较高的 EPSS 分数并被标记为 Known Exploited——每个字段都独立反映该发现项所有 CVE 中的最坏情况。
没有 CVE 的发现项不会被丰富。 这两个数据来源都严格按照 CVE 标识符(
CVE-YYYY-NNNNN)进行匹配。没有 CVE——或只有厂商专用标识符或 GHSA 格式标识符——的发现项不会获得任何 EPSS 或 KEV 数据。
同步时间
丰富过程每天自动运行一次。每次运行分为两个阶段:
- 刷新漏洞数据。 DefectDojo 已知的每个 CVE 都会重新与最新的 EPSS 和 KEV 数据进行核对,并更新对应漏洞的记录。
- 将变更应用到发现项。 只有取值确实发生变化的漏洞才会被推送到引用它们的发现项,也只有这些发现项会被重新评分。
由于第二阶段是由变化驱动的,平静的一天几乎没有开销:如果两个来源都没有发布任何新内容,本次运行就会在不重写您的发现项的情况下完成。一旦发生变化——例如某个 EPSS 分数发生漂移,或某个 CVE 被加入 KEV 目录——所有受影响的发现项都会在下一次运行时获取到该变化。
有几点后续影响值得了解:
- 发现项通常在导入时就会被丰富。 自 v3.2.0 起,EPSS/KEV 丰富会在导入时应用,因此新导入的带 CVE 发现项通常不必等到下一次每日周期就能显示相应取值。具体多快取决于 DefectDojo 是否已经查询过该 CVE——详见下文的“导入时已丰富”涵盖的范围。每日运行仍会在此基础上继续进行,随着 EPSS 分数变动和 KEV 目录更新,保持这些取值最新。如果某个发现项您预期应被丰富但却没有,您可以按需运行同步。
- 取值会保持最新,而不是一成不变。 一个被加入 KEV 目录的 CVE,会在下一次运行时将已有发现项翻转为 Known Exploited——无需重新导入。
- KEV 移除也会被如实体现。 如果某个发现项的 CVE 不再被列入 KEV,本次运行会清除过时的 Known Exploited / Ransomware Used / KEV Date 取值,而不是任由它们保持原状。
“导入时已丰富”涵盖的范围
由于丰富数据是按每个漏洞存储一次的,导入只能即时应用 DefectDojo 已经查询过的内容。这里存在三种情况:
| 导入时该 CVE 的状态…… | 发现项显示 EPSS/KEV 的时间 |
|---|---|
| 已经丰富过——DefectDojo 此前已经在任何产品的任何发现项中查询过该 CVE | 立即显示,作为导入的一部分。这是常见情况:CVE 会在不同扫描和不同团队之间反复出现,因此典型导入中的大多数 CVE 都已经是已知的。 |
| DefectDojo 首次遇到该 CVE,且此次导入引入的新 CVE 数量不多 | 在导入后不久于后台完成。此时尚无已存储的数据可应用,因此导入会仅针对这些 CVE 发起查询,并在结果返回后应用。 |
| DefectDojo 首次遇到该 CVE,且此次导入引入的新 CVE 数量非常多——例如首次导入或批量回填 | 在下一次每日运行时,或在下一次按需同步时显示。在导入仍在进行时查询成千上万个全新 CVE,会与每日运行的工作重复,因此这一工作被有意留给每日运行来完成。 |
无论哪种情况,取值最终都会到达而无需重新导入,每日运行始终是最后的保障——不会有任何内容被永久跳过。
连接器同步的丰富方式与之相同,但有一个例外:非常大的连接器同步会分块导入,而分块同步不会在导入时进行丰富。这些发现项的 EPSS/KEV 取值将来自下一次每日运行,或来自一次按需同步。
在漏洞浏览器中查看 KEV/EPSS
漏洞浏览器为每个漏洞 ID 显示一行记录,包含与发现项表格中相同的五个 KEV/EPSS 列——EPSS Score、EPSS Percentile、Known Exploited、Ransomware Used 和 KEV Date:

这些取值描述的是漏洞本身,因此无论有多少个发现项引用它,取值都是相同的。EPSS Score、EPSS Percentile、Known Exploited 和 KEV Date 均可排序,这使其成为回答“我的环境中哪些漏洞正在被实际利用?”这一问题最快捷的方式——按 EPSS Score 降序排序,或按 Known Exploited 排序,将目录中列出的 CVE 排到最前面。
每一行的 Total Findings 计数都会链接到按该漏洞筛选的发现项列表,让您可以一键从“这个 CVE 已列入 KEV”跳转到“它所影响的全部内容”。
区分“无数据”与“未被利用”
空白的 KEV/EPSS 列与红色 ✗ 所代表的含义并不相同:
- 红色 ✗ / 一个分数——表示该漏洞确实已被检查过。Known Exploited 下方的 ✗ 表示 CISA 未将其列入目录。
- 空白——表示该漏洞从未被丰富过,因此其被利用状态尚属未知。
下图中的浏览器从未进行过同步,因此每个 KEV/EPSS 列都是空白,而不是显示零值或 ✗ 标记:

同样的区别也体现在发现项本身上。当某个发现项的 CVE 尚未被丰富时,页面会明确说明这一点,并提供链接跳转到浏览器以便您启动同步:

一旦丰富运行完成,同一个面板就会报告实际查到的结果:

这一点很重要,因为“我们还没有查看过”和“我们查看过,但未被利用”这两种情况如果无法区分,就会造成混淆,而只有其中一种情况才真正有理由放松警惕。
按需运行同步
您无需等待每日周期。点击漏洞浏览器顶部的 Sync KEV/EPSS data 按钮即可立即启动一次同步:

同步运行期间,该按钮会被禁用,取而代之的是一个进度条,一旦已完成的工作量足以进行估算,还会显示预计剩余时间。上方的状态提示行会报告当前进展——首先说明 DefectDojo 正在检查哪些漏洞发生了变化,随后说明目前已更新了多少个发现项。运行结束后,该提示行会报告结果:有多少个发现项发生了变化、一切均已是最新状态,或者——如果未配置任何数据来源——本次同步并未运行。
同一时间只会有一次同步在运行。如果在同步已经进行时再次点击该按钮,只会附加到当前正在进行的运行上,而不会另外启动第二次同步,因此即使不确定是否已有同步在进行,点击也是安全的。重复运行同步同样是安全的:如果自上次运行以来没有任何变化,本次运行不会重写任何内容。
这是获取自上一次每日周期以来发布的 EPSS 和 KEV 变更、并为仍未显示任何丰富数据的发现项补齐数据的最快方式。
如何影响优先级和风险
EPSS 和 KEV 并不只是信息性标记——它们是 DefectDojo Pro 优先级排序引擎的直接输入。每个发现项的 priority 分数由多个组成部分综合而成(严重程度、暴露程度、资产上下文等等);EPSS 和 KEV 驱动其中的外部分数组成部分,该部分会为可能被利用——或已知被利用——的漏洞加分。
外部分数取以下两个信号中较强的一个:
- EPSS 按其分数比例贡献——被利用的可能性越高,贡献越大。
- KEV 列表贡献一个固定权重:被标记为 Known Exploited 或被用于勒索软件都会带来明显的加成,而同时被标记为 Known Exploited 且被用于勒索软件的 CVE 会带来最大的加成。
两个信号中较大的一个胜出,因此一个发现项无论是凭借高 EPSS 分数还是凭借 KEV 列表都能获得完整加分,而不会因为缺少另一项而受到惩罚。随后,该外部分数会与严重程度和暴露程度一起融入发现项的整体优先级。最终效果是:被列入 KEV 或 EPSS 分数较高的发现项,会排在其他条件相当但两者都不具备的发现项之前,从而使修复工作聚焦于真正最有可能遭到攻击的对象。
EPSS 和 KEV 是基线——威胁情报在此基础上进一步扩展。 启用威胁情报丰富后,同一个外部分数还会识别武器化的公开利用工具、Nuclei 检测模板、概念验证代码以及已确认的主动利用情况,每一项都会在 EPSS 量表上充当一个下限。此外还会加入主动利用风险下限,防止一个正在野外被利用的发现项仅仅因为其基础严重程度为“低”,就停留在较低的风险等级中。与 EPSS 和 KEV 一样,这些信号只会提高分数,而不会降低分数。
这一过程是自动完成的——每次丰富运行更新了哪些发现项,优先级就会针对这些发现项重新计算,从而使优先级排序始终与最新的威胁情报保持同步。
注意: EPSS 和 KEV 会影响优先级分数,但不会改变发现项的严重程度字段。不过,它们可能会影响 SLA 计时:如果您的 SLA 配置启用了 Cap by KEV due date(按 KEV 到期日封顶),则被列入 KEV 的发现项的 SLA 截止日期会被提前到该 CVE 在 CISA 中的修复到期日。如果一个发现项携带多个已列入 KEV 的 CVE,则以其中最早的到期日为准。
筛选和查看已丰富的发现项
发现项一旦被丰富,EPSS 和 KEV 取值就会在 Pro 界面的各个位置显示:
- 在发现项上——EPSS 分数、EPSS 百分位、Known Exploited、Ransomware Used 和 KEV Date 均显示在发现项详情中。
- 排序——发现项表格可按 EPSS 分数/百分位排序,将最可能被利用的发现项排在最前面。
- 筛选——发现项列表提供 Known Exploited 和 Ransomware Used 筛选条件,让您可以构建仅限于已确认真实世界被利用漏洞的视图或报告。
一种常见的工作流程是先筛选出 Known Exploited = true 的发现项,再按优先级排序,从而生成一份以已确认利用情况为依据的“优先修复”队列。
配置
在 DefectDojo Cloud 上,EPSS 和 KEV 丰富功能已为您启用并维护——无需设置数据来源开关、数据源 URL 或阈值,每日同步也由 DefectDojo 负责管理。将 EPSS 和 KEV 转化为优先级的权重已内置于优先级排序引擎中。
如果某些发现项(且这些发现项确实携带 CVE)本应显示 EPSS 或 KEV 数据却没有显示,请先查看漏洞浏览器上的状态提示行——它会报告最近一次同步的结果,包括未配置数据来源的情况。如果状态看起来正常但数据仍然缺失,请联系 DefectDojo 支持团队,他们可以确认每日同步是否正在向您的实例传送数据。
本地部署的丰富功能配置方式有所不同——可以在 Tuner 的发现项丰富设置中单独启用或禁用每个数据来源,并指向自定义的数据源 URL。该配置不适用于 Cloud,因为 Cloud 上的数据由 DefectDojo 负责提供。