APP下载

基于改进的BFS算法的工业控制系统网络安全风险的分析

2020-04-01黄兆军

工业技术与职业教育 2020年1期
关键词:工控结点网络安全

黄兆军

(珠海城市职业技术学院,广东 珠海 519090)

0 引言

当今世界正在经历着一场新的技术革命,特别是智能制造技术和新一代信息技术的出现,极大地促进了工业化和信息化的融合,由此引发了传统工业系统的变革:生产工厂的现场设备层、现场控制层、过程监控层、生产管理层和企业资源层之间,越来越多的通过网络进行互联,不再是物理隔离的。企业的人员、设备、生产物料、工艺和环境之间,以及企业与外部正在进行越来越多和越来越丰富的信息交换,传统的计算机领域的网络互联的理念正逐步向工业控制系统领域渗透,“工业控制系统网络”的雏形渐见形成。可以说工业化和信息化的融合极大地推动了工业控制系统向信息化、网络化的方向发展,从而为传统工业转型升级向智能化的方向发展,奠定了坚实的技术基础。然而,既然有“网络”那就必然存在着“安全”,也就是说传统计算机领域的网络安全问题,同样也会出现在工业控制系统网络中。而且由于工业控制系统大量的应用于石油、电力、石化、交通、供水、航空、工业生产等与人们生活密切相关的国家基础设施领域,一旦工控网络被攻击,将会产生严重甚至是灾难性的后果。

2014年12月,德国一家钢铁厂遭受高级持续性威胁(APT)网络攻击,导致工控系统的控制组件和整个生产线被迫停止运转,造成重大物理损伤和财产损失。2015年6月,波兰航空公司的地面操作系统遭遇黑客攻击,导致长达5h的系统瘫痪,造成10个航班和1400名旅客滞留,造成重大的经济损失。2018年8月,全球知名半导体厂商台积电感染勒索病毒,导致其三大工厂全部停产,造成直接经济损失19亿元。2019年3月19日,挪威海德鲁公司的工控系统受到攻击,该公司位于欧洲和美洲的多家工厂被迫关闭,公司的全球网络处于瘫痪状态,造成重大经济损失。

近年来日益增多的工控网络安全事件,逐步凸显出“攻击手段多样化、攻击时间不规律性、攻击对象无差别化”的特征,严重威胁着与人们生产生活密切相关的工业控制系统网络安全。因此,在当面的新形势背景下,如何有效的应对工控系统网络安全问题,成为了摆在我们目前的重要任务。当前也有一些学者和研究机构对工控系统网络安全风险和模型搭建等方面进行了探索和研究,例如董浩等人[1]通过KPCA法和BP网络进行工控系统安全风险评估模型的搭建;李鑫[2]提出了一种基于小波神经网络的网络安全风险实时预测方法;王作广等人[3]提出了一种基于攻击树和CVSS的工控系统风险量化评估方法。然后这些研究成果一定程度上存在着算法复杂、需要大量异常数据等不足,具体实用起来还有一定的难度

因此,针对上述问题,本文结合工业控制系统网络模型和计算机软件技术领域的广度优先遍历算法(Breadth-First-Search,简称 BFS)[4],基于工控网络的节点状态建立状态函数和攻击模型,从而对工业控制系统网络安全风险进行分析;最后还以具体的实例进行了仿真,验证了该算法和模型的有效性。该算法简单易懂,可操作性强,希望能为工控系统网络安全风险决策提供可靠的技术支持。

1 工业控制系统安全框架

工业控制系统是多种类型控制系统的总称,主要包括数据采集与监视控制系统(SCADA)、分布式控制系统(DCS)、PLC控制系统和其它控制系统。不同的行业其工控网络的结构会存在差异,但是从功能上来说,一般可以划分为5个层级[5],如图1所示。

基于图1所示的工控系统层次模型可以建立相应的工控系统安全框架[6],如图2所示。在这个安全框架中,每一层都有相应的保护对象,这些受保护的具体对象都可以看作是工业控制系统网络中的“结点”,结点与结点之间存在大量的信息交互,任何一个节点受到攻击,都会影响整个工控系统的运行,因此整个工控网络安全防护首先是围绕着这些节点展开。这些受保护的各层次 “结点”具体包括:1)生产管理层。主要包括与生产制造有关的的仓储管理、先进控制、工艺管理等系统软件。2)过程监控层。主要包括各个操作员站、工程师站、OPC服务器等,以及运行在这些物理设备上的软件和数据。3)现场控制层。主要包括各类控制器、控制单元、记录装置等,以及运行在这些设备上的软件和数据。4)现场保护层。主要包括各类保护装置、传感器、执行结构等。

图1 工业控制系统层次模型

图2 工业控制系统安全框架

2 广度优先遍历算法(Breadth-First-Search,简称BFS)

“图”是计算机软件领域中一种比较复杂的非线性数据结构,可以广泛的应用于多个技术领域。“图”结构中的基本组成元素是结点(数据元素),各个结点之间的关系用边来表示,结点之间是多对多的关系,如图3所示。

图3 无向图(示例)

BFS算法的基本思想是假设初始状态图中各个结点均未被访问过。从“图”中任意结点v出发,首先访问结点v,并将其标注为已访问;接着依次访问v的所有未被访问过的邻接点v1,v2……vn,并都标注为已被访问;然后按照v1,v2……vn的次序依次访问邻接点的邻接点(访问顺序应按照同步优先的方式),以此类推,直到“图”中所有和初始结点v有路径相通的结点都被访问完为止,且每个结点仅被访问一次。按照此算法,对图3所示的“图”进行BFS,可以得到其访问序列为:v1,v2,v3,v4,v5,v6。其遍历过程如下图4所示。

图4 无向图的BFS过程

3 改进的BFS算法用于工控系统网络安全风险分析

本研究把图1所示的工业控制系统网络当做是一个无向图,而无向图的结点即为图2所示层次模型中的具体保护对象,例如传感器、执行结构、PLC、OPC服务器等;采用BFS算法对工控网络中的每个结点进行访问,保证每个结点仅被访问一次,并且访问每个结点时要采集其原始数据,把结点间实际进行的信息交换关系和结点状态变化的一致性两个方面结合起来,通过综合考虑“结点本身是否受到攻击”和“结点间的信息传输路径是否受到攻击”2个方面的情况,分析哪些结点是否存在安全风险,而且综合所有被访问结点的安全风险可以判断整个工控系统网路的安全形势。

3.1 工控系统网络安全风险分析模型

以某加工型企业的加热环节(3个现场设备层的“结点”和1个上层“结点”)为例来进行分析,如图5所示。

对于工控系统安全风险问题,可以用一个四元组来进行阐述。

其中:

1)Node为对工控网络中所有结点进行BSF(广度优先遍历)之后获得的结点访问序列。以图4为例来说,则Node=( Nodev1, Nodev2, Nodev3,Nodev4, Nodev5, Nodev6)。

2)Date为现场控制层接收到的现场设备层的实际数据,即图1中的温度传感器、流量控制开关和天然气流量计的原始数据,包括最大值、最小值和平均值等。如果有任何一个结点的实际值小于最小值或者大于最大值,或者某一段时间内的平均值不等于正常运行时的平均值,都可以看做是该结点异常。

4)Sr为最终的风险判断函数,Nodeatc用于评估系统内是否存在被攻击的结点,Ar为当前风险分析的结果。

图5 工控系统网络安全风险分析模型示意图

3.2 工控系统的完整性攻击模型

笔者以图5中所示的温度传感器所在的单回路闭环控制系统为例,来研究其受到完整性攻击时的攻击模型,如图6所示。

图6 温度传感器所在单回路闭环控制系统示意图

根据自动控制理论[7]可知在整个工控系统的运行时间TICS内,在正常情况下,控制器接收到的传感器反馈值s(t)与传感器检测控制对象的实际值ys(t)之间的偏差为0;而传感器受到攻击时,反馈值s(t)与实际值ys(t)之间会存在一个不为0的偏差信号r(t),从而影响叠加后的净输入,导致输出偏离设定值。

其中c(t)的具体取值取决于攻击信号。

根据现代控制理论中提到的方法,可以知道当传感器在时间t内受到攻击时传递到输入端的传感器输入值为[8]:

其中a(t)与b(t)为攻击信号函数,当其取不同的值时可以建立各种不同的完整性攻击模型。

3.3 算法基本思想和流程

说明:以下文中所述的i,k……n取值为从1开始的任意正整数,具体取值由工控系统网络结构和BFS过程的起始结点有关。

1)首先根据BFS算法对工控系统网络中的结点进行访问,获得结点访问序列:

2)根据Node中的结点序列顺序,在规定的时间周期内依次采集每个结点的实际运行参数(实际值):

3)把每个结点的规定周期内实际参数值平均值与该结点在正常状态运行时的平均值做比较,如果大于正常运行时的平均值,则该结点的状态值SVi=1,记为异常。否则该结点的状态值SVi=0,记为正常。按照Date中的参数序列把所有的结点进行此类处理,得到状态函数:

4)结合工控系统本身的运行要求,对任意2个结点之间状态变化的一致性进行判断。根据自动控制理论可知,大多数实际工业应用场合都为闭环控制系统,通常的情况是2个结点之间在同一时刻或同一时间段内其状态变化趋势有一致或者不一致。以图6所示的单回路闭环控制系统来说明:

根据该工控系统的设计要求,温度传感器和流量控制开关这2个结点的状态变化应是不一致的,即传感器检测到温度上升时(SV1=1),流量控制开关的开度减小(SV2=0),那么这2个结点的状态值就要进行逻辑上的同或运算。

根据该工控系统的设计要求,流量控制开关和天然气容量计这2个结点的状态变化应是一致的,即流量控制开关的开度减小时(SV2=0),天然气容量计数值也应该变小(SV3=0),那么这2个结点的状态值就要进行逻辑上的异或运算。

5)综合分析,风险判定。仍以图6所示的单回路闭环控制系统为例,按照第4步的方法,进行结点之间的状态一致性判定。

则式(4)中的最终风险分析结果为:

若Nodeatc为1,说明系统的结点受到了完整性攻击,而且Ar中状态一致性判定值为1的结点即为受到攻击的结点;反之,系统正常,Ar中的3个状态一致性判定值皆为0。

最后将上述操作扩展到所有的结点,可以根据受威胁或攻击的结点的数量多少,人为的给工控系统网络安全风险划分不同的级别(需要时),然后采取不同级别的应对策略。

具体的算法流程如下图7所示。

图7 算法流程

4 实验验证(MATLAB仿真)

4.1 实例仿真模型

以某加工厂的原材料处理温度控制环节为例[9],如图8所示。炉内温度T炉内为系统的主要变量,实线表示的是工艺部分,虚线表示的是信号部分。T设定代表系统工艺要求的设定温度,T设定为温度传感器检测到的炉内实际温度,Fgas表示天然气的流量,Kf表示控制阀门的开度(取值0%~100%)。

图8 原材料处理温度控制环节

温度传感器能够对炉内的温度进行检测,阀门控制器对温度实测值和设定值进行比较,通过计算两者的偏差r(t)(见公式5)对气体阀门进行开度控制,使阀门的开度Kf在0%~100%之间进行变动,调节天然气的流量Fgas,从而最终对炉内的温度实现自动调节。在仿真时对T实测、Kf和Fgas4个参数进行检测。

在正常运行情况下,主要是原材料不断的加入导致炉内温度的变化,因此可以在原材料入口环节增加一个幅度为30的扰动,系统会进行正常的温度自动调节。如下图9为3个结点的输出状态及实验结果统计。

图9 正常状态下运行

4.2 完整性攻击下的验证

利用MATLAB软件对系统正常运行时某结点受到的攻击情况进行仿真,假设攻击每次只针对1个结点,时间设定为[0,300],攻击时间设定为[101,300]。

1)假设温度传感器这个结点受到了攻击,根据公式(6)可知,设定攻击信号为:s(t)=a(t)ys(t)+b(t), 其中 a(t)=1,b(t)=-150

此时,仿真结果如图10所示。

图10 传感器被攻击时的运行状态

2)假设气体控制阀这个结点受到了攻击,根据公式(6)可知,设定攻击信号为:s(t)=a(t)ys(t)+b(t), 其中 a(t)=1,b(t)=40

此时,仿真结果如图11所示。

图11 控制阀被攻击时的运行状态

3)假设天然气流量计这个结点受到了攻击,根据公式(6)可知,设定攻击信号为:s(t)=a(t)ys(t)+b(t), 其中 a(t)=1,b(t)=50

此时,仿真结果如图12所示。

图12 流量计被攻击时的运行状态

4.3 综合分析

从正常情况和3种仿真结果综合来看,笔者总结出结点状态和被攻击结点之间的对于关系。如下表1所示。

表1 结点状态与被攻击结点的对应关系

5 小结

本文借助于计算机软件领域中的BFS算法建立了一个由四元组表示的工控网络安全分析模型,利用改进的BFS算法对工控系统中的结点受到完整性攻击时进行了检测,并能够辨别被攻击的结点。从仿真验证结果来看,本文建立的模型和提出的算法在对工控系统网络安全风险进行分析时是有效的,可以为工控网络安全防御策略的建立提供参考和决策依据。

猜你喜欢

工控结点网络安全
网络安全
网络安全人才培养应“实战化”
上网时如何注意网络安全?
Ladyzhenskaya流体力学方程组的确定模与确定结点个数估计
工控速派 一个工控技术服务的江湖
工控速浱 一个工控技术服务的江湖
热点追踪 工控安全低调而不失重要
基于攻击图的工控系统脆弱性量化方法
我国拟制定网络安全法
基于Raspberry PI为结点的天气云测量网络实现