| name | analyzing-network-flow-data-with-netflow |
| description | 解析 NetFlow v9 和 IPFIX 记录,检测容量异常(volumetric anomalies)、端口扫描(port scanning)、数据外泄(data exfiltration)和 C2 信标模式(C2 beaconing patterns)。使用 Python netflow 库解码流记录, 构建流量基线,并应用统计分析识别字节数异常、连接时长异常和周期性定时模式的流量。 |
| domain | cybersecurity |
| subdomain | network-security |
| tags | ["analyzing","network","flow","data"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
指令
- 安装依赖:
pip install netflow
- 从路由器采集 NetFlow/IPFIX 数据,或使用内置采集器:
python -m netflow.collector -p 9995
- 使用
netflow.parse_packet() 解析捕获的流数据。
- 分析流量,检测以下内容:
- 端口扫描(Port scanning):单一源地址扫描同一端口的大量目标
- 数据外泄(Data exfiltration):向异常目标发送的高字节数出站流量
- C2 信标(C2 beaconing):具有固定间隔的周期性连接
- 容量异常(Volumetric anomalies):超出基线阈值的流量峰值
- 生成按优先级排列的发现报告。
python scripts/agent.py --flow-file captured_flows.json --output netflow_report.json
示例
解析 NetFlow v9 数据包
import netflow
data, _ = netflow.parse_packet(raw_bytes, templates={})
for flow in data.flows:
print(flow.IPV4_SRC_ADDR, flow.IPV4_DST_ADDR, flow.IN_BYTES)