一种面向工业控制过程的入侵检测方法*

2021-03-21 04:34朱振乾李大勇
通信技术 2021年2期
关键词:拱顶偏差观测

敖 麒,朱振乾,李大勇

(1.工业信息安全(四川)创新中心有限公司,四川 成都 610041;2.中国电子科技网络信息安全有限公司,四川 成都 610041;3.北京北方车辆集团有限公司,北京 100072)

0 引言

工业控制系统(Industrial Control System,ICS)是指由计算机与工业过程控制部件组成的自动控制系统[1],广泛应用于工业、能源、交通、水利等各个领域。

随着网络技术的发展,两化融合的需要,工业控制系统需要更多地接入开放的网络空间中,由此带来的风险也不断增加。近年来,以Stuxnet病毒为代表的针对工控系统的高级持续性威胁(Advanced Persistent Threat,APT)攻击越来越频繁,旧有的物理隔离防护策略已不能满足现代ICS防护的需要。

APT攻击综合多种先进的攻击手段,利用工控系统的漏洞,持续隐蔽地对工业控制过程(Industrial Control Process,ICP)进行干扰和破坏。由于工业控制过程与工业现场的物理设备直接连接,一旦受到攻击将会产生难以估计的后果。由此可见,尽早发现持续隐蔽的攻击行为将能够有力地保护工业安全,避免人员和财产损失。

根据国际计算机安全协会(International Computer Security Association,ICSA)的定义,入侵检测是通过从计算机网络或计算机系统中的若干关键点收集信息并对其进行分析,从中发现网络或系统中是否有违反安全策略的行为和遭到袭击迹象的一种安全技术。入侵检测系统(Intrusion Detection System,IDS)被称为防火墙之后的第二道安全闸门,在工业生产过程中,能够检测到攻击者对工业控制过程的内部和外部攻击,发出警告并启动防护措施,以避免物理系统发生损坏。

1 工控系统入侵检测方法相关研究

由于工业控制系统自身与物理世界紧密联系的特殊性,类似Stuxnet一类的病毒攻击往往潜伏于工业控制节点中,修改控制逻辑时,并不会在网络流量中表现出异常,仅体现在工业控制过程的状态信息中,传统的入侵检测方法无法及时发现[2]。

根据采集数据的来源,入侵检测方法可以分为基于主机(Host-Based)的入侵检测和基于网络(Network-Based)的入侵检测。基于网络的入侵检测方法是对网络传输数据包进行实时检测,提取分析其中相关的数据特征信息,从而判断网络入侵是否发生。基于主机的入侵检测方法是对系统主机的相关信息进行检测,提取系统审计记录、运行状态、日志内容等信息的关键特征,识别其中的异常数据,进而中止攻击行为。

1.1 基于网络的入侵检测

为保证工业控制系统的可用性,工业现场往往采用较为稳定的网络拓扑结构。基于网络的入侵检测可以针对网络流量的规律性变化,通过神经网络,支持向量机(Support Vector Machine,SVM)、贝叶斯网络等机器学习算法进行建模,若出现违反该模型/模式的行为出现时,即视为网络入侵并发出警告。

文献[3]针对Modbus/TCP协议漏洞频出问题,设计了基于卷积神经网络的异常报文检测模型,实现对Modbus/TCP异常报文检测。文献[4]设计并实现基于神经网络的多种工业协议入侵检测模块,并利用神经网络完成对模型的训练和异常检测。文献[5]将n-gram算法用于特征提取,结合单类支持向量机(One-Class Support Vector Machine,OCSVM)与集成学习,对Modbus网络进行异常检测。文献[6]针对电网工控系统的流量异常检测需要,提出了基于熵的动态半监督K-means算法,并通过OCSVM进行了改进。文献[7]提出一种基于布隆过滤器(Bloom Filter)的入侵检测机制,以应对针对汽车CAN总线的重放和修改攻击。

1.2 基于主机的入侵检测

基于网络的入侵检测需要实时监听网络传输中的数据流量信息,对带宽的要求较高,基于主机的入侵检测则能有效避免此类问题。

文献[8]从工业控制网络流量中提取行为数据序列,建立控制器的正常行为模型和ICS的受控过程,并比较测试的行为数据和预测行为数据以检测任何异常。文献[9]研究如何将历史相量测量单元(Phasor Measurement Unit,PMU)测量结果转换为数据样本以进行学习,建立分布式检测框架以检测整个电力系统中的数据操纵攻击。文献[10]针对SCADA组件的输入输出时间序列,提出两种基于隐式马尔可夫模型(Hidden Markov Model,HMM)和人工神经网络(Artificial Neural Network,ANN)算法的网络攻击检测技术。文献[11]研究通过分布式攻击检测(Distributed Attack Detection,DAD)的方法识别工厂物理过程的异常,实时检测针对水处理厂传感器的入侵攻击。文献[12]将来自制造过程级别和生产系统级别的物理数据与来自基于网络和基于主机的IDS的网络数据集成在一起,采用KNN等机器学习方法,实现网络制造系统(Cyber-Manufacturing System,CMS)的恶意攻击入侵检测。文献[13]介绍了一种完全分布式的通用异常检测方案,该方案使用图论并利用物理过程的时空相关性对通用大型网络工业传感系统(Networked Industrial Sensing Systems,NISS)进行实时异常检测。

针对工业控制系统的入侵攻击,具有信息物理耦合和攻击隐蔽的特点:信息物理耦合使得攻击的设计与业务流程紧密相关,最终体现在对物理系统的巨大破坏上;攻击隐蔽是指攻击者在成功获取工业控制权限前,往往进行长期潜伏,躲避已有的安全防护措施。现有的入侵检测方法往往较少考虑到工业控制过程自身的特点。本文提出一种面向工业控制过程的入侵检测方法,从工业控制过程出发,充分考虑工控攻击的特点,将入侵检测转化为物理系统状态变化检测的最优停止问题。

2 针对工业控制过程的攻击模型

根据自动控制理论,对于离散线性控制系统,可以用如下的状态方程进行描述:

式中,x(t)=(x1t,…,xnt)∈Rn是系统变量,表示系统在t时刻的状态;A=(aij)∈Rn×n是状态矩阵;B=(bij)∈Rn×m是输入矩阵;u(t)=(u1t,…,umt)表示t时刻控制器的输出;w(t)∈Rn是系统状态的扰动变量。

系统的状态x(t)一般难以直接测量,可以通过传感器的观测值建立联系,观测方程如下:

式中,y(t)=(y1t,…,ylt)∈Rl表示l个传感器在t时刻的观测值;C=(cij)∈Rl×n是输出矩阵;v(t)∈Rl是观测值的扰动变量。

针对工业控制过程的网络攻击,最终目的是通过干扰控制逻辑,造成不可接受的物理破坏。为防止异常情况发生,工业控制过程中往往都会设置一些报警阈值,物理系统的某些状态监测数值一旦超过这些阈值,保护机制会立刻响应。网络入侵时,高级的攻击者能够规避报警机制,整个攻击过程保持隐蔽,最终使被控对象的物理状态值发生偏离,同时这种偏离又不至于触发安全监控警告,难以发现。

工业控制系统遭受到的攻击大致可以分为欺骗攻击和拒绝服务攻击(Denial of Service,DoS)。欺骗攻击是针对传感器、执行器、控制器等节点,通过注入(Injection)、更改(Modification)、重放(Replay)等方式,发送控制过程中的虚假信息,即y~≠y或u~≠u,实现攻击者想要的系统失控。网络DoS攻击一般是通过阻塞或阻断通信信道、封锁报文等方式,使工业控制过程参与各方无法有效地传输信息。

图1表示了工业控制过程可能遭受的潜在攻击。其中:攻击A表示对工业控制过程中的物理装置进行直接的物理破坏;攻击B和攻击D表示欺骗攻击,攻击者通过注入、重播、修改等手段使控制过程中的数据发生变化,即攻击C和攻击E表示DoS攻击,攻击者通过阻断通信信道的方式,使得工业控制过程的参与各方无法正常工作。

图1 针对工业控制过程的攻击

3 工业控制系统的入侵检测方法

黑客对于工业控制系统的攻击,最终目的是要对物理控制系统产生影响,因此工业控制过程中的物理状态参数在受到入侵攻击后必然发生变化。基于工业控制过程的入侵检测可以抽象成一个统计学上的变点检测问题,即利用一定的统计指标和方法,对物理状态的时序数据进行监测,当某个时刻数据发生异常变化时,尽快检测出来。由于针对ICS的攻击呈现隐蔽性的特点,入侵检测方法需要对微小的数据偏移变化有相当的敏感度。

3.1 非参量CUSUM算法

累积和(Cumulative Sum,CUSUM)是变点检测问题的常用分析方法。其设计思想是:将每个样本值与目标值的偏差进行累计求和,过程均值中的微小波动带来累计偏差值的稳定增加(或降低),从而提高检测过程中对小偏移的灵敏度。CUSUM适用于在一个相对平稳的观测序列中,发现异常突变的数据。工业控制过程中的系统状态参数符合特定的物理规律,呈现出相对稳定的特点,适合应用CUSUM算法进行入侵检测。

20世纪90年代提出的非参量CUSUM算法,通过对观测统计量均值的正向漂移来判断变化点是否出现,而无须获得攻击状态下的被检测序列的概率分布,是一种独立于黑客攻击统计模型的非参量检测算法,更符合工业实际需要。

非参量CUSUM算法判决统计量表达式为:

式中,Sn是判决统计量,zn是观测统计量,k是为了降低误报率而选择的一个较小的正数,称作偏移常数。a+右上的“+”表示当a>0时,a+=a;a≤0时,a+=0。检测结束时刻由下式决定:

h是报警阈值,若Sn超过h,判定异常变化出现。

3.2 基于非参量CUSUM的ICS入侵检测方法

图2是针对传感器欺骗攻击的入侵检测过程。攻击者以隐蔽的方式修改现场传感器的输出值,将真实观测值yt修改为攻击设计值(低于报警阈值)。假设控制系统的近似模型已知,能够计算得到物理系统的预期输出则入侵检测模块可以通过CUSUM算法比较发现传感器数据发生改变的攻击事实。

图2 工业控制过程中的传感器攻击

代入式(4)中,可以得到判决准则:

在正常状态的工业控制过程中,zt的实际观测值与预测值偏差的期望值应该为0,即随着检测时间变长,n越来越大,由大数定律得到而式(7)的判决准则表示不管时间有多长,与均值0都有一个固定的偏移k,这对于检测偏移小于k的攻击是不利的,容易发生漏报。为降低漏报,需要进一步对k进行优化。

假设有一服从正态分布N(μ,σ2)的检测序列x1,x2,…根据统计学的3σ准则,若第一个观测值x1>3σ,可以判定x1异常,否则继续观察第二个值x2,若x2>3σ或x1+x2>3σ+3σ,可以判定x1+x2异常。另外,由于x1+x2~N(2μ,2σ2),若,也可以判定x1+x2异常。一般地,对于n个观测值x1,x2,…,xn,若:

可判定该观测序列值异常。

4 应用举例

本节将以高炉热风炉的炉顶温度自适应控制系统为对象,对基于非参量CUSUM的工业控制系统入侵检测方法进行仿真实验验证。热风炉拱顶温度是热风炉生产中的重要参数,拱顶温度较低时,在送风期将不能保证规定的热风温度,而拱顶温度过高将会对拱顶造成损伤。

为了使仿真数据接近工业的真实情况,对拱顶温度传感器输出叠加的随机噪声应略大于热电偶的测量误差,取2.5℃。热风炉拱顶温度的模型预测误差不超过15℃,与随机噪声叠加后,观测统计量zt的误差设定在[-17.5,17.5]。将该误差与热电偶误差再次叠加,在MATLAB中进行仿真,得到图3,zt的均值约为9℃,方差σ约为10℃。

本文假定黑客对热风炉拱顶温度传感器实施偏差攻击,即对温度传感器的输出做出一个微小偏差常数δ的修改,传感器值为y~=y^-δ。由式(9)可知,从时间t=0开始,攻击若要不被发现,δ需满足:

检测到入侵攻击的时间与攻击偏差常数δ、判别参数k和h的大小有关。参考3σ准则,取k=3σ,即k约为30℃。在仿真中,假设传感器采样周期为0.1秒,当攻击偏差常数为2℃时,则60秒后攻击累积偏差可达1 200 ℃,综合考虑检测准确率和效率,取h=500。

图4表示δ取不同值时,拱顶温度传感器测量值与预测值的偏差曲线。偏差攻击持续进行一段时间后,危害开始显现,拱顶温度难以达到规定值,热风炉难以正常运转。

图3 温度传感器检测值与预测值误差分布(正常运行)

图4 温度传感器检测值与预测值误差分布(偏差攻击)

不同偏差攻击下,基于非参量CUSUM算法的报警时间如表1所示。

表1 偏差攻击的报警时间

从仿真结果可见,以攻击偏差δ 为特征的攻击力度越大,基于非参量CUSUM的工业控制系统入侵检测效果越有效,越能够及时发现攻击行为。

5 结语

针对以破坏工业物理系统为目的的网络攻击场景,本文提出面向工业控制过程的入侵检测算法,针对攻击隐蔽性的特点和控制系统攻击实时检测的要求,将此类攻击检测抽象为“观测对象状态变化检测的最优停止问题”。针对黑客攻击的概率分布难以获得、概率密度难以计算的问题,由传感器的观测值和预测值的差值构成检测序列,提出基于非参量CUSUM的ICS入侵检测方法。最后,以热风炉的拱顶温度控制系统为对象,在温度传感器受到偏差攻击的场景下,通过仿真验证了算法的有效性。下一步将在目前研究的基础上,提高检测精度,并研究其他隐藏攻击方式下的检测方法。

猜你喜欢
拱顶偏差观测
中核集团:全球最大LNG储罐拱顶模块吊装成功
上软下硬地层隧道变形规律及预留变形量研究
50种认知性偏差
方斗山隧道拱顶FLAC沉降模拟及修正
浅谈辊道窑拱顶开裂或塌陷原因分析
如何走出文章立意偏差的误区
天文动手做——观测活动(21) 软件模拟观测星空
真相
2018年18个值得观测的营销趋势
可观测宇宙