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工具, 威胁检测, 插件系统, 漏洞发现, 网络安全, 逆向工具, 隐私保护