本文目录导读:

EPSS(Exploit Prediction Scoring System,漏洞利用预测评分系统)是一个基于数据驱动的评分系统,用于预测某个漏洞在未来被利用的可能性,EPSS 的输出是一个 0 到 1 之间的概率分数(或对应的百分位数),分数越高,代表该漏洞在短期内被利用的可能性越大。
下面详细解释 如何使用 EPSS 来进行漏洞优先级排序和风险缓解决策。
核心逻辑:从“严重性”到“实际威胁”
传统的漏洞管理通常依赖 CVSS(通用漏洞评分系统) ,它评估的是漏洞的“内在严重性”和“潜在影响”,而 EPSS 评估的是漏洞的 “现实世界中的利用活动”。
关键区别:
- CVSS 告诉你: “这个洞有多‘坏’?”
- EPSS 告诉你: “这个洞有多‘可能被利用’?”
使用 EPSS 的核心目标: 在有限的补丁资源和响应时间内,优先处理那些 高风险(CVSS 高)且高利用可能性(EPSS 高) 的漏洞,而不是低利用可能性的漏洞。
如何使用 EPSS
步骤 1:获取 EPSS 分数
你需要获取你关注的每个 CVE(通用漏洞披露)的 EPSS 数据,常用途径包括:
-
官方 API(推荐): 访问
https://api.first.org/data/v1/epss,你可以通过参数指定 CVE ID。- 示例请求(查询单个 CVE):
curl https://api.first.org/data/v1/epss?cve=CVE-2023-44487 - 示例请求(查询多个 CVE):
curl https://api.first.org/data/v1/epss?envelope=false&cve=CVE-2023-44487,CVE-2021-44228 - 示例请求(查询所有 CVE,分页):
curl https://api.first.org/data/v1/epss(默认返回前50条)curl 'https://api.first.org/data/v1/epss?limit=100&offset=50'
- 示例请求(查询单个 CVE):
-
查看 JSON 输出: 返回的 JSON 数据包含:
{ "data": [ { "cve": "CVE-2023-44487", "epss": "0.974740000", // 这就是 EPSS 分数 (0-1) "percentile": "0.977040000" // 百分位数,表示比97.7%的漏洞分数高 } ] } -
从安全工具中获取: 许多商业漏洞扫描器、SIEM(安全信息和事件管理)、SOAR(安全编排、自动化和响应)平台已经集成了 EPSS 数据。
步骤 2:设定阈值
EPSS 分数是连续的,你需要根据你自己的组织、风险承受能力和补丁窗口来设定一个阈值,没有统一标准,但可以参考以下建议:
- 高利用可能性: EPSS >= 0.9 (或 95% 百分位以上),这些漏洞通常是非常活跃的野外利用或存在公开的 PoC(概念验证代码)。
- 中利用可能性: EPSS 0.1 - 0.9 (或 75% - 95% 百分位),这些漏洞有被利用的可能,但活跃度中等。
- 低利用可能性: EPSS < 0.1 (或 75% 百分位以下),这些漏洞在可预见的未来被利用的概率很低。
常用策略:
- 严格策略: 只修补 EPSS > 0.5 的所有漏洞,这可以大幅减少工作量,但可能遗漏一些被低估的威胁。
- 平衡策略: 优先修补 CVSS 高/严重(>= 7.0) 且 EPSS 高(>= 0.9) 的漏洞,这是最常见的做法。
- 激进策略: 对所有 CVSS >= 9.0 的漏洞,无论 EPSS 分数如何,都立即修补,然后根据 EPSS 分数从高到低处理其他 CVSS 高/中漏洞。
步骤 3:与 CVSS 结合使用(推荐工作流)
这是使用 EPSS 最有效的方式,不要单独使用 EPSS。
-
收集所有待处理漏洞的 CVSS 和 EPSS 分数。
-
建立优先级矩阵:
CVSS 低 / 中 (0-6.9) CVSS 高 (7.0-8.9) CVSS 严重 (9.0-10.0) EPSS 高 (>0.9) 低优先级 (可能被利用,但危害小) 高优先级 (高危害 + 高利用可能性) 最高优先级 (立即行动) EPSS 中 (0.1-0.9) 监视 (关注一下) 中优先级 (计划修补) 高优先级 (尽快修补) EPSS 低 (<0.1) 忽略/延期 (成本效益低) 低优先级 (可延期修补) 中优先级 (虽然利用概率低,但一旦被利用危害巨大,需纳入计划) 解释:
- 最高优先级:CVSS 严重 + EPSS 高,这是最危险的组合,需要立即启动补丁流程、应用缓解措施(如 WAF 规则)或隔离受影响系统。
- 高优先级:CVSS 高 + EPSS 高,这是第二危险的组合,应作为本周或本月的首要修补目标。
- 中优先级:CVSS 严重/高 + EPSS 中,虽然目前利用活动不活跃,但存在可能性,应列入修补计划,并在下一次维护窗口优先执行。
- 低优先级/延期:CVSS 低/中 + EPSS 低,这些漏洞很可能是噪音,如果资源紧张,可以忽略或延期处理,直到其 EPSS 分数上升。
- 监视:CVSS 低/中 + EPSS 中/高,这些漏洞可能被利用,但危害有限,定期关注其动态。
步骤 4:自动化响应
将 EPSS 数据集成到你的安全自动化流程中,在 SIEM 或 SOAR 中创建一个规则:
- 触发条件: 当一个新漏洞被扫描出来,且其
epss >= 0.9且cvss >= 9.0。 - 动作:
- 自动创建一个高优先级的工单,并分配给相关系统管理员。
- 发送警报给安全团队和 IT 运维团队。
- 如果可能,自动对受影响系统启用 WAF 规则或临时网络隔离。
步骤 5:动态调整策略
EPSS 分数是每天更新的,一个漏洞的分数可能从 0.1 上升到 0.9,你需要定期重新评估你的优先级,建议每周或每两周重新获取所有待处理 CVE 的 EPSS 分数,并重新排序。
注意事项与局限性
- 延迟: EPSS 是基于历史数据训练的,一个漏洞在刚公开时(甚至是 0-day 时)EPSS 分数可能非常低,因为它还没有被观察到利用活动。EPSS 不能预测 0-day 或刚公开的漏洞。 对于这类漏洞,仍需依赖其他情报(如威胁情报、供应商公告)。
- 不适用于所有漏洞: 对于非常小众的、难以利用的漏洞,EPSS 分数会很低,但并不意味着绝对安全,攻击者有时会专门针对这些漏洞。
- 需要与其他数据源结合: 不要只看 EPSS 和 CVSS,还应该考虑:攻击复杂度、所需权限、用户交互、机密性/完整性/可用性影响、是否已有公开 PoC、该漏洞是否被用于勒索软件或 APT(高级持续性威胁)组织等。
- 是概率,不是确定性: EPSS 分数为 0.9 意味着“在所有类似漏洞中,有 90% 的漏洞在接下来 30 天内被利用了”,而不是“这个漏洞有 90% 的概率在明天被利用”。
- 组织特定资产: 一个对互联网开放的 Web 应用的漏洞(如 Apache Log4j)可能比一个只在内网使用的第三方库的漏洞风险更高,即使 EPSS 分数相同。
如何开始使用
- 获取 API: 了解如何用脚本或程序从
https://api.first.org/data/v1/epss获取数据。 - 集成到管理平台: 将 EPSS 数据整合到你的漏洞管理平台(如 Tenable、Qualys、Rapid7)或自定义的爬虫中。
- 与 CVSS 建立双轴矩阵: 根据上述矩阵,创建你的内部优先级规则。
- 设定阈值: 根据自己的团队能力和风险偏好,设定 EPSS 和 CVSS 的阈值。
- 定期回顾: 每周重新获取分数,调整优先级。
- 沟通: 向管理层解释,EPSS 能帮助团队从“修补所有严重漏洞”转变为“修补最可能被利用的漏洞”,从而提高效率并减少无效工作。
通过这种方式,你将能有效地将安全团队的精力集中在真正构成威胁的漏洞上,而不是徒劳地试图修补所有漏洞。