Jaffersadiq0728/ai_cyber_threat_intelligence

GitHub: Jaffersadiq0728/ai_cyber_threat_intelligence

一个纯本地运行的端到端 AI 网络威胁情报系统,结合机器学习异常检测、NLP 日志分析和图学习方法,对 CIC-IDS-2017 网络流量进行入侵检测、分类和实时可视化,并自动映射 MITRE ATT&CK 框架。

Stars: 0 | Forks: 0

# AI 网络威胁情报系统 ### 日志 NLP 异常检测 + 图学习 | CIC-IDS-2017 一个完整的端到端网络安全 AI 流水线,通过使用机器学习、NLP 模式匹配和图分析来检测、分类和可视化 网络入侵—— **无需 API 密钥、无需外部服务、无需预训练模型**。 ## 架构 ``` CIC-IDS-2017 CSV │ ▼ ┌─────────────────────────┐ │ Preprocessing │ Strip, clean, scale, encode labels │ cleaner.py │ └──────────┬──────────────┘ │ ┌─────▼─────┐ ┌───────────────────────┐ │ ML Models│ │ NLP Log Analyser │ │ │ │ │ │ Isolation │ │ Flow → log sentence │ │ Forest │ │ TF-IDF vectorisation │ │ (anomaly) │ │ Cosine similarity │ │ │ │ to attack templates │ │ Random │ │ MITRE ATT&CK mapping │ │ Forest │ └───────────┬────────────┘ │(classify) │ │ └─────┬─────┘ │ │ ◄──── MERGE ───────┘ ▼ ┌─────────────┐ │ Attack Graph │ IP nodes, flow edges │ NetworkX │ PageRank suspicion scoring └──────┬───────┘ │ ▼ ┌──────────────┐ │ Flask + │ REST API + WebSocket │ Socket.IO │ Live alert streaming └──────┬───────┘ │ ▼ ┌──────────────┐ │ Dashboard │ D3.js force graph │ (HTML/JS) │ Real-time alert feed └──────────────┘ ``` ## 快速开始 ### 1. 安装依赖 ``` pip install -r requirements.txt ``` ### 2. 使用合成数据运行(无需下载) ``` python main.py ``` ### 3. 打开仪表板 ``` http://localhost:5000 ``` ## 使用真实 CIC-IDS-2017 数据 1. 从以下地址下载:https://www.unb.ca/cic/datasets/ids-2017.html 2. 将 CSV 文件放入 `data/` 目录中: data/ ├── Monday-WorkingHours.pcap_ISCX.csv ├── Tuesday-WorkingHours.pcap_ISCX.csv ├── Wednesday-workingHours.pcap_ISCX.csv ├── Thursday-WorkingHours-Morning-WebAttacks.pcap_ISCX.csv ├── Thursday-WorkingHours-Afternoon-Infilteration.pcap_ISCX.csv ├── Friday-WorkingHours-Morning.pcap_ISCX.csv ├── Friday-WorkingHours-Afternoon-DDos.pcap_ISCX.csv └── Friday-WorkingHours-Afternoon-PortScan.pcap_ISCX.csv 3. 在真实数据上重新训练: python main.py --retrain --rows 50000 ## 命令行选项 | 标志 | 描述 | |-----------------|------------------------------------------------| | `--retrain` | 强制重新训练模型(忽略缓存) | | `--train-only` | 训练 + 分析,跳过 Web 服务器 | | `--server-only` | 跳过训练,提供现有结果 | | `--rows N` | 要分析的数据流数量(默认:2000) | | `--port N` | 仪表板服务器端口(默认:5000) | ## 项目结构 ``` ai_cyber_threat_intelligence/ ├── main.py ← Entry point ├── server.py ← Flask + Socket.IO server ├── requirements.txt │ ├── data/ │ ├── generate_sample.py ← Synthetic data generator │ └── sample_cicids2017.csv ← Generated sample (auto-created) │ ├── src/ │ ├── preprocessing/ │ │ └── cleaner.py ← Data loading, cleaning, feature engineering │ │ │ ├── models/ │ │ └── anomaly_detector.py ← Isolation Forest + Random Forest │ │ │ ├── nlp/ │ │ └── log_analyser.py ← TF-IDF NLP + MITRE ATT&CK mapping │ │ │ ├── graph/ │ │ └── network_graph.py ← NetworkX attack graph + suspicion scoring │ │ │ └── engine/ │ └── threat_engine.py ← Orchestration pipeline │ ├── dashboard/ │ └── index.html ← Live threat intelligence dashboard │ ├── output/ │ ├── results.json ← Full inference results │ └── threat_detector.pkl ← Cached model │ └── reports/ └── threat_report.json ← Human-readable threat report ``` ## 模型 ### 1. Isolation Forest(异常评分) - **仅在良性流量上**进行训练,以学习正常基线 - 为每个数据流分配一个 [0, 1] 范围内的异常分数 - 不需要标记数据——作为无监督检测器工作 ### 2. Random Forest 分类器(攻击分类) - 在完整的带标签 CIC-IDS-2017 数据集上进行训练 - 14 类分类(BENIGN + 13 种攻击类型) - `class_weight='balanced'` 处理类别不平衡问题 - 提供特征重要性以供可解释性分析 ### 3. NLP 日志分析器(模式匹配) - 将原始流记录转换为人类可读的“日志句子” - 从精心策划的攻击模板语料库构建 TF-IDF 词汇表 - 与已知攻击模式进行余弦相似度评分 - 提供 MITRE ATT&CK 技术和战术映射 - 为每个告警生成人类可读的解释 ### 4. 攻击图(威胁情报) - 有向图:IP 节点,以威胁分数加权的流边 - PageRank 中心性用于识别核心攻击者 - 入/出度分析,用于受害者与攻击者分类 - 可疑度评分:结合 PageRank + 平均威胁分数 + 唯一攻击类型 - 导出为 D3.js 力导向图供仪表板使用 ## 仪表板功能 - **实时告警信息流** ——带有严重性颜色编码的实时流 - **异常分数图表** ——带有阈值注释的时间序列 - **D3 力导向图** ——具有可拖动节点的交互式攻击网络 - **MITRE ATT&CK 热力图** ——战术频率细分 - **模型性能仪表** ——准确率和 F1 分数显示 - **告警详情抽屉** ——点击任何告警以查看完整的丰富信息 ## 可检测的攻击类型 | 攻击 | MITRE 技术 | 战术 | |------------------|---------------------|---------------------| | PortScan | T1046 | Discovery | | DoS Hulk | T1499 | Impact | | DDoS | T1498 | Impact | | FTP-Patator | T1110 | Credential Access | | SSH-Patator | T1110.003 | Credential Access | | Bot | T1071 | Command & Control | | Web Attack – XSS | T1059.007 | Execution | | SQL Injection | T1190 | Initial Access | | Infiltration | T1021 | Lateral Movement | | DoS slowloris | T1499.001 | Impact | ## 除列出的软件包外无外部依赖 - ✅ 无需 OpenAI / Claude / 任何 LLM API 调用 - ✅ 无需下载预训练模型 - ✅ 在推理时无需网络连接 - ✅ 所有算法均使用 scikit-learn 原语从头实现 - ✅ 100% 本地可执行
标签:Apex, Beacon Object File, CIC-IDS-2017, Cloudflare, Flask, IP 地址批量处理, MITRE ATT&CK, NetworkX, NLP, PageRank, Python, Socket.IO, TF-IDF, 人工智能, 余弦相似度, 图学习, 图神经网络, 孤立森林, 安全数据科学, 异常检测, 数据预处理, 文本向量化, 无后门, 无外部依赖, 机器学习, 流量分类, 特权检测, 用户模式Hook绕过, 突变策略, 端到端, 网络威胁情报, 网络安全, 网络安全可视化, 网络流量分析, 逆向工具, 随机森林, 隐私保护, 零样本学习