3. 工业设备指纹的采集方法

设备指纹的质量,首先取决于“指纹数据从哪里来”。在工业网络中,同一台PLC、RTU、HMI或工业网关,可能同时被四种手段“看见”:主动探测能问出它开放了什么服务,被动监听能看清它平时和谁说话,日志采集能还原它被谁登录过,代理上报则能拿到它内部最真实的资产与运行信息。四种方法不是互相替代,而是互补的证据来源。理解它们的适用场景与部署要点,是构建可信设备指纹库的第一步。

一、主动探测:用“提问”换取设备暴露面

主动探测的核心是向目标设备发送构造好的报文,根据响应判断其身份。工业现场常用的手段包括ICMP存活探测、TCP端口扫描、Modbus/TCP功能码探测、S7comm的COTP连接请求、EtherNet/IP的ListIdentity请求,以及SNMP的sysDescr读取。例如,对一台疑似西门子S7-1200的设备,可先发COTP连接请求,若返回COTP CC并携带TSAP信息,再读取SZL(系统状态列表)中的模块标识,就能得到较可靠的型号与固件线索。

主动探测的优点是信息直接、可批量执行、能发现“沉默设备”;缺点是会向生产网络注入额外流量,老旧PLC可能因异常报文死机或进入故障态。因此部署要点是:先小范围、低速率、按协议白名单探测,避开生产高峰;对关键控制器优先使用厂商提供的只读诊断接口,而不是通用扫描器;探测源应放在镜像口或管理区,避免从业务主机发起。探测结果必须记录时间、源IP、目标IP、协议、请求与响应摘要,作为指纹证据链的一部分。

二、被动监听:在不打扰设备的前提下还原通信关系

被动监听通过交换机镜像口或网络分光器获取流量,解析工业协议报文,提取设备IP、MAC、协议类型、功能码、寄存器地址、通信周期、主从关系等特征。它最大的价值是“零打扰”,特别适合不能停机、不能扫描的连续生产装置。例如,通过持续监听Modbus/TCP,可以发现某IP每200ms读取一次保持寄存器40001~40010,且只作为主站发起请求,这本身就是行为指纹的一部分。

部署要点在于镜像口的选择与流量过滤。应优先镜像汇聚层或关键工艺段的交换机端口,避免全厂流量集中导致丢包;对高带宽链路可先做BPF过滤,只保留工业协议端口(如502、102、44818、20000)。被动监听无法发现长期静默设备,也无法获取设备内部配置,因此它更适合与主动探测、日志采集交叉验证。监听数据要保留原始pcap或流特征摘要,便于后续回溯。

三、日志采集:从“谁登录了谁”补全身份维度

日志采集面向设备自身或周边系统产生的记录,包括PLC的Web管理日志、交换机的端口安全日志、防火墙的会话日志、Windows/Linux主机的登录日志,以及工业审计系统的操作记录。它回答的是“谁在什么时候访问了哪台设备、做了什么操作”,这对识别未授权接入、异常登录和横向移动非常关键。例如,某工程师站凌晨2点通过RDP登录到HMI,随后该HMI向多台PLC发起写操作,日志链就能把“人—主机—设备”关联起来。

部署要点是统一时间源(NTP)和日志格式,避免各设备时间偏差导致关联失败;对不支持Syslog的老旧设备,可通过串口或OPC UA采集;日志中应至少保留源IP、目的IP、用户、操作类型、结果和时间戳。日志采集的短板是依赖设备自身能力,很多现场仪表根本没有日志接口,因此它通常作为辅助证据,而不是唯一指纹来源。

四、代理上报:获取设备内部最真实的资产信息

代理上报是在设备或主机上安装轻量采集程序,主动上报CPU、内存、操作系统、安装软件、网卡、运行进程、开放端口和已连接设备列表。它最接近“资产台账”,适合工控主机、服务器、工程师站和部分支持边缘计算的网关。例如,在工程师站部署代理后,可每5分钟上报一次进程列表,若发现新增了未授权的远程工具,即可触发准入告警。

部署要点是控制代理资源占用,工业主机上CPU占用建议低于2%、内存低于50MB;上报通道应使用TLS加密并支持断点续传;对不能安装代理的PLC和仪表,不要强行适配,而应通过其他三种方式补全。代理上报的数据最丰富,但也最依赖设备可管理性,且存在被篡改的风险,因此需要与被动监听结果做一致性校验。

四种采集方法:数据来源 → 指纹维度 → 适用场景 设备指纹库 IP / MAC / 型号 / 固件 协议 / 行为 / 身份 主动探测 ICMP / 端口 / Modbus S7comm / SNMP 适用:可停机、需暴露面 要点:低速率、白名单 被动监听 镜像口 / 分光器 协议解析 / 行为周期 适用:连续生产、零打扰 要点:过滤、防丢包 日志采集 Syslog / 登录日志 防火墙会话 / 审计 适用:身份追溯、合规 要点:NTP、字段统一 代理上报 主机 / 网关 / 服务器 进程 / 软件 / 端口 适用:可装代理的主机 要点:低占用、TLS 交叉验证:主动 + 被动 + 日志 + 代理 → 可信指纹

五、四种方法的组合策略与部署顺序

实际项目中,不建议只依赖一种方法。一个可落地的组合顺序是:先被动监听建立通信基线,再对静默设备做低速率主动探测,同时接入关键主机日志,最后在可管理主机上部署代理。这样既能覆盖“沉默设备”,又能拿到“内部信息”,还能通过日志补全“人”的维度。

以某汽车零部件工厂为例:先在焊装车间核心交换机做镜像,监听Modbus/TCP和Profinet流量,识别出12台机器人控制器和3台PLC的通信关系;随后对未出现在流量中的5台老旧仪表做SNMP只读探测,获取型号与固件;再接入工程师站和HMI的Windows安全日志,发现一台HMI存在非工作时间的RDP登录;最后在工程师站和MES服务器部署代理,上报进程与软件清单。四类数据在指纹库中按“IP+MAC”为主键合并,冲突字段以被动监听和代理上报为准,主动探测结果作为补充。

部署优先级建议:连续生产装置优先被动监听;可停机检修设备补充主动探测;涉及人员操作的场景必须接入日志;主机和服务器尽量部署代理。任何单一方法都不足以支撑准入控制,指纹的可信度来自多源交叉验证。

六、常见误区与判断依据

第一个误区是“扫描越全越好”。工业现场大量老旧PLC对并发连接和异常报文敏感,全端口扫描可能导致通信中断。判断依据是:探测前先确认设备是否允许扫描,优先使用协议级只读请求,控制并发数在1~2之间,速率低于10包/秒。

第二个误区是“被动监听能发现所有设备”。被动监听只能看到有流量的设备,长期静默的仪表、备用控制器不会被发现。判断依据是:若某网段连续24小时无任何流量,应安排主动探测或现场盘点。

第三个误区是“代理上报数据一定准确”。代理运行在主机上,若主机被入侵,上报数据可能被篡改。判断依据是:将代理上报的IP、MAC、开放端口与被动监听结果比对,若出现不一致,以被动监听为准并触发告警。

最后,无论采用哪种方法,采集到的原始数据都应保留时间戳、来源和采集方式,形成可追溯的证据链。指纹不是一次采集就固定不变的,设备固件升级、网卡更换、IP调整都会导致指纹变化,因此需要建立周期性复核机制,建议关键设备每季度复核一次,普通设备每半年复核一次。