3. 工业协议概览
工业协议是工业控制系统中设备之间交换数据的“语言”。在流量识别与异常检测中,协议决定了报文结构、通信模式、端口特征、功能码语义以及可观测的异常边界。本节从协议的基本特征与差异出发,建立一张可用于后续识别与检测的“协议地图”。
一、核心原理:工业协议的三层差异
理解工业协议,不能只记端口号。真正影响流量识别与异常检测的差异,主要体现在三个层面:
- 通信模型:是主从轮询、生产者/消费者,还是客户端/服务器?这决定了流量是否具有周期性、请求响应配对是否严格。
- 承载方式:是串行链路、现场总线,还是直接跑在以太网/TCP/IP之上?这决定了能否用抓包工具直接分析。
- 数据语义:是面向寄存器地址、面向对象,还是面向信息模型?这决定了异常检测能否理解“读的是什么、写的是什么”。
下面这张图把七种协议按“承载方式—通信模型—典型端口/链路”放在同一张关系图中,便于快速定位它们的差异。
二、七种协议的基本特征与差异
下表从承载、端口/链路、通信模型、数据语义和典型场景五个维度进行对比,是后续流量识别规则设计的基础。
| 协议 | 承载/端口 | 通信模型 | 数据语义 | 典型场景 |
|---|---|---|---|---|
| Modbus RTU/TCP | RS-485 / TCP 502 | 主从轮询,请求-响应 | 线圈、离散输入、保持寄存器、输入寄存器 | PLC、仪表、变频器 |
| Profibus DP | RS-485,现场总线 | 主站/从站,令牌+轮询 | 输入/输出字节、诊断报文 | 工厂自动化、远程 IO |
| Profinet | 工业以太网,RT/IRT | IO 控制器/设备,周期实时 | IO 数据、报警、诊断 | 运动控制、产线实时通信 |
| EtherNet/IP | TCP 44818 / UDP 2222 | 客户端/服务器 + 生产者/消费者 | CIP 对象、类/实例/属性 | 罗克韦尔 PLC、离散制造 |
| OPC UA | TCP 4840 / HTTPS | 客户端/服务器 + 发布订阅 | 地址空间、信息模型、方法调用 | 跨厂商数据集成、MES/SCADA |
| DNP3 | TCP/UDP 20000 / 串行 | 主站/从站,支持主动上报 | 二进制输入、模拟量、事件、时间同步 | 电力配网、水利、油气 |
| IEC 60870-5-104 | TCP 2404 | 主站/从站,平衡/非平衡 | ASDU 类型标识、信息对象地址 | 电网调度、变电站远动 |
三、方法流程:从协议特征到识别规则
在流量识别中,建议按以下流程把协议知识转化为可执行的检测规则:
- 端口初筛:先按 TCP/UDP 端口建立候选集,如 502、44818、2222、4840、20000、2404。
- 报文结构确认:检查协议头特征,例如 Modbus TCP 的 MBAP 头、EtherNet/IP 的 encapsulation header、IEC 104 的 APCI 起始字节 0x68。
- 通信模式建模:统计请求-响应配对、轮询周期、广播比例、主从角色分布。
- 语义级检测:结合功能码、对象地址、信息对象地址,识别异常读写、越权访问和非法功能码。
识别要点:端口只是入口,协议头才是身份,通信模式才是行为。三者结合才能降低误报。
四、案例/场景:一次 Modbus 异常写操作排查
某产线监控系统发现 PLC 保持寄存器被批量改写。流量侧观察到以下特征:
源 IP: 10.10.20.55
目的 IP: 10.10.20.10
目的端口: 502
功能码: 0x10 (写多个保持寄存器)
起始地址: 40001
寄存器数量: 120
轮询周期: 原为 1000ms,突变为 50ms
分析:正常 HMI 轮询周期稳定在 1s,且写操作极少。该流量在短时间内高频写入大量寄存器,且源 IP 不属于已知工程师站。结合 Modbus 主从模型,可判定为异常写操作。若仅按端口 502 识别,会把它当作正常 Modbus 流量;只有结合功能码、地址范围和周期变化,才能触发告警。
五、误区与复盘
- 误区一:端口等于协议。Modbus 可跑在 502,也可跑在非标端口;Profinet 不依赖固定 TCP 端口,而是以太网类型 0x8892。
- 误区二:所有协议都是请求-响应。Profinet RT、EtherNet/IP 的 UDP 隐式报文、OPC UA 发布订阅、DNP3 主动上报都不严格遵循一问一答。
- 误区三:忽略串行协议。Profibus、Modbus RTU、IEC 101 不经过 TCP/IP,需要串行抓包或协议网关镜像,不能只依赖交换机流量。
- 误区四:只看协议头,不看语义。功能码 0x10 本身合法,但“谁在什么时间写多少寄存器”才是异常检测的关键。
复盘建议:为每种协议建立“端口/链路—报文头—通信模式—语义字段”四元组清单,并持续用真实流量校准。协议概览不是背诵,而是为后续识别与检测提供可落地的特征字典。