Anish-Kanna/Hybrid-Transformer-CNN-Neuro-Symbolic-Explainable-AI-for-Cyber-Threat-Intelligence
GitHub: Anish-Kanna/Hybrid-Transformer-CNN-Neuro-Symbolic-Explainable-AI-for-Cyber-Threat-Intelligence
融合 CNN-Transformer 与 SHAP 的网络威胁情报可解释检测系统,兼顾高精度与对抗鲁棒性。
Stars: 35 | Forks: 0
# 🛡️ 混合 CNN-Transformer 神经符号可解释 AI 用于网络威胁情报:提升透明度与对抗鲁棒性
### 网络威胁情报的可解释 AI
**工程学院,日纳达·萨加尔大学**
[](https://www.python.org/)
[](https://pytorch.org/)
[](https://shap.readthedocs.io/)
[](https://scikit-learn.org/)
[](LICENSE)
**具备可解释性、对抗鲁棒性与实时推理的高级入侵检测**
`入侵检测` · `可解释人工智能` · `Transformer 网络` · `对抗训练` · `网络安全`
## 🔭 概述
现代入侵检测系统(IDS)虽然实现了高准确率,但如同“黑盒”——安全分析师无法理解 *为何* 某流量被标记为恶意。这在 SOC 运营中造成了关键的信任缺口。与此同时,标准机器学习模型极易受到对抗性扰动的影响:攻击者可以构造细微的流量修改来欺骗检测器,而对人类用户来说这些修改不可察觉。
**XAI-CTI** 通过以下方式解决这一双重挑战:
- 结合 CNN-Transformer 混合架构,实现高精度的流量分类
- 基于 SHAP 的特征归因,实时解释模型决策
- 对抗训练,使鲁棒性达到 88%(相比之下标准模型仅为 65%)
- 轻量级推理(每样本 2-5 毫秒),适用于生产级 SOC 部署
最终成果是一个**可解释、鲁棒、生产级 IDS**,安全团队可以理解、信任并据此采取行动。
`网络入侵检测` · `可解释人工智能` · `对抗鲁棒性` · `实时分析` · `威胁情报`
## 📋 目录
1. [问题陈述](#1--problem-statement)
2. [ proposed approach](#2--proposed-approach)
3. [系统架构](#3--system-architecture)
4. [核心原则](#4--core-principles)
5. [技术实现](#5--technical-implementation)
6. [结果与性能](#6--results--performance)
7. [可解释性方法](#7--explainability-methods)
8. [对抗鲁棒性](#8--adversarial-robustness)
9. [文件结构与用法](#9--file-structure--usage)
10. [项目团队](#10--project-team)
## 1. 🔍 问题陈述
### 当前 IDS 的三个关键缺口
| 问题 | 影响 | XAI-CTI 解决方案 |
|------|------|------------------|
| **黑盒预测** | 分析师无法验证告警,误报疲劳严重 | SHAP + 符号化解释 |
| **对抗脆弱性** | 攻击者构造规避流量;扰动下准确率下降 30% | 对抗训练 → 88% 鲁棒性 |
| **推理缓慢** | 批处理导致实时响应延迟 | 单样本 2-5ms 预测 |
### 研究问题
*我们能否构建一个同时具备 **高精度、可解释、对抗鲁棒且可在真实 SOC 工作流中实时部署** 的入侵检测系统?*
## 2. 🏗️ proposed approach
### 核心创新
**XAI-CTI** 结合三种互补的 AI 技术,实现 **透明且鲁棒的入侵检测**:
网络流量特征(79 维)
↓
├─ 混合 CNN-Transformer 模型(96.4% 准确率)
├─ SHAP 特征归因层(实时特征重要性评分)
└─ 对抗训练(攻击下 88% 鲁棒性)
↓
预测 + 置信度 + 解释 + 威胁等级
### 架构概览与工作流
原始 CSV(CIC-IDS 数据集)
│
▼
preprocessing.py
├─ 去除列名空白
├─ 标签编码:BENIGN → 0,ATTACK → 1
├─ 删除 NaN / Inf 值
├─ StandardScaler 归一化
└─ 80/20 训练-测试分割 → PyTorch 张量
│
▼
XAI_CTI_Model(model.py)
├─ Conv1D → 提取局部特征模式
├─ TransformerEncoder → 全局特征关系
└─ Linear(32 → 2) → 类别对数
│
┌────┴────────────────────┐
▼ ▼
标准训练 对抗训练(FGSM)
(train_gpu.py) (train_adversarial.py)
│ │
▼ ▼
xai_cti_model.pth xai_cti_model_adv.pth
│
┌────────────────────┼
▼ ▼
SHAP 解释器 符号规则
(explain_shap.py) (symbolic.py)
shap_summary.png 威胁等级
### 设计理念
✅ **永不信任,始终验证**——多信号投票决策
✅ **设计即可解释**——各层均提供解释
✅ **鲁棒优先**——从第一天起就进行对抗训练
✅ **生产就绪**——亚 60ms 推理,轻量级(约 18k 参数)
## 3. 🏛️ 系统架构
### 三层设计理念
| 层级 | 组件 | 目的 |
|------|------|------|
| **数据层** | CSV 摄取 → 归一化 → 训练-测试分割 | 特征一致性与可复现性 |
| **模型层** | CNN-Transformer 混合,18.5K 参数 | 准确、可解释、快速 |
| **推理层** | SHAP + 符号化解释 | 可信的 SOC 集成 |
### 架构图
网络流量特征(79 维)
↓
[CNN 块]
├─ Conv1d:提取局部模式(32 个滤波器)
├─ ReLU:非线性
└─ MaxPool1d:降维至 39 维
↓
[Transformer 编码器]
├─ 自注意力:学习特征关系
├─ 多头(2 个头):多样化模式识别
└─ 输出:39×32 维张量
↓
[全局平均池化]
└─ 聚合为 32 维表示
↓
[全连接层]
└─ 32 → 2 类别(BENIGN / ATTACK)
↓
[Softmax + 决策]
├─ 置信度:0-100%
└─ 预测:BENIGN 或 ATTACK
## 4. 💡 核心原则
### 1. **设计即解释**
- SHAP 值量化每个特征对预测的贡献
- 符号推理转化为人类可读规则
- 安全分析师理解 *为何* 触发告警
### 2. **对抗鲁棒性**
- 标准模型在扰动下下降 30%
- 对抗训练防御 FGSM、PGD 类攻击
- 即使在对抗扰动下仍保持 88% 准确率
### 3. **轻量级与快速**
- 18.5K 参数(75 KB 模型文件)
- 每样本 2-5ms 推理(CPU)
- 适用于实时 SOC 仪表板
### 4. **生产级质量**
- 可复现结果(固定随机种子)
- 可扩展至百万级流
- 离线解释(无需外部 API 依赖)
### 训练阶段
#### 步骤 1:数据摄取与预处理
```
┌─────────────────────────────────────────┐
│ Raw Network Traffic CSV Files │
│ (full_week.csv, dos_data.csv, etc.) │
└────────────┬────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ Preprocessing Pipeline │
├─────────────────────────────────────────┤
│ 1. Strip whitespace, remove non-numeric │
│ 2. Convert labels: BENIGN→0, ATTACK→1 │
│ 3. Handle anomalies: NaN, inf values │
│ 4. Standardize: (x-μ)/σ (per feature) │
│ 5. Train-test split: 80-20 ratio │
│ 6. Convert to PyTorch tensors │
└────────────┬────────────────────────────┘
↓
Training Set: 2.2M samples | Test Set: 565K samples
```
**关键转换**:保存 `scaler.pkl` 用于推理一致性
#### 步骤 2:标准训练循环
```
For 5 epochs:
For each batch (8 samples):
1. Forward: predictions = model(batch)
2. Loss: CrossEntropyLoss(predictions, labels)
3. Backward: compute gradients
4. Update: optimizer.step() (Adam, lr=0.001)
5. Log: total loss per epoch
```
**结果**:`xai_cti_model.pth`(约 75 KB)
#### 步骤 3:对抗训练(增强)
**结果**:`xai_cti_model_adv.pth`(对抗规避鲁棒)
**为何组合损失?** 在正常与扰动数据上联合训练 → 抗攻击
### 推理阶段(生产)
```
┌────────────────────────────────┐
│ New Network Traffic Flow │
└───────────┬────────────────────┘
↓
┌────────────────────────────────┐
│ Load Preprocessing Artifacts │
│ ├─ scaler.pkl (normalization) │
│ ├─ feature_names (alignment) │
│ └─ Model weights │
└───────────┬────────────────────┘
↓
┌────────────────────────────────┐
│ Feature Processing (< 1ms) │
│ ├─ Align columns │
│ ├─ Fill missing (0) │
│ ├─ StandardScaler.transform() │
│ └─ Convert to tensor │
└───────────┬────────────────────┘
↓
┌────────────────────────────────┐
│ Model Inference (2-5ms) │
│ ├─ Forward pass │
│ ├─ Softmax probabilities │
│ ├─ Argmax prediction │
│ └─ Extract confidence │
└───────────┬────────────────────┘
↓
┌────────────────────────────────┐
│ Explainability (100-600ms) │
│ ├─ SHAP: Feature importance │
│ ├─ Symbolic: Human-readable │
│ └─ Threat level: LOW/MED/HIGH │
└───────────┬────────────────────┘
↓
┌────────────────────────────────┐
│ Output Report │
│ ├─ Prediction (BENIGN/ATTACK) │
│ ├─ Confidence: 0-100% │
│ ├─ Threat Level │
│ ├─ Top 3 Features (SHAP) │
│ └─ Symbolic Explanations │
└────────────────────────────────┘
```
## 4. 📊 性能结果
### 异常检测准确率(NSL-KDD 数据集)
| 指标 | LSTM 基线 | CNN 基线 | **XAI-CTI Transformer** |
|------|:---:|:---:|:---:|
| 🎯 **准确率** | 91.2% | 93.1% | **96.4%** |
| 📈 **F1 分数** | 89.6% | 90.8% | **93.1%** |
| 🔴 **假阳性率** | 8.5% | 6.7% | **2.3%** ← 改进 73% |
| ✅ **精确率** | 88.9% | 91.2% | **94.6%** |
**关键洞察**:2.3% FPR = 更少的 SOC 告警(显著运营收益)
### 对抗鲁棒性对比
使用 FGSM 攻击在 ε=0.1(微小不可见扰动)下测试:
| 模型 | 正常准确率 | 对抗准确率 | **鲁棒性提升** |
|------|:---:|:---:|:---:|
| 标准训练 | 96.5% | **65.2%** | - |
| **对抗训练** | 95.2% | **88.3%** | **+23.1%** ✓ |
**权衡**:约 1% 准确率损失换取 +23% 鲁棒性(极佳交易)
### 系统性能指标
| 指标 | 值 | 意义 |
|------|:---:|------|
| ⚡ **决策延迟** | < 60 ms | 实时内联部署可行 |
| 🧠 **模型参数** | 18,562 | 轻量级,适合边缘设备 |
| 💾 **模型大小** | ~75 KB | 最小存储占用 |
| 🎯 **准确率** | 96.4% | 优于基线 |
| 🤝 **信任预测** | 0.93 AUC | 强实体级信任评分 |
| 📝 **可解释性** | SHAP + 符号化 | 透明决策推理 |
## 5. 🗂️ 系统架构
### 项目结构
```
XAI_CTI_Project/
├── model.py # 🧠 Hybrid CNN-Transformer architecture
├── preprocessing.py # 🔧 Data loading, normalization, scaler
├── train_gpu.py # 🚀 Standard supervised training
├── train_adversarial.py # ⚔️ Adversarial training with FGSM
├── adversarial_test.py # 🛡️ Robustness evaluation
├── robustness_curve.py # 📈 Plot accuracy vs attack strength
├── explain_shap.py # 📊 Generate SHAP explanations
├── demo.py # 🎬 Live inference demo
├── demo2.py # 🎬 Production inference (real data)
├── symbolic.py # 📝 Rule-based explanations
├── merge_fullweek.py # 🔀 Consolidate multiple CSVs
│
├── data/
│ ├── full_week.csv # 📊 Merged training dataset (1M+ samples)
│ ├── dos_data.csv # ⚠️ Malicious traffic
│ ├── Monday-Friday.csv # 📆 Daily network logs
│ └── insane_dos.csv # 🚨 Intense attack traffic
│
├── checkpoints/
│ ├── xai_cti_model.pth # 💾 Standard model weights
│ ├── xai_cti_model_adv.pth # 💾 Adversarially trained (preferred)
│ ├── scaler.pkl # 🔐 Feature normalization params
│ └── shap_summary.png # 📊 Feature importance visualization
│
└── requirements.txt # 📦 Python dependencies
```
### 数据流架构
```
Raw Traffic Data
↓
[Preprocessing] → Normalized features + Scaler
↓
├─→ Training: 80% samples
│ ↓
│ ├─→ Standard Training → model.pth
│ │ ├─ Acc: 96.5%, FPR: 3-4%
│ │ └─ Baseline accuracy
│ │
│ └─→ Adversarial Training → model_adv.pth
│ ├─ Acc: 95-96%, Robustness: 88%↑
│ └─ Production-ready
│
└─→ Testing: 20% samples
├─→ Normal accuracy: 96%+
├─→ Adversarial accuracy: 88%+ (under attack)
└─→ FPR: 2.3% (best-in-class)
Production Inference:
New Traffic → Scaler → Model → SHAP + Symbolic → Decision + Explanation
```
## 6. 🧩 核心组件
### 🧠 模型架构(CNN-Transformer 混合)
```
Layer Input Shape Processing Output Shape
──────────────────────────────────────────────────────────────────
Input [batch, 79] Raw features [B, 79]
Unsqueeze [B, 79] Add channel [B, 1, 79]
Conv1d (×32) [B, 1, 79] Extract patterns [B, 32, 79]
ReLU [B, 32, 79] Non-linearity [B, 32, 79]
MaxPool1d(2) [B, 32, 79] Reduce dim [B, 32, 39]
Permute [B, 32, 39] Rearrange [B, 39, 32]
Transformer [B, 39, 32] Self-attention [B, 39, 32]
GlobalAvgPool [B, 39, 32] Aggregate [B, 32]
FC(32→2) [B, 32] Classification [B, 2]
Softmax [B, 2] Probabilities [B, 2] ∈ [0,1]
```
**参数**:约 18,562(轻量级!)
### 📊 特征空间(79 维)
| 类别 | 特征 | 示例 |
|------|------|------|
| **流标识** | 4 | 源/目的 IP、端口、协议 |
| **包统计** | 12 | 正向/反向字节、包数、长度 |
| **TCP 标志** | 6 | SYN、ACK、FIN、RST、PSH、URG 计数 |
| **时序** | 8 | 流持续时间、IAT 均值/标准差、活动/空闲 |
| **高级特征** | 49 | 熵、初始窗口字节、子流统计 |
| **总计** | **79** | 标准化至 μ=0, σ=1 |
### 🔐 SHAP 可解释性
**计算内容**:每个特征对预测的贡献
**单样本解释**:
```
Predicted: ATTACK
Confidence: 94%
Top Contributing Features:
1. Total_Forward_Bytes (SHAP: +0.85) → Pushes toward ATTACK
2. Packet_Count (SHAP: +0.62) → Pushes toward ATTACK
3. Flow_Duration (SHAP: +0.41) → Slightly suspicious
Interpretation:
High byte volume + high packet rate + unusual timing = ATTACK
```
### 📝 符号推理
**简单规则化解释**:
```
if "Bytes" in feature_name:
reason = "Abnormally high traffic volume detected"
elif "Packets" in feature_name:
reason = "Elevated packet transmission rate observed"
elif "Duration" in feature_name:
reason = "Unusual flow timing pattern"
else:
reason = f"Significant deviation in {feature_name}"
```
**优势**:<1ms 延迟,人工可读(适合实时仪表板)
## 7. 🚀 实施指南
### 安装与设置
```
# 克隆仓库
git clone
&& cd XAI_CTI_Project
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# 安装依赖项
pip install -r requirements.txt
# 验证 GPU 可用性
python3 -c "import torch; print(torch.cuda.is_available())"
```
### 快速启动
```
# 1. 训练对抗模型
python3 train_adversarial.py
# 输出:xai_cti_model_adv.pth
# 2. 评估鲁棒性
python3 adversarial_test.py
# 输出:正常准确率、对抗准确率、丢弃率
# 3. 生成 SHAP 图表
python3 explain_shap.py
# 输出:shap_summary.png
# 4. 实时推理
python3 demo2.py
# 输出:预测 + 置信度 + 威胁等级 + 解释
```
### 超参数
| 参数 | 值 | 用途 |
|------|----|------|
| 批量大小 | 8 | 平衡内存与梯度质量 |
| 学习率 | 0.001 | Adam 优化器默认值 |
| 训练轮数 | 5 | 标准监督训练 |
| CNN 滤波器 | 32 | 局部模式提取 |
| 异常阈值(τ_a) | 0.5 | TBAE 决策边界 |
| FGSM ε | 0.01 | 对抗扰动强度 |
## 8. 🔍 可解释性方法
### SHAP(SHapley Additive exPlanations)
**原理**:基于 Shapley 值的博弈论方法
**流程**:
1. 计算基线(参考训练集)
2. 对每个特征:测量其对预测差异的贡献
3. 跨样本聚合
4. 按重要性排序
**输出**:展示最重要特征的特征重要性图
**用途**:离线分析、调查、模型调试
### 符号推理
**原理**:将可解释规则应用于顶级特征
**流程**:
1. 识别前 K 个最重要特征
2. 应用领域启发式规则
3. 生成人类可读描述
4. 输出 SOC 友好解释
**用途**:实时仪表板、线上 SOC 告警
### 威胁等级分类
```
Decision Logic:
├─ If prediction=ATTACK & confidence>90% → 🔴 HIGH THREAT
├─ If prediction=ATTACK & confidence<90% → 🟡 MEDIUM THREAT
└─ If prediction=BENIGN → 🟢 LOW THREAT
```
## 9. 🛡️ 对抗鲁棒性
### 攻击方法:FGSM(快速梯度符号法)
```
Adversarial Example = Original Data + ε × sign(∇Loss)
```
**示例**:
```
Original traffic: [2.5MB bytes, 1200 packets, 5 sec]
Perturbation: [+0.01MB, -5 packets, +0.1 sec]
─────────────────────────────────────
Adversarial: [2.51MB, 1195 packets, 5.1 sec]
Result: Imperceptible to humans, but...
Standard model: "BENIGN" ❌ (Fooled!)
Robust model: "ATTACK" ✓ (Resistant!)
```
### 鲁棒性曲线
```
Accuracy (%)
100 ├─────────────
│ Normal Model
95 ├─────╲
│ ╲ After adversarial training
90 ├─────╶╲
│ ╲___
85 ├──────────╲___
│ ╲___
80 └─────────────────────────────
0 0.05 0.1 0.15 0.2 (epsilon)
```
**关键发现**:对抗训练带来 +23% 鲁棒性提升
## 10. ⚠️ 限制与未来路径
| # | 限制 | 影响 | 缓解 |
|---|------|------|------|
| L1 | SHAP 较慢(100-500ms) | 实时批处理受限 | 实现 Top-K 近似 |
| L2 | 非独立同分布数据(FL 不适用) | 不适用 | 集中训练无需处理 |
| L3 | 仅覆盖有限攻击类型 | 可能遗漏新型利用 | 定期用新数据重训练 |
| L4 | 加密流量 | 无法检查有效载荷 | 仅使用元数据分析 |
| L5 | 概念漂移 | 模型随时间退化 | 在线学习 / 定期重训练 |
| L6 | 单 GPU 限制 | 批处理吞吐量受限 | 支持分布式训练 |
### 未来增强
✅ 多类别分类(8+ 攻击类型)
✅ 在线学习管道(持续重训练)
✅ 联邦学习(隐私保护训练)
✅ 移动端部署(边缘推理)
✅ 实时流式分析
✅ 与 SIEM 平台集成
## 👥 项目团队
Anish Kanna T A
|
Vaishanth Mohan
|
Anagha R Prabhu
|
Bharat Aadarsh Meherwade
|
## 🎓 导师
Dr. Prajwalasimha S N
副教授
计算机科学与工程系(网络安全)
工程学院,日纳达·萨加尔大学
|
**工程学院 · 日纳达·萨加尔大学**
*班加罗尔 – 560082,卡纳塔克邦,印度*
数据集:
研究论文:
标签:Adversarial Robustness, Apex, Cloudflare, CNN, Explainable AI, Intrusion Detection, MITRE ATT&CK, Network Security, Python, PyTorch, scikit-learn, SHAP, Transformer, XAI, 凭据扫描, 可解释AI, 威胁情报, 实时推理, 对抗训练, 对抗鲁棒性, 开发者工具, 异常检测, 无后门, 机器学习, 深度学习, 混合模型, 特征归因, 生产环境, 神经符号, 网络安全, 网络流量分析, 逆向工具, 透明度, 隐私保护