基于PyQt5的恶意加密流量检测平台,支持多种深度学习与传统机器学习模型,提供批量检测、模型对比、可视化分析和历史记录管理功能。
🚀 新增功能
1. 批量文件检测
- 支持同时选择多个CSV文件进行批量检测
- 实时进度显示
- 批量结果导出
2. 模型性能对比
- 同时运行多个模型进行对比
- 对比结果表格展示
- 可视化对比图表(准确率、推理时间)
- 集成学习投票功能
3. 可视化分析
- 检测结果分布饼图
- 各类别数量柱状图
- 置信度分布直方图
- 混淆矩阵热力图
- 图表导出功能(PNG/PDF)
4. 历史记录管理
- SQLite数据库存储检测历史
- 历史记录查询与筛选
- 统计信息展示
- CSV导出功能
5. 实时流量检测 ⭐ 新功能
- 实时网卡流量捕获(基于Scapy)
- 支持BPF过滤器(tcp/udp/icmp等)
- 实时流特征提取(78维特征)
- 实时恶意流量检测与告警
- 告警阈值自定义
- 检测结果显示与统计
📁 项目结构
project/
├── gui/ # GUI界面模块
│ ├── __init__.py
│ └── main_window.py # 主窗口(Tab页布局)
├── core/ # 核心功能
│ ├── __init__.py
│ └── detection_engine.py # 检测引擎
├── models/ # 模型定义
│ ├── __init__.py
│ ├── cnn_models.py # CNN模型
│ ├── lstm_models.py # LSTM模型
│ └── ml_models.py # 传统机器学习模型
├── utils/ # 工具函数
│ ├── __init__.py
│ ├── visualization.py # 可视化工具
│ └── database.py # 数据库操作
├── realtime/ # 实时检测
│ ├── __init__.py
│ ├── packet_capture.py # 数据包捕获
│ └── feature_extractor.py # 特征提取
├── assets/ # 资源文件
│ ├── icons/
│ └── styles/
├── main.py # 新入口文件
├── run_mywindow.py # 原入口文件(保留兼容)
└── detection_history.db # 历史记录数据库
🛠️ 支持的模型
模型
类型
状态
ICNN
改进卷积神经网络
✅ 可用
LSTM
长短期记忆网络
✅ 可用
随机森林
传统机器学习
⚠️ 版本兼容问题
逻辑回归
传统机器学习
✅ 可用
📊 检测类别
- BENIGN - 正常流量
- Bot - 僵尸网络
- DDoS - 分布式拒绝服务
- DoS GoldenEye - GoldenEye拒绝服务
- DoS Hulk - Hulk拒绝服务
- DoS Slowhttptest - Slowhttptest攻击
- DoS slowloris - Slowloris攻击
- FTP-Patator - FTP暴力破解
- Heartbleed - 心脏出血漏洞
- Infiltration - 渗透攻击
- PortScan - 端口扫描
- SSH-Patator - SSH暴力破解
- Web Attack - Web攻击(多种)
🚀 快速开始
运行新版本
python main.py
运行旧版本(兼容)
python run_mywindow.py
📝 使用说明
1. 流量检测
- 切换到"🔍 流量检测"标签页
- 点击"🎲 随机加载样本"或"📂 加载CSV文件"
- 选择要使用的模型(可多选)
- 点击"▶️ 开始检测"
- 查看检测结果和统计信息
2. 批量检测
- 切换到"📁 批量检测"标签页
- 点击"📂 选择文件"选择多个CSV文件
- 选择检测模型
- 点击"▶️ 开始批量检测"
- 查看批量检测结果
3. 模型对比
- 先加载数据(在流量检测页)
- 切换到"📊 模型对比"标签页
- 选择要对比的模型(至少2个)
- 点击"▶️ 运行对比"
- 查看对比表格和可视化图表
4. 可视化分析
- 完成检测后,切换到"📈 可视化分析"标签页
- 选择图表类型
- 点击"📊 生成图表"
- 可选择"💾 保存图表"导出
5. 历史记录
- 切换到"📜 历史记录"标签页
- 查看所有检测历史
- 可导出CSV或删除记录
🔧 系统要求
- Python 3.7+
- PyQt5
- PyTorch
- scikit-learn
- pandas
- numpy
- matplotlib