PatchVex/vulnpilot
GitHub: PatchVex/vulnpilot
VulnPilot 是一款本地优先的漏洞优先级排序工具,通过融合 KEV、EPSS 和 CVSS 评分帮助安全团队从扫描结果中快速锁定真正需要优先修复的漏洞。
Stars: 0 | Forks: 0
# VulnPilot
**利用真实的漏洞利用情报对漏洞进行优先级排序 —— 而不仅仅是严重性评分。**
在本地运行。您的数据绝不会离开您的计算机。
[](https://github.com/PatchVex/vulnpilot/blob/main/LICENSE)
[](https://python.org)
[](https://pypi.org/project/vulnpilot/)
[]()
## 快速开始
```
pip install vulnpilot
vulnpilot update-feeds
vulnpilot analyze scan.csv
```
VulnPilot 会下载最新的公开威胁情报,在本地分析您的 Nessus 扫描结果,并显示应该优先修复的内容。无需 API 密钥。
**文档:** [快速开始](docs/quickstart.md) · [证据包](docs/evidence-packs.md) · [评分机制](docs/scoring.md) · [常见问题](docs/faq.md)
## 截图
**[查看完整的示例报告 →](https://htmlpreview.github.io/?https://github.com/PatchVex/vulnpilot/blob/main/assets/sample-report.html)** —— 这是根据 [`data/sample/sample_nessus.csv`](data/sample/sample_nessus.csv) 生成的真实输出,而非模拟图。
## 问题所在
安全团队通常需要花费数小时手动对扫描结果进行分类。您的 Nessus 导出文件包含数千个发现。CVSS 指出其中数百个是“严重”的。但真正的问题是——哪些漏洞现在正在被积极利用?
当审计来临——SOC 2、ISO 27001、HIPAA、DPDP——问题变成了:*您能证明自己是如何确定优先级并进行修复的吗?*
VulnPilot 利用真实的漏洞利用数据,在几秒钟内回答这两个问题。
## 为什么选择 VulnPilot?
| 相比于 | VulnPilot |
|---|---|
| 仅按 CVSS 评分排序 | KEV + EPSS + CVSS 综合评分 |
| 耗时数小时的手动分类 | 几秒钟内的自动化优先级排序 |
| 为审计证据手忙脚乱 | 一条命令生成审计证据包 |
| 将扫描结果上传到云服务 | 本地优先——数据绝不离开您的计算机 |
| 仅限企业的平台 | 社区预览版——免费且开源 |
### 仅依赖 CVSS 进行优先级排序是分类耗时数小时的原因
一次典型的中型扫描会将**数百个发现标记为 CVSS Critical (9.0+)**。团队无法在这个冲刺阶段修复所有漏洞,因此仅靠 CVSS 无法选出前十个优先项。它还存在两个结构性问题:
- **它忽略了漏洞利用情况。** CVSS 评估的是*一旦被利用*后的严重程度——它并未说明是否真的有人在利用。一个评分为 9.8 但多年未被利用的漏洞,和一个评分为 7.5 但本周正遭到大规模利用的漏洞,其评分可能相同,甚至与现实情况相反。
- **它不会变动。** CVSS 评分在发布时就固定了。随着真实世界漏洞利用活动的变化,EPSS 每天都会重新计算,而一旦 CISA 确认存在积极利用,KEV 就会立即更新——仅靠 CVSS 无法反映出一个沉寂的 CVE 在上周二突然变得热门。
在上面的[示例扫描](#screenshots)中,仅靠 CVSS 就将 6 个发现中的 4 个标记为 Critical (9.0+)——这无法提供将它们相互排序的方法。VulnPilot 的综合评分显示,这 4 个全都在 CISA KEV 中——证实已在野外被利用——并将它们排在 99.7–100 之间,而仅依赖 CVSS 的分类会让您盯着四行“Critical”数据却无从打破僵局。
**VulnPilot 的回答:** 将已确认的漏洞利用 (KEV)、预测的漏洞利用概率 (EPSS) 和严重性 (CVSS) 融合为一个确定的、可重复运行的评分——这样,“什么是 Critical”就变成了“什么是真正紧急的,以及按照什么顺序处理。”
## 工作原理
```
vulnpilot analyze scan.csv
```
输出:
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VulnPilot by PatchVex — Vulnerability Prioritization
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Total findings : 5,482
Unique hosts : 47
Critical : 142
KEV matches : 19
EPSS >= 90% : 31
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Score Priority Host CVE Finding
───────────────────────────────────────────────────────────────────────
1 100.0 CRITICAL NOW 192.168.1.10 CVE-2021-44228 Log4Shell ★KEV
2 100.0 CRITICAL NOW 192.168.1.25 CVE-2023-34362 MOVEit SQL Injection ★KEV
3 99.8 CRITICAL NOW 192.168.1.15 CVE-2020-1472 Zerologon ★KEV
4 99.7 CRITICAL NOW 192.168.1.11 CVE-2021-26084 Confluence RCE ★KEV
5 11.5 LOW 192.168.1.10 N/A SSH Weak Ciphers
★ KEV = CISA Known Exploited Vulnerability — highest remediation priority
based on active exploitation in the wild.
```
VulnPilot 将您的发现与三个数据源进行交叉比对——所有处理均在本地完成:
| 来源 | 它能告诉您什么 |
|---|---|
| **CISA KEV** | 目前已在野外被确认利用 |
| **FIRST EPSS** | 未来 30 天内的漏洞利用概率 |
| **CVSS** | 严重性上下文和基准评分 |
**综合评分 = KEV (40%) + EPSS (35%) + CVSS (15%) + 严重性 (10%)**
## 审计证据包 —— v0.3.0 全新功能
SOC 2 (CC7.1)、ISO 27001 (A.8.8)、HIPAA 和 DPDP 的审计员都会要求同一件事:证明存在一个有记录的、基于风险的漏洞管理流程。最常见的审计差距是,展示了数千个发现,却没有提供关于如何确定优先级的证据。
VulnPilot 只需一条命令即可生成该证据:
```
vulnpilot analyze scan.csv --evidence soc2
```
该证据包包括:
- 扫描元数据——带有时间戳和源文件引用
- 记录在案的优先级划分方法论(KEV / EPSS / CVSS 权重)
- 带有 KEV 标记的优先级发现
- SOC 2 CC7.1 控制映射声明
- 管理层审查和签署区块
输出的是一个整洁的 Markdown 文件——使用您喜欢的工具将其转换为 PDF,然后交给您的审计员。
**目前支持:** SOC 2 (CC7.1)。ISO 27001、DPDP 和 HIPAA 证据包是路线图的下一站。
## 本地扫描历史 —— v0.3.0 全新功能
每次分析运行都会自动记录到位于 `~/.vulnpilot/history.db` 的本地 SQLite 数据库中——该数据库仅存在于您的计算机上,绝不传输。
为什么这很重要:SOC 2 Type II 审计要求提供证据,证明您的流程在 6-12 个月的观察期内是否持续运行。该历史记录无法事后重建。VulnPilot 从您的第一次扫描开始就为您建立证据链。
即将发布的版本将利用此历史记录进行修复验证(`vulnpilot verify`)和趋势报告。
## 为什么坚持本地优先?
许多组织禁止将漏洞扫描数据上传到第三方云服务。VulnPilot 会在您的计算机上本地执行所有分析。
```
Public Threat Intelligence
+-------------------------------+
| CISA KEV FIRST EPSS |
+---------------+---------------+
|
vulnpilot update-feeds
|
~/.vulnpilot/feeds/ (local cache)
|
vulnpilot analyze
|
Nessus CSV (Local Machine Only)
|
Composite Risk Engine
|
Prioritized Findings + Evidence Pack
```
仅下载公开的威胁情报源。无需 API 密钥。您的扫描数据绝不会离开您的计算机。
**文档:** [快速开始](docs/quickstart.md) · [证据包](docs/evidence-packs.md) · [评分机制](docs/scoring.md) · [常见问题](docs/faq.md)
## 安装
```
pip install vulnpilot
```
已在 Python 3.10、3.11 和 3.12 上测试通过。
## 使用说明
```
# 下载最新的 KEV 和 EPSS feeds
vulnpilot update-feeds
# 分析 Nessus CSV 导出文件
vulnpilot analyze scan.csv
# 生成 SOC 2 审计 evidence pack
vulnpilot analyze scan.csv --evidence soc2
# 根据您之前的扫描验证修复情况
vulnpilot verify new_scan.csv
# 所有记录扫描中的 posture 趋势
vulnpilot trend
# 具有自定义输出路径的 evidence pack
vulnpilot analyze scan.csv --evidence soc2 --evidence-out q3_evidence.md
# 导出 HTML 报告
vulnpilot analyze scan.csv --html report.html
# 按总风险显示前 N 个主机
vulnpilot analyze scan.csv --top-hosts 5
# 使用本地 feed 文件
vulnpilot analyze scan.csv --kev ./kev.json --epss ./epss.csv.gz
# 禁用彩色输出(用于 CI pipelines)
vulnpilot --no-colour analyze scan.csv
```
## HTML 报告
生成可共享的、独立的 HTML 报告:
```
vulnpilot analyze scan.csv --html report.html
```
该报告包括:
- 包含 KEV 和 EPSS 亮点的执行摘要
- 带有颜色编码风险评分的优先发现表
- 按总风险排名前 10 的主机及其可视化评分条
**[查看真实的示例报告 →](https://htmlpreview.github.io/?https://github.com/PatchVex/vulnpilot/blob/main/assets/sample-report.html)**
## 评分机制原理
评分算法是确定性的、透明的,并且有完整的文档记录。
| 信号 | 权重 | 来源 |
|---|---|---|
| CISA KEV 匹配 | 40% | 已知在野外被利用 |
| FIRST EPSS 评分 | 35% | 漏洞利用概率 |
| CVSS 基础评分 | 15% | 严重性上下文 |
| 扫描器风险评级 | 10% | Nessus 严重性标签 |
这个综合评分是刻意带有倾向性的。已知被利用的漏洞获得了最大的权重,因为相比于单纯的严重性,积极的漏洞利用是修复优先级更强的预测指标。任何 KEV 发现无论其他因素如何,得分最低都会是 75 分。
权重模型特意保持透明,并可能根据社区反馈和实际使用情况不断演变。
## 隐私设计
- 扫描数据完全在您的本地计算机上处理
- 无需账户
- 绝不进行云端上传
- 没有遥测或分析数据收集
- 无需 API 密钥
- 在初始下载情报源后支持气隙(离线隔离)环境运行
- 扫描历史记录本地存储在 `~/.vulnpilot/history.db` —— 仅限您的计算机,随时可以删除
- 开源 —— 可以检查每一行代码
## 情报源更新
VulnPilot 拉取两个公开数据集:
- **CISA KEV** —— 已知被利用漏洞目录(由 CISA 维护)
- **FIRST EPSS** —— 漏洞利用预测评分系统(由 FIRST.org 每日更新)
情报源会缓存在您计算机的 `~/.vulnpilot/feeds/` 目录下。无需 API 密钥。
**文档:** [快速开始](docs/quickstart.md) · [证据包](docs/evidence-packs.md) · [评分机制](docs/scoring.md) · [常见问题](docs/faq.md)
```
vulnpilot update-feeds
```
GitHub 仓库还通过 GitHub Actions 运行每日自动的情报源同步。
## 支持的扫描器
| 扫描器 | 状态 |
|---|---|
| Nessus (.csv 导出) | ✅ 支持 |
| Qualys | 已计划 |
| Rapid7 | 已计划 |
| OpenVAS | 已计划 |
| Microsoft Defender | 已计划 |
| AWS Inspector | 已计划 |
## 路线图
**v0.1.0 — 社区预览版 ✅**
- [x] Nessus CSV 解析器
- [x] CISA KEV 丰富化
- [x] FIRST EPSS 丰富化
- [x] 综合风险评分
- [x] 终端输出优先级排序
- [x] GitHub Actions 每日情报源自动化
**v0.2.0 — 已发布 ✅**
- [x] HTML 报告导出
**v0.3.0 — 已发布 ✅**
- [x] SOC 2 审计证据包 —— `--evidence soc2`
- [x] 本地扫描历史(验证和趋势功能的基础)
**v0.4.0 — 已发布 ✅**
- [x] 修复验证 —— `vulnpilot verify` (✓ 已验证修复 / ● 仍然开放 / + 新增)
- [x] 扫描范围保护 —— 新扫描中缺失的主机绝不会被计为已修复
- [x] 安全态势趋势 —— `vulnpilot trend`
**v0.5.0 — 下一步**
- [ ] ISO 27001 证据包
- [ ] 证据包内的验证部分
- [ ] 通俗易懂的英文修复指南
**未来计划**
- [ ] DPDP 和 HIPAA 证据包
- [ ] 通俗易懂的英文修复指南
- [ ] 每周摘要
- [ ] Qualys CSV 支持
- [ ] Jira / Slack 集成
未来的开发优先级将由社区反馈和实际使用情况驱动。
## 环境要求
- Python 3.10、3.11 或 3.12
- pip
- 用于更新情报源的互联网连接(初次下载后支持气隙环境使用)
- Nessus .csv 导出文件
## 寻找早期用户
如果您运行 Nessus 或 Qualys,并愿意在真实扫描上测试 VulnPilot
(欢迎提供非生产环境的导出数据),您的反馈将直接影响路线图。
请提交一个 [GitHub issue](https://github.com/PatchVex/vulnpilot/issues)、发起一个
[讨论](https://github.com/PatchVex/vulnpilot/discussions),或者发送邮件至
hello@patchvex.com。您十分钟的真诚反馈比
一百颗星更有价值。
## 贡献
欢迎提交问题、Bug 报告和 Pull Request。
- **Bug 报告和功能请求:** [github.com/PatchVex/vulnpilot/issues](https://github.com/PatchVex/vulnpilot/issues)
- **安全漏洞披露:** security@patchvex.com
适合新手的任务在 Issue 跟踪器中被标记为 `good first issue`。在开启新 Issue 之前,请先搜索现有的 Issue。
## 致谢
VulnPilot 使用了以下机构公开发布的威胁情报:
- [CISA Known Exploited Vulnerabilities Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
- [FIRST Exploit Prediction Scoring System (EPSS)](https://www.first.org/epss/)
感谢这两个组织维护这些社区资源。
## 许可证
MIT License —— 详情请参阅 [LICENSE](https://github.com/PatchVex/vulnpilot/blob/main/LICENSE)。
可免费使用、修改和分发。允许商业用途。
## 关于 PatchVex
VulnPilot 由 [PatchVex](https://patchvex.com) 构建和维护。
PatchVex 为安全和 DevSecOps 团队打造隐私优先的工作流工具。我们的产品帮助工程师花更少的时间管理漏洞数据,将更多的时间用于修复真正重要的问题。
- 网站[patchvex.com](https://patchvex.com)
- 邮箱:hello@patchvex.com
- GitHub:[github.com/PatchVex](https://github.com/PatchVex)
Terminal output — |
HTML report — |
该报告包括:
- 包含 KEV 和 EPSS 亮点的执行摘要
- 带有颜色编码风险评分的优先发现表
- 按总风险排名前 10 的主机及其可视化评分条
**[查看真实的示例报告 →](https://htmlpreview.github.io/?https://github.com/PatchVex/vulnpilot/blob/main/assets/sample-report.html)**
## 评分机制原理
评分算法是确定性的、透明的,并且有完整的文档记录。
| 信号 | 权重 | 来源 |
|---|---|---|
| CISA KEV 匹配 | 40% | 已知在野外被利用 |
| FIRST EPSS 评分 | 35% | 漏洞利用概率 |
| CVSS 基础评分 | 15% | 严重性上下文 |
| 扫描器风险评级 | 10% | Nessus 严重性标签 |
这个综合评分是刻意带有倾向性的。已知被利用的漏洞获得了最大的权重,因为相比于单纯的严重性,积极的漏洞利用是修复优先级更强的预测指标。任何 KEV 发现无论其他因素如何,得分最低都会是 75 分。
权重模型特意保持透明,并可能根据社区反馈和实际使用情况不断演变。
## 隐私设计
- 扫描数据完全在您的本地计算机上处理
- 无需账户
- 绝不进行云端上传
- 没有遥测或分析数据收集
- 无需 API 密钥
- 在初始下载情报源后支持气隙(离线隔离)环境运行
- 扫描历史记录本地存储在 `~/.vulnpilot/history.db` —— 仅限您的计算机,随时可以删除
- 开源 —— 可以检查每一行代码
## 情报源更新
VulnPilot 拉取两个公开数据集:
- **CISA KEV** —— 已知被利用漏洞目录(由 CISA 维护)
- **FIRST EPSS** —— 漏洞利用预测评分系统(由 FIRST.org 每日更新)
情报源会缓存在您计算机的 `~/.vulnpilot/feeds/` 目录下。无需 API 密钥。
**文档:** [快速开始](docs/quickstart.md) · [证据包](docs/evidence-packs.md) · [评分机制](docs/scoring.md) · [常见问题](docs/faq.md)
```
vulnpilot update-feeds
```
GitHub 仓库还通过 GitHub Actions 运行每日自动的情报源同步。
## 支持的扫描器
| 扫描器 | 状态 |
|---|---|
| Nessus (.csv 导出) | ✅ 支持 |
| Qualys | 已计划 |
| Rapid7 | 已计划 |
| OpenVAS | 已计划 |
| Microsoft Defender | 已计划 |
| AWS Inspector | 已计划 |
## 路线图
**v0.1.0 — 社区预览版 ✅**
- [x] Nessus CSV 解析器
- [x] CISA KEV 丰富化
- [x] FIRST EPSS 丰富化
- [x] 综合风险评分
- [x] 终端输出优先级排序
- [x] GitHub Actions 每日情报源自动化
**v0.2.0 — 已发布 ✅**
- [x] HTML 报告导出
**v0.3.0 — 已发布 ✅**
- [x] SOC 2 审计证据包 —— `--evidence soc2`
- [x] 本地扫描历史(验证和趋势功能的基础)
**v0.4.0 — 已发布 ✅**
- [x] 修复验证 —— `vulnpilot verify` (✓ 已验证修复 / ● 仍然开放 / + 新增)
- [x] 扫描范围保护 —— 新扫描中缺失的主机绝不会被计为已修复
- [x] 安全态势趋势 —— `vulnpilot trend`
**v0.5.0 — 下一步**
- [ ] ISO 27001 证据包
- [ ] 证据包内的验证部分
- [ ] 通俗易懂的英文修复指南
**未来计划**
- [ ] DPDP 和 HIPAA 证据包
- [ ] 通俗易懂的英文修复指南
- [ ] 每周摘要
- [ ] Qualys CSV 支持
- [ ] Jira / Slack 集成
未来的开发优先级将由社区反馈和实际使用情况驱动。
## 环境要求
- Python 3.10、3.11 或 3.12
- pip
- 用于更新情报源的互联网连接(初次下载后支持气隙环境使用)
- Nessus .csv 导出文件
## 寻找早期用户
如果您运行 Nessus 或 Qualys,并愿意在真实扫描上测试 VulnPilot
(欢迎提供非生产环境的导出数据),您的反馈将直接影响路线图。
请提交一个 [GitHub issue](https://github.com/PatchVex/vulnpilot/issues)、发起一个
[讨论](https://github.com/PatchVex/vulnpilot/discussions),或者发送邮件至
hello@patchvex.com。您十分钟的真诚反馈比
一百颗星更有价值。
## 贡献
欢迎提交问题、Bug 报告和 Pull Request。
- **Bug 报告和功能请求:** [github.com/PatchVex/vulnpilot/issues](https://github.com/PatchVex/vulnpilot/issues)
- **安全漏洞披露:** security@patchvex.com
适合新手的任务在 Issue 跟踪器中被标记为 `good first issue`。在开启新 Issue 之前,请先搜索现有的 Issue。
## 致谢
VulnPilot 使用了以下机构公开发布的威胁情报:
- [CISA Known Exploited Vulnerabilities Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)
- [FIRST Exploit Prediction Scoring System (EPSS)](https://www.first.org/epss/)
感谢这两个组织维护这些社区资源。
## 许可证
MIT License —— 详情请参阅 [LICENSE](https://github.com/PatchVex/vulnpilot/blob/main/LICENSE)。
可免费使用、修改和分发。允许商业用途。
## 关于 PatchVex
VulnPilot 由 [PatchVex](https://patchvex.com) 构建和维护。
PatchVex 为安全和 DevSecOps 团队打造隐私优先的工作流工具。我们的产品帮助工程师花更少的时间管理漏洞数据,将更多的时间用于修复真正重要的问题。
- 网站[patchvex.com](https://patchvex.com)
- 邮箱:hello@patchvex.com
- GitHub:[github.com/PatchVex](https://github.com/PatchVex)标签:GPT, Nessus, Python, 威胁情报, 安全运营, 开发者工具, 扫描框架, 文档结构分析, 无后门, 漏洞管理, 逆向工具