
CVE Prioritizer 是一款强大的工具,通过结合 CVSS、EPSS、CISA 的 已知被利用漏洞 以及 VulnCheck 的社区资源(NVD++、KEV),帮助您优先处理漏洞补丁。它提供了关于漏洞被利用的可能性以及对信息系统潜在影响的宝贵洞察。

CVE_Prioritizer 利用 CVSS 和 EPSS 分数之间的相关性,以增强漏洞修复工作。CVSS 捕捉漏洞的基本属性,而 EPSS 提供数据驱动的威胁信息,使您能够更好地确定补丁优先级。
FIRST 团队在他们的 EPSS 用户指南 中出色地解释了为何要结合 CVSS 和 EPSS。以下材料摘自该文档。
下图显示了基于 05-16-2021 数据的 EPSS 和 CVSS 分数之间的相关性。请注意,EPSS 产生的预测分数在 0 到 1(0% 到 100%)之间,分数越高表示被利用的概率越高。每个点代表一个或多个漏洞(CVE)。为说明目的,标注了一些漏洞。

首先,观察大多数漏洞如何集中在图表的底部,只有很小比例的漏洞的 EPSS 分数高于 50%(0.5)。虽然 EPSS 和 CVSS 分数之间存在一定的相关性,但总体而言,该图提供了暗示性证据,表明攻击者不仅仅针对那些造成最大影响或必然更容易被利用的漏洞(例如,未经验证的远程代码执行)。
这是一个重要的发现,因为它驳斥了一种常见的假设,即攻击者只寻找(和使用)最严重的漏洞。那么,网络防御者如何在这些漏洞中决定首先修补哪个呢?
CVSS 是捕捉漏洞基本属性的有用工具,但它需要与数据驱动的威胁信息(如 EPSS)结合使用,以便更好地优先安排漏洞修复工作。
为了便于讨论,请参考下面的图表,该图表已添加注释,以大致说明漏洞优先级排序。

上述决策策略凸显了 EPSS 的巨大能力。网络防御者通常必须处理数千甚至上万个暴露的漏洞,而现在能够用更少的资源修补更多更有可能被利用的漏洞。这种区分漏洞的能力以前从未有过。
我们根据 FIRST 的建议和我们自己的经验,优化了优先级阈值。概述如下:
这种方法将漏洞分为五个优先级级别,使您能够更有效地分配资源。
| 优先级 | 描述 |
|---|---|
| Priority 1+ | 在 CISA KEV 中找到的 CVE |
| Priority 1 | 右上象限中的 CVE |
| Priority 2 | 右下象限中的 CVE |
| Priority 3 | 左上象限中的 CVE |
| Priority 4 | 左下象限中的 CVE |
下面是根据我们方法修改后的 FIRST 建议版本。

注意: 您可以在运行工具时定义自己的阈值,以便根据组织的风险偏好定制结果。
git clone https://github.com/TURROKS/CVE_Prioritizer.git
cd CVE_Prioritizer
pip install -r requirements.txt
pip install --user cve_prioritizer
要有效使用 CVE_Prioritizer,请遵循以下步骤:
-vc 或 --vulncheck。-vck 或 vulnchek_kev (仅适用于 NVD++)。-c 后跟 CVE ID。-l 后跟逗号分隔的 CVE 列表。-f 导入包含 CVE ID 的文件(每行一个)。
-f 标志以及 --nessus 或 --openvas,自动从 Nessus 或 OpenVAS 扫描报告中提取 CVE。-v 或 --verbose 获取详细信息。--cvss 和/或 --epss 定义自定义阈值,以使结果与您组织的风险偏好保持一致。-t 或 --threads 定义并发线程数(默认:100)。python3 cve_prioritizer.py -c CVE-2020-29127

python3 cve_prioritizer.py -l CVE-2020-29127,CVE-2017-16885

您也可以提供一个包含 CVE 列表的文本文件(每行一个)
python3 cve_prioritizer.py -f ~\Desktop\CheckTheseCVEs.txt

CVE_Prioritizer 提供灵活的输出选项,以满足您的偏好。默认情况下,它提供结果的摘要,包括 CVE-ID 及其优先级。不过,您可以启用详细模式以获取更多信息。
以下是可用的输出选项:
摘要结果(默认): 提供简洁的摘要,包括 CVE-ID 及其优先级。

详细模式: 启用详细输出,每个 CVE 包含以下信息:

CSV 文件
您可以使用 -o 或 --output 标志将结果保存为 CSV 文件
python3 cve_prioritizer.py -f cve_list.txt -o ~/Desktop/prioritized.csv

这将独立于您使用的终端输出,输出详细结果。
请参考 CONTRIBUTING.md 获取指南
本项目采用 BSD 3-Clause 许可证授权 - 详见 LICENSE 文件。
如有问题或疑问,请通过 [email protected] 联系我。
祝补丁顺利!
请注意,虽然此工具使用了 NVD API,但并未获得 NVD 的认可或认证。