chefxx1/network-traffic-analyzer

GitHub: chefxx1/network-traffic-analyzer

一款 Python 编写的 PCAP 网络流量自动化分析工具,通过六条 MITRE ATT&CK 映射规则检测恶意网络行为并生成结构化应急响应报告。

Stars: 0 | Forks: 0

# 网络流量分析器 一款用于分析 PCAP 文件以检测恶意网络活动的 Python 工具—— 包括 C2 beaconing、DNS tunneling、端口扫描、数据外泄以及 可疑端口使用。提取 IOC,将发现结果映射到 MITRE ATT&CK, 并生成结构化的应急响应报告。 旨在自动化 SOC 分析师在事件调查期间执行的 网络分析和报告工作。 ## 亮点 - **6 条检测规则** 映射到 MITRE ATT&CK 技术 - **C2 beaconing 检测** 使用数据包间隔分析(变异系数) - **DNS tunneling 检测** 使用香农熵和子域名标签分析 - **DGA 域名检测** 使用字符熵和数字/辅音比率评分 - **端口扫描、数据外泄和可疑端口检测** - **结构化 IR 报告** 包含执行摘要、时间线、发现、IOC 和建议 - **36 个单元测试** 覆盖所有检测及误报抑制 - **多格式输出** —— 分析报告、JSON (SIEM)、应急响应报告 ## 架构 ``` .pcap file | v [pcap_parser.py] Parse packets into flows + DNS queries | +---> [connection_analyzer.py] Detect C2, scanning, exfiltration | +---> [dns_analyzer.py] Detect tunneling, DGA, high volume | v [ioc_extractor.py] Collect suspicious IPs, domains, ports | v [report_generator.py] Generate analysis report or IR report with MITRE mapping + recommendations ``` ## 检测规则 | 规则 | MITRE ATT&CK | 捕获内容 | 严重程度 | |------|-------------- |-----------------|----------| | C2 Beaconing | T1071 | 对外部主机的定时间联回调(低变异系数) | CRITICAL / HIGH | | 端口扫描 | T1046 | 单个 IP 探测目标上的 10 个以上端口 | CRITICAL / HIGH | | 数据外泄 | T1048 | 在非标准端口上的大量出站传输(1MB+) | CRITICAL / HIGH | | 可疑端口 | T1571 | 已知恶意端口(4444、6667、9050 等)上的流量 | MEDIUM | | DNS Tunneling | T1071.004 | 编码数据的长且高熵的子域名标签 | CRITICAL / HIGH | | DGA 域名 | T1568.002 | 算法生成的域名(看起来随机) | CRITICAL / HIGH | ## 安装 ``` git clone https://github.com/chefxx1/network-traffic-analyzer.git cd network-traffic-analyzer pip install -r requirements.txt ``` ## 用法 ``` # 生成包含攻击模式的示例 PCAP 文件 python generate_samples.py # 分析 PCAP 文件(标准报告) python analyzer.py samples/c2_beaconing.pcap # 生成事件响应报告 python analyzer.py samples/c2_beaconing.pcap -o ir # 用于 SIEM 摄取的 JSON 输出 python analyzer.py samples/mixed_attack.pcap -o json -f report.json # 完整帮助 python analyzer.py --help ``` ## 示例输出(C2 Beaconing) ``` ====================================================================== NETWORK TRAFFIC ANALYZER - Analysis Report ====================================================================== File : samples/c2_beaconing.pcap Total packets : 120 Duration : 606s Total flows : 33 DNS queries : 40 ====================================================================== FINDINGS: 3 ====================================================================== CRITICAL: 1 | HIGH: 1 | MEDIUM: 1 [!!!] Finding #1: C2 Beaconing Severity : CRITICAL MITRE : T1071 (Application Layer Protocol) Detail : Regular callbacks detected: 192.168.1.10 -> 203.0.113.50:8443 20 packets over 574s, mean interval 30.2s (stdev 0.6s, CV=0.02) Low variation = likely automated. ---------------------------------------------------------------------- INDICATORS OF COMPROMISE ---------------------------------------------------------------------- Suspicious IPs: - 203.0.113.50 (destination, flagged by: C2 Beaconing) Suspicious Ports: - 8443/TCP (flagged by: C2 Beaconing) ---------------------------------------------------------------------- MITRE ATT&CK MAPPING ---------------------------------------------------------------------- - T1071: Application Layer Protocol - T1046: Network Service Scanning - T1571: Non-Standard Port ====================================================================== RECOMMENDED ACTIONS ====================================================================== [!] IMMEDIATE RESPONSE REQUIRED -> Isolate affected hosts from the network -> Block all IOCs at firewall/proxy -> Escalate to incident response team ``` ## 应急响应报告格式 使用 `-o ir` 生成结构化的 IR 报告: ``` ====================================================================== INCIDENT RESPONSE REPORT ====================================================================== 1. EXECUTIVE SUMMARY 2. TIMELINE 3. TECHNICAL FINDINGS 4. INDICATORS OF COMPROMISE 5. MITRE ATT&CK MAPPING 6. RECOMMENDED ACTIONS ``` 这是 SOC 团队用来记录调查过程的格式。 ## 运行测试 ``` python -m pytest tests/ -v ``` **36 个测试** 涵盖: - PCAP 解析和流提取 - C2 beaconing 检测(时间分析、CV 阈值) - 端口扫描检测(唯一端口计数) - DNS tunneling 检测(熵、长标签) - DGA 域名检测(评分算法) - 误报抑制(干净流量 = 零发现) ## 项目结构 ``` network-traffic-analyzer/ |-- analyzer.py # Main CLI |-- pcap_parser.py # PCAP file parser (scapy) |-- connection_analyzer.py # C2, scanning, exfiltration detection |-- dns_analyzer.py # DNS tunneling, DGA detection |-- ioc_extractor.py # IOC collection + MITRE mapping |-- report_generator.py # Analysis report + IR report generation |-- generate_samples.py # Sample PCAP generator with attack patterns |-- samples/ # Generated PCAP files | |-- c2_beaconing.pcap | |-- dns_tunneling.pcap | |-- port_scan.pcap | |-- mixed_attack.pcap | |-- clean_traffic.pcap |-- tests/ # pytest suite (36 tests) | |-- test_pcap_parser.py | |-- test_connection_analyzer.py | |-- test_dns_analyzer.py | |-- conftest.py |-- requirements.txt `-- README.md ``` ## 展现的技能 - **网络流量分析** —— PCAP 解析、流分析、数据包检查 - **C2 检测** —— 统计时间分析(变异系数) - **DNS 安全** —— 通过熵检测 tunneling、DGA 评分算法 - **MITRE ATT&CK 映射** —— T1071、T1046、T1048、T1571、T1071.004、T1568.002 - **应急响应** —— 包含时间线、发现、IOC 和建议的结构化 IR 报告 - **Python + scapy** —— 数据包操作、网络协议解析 - **检测工程** —— 阈值调整、误报抑制
标签:IP 地址批量处理, PCAP分析, Python, SOC分析, 安全规则引擎, 库, 应急响应, 插件系统, 无后门, 网络安全, 逆向工具, 隐私保护