使用 NetFlow 分析网络流量数据
适用场景
- 调查需要使用 NetFlow 分析网络流量数据的安全事件时
- 为此领域构建检测规则或威胁狩猎查询时
- SOC 分析师需要此类分析的结构化流程时
- 验证相关攻击技术的安全监控覆盖范围时
前置条件
- 熟悉网络安全概念和工具
- 拥有测试或实验环境以安全执行操作
- 已安装 Python 3.8+ 及其所需依赖
- 拥有进行测试活动的适当授权
操作指南
- 安装依赖:
pip install netflow
- 从路由器收集 NetFlow/IPFIX 数据,或使用内置收集器:
python -m netflow.collector -p 9995
- 使用
netflow.parse_packet() 解析捕获的流量数据。
- 分析流量中的以下内容:
- 端口扫描:同一源 IP 向多个目标 IP 同一端口的连接
- 数据外泄:发往异常目标、字节数较高的出站流量
- C2 信标通信:周期性的、间隔一致的连接
- 容量异常:超过基线阈值的流量突增
- 生成按优先级排列的发现报告。
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)