APP下载

基于工控通信模式的层次识别方法

2023-11-05孙蒙蒙刘贤达

现代电子技术 2023年21期
关键词:渐进式工控准确率

孙蒙蒙,刘贤达,盛 川,刘 欢

(1.沈阳化工大学信息工程学院,辽宁 沈阳 110142;2.中国科学院网络化控制系统重点实验室,辽宁 沈阳 110016;3.中国科学院沈阳自动化研究所,辽宁 沈阳 110016;4.中国科学院机器人与智能制造创新研究院,辽宁 沈阳 110169)

0 引 言

工业控制系统(ICS)是监测和控制电力、化工、石油天然气、交通运输等其他关键基础设施的信息物理系统。近年来,互联网技术逐步应用于ICS,打破了传统工业的边界,破坏了工业控制网络的封闭性,再加上其需要在线长期稳定运行等特点,使得ICS 面临越来越多的安全威胁[1]。

网络资产探测是指追踪、掌握网络资产情况的过程,是实现网络安全管理的重要前提[2]。IT 系统通常采用主动探测的方式进行资产探测[3],但这种方式并不适用于ICS。与传统IT 系统相比,ICS 除了包括IT 系统中的传统设备如主机、交换机、路由器等,还包括特有的HMI、PLC、RTU 等设备[2]。此外,ICS 还具有设备异构性、设备的计算能力弱以及TCP 会话运行时间长等特点,如果直接将传统的资产探测方法应用于ICS,不仅无法获取需要的信息,还会干扰系统的正常平稳运行。为了降低传统资产探测方法对ICS 的干扰,有针对性的对工控设备进行识别,解决资产探测过程中对于多种类型的设备区分不清,进行盲目探测时占用大量资源对系统造成影响等问题,结合ICS 各层设备敏感性不同的特点,提出在进行资产探测时先对ICS 设备进行设备层次识别,再对传统IT 设备和工控设备采用不同的探测方式获取详细信息[4]。

近年来,设备层次识别方法逐渐应用于ICS 资产探测过程中,文献[5]第一次提出了利用设备层次关系识别设备层次以辅助后续的设备识别,使用自下而上求目的IP 子集的方法识别设备层次,该方法的缺点是设备间存在不完全通信时易造成控制层设备识别错误,一旦控制层设备识别错误便会产生连锁反应,导致上层设备识别错误。文献[6]提出利用节点间通信关系的设备层次识别方法和利用层次间通信关系的层次识别方法,通过对设备的目的地址集合求交集、差集等运算进行层次识别,该方法未考虑远程I/O 等设备,对于存在此种设备的系统识别效果较差。文献[7]提出一种基于工控各层级联网设备通信流量统计特征的层次聚类算法,通过引入高斯混合模型,提升层次聚类效果,但文中未提及聚类后如何具体区分层次。在工控设备层次识别过程中,存在的困难是ICS 中同时存在工控设备和传统IT 设备,它们之间的通信特点不同会产生不同的通信模式,两种通信模式混合会对工控设备层次识别造成干扰。所以本文针对现有工控设备层次识别方法存在的问题进行改进,采用工控协议过滤的方式将工控设备间的通信提取出来,利用其特点先识别出2、1、0 层的工控设备,再渐进式识别3 层及以上的传统设备。

1 工业控制系统层次架构

为了更好地描述ICS 设备层次结构,确定了遵循普渡模型的ICS 系统层次架构[8],如图1 所示。

图1 ICS 金字塔图

ICS 金字塔图包括五层结构:企业网络层及以上的设备主要由主机和服务器这些传统IT 设备构成,在设备层次识别时对这一部分不具体细分,统一识别为3 层及以上设备;过程监控层包括HMI、SCADA 服务器、工程师站、历史数据库等,这些设备的作用是负责对现场的设备进行监视和控制,设备层次识别其为2 层设备;现场控制层主要与现场设备连接,包括PLC、RTU、IED等,设备层次识别其为1 层设备;现场设备层包括一些执行器和传感器等,其中Remote I/O 安装在远程现场,将采集的数据传输到控制层设备并且它不具有控制能力,将其识别为0 层设备。

在工业控制系统中,为了防止控制命令中的冲突,要求系统中的每个节点只与其直接父节点、直接子节点或者同一级别的节点通信[9]。图2 为典型工业控制系统网络流量中提取出的节点交互关系图,从图中可以看出,过程控制层中的一个上位机可以与现场控制层中的多个PLC 进行交互通信[10],现场控制层中的一个PLC 也可以与同层的多个PLC进行交互通信。在这种混合的通信模式下,相邻层设备间可以互相访问,所以无法准确判断出互相通信的两个设备之间的层次关系,现有的设备层次识别方法便是在这种交互模式下进行层次识别。

图2 工控节点交互关系图

2 基于通信模式的渐进式层次识别方法

针对现有方法存在的设备层次识别准确率低以及受限于理想环境下的设备通信模式等问题,本文提出一种基于工控设备通信模式的渐进式层次识别方法,方法架构如图3 所示,分为两个阶段:数据预处理阶段和层次识别阶段。数据预处理阶段主要进行交互特征提取和工控通信过滤;层次识别阶段利用数据预处理提取的特征集合进行渐进式层次识别。

图3 渐进式层次识别方法架构图

2.1 交互特征提取

当得到捕获的工控网络流量后,需要对其进行预处理。预处理的目的是提取符合层次识别需求的设备交互特征feature,表示为:

其中:srcIp、srcPort 为两个设备间进行完整会话时客户端设备的IP 地址和端口号;dstIp、dstPort 为服务端设备的IP 地址和端口号。设备交互特征集Feature 由设备交互特征feature 构成,表示为:

在提取交互关系过程中需要对报文进行两种处理:一是剔除掉不在目标网段的设备交互流量,如广播产生的交互流量;二是补全交互会话中丢失的报文,比如在网络流量中只有ip2 到ip1 的回复包,便将ip1 到ip2 的请求包补充到会话中以得到完整的交互关系。

2.2 工控通信过滤

对设备交互特征集合Feature 进行工控协议过滤,提取设备ip 地址对ips,表示为:

其中:srcip 和dstip 分别是源ip 地址和目的ip 地址。

ip_feature 是由设备ip 地址对ips 构成的集合,表示为:

具体过滤方法是对设备交互特征feature 中的目的端口进行筛选,如果目的端口号为工控协议特定的端口号,它便为使用工控协议进行通信的会话,存入集合ips_feature1 中,否则存入集合ips_feature2 中。过滤后可以发现,系统节点间的信息交互由图2转化为图4。此时存在两种设备通信交互模式:一种是图2 中的IT 协议通信交互模式;另一种是0、1、2 层设备间存在的工控协议通信交互模式。将该通信模式的特点总结为以下几点:

图4 处理后工控节点交互关系图

1)2 层设备主动访问1 层设备,1 层设备主动访问0层设备,反之不存在。

2)2 层设备间的通信不使用工控协议,所以在过滤后设备间不存在交互。1 层设备间的通信使用工控协议,过滤后依旧存在交互。

3)0 层设备只能被1 层设备访问,并且设备间不存在交互。

2.3 渐进式层次识别过程及算法

渐进式层次识别分为两步:第一步是识别0、1、2 层设备,第二步是识别3 层及以上设备。利用ips_feature1进行第一步识别,由2.2 节总结出的特点1)得知,只存在于源地址集合中而不存在于目的地址集合的IP 为2 层设备,只存在于目的地址集合的IP 为2 层以下设备。然后根据特点2)及特点3)具体区分0 层设备与1 层设备,与2 层设备有交互或者既存在于源地址集合又存在于目的地址集合的IP 为1 层设备,其余IP 为0 层设备。利用ips_feature2 进行第二步的3 层及以上设备识别,需要结合第一步中的设备层次识别结果,对于ips_feature2中的所有IP,如果它不属于ips_feature1 并且与2 层设备进行了通信,该IP即为3层及以上设备。具体算法如下:

算法:渐进式工控设备层次识别算法

输入:工控网络流量的pcap 文件

输出:设备IP 及其对应层次

1:Procedurelevel_identify(pcap)

2:对pcap 文件进行数据预处理

3:进行工控协议过滤得到地址对集合ips_feature1 和ips_feature2

4:for ips in ips_feature1 do

5:统计所有ip 地址,记为icsIpSet

6:统计所有源ip 地址和目的ip 地址,记为srcIpSet、dstIpSet

7:end for

8: for ip in icsIpSet do

9: i←-1;

10: if ip∈srcIpSet && ip∉dstIpSet then

11:i←2;将ip 加入twoLevelSet、level[i]

12: end if

13:while ip∈dstIpSet do

14:if ip.srcip∈twoLevelSet||ip∈srcIpSet then

15:i←1;将ip 加入level[i]

16:end if

17: i←0;将ip 加入level[i]

18: end while

19:end for

20:while ips_feature2 do

21:feature2IpSet= allIpSet-icsIpSet

22:for ip in feature2IpSet do

23:if ip.srcip∈twoLevelSet‖ ip.dstip∈twoLevelSet then

24:i←3+;将ip 加入level[i]

25:end if

26: end for

27: endwhile

28: Return level

29:End procedure

3 实验及结果分析

本文所提方法主要用于对工控系统进行资产探测时的设备层次识别,是在现有设备层次识别方法的基础上,对层次识别方法的准确率和适用性进行有效改进,对于遵循工控系统通信模式的设备层次均能正确识别。下面将通过4 个公开数据集对本文所提方法进行测试验证。

3.1 数据集介绍

实验所用数据集有4 个,分别为SWaT、EPIC、run_6rtu、LICSTER。SWaT 是来自新加坡iTrust 实验室安全水处理平台的公开数据集[11],该平台的网络部分由可编程逻辑控制器(PLC)、人机界面(HMI)、监控和数据采集(SCADA)工作站以及历史数据库等组成。EPIC 是来自新加坡iTrust 实验室电力智能控制平台的公开数据集[12],该平台的网络部分由可编程逻辑控制器(PLC)、监控和数据采集(SCADA)工作站以及智能电子设备(IED)等组成。LICSTER 是来自文献[13]中的一个ICS安全实验台的数据集,该平台的网络部分由可编程逻辑控制器(PLC)、人机界面(HMI)、监控和数据采集(SCADA)工作站以及远程I/O 等组成。run_6rtu 是来自文献[14]中提供的数据集,该数据集包括SCADA 的2 个主终端单元(MTU)以及6 个远程终端单元(RTU)。

3.2 实验测试

为了证明所提方法在现实工控系统的有效性以及通用性,对上述4 个数据集进行设备层次识别,在经过数据预处理、渐进式层次识别等阶段后得到设备所在层次。然后使用本文方法与现有的两种层次识别方法进行对比实验,通过比较3 种方法在4 个数据集上设备层次识别的准确率,验证本文提出的层次识别方法的识别效果优于现有层次识别方法。

首先进行数据预处理,使用Tshark[15]提取捕获文件中的设备交互特征集合Feature。以run_6rtu 数据集中的192.168.1.99 与192.168.1.101 的会话为例,交互特征feature=<192.168.1.99,192.168.1.101,2133,502>。然后进行工控协议过滤,采用工控端口筛选的方式。由于各个工控系统使用的工控协议不同,其所对应的工控端口也有所不同,如run_6rtu 数据集中使用的工控协议是Modbus 协议,对应工控端口为502;SWaT 数据集中使用的工控协议是EtherNet/IPCIP 协议,对应的端口为44818。工控协议过滤后得到使用工控协议进行通信的IP地址对集合ips_feature1和不使用工控协议进行通信的IP地址对集合ips_feature2。最后利用IP地址对集合进行渐进式层次识别,图5 是根据层次识别结果画出的拓扑图,分别对应数据集SWaT、LICSTER、EPIC和run_6rtu。

图5 四个数据集的拓扑图

利用本文方法与文献[5]以及文献[6]中的方法进行对比实验,最后在4 个数据集上的准确率统计结果如表1~表4 所示。与现有两种方法比较,本文方法具有更高的准确率和适用性,方法1 和方法2 存在相同的缺点,他们进行层次识别的设备交互必须是理想状态下的,即每个设备与其可通信的设备都有所通信。一旦存在设备交互关系的缺失,就会出现层次识别准确率低的问题。本文方法是根据真实工业控制系统场景下的通信模式提出的,不局限于理想状态下的通信模式,能够适用于实际的工业控制系统。

表1 SWaT 数据集识别结果

表2 EPIC 数据集识别结果

表3 LICSTER 数据集识别结果

表4 run_6rtu 数据集识别结果

根据实验结果可以得出以下结论:

1)本文提出的渐进式层次识别能够准确识别出4 个数据集中工控设备的层次结构,具有通用性和有效性。

2)本文首次提出在层次识别过程中使用工控通信过滤,过滤后能大大提高识别准确率。

4 结 语

工控资产探测是为了实时监控工控系统中的设备资产状态信息,及时发现工控网络中存在的安全隐患。在进行资产探测时,为了能对工控设备进行针对性的探测,本文提出一种针对典型工控系统进行渐进式层次识别的方法,该方法解决了现有层次识别方法存在的局限于工控系统理想通信模式的缺点,具有更高的准确性和通用性。然而有些工控系统存在一些非典型的通信模式或者不使用默认的工控协议端口,对于上述系统进行层次识别时可能会出现设备层次识别准确率下降的问题。此外,在后续资产探测识别设备的详细信息时,如何结合识别出的控制层次结构级别,减少探测对于工控系统的干扰,是未来研究的重要方向。

注:本文通讯作者为刘贤达。

猜你喜欢

渐进式工控准确率
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
基本收入的理论构想与渐进式实现路径
高速公路车牌识别标识站准确率验证法
工控速派 一个工控技术服务的江湖
工控速浱 一个工控技术服务的江湖
热点追踪 工控安全低调而不失重要
基于攻击图的工控系统脆弱性量化方法
轻熟女“渐进式”省钱保养计划