shahedadel/CVE_Threat_Intelligence_Analysis_System
GitHub: shahedadel/CVE_Threat_Intelligence_Analysis_System
一款利用TF-IDF检索将IDS入侵告警映射到NVD CVE漏洞并提供CVSS评分与CWE修复建议的网络安全信息检索系统。
Stars: 0 | Forks: 0
# CVE 威胁情报分析系统
一款网络安全工具,利用 TF-IDF 将 IDS 告警映射到 CVE 漏洞
排名检索、Snort 规则集成、CVSS 严重性评分以及基于 CWE 的
修复指导。
**作者:** Shahed Alabdulrahman & Germaine Hounakey
## 功能
- 解析真实的 NVD CVE 数据集(压缩的 JSON,43,943 条记录)
- 提取 CVE ID、描述、CVSS 分数和 CWE 弱点类型
- 支持:
- 直接 CVE 查询(例如,CVE-2025-XXXX)
- 自然语言 IDS 告警
- Snort 风格的告警(例如,ET WEB_SERVER SQL Injection Attempt)
- 具有长度归一化的 TF-IDF 加权排名
- CVSS 严重性提升(CRITICAL ×1.30 / HIGH ×1.15 / MEDIUM ×1.05)
- Snort .rules 文件集成,包含 CVE 引用和 token 重叠匹配
- 基于 CWE 的推荐引擎(19 种 CWE 类型,16 条 keyword fallback 规则)
- 归一化的置信度得分
- 在数据集中未找到 CVE 时的优雅降级处理
- 内置评估套件(Hit@3, Precision@1)
- 结构化的时间戳输出日志
## 如何运行
```
python IAE_main.py
```
确保 `CVE_data.json.gz` 位于同一目录下。
可选择将 `snort_rules.rules` 放在同一目录下以启用 Snort 集成。
## 命令
| 输入 | 动作 |
|---|---|
| `CVE-2024-1234` | 直接 CVE 查询 |
| 任意告警文本 | TF-IDF + Snort 检索 |
| `eval` | 运行评估套件 |
| `exit` | 退出 |
## 示例输入
```
CVE-2025-3456
```
```
ET WEB_SERVER SQL Injection Attempt -- select from
```
```
buffer overflow in SSH authentication module
```
## 输出
系统将生成:
- CVE ID
- 严重性(包含 CVSS 分数)
- CWE 类型
- 置信度得分
- 匹配的 Snort 规则(如适用)
- 漏洞描述
- 基于 CWE 的安全建议
### 示例:
```
┌─ RESULT #1 (Direct CVE Match)
│ CVE ID : CVE-2025-3456
│ Severity : HIGH (CVSS 8.1)
│ CWE : CWE-89
│ Confidence: 100%
│
│ Snort Rules Matched:
│ SID 1001 [web-application-attack] — ET WEB_SERVER SQL Injection Attempt
│ match=CVE ref cve_refs=CVE-2025-3456
│
│ Summary:
│ ...
│
│ Recommendations:
│ • Use parameterised queries and validate all database inputs.
```
## 工作原理
1. 加载 CVE 数据集并构建 TF-IDF 索引
2. 加载 Snort 规则文件(如存在)
3. 将告警与 Snort 规则进行匹配(CVE 引用或 token 重叠)
4. 从告警中提取 CVE(如存在),否则对告警进行分词
5. 根据 TF-IDF 得分 × CVSS 提升 × Snort 提升对 CVE 进行排名
6. 计算归一化的置信度得分
7. 生成基于 CWE 的建议
8. 打印结构化的解释并附加到 output.txt
## 评估结果
运行 `eval` 将在 10 种真实场景的告警模式上测试系统:
| 指标 | 结果 |
|---|---|
| Hit@3(前 3 名中至少有 1 个相关结果) | 10/10 (100%) |
| Precision@1(排名第 1 的结果相关) | 7/10 (70%) |
## 项目结构
```
intrusion_explainer/
├── IAE_main.py ← main script
├── CVE_data.json.gz ← NVD CVE dataset
├── snort_rules.rules ← Snort rules file (optional)
├── output.txt ← auto-generated alert log
└── README.md
```
*本项目是一个教育性质的网络安全信息检索系统,
灵感来源于现实世界的 IDS 告警分析工作流。*
标签:GPT, NLP, Python, TF-IDF, 威胁情报, 开发者工具, 无后门, 漏洞管理, 网络安全, 逆向工具, 隐私保护