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, 云安全架构, 入侵检测系统, 告警分析, 威胁情报, 安全数据湖, 安全评分, 安全运维, 安全防护建议, 开发者工具, 文本检索, 无后门, 漏洞管理, 缓冲区溢出, 网络安全, 规则匹配, 逆向工具, 隐私保护