shahedadel/Intrusion_Alert_Explainer
GitHub: shahedadel/Intrusion_Alert_Explainer
一款将IDS告警智能映射到CVE漏洞的网络安全工具,通过TF-IDF检索与Snort规则集成,自动提供CVSS评分和CWE修复建议,帮助安全团队快速理解和响应入侵告警。
Stars: 0 | Forks: 0
# 入侵告警解释工具
一款网络安全工具,利用 TF-IDF 排名检索、Snort 规则集成、CVSS 严重性评分以及基于 CWE 的修复指导,将 IDS 告警映射到 CVE 漏洞。
**作者:** 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 条关键词回退规则)
- 归一化置信度评分
- 在数据集中未找到 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(如果存在),否则对告警进行 tokenize 处理
5. 通过 TF-IDF 分数 × CVSS 提升 × Snort 提升对 CVE 进行排名
6. 计算归一化置信度评分
7. 生成基于 CWE 的建议
8. 打印结构化解释并将其追加到 `output.txt`
## 评估结果
运行 `eval` 将在 10 种真实告警模式下对系统进行测试:
| 指标 | 结果 |
|---|---|
| Hit@3(前 3 个结果中包含 ≥1 个相关结果) | 10/10 (100%) |
| Precision@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 告警分析工作流程。*
标签:CISA项目, CVE映射, CVSS评分, CWE弱点, GPT, NLP, NVD, PB级数据处理, Python, SecOps, TF-IDF, 云安全架构, 入侵检测系统, 告警分析, 威胁情报, 安全数据湖, 安全评分, 安全运维, 安全防护建议, 开发者工具, 文本检索, 无后门, 漏洞管理, 缓冲区溢出, 网络安全, 规则匹配, 逆向工具, 隐私保护