- Isolation Forest: 基于孤立森林的异常检测
- 统计模型: 基于历史基线的3-sigma规则检测
- Autoencoder: 深度学习异常检测(预留接口)
使用emoji动物代表不同的流量模式:
| 动物 | 模式名称 | 特征描述 |
|---|---|---|
| 🦜 | 喋喋不休的鹦鹉 | 高频小包通信(可能是DDoS或扫描) |
| 🐊 | 潜伏的鳄鱼 | 长时间静默后突发大流量(可能是APT) |
| 🦈 | 游弋的鲨鱼 | 端口扫描行为 |
| 🐘 | 笨重的大象 | 单次大数据传输(可能是数据外泄) |
| 🦎 | 变色龙 | 协议频繁切换(可能是隐蔽隧道) |
| 🐝 | 忙碌的蜜蜂 | 多目标通信(可能是僵尸网络) |
| 🦇 | 夜行蝙蝠 | 非常规端口通信(可能是后门) |
| 🐍 | 盘旋的蟒蛇 | 持续稳定流量(可能是C2通信) |
| 🦅 | 俯冲的老鹰 | SYN扫描特征 |
| 🐢 | 缓慢的乌龟 | 慢速扫描(逃避检测) |
- ✅ 实时网络流量监听
- ✅ PCAP文件分析
- ✅ 异常流量实时告警
- ✅ 详细的数据包信息展示
- ✅ 流量模式分类统计
- ✅ WebSocket实时推送
| 分析PCAP文件 | 过滤PCAP请求 | 实时监听 |
|---|---|---|
![]() |
![]() |
![]() |
- Python 3.8+
- Windows/Linux/macOS
- 管理员权限(用于网络监听)
- 克隆或进入项目目录
cd Traffic-monitor- 安装依赖
pip install -r requirements.txt- 启动服务
python app.py- 访问界面
打开浏览器访问:
http://localhost:5000
- 选择检测方法(Isolation Forest、统计模型 或 Autoencoder)
- 选择网络接口(或留空自动选择)
- 可选:设置BPF过滤器(如
tcp port 80) - 点击“开始监听”按钮
- 实时查看检测到的异常流量
- 点击"上传PCAP"按钮
- 选择.pcap或.pcapng文件
- 等待分析完成
- 查看检测结果和异常模式
- 在左侧面板点击任意数据包
- 右侧面板显示详细信息:
- 基本信息(时间、源地址、目标地址、协议)
- 检测结果(异常状态、分数、流量模式)
- 数据内容(Payload)
- 点击左上角的动物模式卡片
- 自动过滤显示该模式的所有数据包
# 在界面中选择,或通过API设置
POST /api/set_detection_method
{
"method": "isolation_forest" // 或 "statistical", "autoencoder"
}# 只监听HTTP流量
tcp port 80
# 监听特定IP
host 192.168.1.100
# 监听TCP和UDP
tcp or udp
# 排除SSH流量
not port 22- 基于随机森林的无监督学习
- 适合检测离群点
- 不需要标记数据
- 计算效率高
- 基于历史流量基线
- 使用3-sigma规则
- 实时自适应
- 可解释性强
- 基于深度学习的重构误差检测
- 自动学习正常流量模式
- 对复杂异常更敏感
- 需要安装:
pip install tensorflow - 数据要求: 至少50个样本用于训练
- 自动降级: 数据不足或TensorFlow未安装时自动使用Isolation Forest
从数据包中提取14维特征:
- 数据包长度
- 协议类型
- 源/目标端口
- 数据包速率
- 平均/标准差大小
- 唯一目的地数量
- 唯一端口数量
- 协议多样性
- 非常规端口比例
- 突发比例
- 静默时长
- SYN标志比例
A: 网络流量捕获需要底层访问权限。在Linux/macOS上使用sudo,Windows上需要以管理员身份运行。
A:
- 确认有管理员权限
- 检查网络接口是否正确
- 确认防火墙没有阻止
- 尝试使用其他网络接口
A:
- 使用足够的训练数据(至少100个包)
- 根据网络环境调整过滤器
- 尝试不同的检测方法
- 观察并学习动物模式特征
A:
- 安装 TensorFlow:
pip install tensorflow - 界面选择 "Autoencoder" 检测方法
- 至少提供50个数据包样本
- 首次使用会自动训练模型(50 epochs)
- 后续检测使用已训练模型
- 如果数据不足或TensorFlow未安装,会自动降级到Isolation Forest
A: TCP, UDP, ICMP, HTTP, HTTPS, DNS, SSH, FTP 等常见协议。
- 只监控您有权限的网络
- 遵守当地法律法规
- 不要用于非法目的
- 注意保护敏感数据
- 使用BPF过滤器减少无关流量
- 限制显示的数据包数量(最多1000个)
- WebSocket异步推送,不阻塞主线程
- 自动清理历史数据
欢迎提交Issue和Pull Request!
MIT License
Ghost Wolf Lab


