LeightonSec/pcap-analyser
GitHub: LeightonSec/pcap-analyser
一款用于自动检测 PCAP 文件中恶意流量模式并集成实时威胁情报的网络安全分析工具。
Stars: 1 | Forks: 0
# ⚡ PCAP Analyser — 网络威胁检测系统
一款网络数据包捕获分析工具,用于检查 PCAP 文件中的恶意流量模式,并向分析师发出潜在威胁警报。作为 LeightonSec SOC Toolkit 的一部分构建。
## 功能简介
安全分析师使用 Wireshark 或 tcpdump 等工具捕获网络流量。此工具接收这些捕获文件,并自动分析其中已知的攻击模式——标记威胁、评估严重性,并利用实时威胁情报丰富分析结果。
每个上传的 PCAP 文件都会经过七个检测引擎的处理,并与 AbuseIPDB 的威胁数据库进行交叉比对,最后生成一份结构化的报告。
## 检测能力
| 威胁类型 | 严重性 | 检测方法 |
|-------------|----------|-----------------|
| DoS/DDoS | HIGH | 来自单一来源的高数据包量 |
| SYN Flood | HIGH | 没有确认(ACK)响应的 SYN 数据包 |
| Port Scan | MEDIUM | 单个 IP 快速针对多个端口 |
| ARP Spoofing | HIGH | 多个 MAC 地址声明拥有相同的 IP |
| C2 Beaconing | HIGH | 定期定时连接到外部 IP |
| ICMP Flood | MEDIUM | 来自单一来源的大量 ICMP 数据包 |
| DNS Tunnelling | MEDIUM | 异常长的 DNS 查询 |
## 威胁情报
每个可疑 IP 都会实时与 **AbuseIPDB** 进行核对:
- 已知的恶意 IP 会附上置信度评分进行标记
- 展示其国家与 ISP 信息
- 已知恶意 IP 的 MEDIUM 严重性会自动升级为 HIGH
- 跳过私有 IP 范围以保留 API 配额
## Web 界面
- 直接通过浏览器上传 PCAP 文件
- 包含数据包计数和严重性分类的实时结果仪表板
- 详细的威胁卡片,包含源 IP、详细信息和建议的处置措施
- 针经 AbuseIPDB 确认的威胁显示已知恶意 IP 徽章
## 安全设计
- 文件类型白名单 — 仅接受 `.pcap`、`.pcapng`、`.cap`
- `secure_filename()` — 防止路径遍历攻击
- 50MB 上传限制 — 防止通过大文件造成的拒绝服务攻击
- 分析后删除上传的文件 — PCAP 文件包含敏感数据
- AbuseIPDB 密钥存储在 `.env` 中 — 永不提交
- 服务器绑定至 `127.0.0.1` — 不对外部网络暴露
- 私有 IP 被排除在威胁情报检查之外
- 输出转义 — 数据包字段值(如 DNS 查询名称)和 AbuseIPDB 字符串可能会受到攻击者影响,因此仪表板在渲染每个值之前都会对其进行转义,防止恶意构造的 PCAP 引发存储型/DOM XSS
- AbuseIPDB 的响应在使用前会通过 Pydantic 进行 schema 验证
## 安装说明
**环境要求:** Python 3.10+,AbuseIPDB API 密钥
```
# Clone the repo
git clone git@github.com:LeightonSec/pcap-analyser.git
cd pcap-analyser
# 创建 virtual environment
python3 -m venv venv
source venv/bin/activate
# 安装 dependencies
pip install -r requirements.txt
# 添加你的 API keys
echo "ABUSEIPDB_API_KEY=your-key-here" > .env
# 运行 server
python3 app.py
```
然后在浏览器中打开 `http://127.0.0.1:5001`。
## 生成测试 PCAP 文件
```
python3 generate_test_pcaps.py
```
生成涵盖所有检测类别的 7 个测试文件:
- `test_syn_flood.pcap`
- `test_port_scan.pcap`
- `test_arp_spoof.pcap`
- `test_dos.pcap`
- `test_icmp_flood.pcap`
- `test_dns_tunnel.pcap`
- `test_c2_beacon.pcap`
## 项目结构
pcap-analyser/
├── app.py # Flask 服务器,文件上传,API 路由
├── analyser.py # 核心检测引擎(7个检测器)
├── threat_intel.py # AbuseIPDB 集成与 IP 信息丰富
├── generate_test_pcaps.py # 测试 PCAP 生成器
├── templates/
│ └── index.html # Web 界面与结果仪表板
├── requirements.txt
└── .env # API 密钥(永不提交)
## SOC Toolkit 定位
此工具位于 LeightonSec SOC Toolkit 的 **检测层(Detection layer)**:
摄取(Ingestion) → 情报流水线(Intel Pipeline)
检测(Detection) → 日志分析器(Log Analyser) + PCAP Analyser ← 你在这里
分析(Analysis) → AI 防火墙(AI Firewall)
响应(Response) → 事件追踪器(Incident Tracker,规划中)
可视化(Visibility) → 统一仪表板(Unified Dashboard,规划中)
## ⚠️ 已知限制
- **Beaconing 误报**:C2 beaconing 检测器会标记任何具有规律性时间间隔的连接。具有一致模式的合法流量——如 keep-alive、NTP、流媒体、操作系统后台遥测——都可能触发此检测。请将 beaconing 的检测结果视为需要分析师审查的指标,而非已确认的威胁。
- **慢速 DoS**:DoS 检测衡量的是 10 秒滑动窗口内的数据包量。旨在长时间内维持在阈值以下的蓄意慢速攻击将无法被检测到。如果您的环境需要更广泛的覆盖范围,请在 `analyser.py` 中调整 `dos_packet_count` 和 `dos_window_seconds`。
- **可调阈值**:所有检测阈值均根据通用场景保守设置。高流量环境将需要设置更高的值以减少误报;敏感环境可能需要更低的值。所有阈值均集中在 `analyser.py` 的 `THRESHOLDS` 字典中。
## 路线图
- [ ] 实时数据包捕获模式
- [ ] 与 AI 防火墙集成以进行基于 ML 的分类
- [ ] 检测到 HIGH 严重性结果时自动向事件追踪器发出警报
- [ ] 将 PCAP 报告导出为 PDF
- [ ] Docker 容器化
- [ ] 统一仪表板集成
## 作者
**Leighton Wilson** — 安全研究员 | LeightonSec
[LeightonSec GitHub](https://github.com/LeightonSec)
*作为实践型网络安全作品集的一部分构建。LeightonSec SOC Toolkit 的一部分。*
标签:AMSI绕过, PCAP分析, SOC工具, 威胁检测, 插件系统, 漏洞发现, 网络安全, 逆向工具, 隐私保护