PatchVex/vulnpilot

GitHub: PatchVex/vulnpilot

VulnPilot 是一款本地优先的漏洞优先级排序工具,通过融合 KEV、EPSS 和 CVSS 评分帮助安全团队从扫描结果中快速锁定真正需要优先修复的漏洞。

Stars: 0 | Forks: 0

# VulnPilot **利用真实的漏洞利用情报对漏洞进行优先级排序 —— 而不仅仅是严重性评分。** 在本地运行。您的数据绝不会离开您的计算机。 [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/PatchVex/vulnpilot/blob/main/LICENSE) [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://python.org) [![PyPI version](https://img.shields.io/pypi/v/vulnpilot.svg)](https://pypi.org/project/vulnpilot/) [![Status: Community Preview](https://img.shields.io/badge/status-community%20preview-orange.svg)]() ## 快速开始 ``` 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) ## 截图
VulnPilot terminal output showing prioritized findings, KEV matches, and a composite risk score table

Terminal output — vulnpilot analyze scan.csv

VulnPilot self-contained HTML report with summary cards, executive summary, and a prioritized findings table

HTML report — vulnpilot analyze scan.csv --html report.html

**[查看完整的示例报告 →](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 ``` VulnPilot 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, 威胁情报, 安全运营, 开发者工具, 扫描框架, 文档结构分析, 无后门, 漏洞管理, 逆向工具