scadastrangelove/kev_vs_epss
GitHub: scadastrangelove/kev_vs_epss
基于 CISA KEV 真实利用数据评估 EPSS 预测能力的研究项目,提出证据驱动的 UPS 漏洞优先级模型。
Stars: 3 | Forks: 0
# UPS:从信号到补丁队列(KEV-2025 + vKEV 检查)
本代码库包含论文 **“UPS Meets Patch Queues
Evidence-timeline prioritization under limited capacity, cadence, and compliance gravity”** 的相关资料。
该论文研究了不同的 *证据阈值*(Watch+/Track+/Prepare+)如何影响 (1) **左移**(在 KEV 收录前进行补丁修复)和 (2) 容量受限的补丁队列下的 **运维工作量**。
现代漏洞管理必须在极高的披露量和有限的补丁容量下对修复工作进行优先级排序。我们引入了 UPS(Urgent Patch Score),这是一种证据驱动的阶段模型,将漏洞紧急性视为可验证信号的时间线,而非静态分数。利用 CISA KEV 2025 队列(N=245)作为高精度被利用集,并通过容量受限的补丁模拟,我们展示了 UPS 能够在不使用 KEV 作为触发器的情况下实现有意义的“左移”修复:35–53% 的 KEV-2025 项目在 KEV 添加日期前已完成修补。在中等容量(≥ 20 项/周)下,UPS 实现了近乎完美的 14 天 KEV 合规性,而更紧迫的截止日期(7 天)主要受限于组织的处理节奏而非原始容量。最后,我们量化了核心运维权衡:更早的准入策略会增加工作量膨胀(定义为每处理一项 KEV-2025 项目所对应的总处理项目数;在 Watch+ 下高达约 5–8 倍),而更严格的阈值(Track+/Prepare+)则以约 2.6–2.8 倍的开销保留了大部分速度优势。这些结果表明,当容量和治理约束主导结果时,证据时间线优先级排序可以作为一种实用的、可调节的替代方案,取代仅基于分数的方法。
**作者:** Sergey Gordeychik
**所属机构:** CyberOK
**年份:** 2026
[完整论文](https://github.com/scadastrangelove/kev_vs_epss/blob/main/ups/UPS_Meets_Patch_Queues-publish.pdf)
# EPSS 与真实世界利用情况 (KEV 2025)
**作者:** Sergey Gordeychik
**所属机构:** CyberOK
**年份:** 2025
[完整论文](https://github.com/scadastrangelove/kev_vs_epss/blob/main/Prediction_Meets_Patch_Queues__Empirical_Limits_of_EPSS_Only_Prioritization_Using_CISA_KEV_Additions_in_2025.pdf)
本代码库包含用于评估 **EPSS (Exploit Prediction Scoring System)** 相对于 **CISA 已知被利用漏洞 (KEV) 目录** 所代表的 **确认的真实世界利用情况** 的 **预测能力和运维适用性** 的数据、脚本和分析资料。
这项工作专注于 **2025 年的漏洞**,并回答了两个实际问题:
1. *EPSS 对真实利用情况的预测效果如何?*
2. *在补丁管理中使用 EPSS 阈值的运维成本是多少?*
## 1. 主要发现与研究结论
本节总结了分析得出的结论,其表述方式适合在研究论文、内部方法论或政策文件中引用。
### 1.1 EPSS 是排序信号,而非利用预测神谕
EPSS 估算的是 **在未来时间窗口(30 天)内被利用的概率**。
它 **不** 断言利用行为是否已经在发生。
相比之下,**KEV 代表确认的利用行为**。不加区分地混淆这两者会导致错误的运维结论。
### 1.2 覆盖率缺口是一个固有限制
在 2025 年 KEV 数据集中:
* KEV 条目总数:**245**
* KEV 收录时可用的 EPSS 数据:**203 (≈83%)**
* 决策时缺失的 EPSS 数据:**≈17%**
缺失的 EPSS 值并非中立;在运维中,它们表现为 **假阴性**。
### 1.3 EPSS 阈值针对 KEV 的召回率在结构上受限
针对 KEV 测量的召回率(仅限存在 EPSS 的数据):
| EPSS 阈值 | 条件召回率 |
| -------------- | ------------------ |
| ≥ 0.1% (0.001) | 65% |
| ≥ 1% (0.01) | 38% |
| ≥ 10% (0.1) | 27% |
当针对 **所有 KEV 条目**(包括缺失 EPSS 的条目)计算时:
| EPSS 阈值 | 有效召回率 |
| -------------- | ---------------- |
| ≥ 0.1% | 53.9% |
| ≥ 1% | 31.8% |
| ≥ 10% | 22.4% |
### 1.4 低 EPSS 值并不意味着真实世界风险低
多个 KEV 漏洞在 KEV 收录时表现出 **极低的 EPSS 值**,包括:
* **CVE-2025-14847 (MongoBleed)** — EPSS ≈ 0.00041
* 针对性的、面向边界的、小众利用模式
这一限制是遥测驱动预测模型所固有的。
### 1.5 EPSS 可能滞后于现实
一类独特的漏洞表现出 **EPSS 上升延迟**:
* 初始 EPSS 接近零
* 在广泛利用信号出现后升至顶级百分点
示例包括 CI/CD 供应链事件和网络设备漏洞。
### 1.6 百分位数改善沟通,而非覆盖率
百分位数随时间和模型版本对 EPSS 值进行标准化,但是:
* 它们 **不** 提高召回率
* 它们 **不** 减少假阴性
* 它们主要影响 **排序**,而非 **选择**
### 1.7 运维结论
一个合理的补丁优先级排序模型必须将:
* **KEV** 视为强制性覆盖
* **EPSS** 视为辅助排序和聚焦信号
* **非 CVE 漏洞**(例如,本地数据库、供应商公告)视为一等风险输入
## 2. 实际用法
本代码库包含分析中使用的 **原始数据** 和 **可复现脚本**。
## 2.1 文件概览
### 核心数据文件
* **`kev_2025_epss.csv`**
2025 年的 KEV 条目,包含以下时间的 EPSS 值:
* KEV 收录日期
* 快照日期 (2025-12-29)
* **`epss_scores-2025-12-29.csv`**
2025-12-29 所有 CVE 的完整 EPSS 数据集快照
* **`epss_scores-2025-12-29_cve2025.csv`**
仅针对 **CVE-2025-*** 的筛选后 EPSS 快照
### 分析输出
* **`epss_threshold_catch_2025.csv`**
不同 EPSS 阈值下的 KEV 漏洞召回率
* **`epss_threshold_patch_load_2025-12-29.csv`**
每个 EPSS 阈值的预估补丁工作量(计数)
* **`epss_deceptive_low_2025.csv`**
**收录时 EPSS 较低** 的 KEV 漏洞,包括:
* 后续 EPSS 增长的情况
* 尽管确认被利用但 EPSS 依然较低的情况
### 脚本
* **`kev_2025_epss.py`**
用于以下用途的脚本:
* 获取 KEV 数据
* 查询 EPSS(历史和当前)
* 丰富 KEV 条目
* 生成可复现的 CSV 输出
## 2.2 运行脚本
### 环境要求
* Python 3.9+
* 依赖项:
pip install requests pandas
### 基本用法
```
python kev_2025_epss.py \
--year 2025 \
--out kev_2025_epss.csv \
-v
```
### 恢复模式(推荐用于大规模运行)
```
python kev_2025_epss.py \
--year 2025 \
--out kev_2025_epss.csv \
--resume \
-v
```
### 注意事项
* 通过单 CVE 请求遵守 EPSS API 速率限制
* 保留缺失的 EPSS 值(不进行插补)
* 输出增量刷新以避免数据丢失
## 3. 预期用途
本代码库旨在用于:
* 安全研究和方法论验证
* 补丁优先级排序策略设计
* 与管理层进行风险沟通
* 教授预测性安全评分的局限性
它 **不** 旨在取代威胁情报、资产上下文或专家分析。
## 4. 引用
如果您引用这项工作:
## 5. 结束语
明智地使用 EPSS。务必对照现实进行验证。
标签:CISA KEV, CISA项目, CVE分析, EPSS, GPT, PKINIT, SCADA, Shift-Left安全, UPS评分, 人工智能安全, 合规性, 哈希传递, 安全度量, 安全运营, 容量规划, 工控安全, 扫描框架, 漏洞利用预测, 漏洞管理, 网络安全, 补丁优先级排序, 补丁模拟, 证据驱动安全, 逆向工具, 防御策略, 隐私保护