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绕过, 突变策略, 端到端, 网络威胁情报, 网络安全, 网络安全可视化, 网络流量分析, 逆向工具, 随机森林, 隐私保护, 零样本学习