dhairya221b/cve-to-my-stack
GitHub: dhairya221b/cve-to-my-stack
一款基于资产清单自动匹配 NVD、CISA KEV 和 EPSS 数据并进行漏洞优先级排序的安全运维工具。
Stars: 0 | Forks: 0
# CVE-to-My-Stack 翻译器
### CyberHack 2026 — 团队项目 1
## 快速开始
```
# 1. 安装 dependencies
pip install -r requirements.txt
# 2. 将预下载的 data 文件放入 ./data/
# - CVE-2024.json
# - known_exploited_vulnerabilities.json
# - epss_scores-YYYY-MM-DD.csv.gz
# 3. 运行 pipeline
python main.py
# 附带选项
python main.py --asset-list sample_asset_list.txt --year 2024 --output report.csv --top 30
```
## 项目结构
| 文件 | 描述 |
|------|-------------|
| `data_loader.py` | 从磁盘加载 NVD CVE JSON、CISA KEV、EPSS 分数和资产列表 |
| `normalizer.py` | 通过模糊匹配将非正式产品名称映射到 CPE vendor:product 标识符 |
| `matcher.py` | 扫描 CVE 条目并将其与规范化后的资产进行匹配 |
| `ranker.py` | 使用 EPSS/KEV 数据丰富匹配结果,并按紧急程度评分进行排名 |
| `output.py` | 生成风险描述语句、CSV 报告和控制台表格 |
| `main.py` | Pipeline 入口点 — 通过 CLI 将所有模块串联在一起 |
| `app.py` | Flask Web 界面 — 运行并打开 http://localhost:8000 |
| `templates/` | Web 仪表板的前端 HTML |
| `setup_data.sh` | 一键下载所有所需的数据源 |
## 模块接口
```
data_loader → [assets, nvd_cves, kev_set, epss_dict]
↓ ↓ ↓
normalizer → matcher → ranker → output
```
每个模块都有一个自测功能。运行 `python .py` 进行独立测试。
## 数据文件夹布局
```
data/
├── CVE-2024.json # Member 1 reads this
├── CVE-2025.json # (optional)
├── known_exploited_vulnerabilities.json # Member 1 reads this
├── epss_scores-2026-06-03.csv.gz # Member 1 reads this
└── official-cpe-dictionary_v2.3.xml # Member 2 references this
```
## 已知限制(用于您的演示)
1. **静默遗漏** — 如果产品名称映射到了错误的 CPE,其 CVE 将不会显示。且没有任何错误提示。
2. **EPSS 是概率性的** — 低 EPSS ≠ 安全。它仅表示尚未观察到大规模的利用行为。
3. **KEV 并非详尽无遗** — 未包含在 KEV 中的 CVE 仍可能正在被积极利用。
4. **NVD 数据补全缺口** — 截至 2026 年,NIST 仅选择性地补全部分 CVE 数据。某些条目缺乏 CPE 数据。
5. **仅支持精确版本匹配** — MVP 版本中尚未实现版本范围匹配。
标签:CVE优先级评估, Flask, GPT, Python, Web技术栈, 代码示例, 多模态安全, 数据分析, 文档结构分析, 无后门, 智能体, 漏洞管理, 逆向工具