1. 工控资产清单采集与安全评估范围界定

工控资产清单采集与安全评估范围界定 学习卡片

为什么资产清单是评估的起点

工控安全评估的第一步不是扫漏洞,而是回答三个问题:有哪些资产、它们在哪里、它们之间怎么通信。资产清单决定了评估边界——边界之外的设备不纳入本次评估,边界之内的每个资产都要有责任人、位置、型号、固件版本和通信关系。仅靠主动扫描会漏掉不响应探测的PLC和串口设备,仅靠被动流量会漏掉当前未通信的备用设备,因此需要两者结合。

主动探测与被动分析的互补关系

主动探测通过发送探测报文获取资产响应,适合发现IP可达的设备;被动流量分析通过镜像端口或TAP采集通信数据,适合发现不响应探测但持续通信的设备。两者的覆盖范围不同,合并后才能形成完整清单。

主动探测 + 被动流量分析 → 资产清单 → 评估边界 主动探测 发送探测报文,等待响应 ICMP Ping TCP SYN 扫描 Modbus 读请求 SNMP 查询 发现:IP可达、端口开放、协议响应 被动流量分析 镜像端口/TAP 采集,不发送报文 流量镜像口 协议解析 MAC/IP 提取 通信关系记录 发现:通信对、协议、周期、数据方向 资产清单合并与去重 IP + MAC + 协议指纹 + 通信关系 标记:已确认 / 待确认 / 疑似 资产清单(CSV/表格) 字段:IP、MAC、类型、型号、固件、位置、责任人 安全评估边界 纳入:清单内资产及其通信路径 边界外:未发现资产、非工控设备、外部网络 主动探测覆盖IP可达设备;被动分析覆盖通信中的设备;两者合并后确定评估范围

资产清单的关键字段

一份可用于评估的资产清单至少应包含以下字段,缺一不可:

字段说明来源
IP 地址资产在网络中的逻辑地址主动探测 / 被动流量
MAC 地址物理地址,用于去重和厂商识别被动流量 / ARP 表
资产类型PLC / HMI / 工程师站 / 交换机 / 网关协议指纹 + 人工确认
厂商与型号设备制造商和具体型号SNMP / 协议指纹 / 铭牌
固件版本影响漏洞匹配的关键信息SNMP / 协议响应 / 人工确认
物理位置机柜编号、车间、产线现场确认
责任人设备归属和联系人运维台账 / 现场确认
通信关系与哪些资产通信、用什么协议、方向被动流量分析
确认状态已确认 / 待确认 / 疑似人工复核

实操:从探测到清单的完整过程

以下以一个小型工控网络为例,演示主动探测与被动分析结合的操作流程。示例网络为 192.168.10.0/24,包含 1 台 PLC、1 台 HMI、1 台工程师站、1 台交换机和 1 台网关。

第一步:被动流量采集

在交换机上配置镜像端口,将工控网段流量镜像到分析主机。使用 tcpdump 抓取 10 分钟流量:

tcpdump -i eth1 -w ics_traffic.pcap -G 600 -W 1 host 192.168.10.0/24

抓包完成后,用 tshark 提取通信对和协议:

tshark -r ics_traffic.pcap -T fields -e ip.src -e ip.dst -e _ws.col.Protocol -e tcp.dstport | sort | uniq -c | sort -rn

预期输出示例(教学示例数据):

  1520  192.168.10.20  192.168.10.10  Modbus/TCP  502
   890  192.168.10.30  192.168.10.10  Modbus/TCP  502
   340  192.168.10.10  192.168.10.20  Modbus/TCP  502
   210  192.168.10.30  192.168.10.40  SNMP        161
    95  192.168.10.40  192.168.10.1   SNMP        161

从流量中可初步判断:192.168.10.10 是 PLC(Modbus 服务端),192.168.10.20 是 HMI(频繁读写 PLC),192.168.10.30 是工程师站(编程和 SNMP 查询),192.168.10.40 是交换机(SNMP 代理),192.168.10.1 是网关。

第二步:主动探测补充

对网段内所有 IP 进行 ICMP 和 TCP 端口扫描,发现未在流量中出现的设备:

nmap -sn 192.168.10.0/24 -oG ping_sweep.txt
nmap -sT -p 502,102,44818,161,80,443 192.168.10.0/24 -oG port_scan.txt

假设扫描发现 192.168.10.50 开放 502 端口但无流量通信,标记为“待确认 PLC(备用)”。

第三步:合并去重与人工确认

将被动流量中的通信对与主动扫描结果合并,按 MAC 地址去重,形成初始清单。对“待确认”资产进行现场确认:查看机柜、铭牌、接线,确认设备类型和责任人。

第四步:界定评估边界

根据清单确定评估边界:

  • 纳入边界:192.168.10.10(PLC)、192.168.10.20(HMI)、192.168.10.30(工程师站)、192.168.10.40(交换机)、192.168.10.1(网关)、192.168.10.50(备用PLC,待确认后纳入)。
  • 边界外:未发现的其他 IP、办公网段、互联网出口。
  • 边界依据:资产清单 + 通信关系矩阵。评估范围覆盖清单内所有资产及其之间的通信路径。
去重技巧:同一台设备可能有多个 IP(多网卡)或多个 MAC(虚拟化),合并时以“物理设备”为单位,用 MAC 地址作为主键,IP 作为附属信息。对于交换机,管理 IP 和业务 IP 可能不同,需分别记录但归为同一资产。
注意:主动探测中的 Modbus 读请求可能对生产造成影响。在运行中的 PLC 上发送非预期请求可能导致通信超时或逻辑异常。建议在计划停机窗口进行主动探测,或仅使用只读功能码(如功能码 3)并限制请求频率。被动分析无此风险,应优先部署。

资产清单模板(可直接使用)

以下为 CSV 格式的资产清单模板,字段可根据实际项目增减:

ip,mac,type,vendor,model,firmware,location,owner,protocols,peers,status
192.168.10.10,00:1B:1B:3C:4D:5E,PLC,Siemens,S7-1200,V4.2.3,1号柜A3,张工,Modbus/TCP;S7comm,192.168.10.20;192.168.10.30,已确认
192.168.10.20,00:1B:1B:3C:4D:5F,HMI,Siemens,TP1200,V15.1,1号柜A1,张工,Modbus/TCP,192.168.10.10,已确认
192.168.10.30,00:1B:1B:3C:4D:60,工程师站,Dell,Precision 3560,Win10 21H2,控制室,李工,S7comm;SNMP,192.168.10.10;192.168.10.40,已确认
192.168.10.40,00:1B:1B:3C:4D:61,交换机,Cisco,IE-2000,15.2(7)E,1号柜B1,王工,SNMP,192.168.10.30;192.168.10.1,已确认
192.168.10.1,00:1B:1B:3C:4D:62,网关,Moxa,MGate-5110,V1.4,1号柜B2,王工,Modbus/TCP,192.168.10.40,已确认
192.168.10.50,00:1B:1B:3C:4D:63,PLC,Unknown,Unknown,Unknown,2号柜A2,待确认,Modbus/TCP,无,待确认

结果验证与边界确认

资产清单完成后,用以下方法验证完整性:

  1. 交叉验证:将清单与运维台账、采购记录、网络拓扑图对比,检查是否有遗漏设备。
  2. 流量回放:用历史流量回放工具(如 tcpreplay)重放一周前的流量,检查是否有清单外的通信对出现。
  3. 现场巡检:按机柜逐一核对设备铭牌和指示灯状态,确认清单中的“待确认”项。
  4. 边界评审:与运维负责人确认评估边界,明确哪些资产纳入、哪些排除,并记录排除理由。

验证通过的标准:清单中每个资产都有明确的类型、位置和责任人;所有通信关系都有对应的协议和方向记录;“待确认”项清零或明确标注为排除项。