2. 基于Purdue模型的工控网络分区合规性检查
Purdue 分层与合规检查对象
Purdue 参考模型把工控网络划分为 0~5 层:0 层现场设备(传感器/执行器)、1 层控制器(PLC/DCS)、2 层监控(HMI/工程师站)、3 层站点运营(历史库/域控/补丁服务器)、3.5 层 DMZ(数据代理/镜像/跳板)、4 层企业 IT、5 层云/外部。合规检查的核心不是“层号对不对”,而是同一层内是否可横向直连、跨层是否只经 conduit 通行、conduit 是否具备明确边界与策略。
本次检查对象为某流程工厂的 6 个 VLAN:VLAN10 现场仪表、VLAN20 控制层、VLAN30 监控层、VLAN40 站点运营、VLAN50 DMZ、VLAN60 企业办公。检查依据三条硬性判据:① 0~2 层之间禁止任何跨层直连,必须经 1 层或 2 层内的受控接口;② 2 层与 3 层之间只允许单向数据采集(OPC UA/历史同步),不允许 3 层主动回连 2 层;③ 3 层与 4 层之间必须经 3.5 层 DMZ 代理,禁止 3 层设备直接访问 4 层资源。
逐层检查与违规判定
检查按“先看 VLAN 与层映射,再看跨层连接方向,最后核对 conduit 策略”的顺序执行。以下为本次检查的判定记录:
| 检查项 | 源区域 | 目的区域 | 连接方式 | 判定 | 依据 |
|---|---|---|---|---|---|
| V1 | VLAN10(L0) | VLAN30(L2) | 路由直连 | 违规 | 0~2 层禁止跨层直连 |
| V2 | VLAN40(L3) | VLAN60(L4) | 防火墙放行 | 违规 | L3→L4 必须经 DMZ 代理 |
| V3 | VLAN40(L3) | VLAN30(L2) | 反向主动连接 | 违规 | L2↔L3 只允许单向采集 |
| C1 | VLAN10(L0) | VLAN20(L1) | 现场总线 | 合规 | 同层内受控接口 |
| C2 | VLAN20(L1) | VLAN30(L2) | 工业以太网 | 合规 | 相邻层标准 conduit |
| C3 | VLAN30(L2) | VLAN40(L3) | OPC UA 单向 | 合规 | 方向正确、有采集策略 |
| C4 | VLAN40(L3) | VLAN50(L3.5) | 代理转发 | 合规 | DMZ 代理入口 |
| C5 | VLAN50(L3.5) | VLAN60(L4) | DMZ 出口 | 合规 | 经 DMZ 代理出口 |
整改建议
- V1 整改:在 VLAN10 与 VLAN30 之间的路由/防火墙设备上删除直连放行规则,改为 VLAN10→VLAN20→VLAN30 的逐层路径;若现场仪表确需被 HMI 读取,应在 L1 控制器侧配置数据映射,而非跨层直连。
- V2 整改:关闭 VLAN40 到 VLAN60 的直接防火墙策略,所有 L3→L4 流量强制经 VLAN50 DMZ 代理;在 DMZ 代理上配置白名单目标与端口,禁止全通。
- V3 整改:在 VLAN40 到 VLAN30 的防火墙上增加方向限制,仅允许 VLAN30 主动发起采集会话,禁止 VLAN40 主动回连;对历史库同步任务改为由 L2 侧发起拉取。
- 补充核查:确认 C3 的 OPC UA 采集是否启用了只读账户与证书校验;确认 C4/C5 代理是否记录审计日志,便于后续追溯。
检查时优先使用现有防火墙策略表、交换机 ACL 和路由表进行静态核对;若策略表不完整,再通过流量镜像验证实际连接方向,避免仅凭配置文件下结论。