3. 流记录字段与威胁语义
NetFlow/IPFIX 记录本质上是一张“压缩后的会话摘要表”。它不保存载荷,却保留了足以支撑威胁检测的结构化字段。理解每个字段的威胁语义,是后续做异常检测、关联分析和溯源定位的基础。本节围绕五元组、时间戳、字节包数、TCP标志、接口与AS信息六类核心字段,说明它们分别回答哪些安全检测问题,以及在实际分析中如何组合使用。
一、五元组:确定“谁和谁在通信”
五元组指源IP、目的IP、源端口、目的端口、协议号。它是流记录的身份标识,也是威胁检测的第一层过滤条件。威胁语义上,五元组主要支撑三类判断:
- 方向与角色:源IP是内网还是外网,目的端口是服务端口还是高位随机端口,可初步判断是主动外联、被动响应还是横向扫描。
- 服务识别:目的端口 445、3389、22、53、80/443 分别对应 SMB、RDP、SSH、DNS、Web,异常服务组合往往是攻击链的入口或横向移动痕迹。
- 聚合与去重:同一五元组在短时间内产生大量流记录,可能意味着扫描、爆破或隧道复用。
需要注意,五元组只描述“通信关系”,不直接说明“通信内容是否恶意”。例如内网主机访问 443 端口既可能是正常 HTTPS,也可能是 C2 回连。因此五元组必须与时间、字节包数、TCP标志等字段联合判读。
二、时间戳:确定“何时发生、持续多久”
流记录通常包含流开始时间(First Switched / flowStartMilliseconds)和流结束时间(Last Switched / flowEndMilliseconds),两者之差为流持续时间。时间戳的威胁语义体现在:
- 时间窗口聚合:将同一源IP在 60 秒内的多条流按目的端口聚合,可识别端口扫描;若分散在数小时,则更可能是正常业务。
- 持续时间异常:极短流(毫秒级)大量出现,常见于扫描和探测;超长流(数小时甚至数天)则可能是心跳隧道、长连接 C2 或数据外传通道。
- 时序关联:将 DNS 查询流、TCP 连接流、外传流按时间排序,可还原“解析—连接—传输”的攻击链顺序。
实际分析中,建议统一使用 UTC 时间戳,并在聚合时明确窗口边界,避免因时区或采样偏差导致误判。
三、字节包数:确定“传了多少、是否异常”
字节数(IN_BYTES / OUT_BYTES)和包数(IN_PKTS / OUT_PKTS)是流量体量的直接度量。威胁语义上,它们支撑:
- 数据外传识别:内网主机向外部单一目的IP持续发送大字节、少包数的流,可能是数据渗出;若同时目的端口非常用端口,风险更高。
- 放大攻击识别:DNS、NTP、Memcached 等反射放大攻击通常表现为“请求小、响应大”,即入方向字节远小于出方向字节。
- 平均包长计算:字节数除以包数得到平均包长。正常 Web 流量平均包长多在数百字节;若平均包长极小(如 40–60 字节)且包数巨大,可能是扫描或心跳;若平均包长接近 MTU 且持续,可能是大文件传输或隧道封装。
示例:某内网主机在 5 分钟内产生 1200 条流,总出方向字节 480 MB、总包数 32 万,平均包长约 1500 字节,目的IP分散在 30 个外部地址且目的端口均为 443。该模式更接近分片外传或 CDN 正常下载,需结合目的IP信誉和 TLS 指纹进一步判断,而不能仅凭字节数定性。
四、TCP标志:确定“连接处于什么状态”
TCP控制位(TCP_FLAGS)记录 SYN、ACK、FIN、RST、PSH、URG 等标志的组合。它是判断扫描、拒绝服务和异常连接行为的关键字段:
- SYN 扫描:大量只有 SYN 标志、无后续 ACK 的流,且目的端口分散,是典型的半开扫描。
- RST 异常:短时间内大量 RST 响应,可能表示端口关闭探测、连接被拒绝或中间设备阻断。
- FIN/PSH 组合:正常会话结束通常有 FIN/ACK;若大量流以 RST 结束,需排查是否存在连接耗尽或攻击中断。
- 标志与方向结合:入方向 SYN、出方向 RST,通常表示外部扫描被内网拒绝;出方向 SYN、入方向 RST,则可能是内网主动探测外部。
需要提醒的是,NetFlow 中的 TCP_FLAGS 通常是流内所有包标志的按位或,不能等同于单个数据包的标志序列。分析时应结合流持续时间和包数,避免把正常重传误判为扫描。
五、接口与AS信息:确定“从哪来、到哪去、属于谁”
输入/输出接口索引(INPUT_SNMP / OUTPUT_SNMP)标识流量在设备上的进出位置,AS信息(SRC_AS / DST_AS)标识自治系统归属。它们的威胁语义包括:
- 边界定位:通过接口索引可判断流量是来自互联网出口、内网核心还是DMZ,从而区分南北向与东西向流量。
- AS 跳变异常:同一目的IP的流量突然从常规AS变为高风险AS,可能意味着路由劫持、BGP异常或C2基础设施切换。
- 地理与归属关联:结合AS号可快速筛选“内网到高风险地区AS”的流量,缩小排查范围。
六、字段到检测需求的映射关系
将上述字段组合,可形成面向威胁检测的字段映射视图。下图给出六类字段与典型检测需求之间的对应关系,便于在实际分析中快速选取字段组合。
七、实际分析中的字段组合建议
单一字段往往不足以定性,工程上更常用“字段组合 + 阈值 + 信誉”的方式。以下给出一个可直接参考的检测思路示例,参数为教学假设值,需根据实际网络基线调整:
| 检测目标 | 关键字段组合 | 示例阈值/条件 | 结果判读 |
|---|---|---|---|
| 端口扫描 | 源IP + 目的端口 + TCP标志 + 时间戳 | 60秒内同一源IP访问≥50个不同目的端口,且SYN置位、包数≤2 | 命中则标记为扫描嫌疑,结合目的IP数量与RST比例确认 |
| 数据外传 | 源IP + 目的IP + 出方向字节 + 持续时间 | 单流出方向字节≥100MB,持续时间≥10分钟,目的端口非常用端口 | 结合目的AS信誉与平均包长,排除备份和CDN后升级告警 |
| 反射放大 | 目的端口 + 入/出字节比 + 包数 | 出方向字节/入方向字节≥10,目的端口为53/123/11211 | 确认请求源是否伪造,结合接口判断是否为边界入口 |
| 异常AS通信 | 源IP + 目的AS + 时间戳 + 字节数 | 内网主机首次与高风险AS通信,且出方向字节持续增长 | 关联DNS查询与TLS指纹,判断是否为C2或数据渗出 |
综上,五元组回答“谁和谁”,时间戳回答“何时与多久”,字节包数回答“多少与多异常”,TCP标志回答“连接状态如何”,接口与AS回答“从哪来、到哪去、属于谁”。把这五类问题与具体检测需求对齐,才能让流记录字段真正转化为可执行的威胁语义。