hair-ball-28/cve-to-my-stack-translator
GitHub: hair-ball-28/cve-to-my-stack-translator
该项目帮助小型 IT 团队输入软件资产清单后,自动匹配相关 CVE 并按 CVSS、EPSS 和 KEV 三项指标进行优先级排序,解决海量漏洞警报难以人工逐条核查的问题。
Stars: 0 | Forks: 0
# cve-to-my-stack-translator
CyberHack 2026 — CVE-to-My-Stack Translator
## 项目概述
**CVE-to-My-Stack Translator** 是一款专为 CyberHack 2026 开发的网络安全工具。
本项目旨在帮助小型 IT 团队了解哪些 CVE 真正与他们的软件资产相关。用户无需手动检查数百个漏洞,只需输入资产列表,即可收到按优先级排序的 CVE 列表。
该工具能帮助将海量的漏洞数据转化为简单且实用的操作清单。
## 我们解决的问题
小型 IT 团队通常每天会收到大量 CVE 警报。然而,他们可能没有足够的时间或安全知识来逐一核查哪些漏洞会影响其系统。
我们的解决方案允许用户输入软件资产,例如:
- Windows Server 2022
- Google Chrome
- OpenSSL
- Apache HTTP Server
- Microsoft 365
随后,该工具会将这些资产与漏洞数据进行比对,并优先展示最重要的结果。
## 主要功能
- 使用 Flask 构建的 Web 界面
- 用于输入软件资产的文本框
- 产品名称标准化
- 针对相似产品名称的模糊匹配
- 将 CVE 与受影响的产品进行匹配
- 提取 CVSS 评分
- 查询 EPSS 漏洞利用概率评分
- CISA KEV 已知被利用漏洞检查
- 通俗易懂的风险摘要
- 结果按紧急程度排序
- 默认显示前 20 条结果
- 生成 CSV 输出
## 前 20 条结果
应用程序仅显示**前 20 条结果**。
这使得输出结果更易于阅读,并帮助用户优先关注最紧急的漏洞。结果会进行排序,确保风险较高的漏洞排在最前面。
## 工作原理
1. 用户在网页中输入软件资产列表。
2. Flask 应用接收该资产列表。
3. 资产被发送至漏洞分析 pipeline。
4. 程序对产品名称进行标准化处理。
5. 程序在 CVE 数据中搜索匹配的漏洞。
6. 将 EPSS 评分和 KEV 状态添加到结果中。
7. 结果按紧急程度进行排序。
8. 网页展示前 20 条结果。
9. 结果也可保存为 CSV 文件。
## 风险优先级排序
该工具使用以下指标对漏洞进行优先级排序:
### KEV
KEV 代表 **Known Exploited Vulnerabilities**(已知被利用漏洞)。如果某个 CVE 存在于 KEV 目录中,意味着它已被确认在野外被利用。
### EPSS
EPSS 代表 **Exploit Prediction Scoring System**(漏洞利用预测评分系统)。它用于评估漏洞被利用的概率。
### CVSS
CVSS 代表 **Common Vulnerability Scoring System**(通用漏洞评分系统)。它提供一个 0 到 10 的严重程度评分。
应用程序利用这些数值,将最紧急的漏洞排在最前面。
## 项目结构
```
cve-to-my-stack-translator/
│
├── CyberHack2026Soebit/
│ ├── app.py
│ ├── bug_buster.py
│ ├── templates/
│ │ └── index.html
│ └── output_results.csv
│
├── cve_translator.py
├── README.md
├── LICENSE
└── .gitignore
```
## 使用的技术
- Python
- Flask
- HTML
- CSS
- Pandas
- RapidFuzz
- Tabulate
## 安装说明
克隆代码库:
```
git clone https://github.com/YOUR-USERNAME/cve-to-my-stack-translator.git
```
进入项目文件夹:
```
cd cve-to-my-stack-translator
```
创建虚拟环境:
```
python -m venv .venv
```
激活虚拟环境。
在 Windows 上:
```
.venv\Scripts\activate
```
在 macOS 或 Linux 上:
```
source .venv/bin/activate
```
安装所需的库:
```
pip install flask pandas rapidfuzz tabulate
```
## 运行应用程序
进入应用程序文件夹:
```
cd CyberHack2026Soebit
```
运行 Flask 应用:
```
python app.py
```
在浏览器中打开应用:
```
http://127.0.0.1:5000
```
## 所需的数据文件
本项目使用本地的漏洞数据文件。
所需的示例文件:
```
nvdcve-2.0-2026.json
known_exploited_vulnerabilities.json
epss_scores-2026-05-19.csv
```
这些文件应放置在与 Python 脚本相同的文件夹中,或者应在代码中更新文件路径。
## 示例输入
```
Microsoft 365 Apps for Business
Windows Server 2022
Windows 10 Pro
Adobe Acrobat Reader DC
Cisco IOS XE
VMware vSphere
Google Chrome
OpenSSL
Apache HTTP Server
Zoom
WordPress
Moodle
```
## 示例输出
结果表格包括:
- CVE ID
- 资产
- CPE 匹配
- CVSS 评分
- EPSS 评分
- EPSS 百分位
- KEV 状态
- 描述
- 风险摘要
## 局限性
- 该工具依赖于本地的 CVE、KEV 和 EPSS 数据文件。
- 如果缺少数据文件,分析将无法运行。
- 产品匹配基于字典和模糊匹配,因此某些不常见的名称可能无法正确匹配。
- 特定版本的匹配功能有限。
- Web 界面目前仅显示前 20 条结果。
- Flask 服务器仅供演示和开发使用,不适用于生产环境部署。
## 未来改进
- 添加查看所有结果的选项
- 改进版本范围匹配
- 增加资产列表的文件上传功能
- 增加 Excel 和 PDF 导出
- 增加图表和仪表盘视图
- 提高 CPE 匹配准确性
- 增加 CVE、KEV 和 EPSS 来源的实时更新
- 增加用户登录和已保存的扫描历史记录
## 赛事
本项目的创建是为了参加:
**CyberHack 2026 — 国家级网络安全黑客马拉松**
举办地点为 **UWS London Campus**。
## 致谢
感谢 CyberHack 2026 的组织者、导师、评委、志愿者和合作伙伴创造了这个机会。
特别感谢 Bug Busters 团队在整个挑战赛中的团队合作、问题解决和协同努力。
## 许可证
本项目基于 MIT 许可证授权。
标签:CVE匹配, Flask, GPT, 多模态安全, 智能体, 漏洞管理, 逆向工具, 风险量化