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技术栈, 代码示例, 多模态安全, 数据分析, 文档结构分析, 无后门, 智能体, 漏洞管理, 逆向工具