2. 工控系统基础
在工控网络流量取证与复盘工程中,第一步不是抓包,而是建立“资产—角色—协议—路径”的完整认知。只有先理解 SCADA、DCS、PLC、RTU、HMI 等核心组件在系统中的位置与职责,才能判断一条流量是正常轮询、组态下发、报警上报,还是异常横向探测。本章从组件职责、典型拓扑、通信协议三个层面建立基础模型,为后续流量基线、异常检测与取证复盘提供参照。
一、核心组件与职责边界
工控系统并非单一设备,而是由监控层、控制层、现场层协同构成的分层体系。各组件在流量特征上差异明显,取证时需先定位其角色。
- SCADA(数据采集与监控系统):面向广域、分散的现场,负责集中监视、数据采集、报警与历史存储。典型协议包括 Modbus TCP、DNP3、IEC 60870-5-104。其流量常表现为周期性轮询与突发报警。
- DCS(集散控制系统):面向连续过程工业(化工、电力、冶金),强调闭环控制与高可靠性。控制器、I/O 与操作站之间多为私有或工业以太网协议,流量稳定、周期性强。
- PLC(可编程逻辑控制器):执行逻辑控制与顺序控制,是控制层的核心执行单元。常见协议有 Modbus、EtherNet/IP、PROFINET、S7comm。组态下载与在线修改会产生大流量突发。
- RTU(远程终端单元):部署在无人值守站点,负责遥测、遥信、遥控,常通过无线或串口回传。协议以 DNP3、IEC 101/104 为主,报文短、频率低。
- HMI(人机界面):操作员与系统的交互入口,负责画面显示、参数设定与操作指令下发。其流量多指向 PLC/DCS 控制器,是操作行为取证的关键节点。
取证视角:SCADA 是“看全局”,DCS 是“控过程”,PLC 是“执行逻辑”,RTU 是“远程采集”,HMI 是“人机操作”。五类角色的流量方向、周期、报文长度各不相同,是建立流量基线的第一层分类依据。
二、典型工控网络拓扑与数据流
典型工控网络按层级划分为企业层、DMZ、监控层、控制层与现场层。层级之间通过防火墙或工业隔离设备分隔,但实际工程中常存在跨层直连,这正是取证复盘需要重点关注的路径。
从数据流方向看,现场层向上汇聚遥测数据,控制层执行逻辑并回传状态,监控层进行集中展示与指令下发,企业层通过 DMZ 获取汇总数据。取证时,若发现控制层设备直接与企业层通信,或 HMI 向非控制器地址发起连接,即为高风险异常路径。
三、通信协议概览与流量特征
工控协议多为明文、无认证、面向轮询设计,这既是取证的优势(可解析),也是安全的弱点(可篡改)。下表汇总常见协议及其流量特征,便于快速识别。
| 协议 | 典型端口 | 主要承载 | 流量特征 | 取证关注点 |
|---|---|---|---|---|
| Modbus TCP | 502 | PLC / RTU | 周期轮询,功能码固定 | 异常功能码、非授权写线圈 |
| DNP3 | 20000 | RTU / SCADA | 短报文,事件上报 | 未授权遥控、时间同步异常 |
| IEC 60870-5-104 | 2404 | SCADA / RTU | APCI 帧,周期总召 | 总召频率突变、遥控命令 |
| S7comm | 102 | 西门子 PLC | 组态下载突发大流量 | 非工程师站下载、停止 CPU |
| EtherNet/IP | 44818 / 2222 | PLC / I/O | 隐式实时 I/O 数据 | 连接数异常、非授权显式报文 |
| PROFINET | 以太网层 0x8892 | PLC / 远程 I/O | 实时循环,低延迟 | 设备名冲突、非组态设备接入 |
四、案例场景:一次异常写入的复盘
某水厂 SCADA 系统在夜间出现阀门异常动作。复盘时按以下流程定位:
- 从 SCADA 服务器抓取 Modbus TCP 流量,过滤功能码 0x05(写单线圈)与 0x0F(写多线圈)。
- 发现写操作源 IP 并非 HMI 操作站,而是一台工程师站,且目标为现场 RTU 地址。
- 进一步查看该工程师站的 S7comm 会话,发现存在非工作时间的组态下载记录。
- 结合 HMI 操作日志,确认该时段无人工操作,判定为异常写入。
# 过滤 Modbus 写操作(Wireshark 显示过滤器)
modbus.func_code == 5 || modbus.func_code == 15
# 过滤 S7comm 下载相关
s7comm.param.func == 0x1a || s7comm.param.func == 0x1b
# 统计源 IP 与目标 IP 的会话
tshark -r capture.pcap -Y "modbus" -T fields -e ip.src -e ip.dst | sort | uniq -c
复盘要点:工控协议通常不加密,取证时应优先保存原始 pcap,再按“源—目的—功能码—时间”四元组建立会话基线。异常往往不在单包,而在“谁在非预期时间、以非预期身份、对非预期目标执行了写操作”。
五、常见误区与复盘清单
误区一:把 SCADA 与 DCS 混为一谈。SCADA 偏广域采集监控,DCS 偏过程闭环控制,两者流量模型不同。
误区二:只关注 IP 层,忽略协议功能码。工控攻击常复用合法端口,仅靠端口无法识别。
误区三:忽略 HMI 与工程师站的差异。HMI 是操作入口,工程师站是组态入口,权限与流量特征完全不同。
建议在每轮取证复盘后维护以下清单:
- 资产清单:设备角色、IP、MAC、协议、固件版本。
- 通信基线:正常会话对、周期、功能码分布。
- 异常路径:跨层直连、非授权源、非工作时间写操作。
- 证据链:pcap 文件、时间戳、会话索引、操作日志。