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分析, 安全规则引擎, 库, 应急响应, 插件系统, 无后门, 网络安全, 逆向工具, 隐私保护