APP下载

基于粒子滤波的工业控制网络态势感知建模

2018-10-18陆耿虹冯冬芹

自动化学报 2018年8期
关键词:工控态势状态

陆耿虹 冯冬芹

工控网络处于快速发展阶段,由于工业通信协议中存在不可避免的漏洞,工控网络容易遭受攻击者的恶意攻击,给工控网络的安全带来巨大威胁[1],例如伊朗的震网病毒事件[2],就是攻击者借助Stuxnet病毒对可编程逻辑控制器(Programmable logic controller,PLC)代码进行篡改,实现攻击,从而达到破坏离心机正常运行的恶意目的,并造成不可逆转的严重事故.此外,由于工控网络自身存在的复杂性增加了攻击判断与检测的难度,尤其当管理员处于高压紧张的环境下,更容易发生判断失误[3].

因此,如何提高对工控系统网络整体态势的准确判断成为当务之急.1999年,Bass[4]首次将态势感知(Situation awareness,SA)与网络安全技术相结合,以期能准确全面地掌握系统的安全状态,预防事故发生,为安全管理员提供可靠有效的决策依据.Naderpour等[5]提出新型异常态势模型(Abnormal situation modeling,ASM),构建贝叶斯网络对多种态势进行分析,该方法针对安全性要求极高的系统,利用风险指标判断系统在出现异常态势(Abnormal situation)情况下的危险态势(Hazardous situation)风险等级,以此确定系统态势.Kim等[6]提出一个基于贝叶斯推论的核电厂态势评估解析模型,该方法是对核电厂操作员在面对事故发生时的态势评估思考模型(Mental model)建模.

以上两种方法,均是在系统出现异常或事故的情况下对系统态势进行分析,其前提是异常或事故报警为可信的;但是,若系统遭受到欺骗性攻击(例如假数据注入攻击[7]),由于系统内的报警系统被攻击者蒙蔽,此类态势感知技术将无法对系统真实态势进行感知.

针对以上问题,结合系统在遭受到攻击的情况下系统内部状态值会发生相应改变,本文提出基于粒子滤波的工业控制网络态势感知建模方法.粒子滤波(Particle filtering,PF)[8−9]是采用蒙特卡罗仿真完成递推贝叶斯滤波过程,核心是采用一组粒子近似表示系统的后验概率分布,然后使用近似表示估计非线性系统的状态[10].Arulampalam等[11]对PF的非线性/非高斯噪声系统状态的估计性能进行了考察,并将其与扩展卡尔曼滤波进行比较,证明PF能有效解决非线性/非高斯噪声系统的状态估计问题.

由上述文献的研究结果可知,传统的PF状态估计,可以预测非线性非高斯系统的态势变化.但是在实际应用PF状态估计算法对工控系统受到的持续攻击进行检测时,实验结果显示漏检率高达96%,这是因为在控制器的作用下,系统从临界状态趋于稳态,此时,由于PF状态估计算法自身的跟踪能力可跟踪到系统的攻击状态导致无法检测出异常,从而使得该算法在检测持续性攻击时,存在较高的漏检率,这一不足也为工控系统安全带来威胁.

因此,为了实现对持续性攻击的检测,降低PF状态估计算法对该类攻击的漏检率,本文将工控系统内在特征与攻击特征相结合,提出基于PF输入估计的态势理解算法.该方法考虑了工控系统遭受到网络攻击时(以传感器参数篡改为例),虚假的传感器参数导致系统的输入值与输出值之间的非线性关系发生变化,利用这一特点,结合Monte-Carlo思想,对系统输入的先验概率进行随机取样,依据相似性对样本粒子分配权值,并获取系统输入的估计值将估计值与实际值之间的差值,作为系统态势特征,判断工控系统是否处于危险态势,避免了由于PF状态估计引起的漏检,为针对工控系统网络的持续性攻击检测提出新思路.在本文最后,对经典PF状态估计算法和态势理解算法进行仿真验证.需要说明,不同于文献[12]对网络安全态势预测算法的精度进行考察(算法精度越高,对复杂网络环境的预测结果越准确),本文考虑到工控系统遭受攻击的后果严重性,系统中出现的漏报与误报将会误导操作员对工控系统的态势判断,从而引发灾难,因此参考Salerno等[13]提出的态势指标,对本文提出算法报警结果的漏检率与错误率进行分析,而不再考虑算法精度.实验结果表明,本文提出的算法能有效感知系统中的不同态势(正常态势及危险态势),漏检率与错误率均处于较低水平.

1 工控网络态势感知模型

1.1 网络安全态势感知模型简介

Endsley[14]在1988年提出了态势感知的定义:在一定的时空条件下,对环境因素的获取、理解以及对未来状态的预测.

网络安全态势感知(Network security situation awareness,NSSA)模型分为三个层次,通过对来自系统的数据进行处理后,获取系统当前态势,并对未来态势进行预测.从下至上依次为(如图1所示):

1)态势要素获取:态势要素获取层是NSSA模型的基础,主要包括对数据的预处理和特征提取.其目的主要在于对工控系统中的海量数据进行缩减,保留关键信息,并从中提取特征.

2)态势理解:对获取的特征进行进一步处理,包括数据关联、特征检测、识别与分类,并对多个分类结果进行决策融合,获取最终决策即整体系统态势.

3)态势预测:利用预测算法对工控网络态势的趋势进行预测.

1.2 工控网络态势

出于保护工控系统安全的目的,将工控网络态势分为安全态势和危险态势[15].安全态势指系统中的过程参数均处于系统既定的安全值范围内;危险态势指系统遭受到攻击,过程参数超出安全临界值δ的工控系统状态.

图1 态势感知模型Fig.1 Situation awareness model

一般的PLC系统如图2所示,传感器在将传感数据发送至PLC的过程中,可能会遭受到攻击者的攻击,真实传感数据被篡改[16],导致控制系统不稳定.本文假定系统的危险态势是由攻击者施加的假数据注入攻击[17]产生.

图2 PLC系统示意图Fig.2 A diagram of PLC implementation

1.3 工控网络态势感知建模

态势理解层作为态势感知过程中承下启上的中心环节,利用态势要素对获取的数据进行态势理解,并将数据处理结果输送至态势预测层.态势理解的优劣,将直接影响态势感知的结果以及态势预测的性能.因此高效准确的态势理解过程在态势感知中,显得尤为重要.

本文创新性地提出了工控网络态势感知模型,如图3所示,该模型从下至上共包含三个部分:态势要素获取层、态势理解层以及后续态势感知过程,本文主要对底部两层进行研究与分析.

1)态势要素获取层:采集来自各传感器节点的数据,将其存储在数据集D中.

2)态势理解层:利用PF算法估计系统输出,并提取特征,使用态势指标对要素理解的效果进行衡量,最后将态势理解结果输出至态势评估与预测中.

图3 工控网络态势感知模型Fig.3 Industrial control network situation awareness model

定义1.数据集合表示从0~k时刻,第i个节点采集的数据集合.

定义2.特征提取E作为PF输入估计的结果之一,记录PF输入估计算法的输出结果,是数据集Di0:k在经PF输入估计算法处理后,得到的特征序列.

定义3.态势指标M={MR,FR}包含两个元素.表示在进行PF状态估计时出现的错误率和漏检率.

其中,I为误测特征个数,S为测得特征个数,C为正确测得的危险态势特征个数,W为期望得到的危险态势特征个数.

由于在特征提取过程中,可能存在感知错误、遗漏等情况,因此提出对态势特征获取过程中PF出现的错误特征数量和丢失的特征数量进行衡量.

本文提出的态势感知模型中的态势理解层不仅能对来自工控系统众多节点的海量数据进行简化,给出系统态势特征,而且可以利用态势指标对态势理解过程的质量进行计算,为后续阶段的态势感知结果可靠性提供依据.

1.3.1 粒子滤波状态估计

为了获取非线性、非高斯噪声的工控系统状态特征,采用PF算法进行状态估计,是一种很有效的非线性滤波技术[18],适用于任何能用状态空间模型表示的非高斯背景的非线性随机系统,精度可以逼近最优估计.该算法的实质是由粒子及其权重组成的离散随机测度近似相关的概率分布,并根据算法递推更新离散随机测度[19].

对于一个非线性、非高斯过程建模如下:

其中,xk为待估计的状态量,假设状态xk的先验分布p(x0)已知;yk为已知的观测量;g(·)为状态转移方程,h(·)为观测方程;wk和vk都为独立的噪声,分别称为状态噪声和观测噪声.

步骤1.初始化.设k=0,采样:xi0~p(x0),根据p(x0)分布采样得到N个xi0,i=1,2,···,N.

步骤2.重要性权值计算.采样xik~q(xk|xi0:k−1,y0:k),i=1,2,···,N,利用下式计算重要性权值.

在计算重要性权值后,进行归一化.

步骤3.重采样.设定有效样本数Nthreshold,并计算退化因子Neff

Neff越小,意味着退化现象越严重.

若Neff<Nthreshold,则进行重采样,将原来的带权样本映射为等权样本.其中,为重采样后的粒子.

步骤4.预测.获取状态预测xˆk,据此计算观测值估计yˆk,并计算估计值与真实值的偏差ek(特征).

步骤5.输出.将ek与安全阈值δ进行比较,当|ek|>δ时,记录系统第i次出现危险态势的时刻kaitc以及对应偏差eik.

1.3.2 基于粒子滤波输入估计的态势理解算法

在实际应用PF状态估计对系统受到的攻击进行检测时,实验结果显示,对于系统中施加持续时间为100小时的攻击,PF状态估计算法可以在系统被攻击(即状态值发生突然变化)后的10分钟内检测到攻击,即偏差值e将会超出阈值;但是由于PF估计算法自身具备的状态变化跟踪能力,在系统遭受到攻击的2小时后,系统状态将趋于稳定,即此时的偏差值e将会接近于零,从而导致PF状态估计算法无法持续检测出系统受到的攻击.

考虑到对于输入输出之间存在函数关系y=f(u)的系统,在遭受到攻击时,系统的输入u也会发生变化,因此,本文提出基于PF输入估计的态势感知算法,以实现对长时间持续攻击的态势感知,降低系统漏报率.

基于PF输入估计的态势感知算法,不再考虑状态的估计,利用输出残差进行报警;而是利用Monte-Carlo思想,在已获得的输出yk基础上,估计输入ˆu.利用实际输入(控制器输出)u与ˆu的差值,对系统态势进行感知.

算法1.基于PF输入估计的态势感知算法

步骤1.获取t=0,···,k时刻的输出yk;

步骤2.初始化.设k=0,在[umin,umax]内随机采样N次,获得N个随机样本(粒子),构成序列{u∗k(i)|i=1,···,N};

步骤3.权值分配.对每个粒子u∗k(i)分配相应的权重qk∗(i),i=1,···,N,计算方式如下:

步骤4.重采样.采用多项式重采样法,将原来的带权样本映射为等权样本.其中,为重采样后的粒子,获得新粒子样本.

步骤5.输出估计.获取输出估计值预测,并计算估计值与真实值的偏差e∗k(特征).

步骤6.计算态势特征.将e∗k与安全阈值δ进行比较,当|e∗k|>δ时,记录系统第j次出现危险态势的时刻k∗atc(j)以及对应偏差e∗k(j).

步骤7.计算态势指标.利用式(3)和式(4)计算该系统的态势指标,态势指标M={MR,FR}.

步骤8.态势理解结果输出.依据步骤6和步骤7的计算结果,整理得到态势理解结果并作为算法输出E,M.

2 实验验证

2.1 仿真对象

某精馏塔提馏段温度单回路控制方案[20]如图4所示,蒸馏塔提馏段某块板的温度为主变量,控制器TC 21通过控制信号u控制蒸汽控制阀对温度进行控制,温度传感器TT 21能对提馏段的温度y进行检测(系统输出),ysp为设定值.

2.2 仿真过程

对PF状态估计算法和态势理解算法进行仿真,通过计算两种算法的漏报率,对算法有效性进行分析.

阶段1.仿真模型建立.依据图4的控制方案,建立相应的控制系统方框图,如图5所示.对图5中各环节进行参数设置:GTm为温度测量环节,GTm=1/(s+1);控制阀Gv为近似线性阀,Gv=1;蒸汽流量对象Gp2=0.1/(1.5s+1);提馏段温度对象的控制通道与扰动通道动态特性的参数设置分别为Gp1=5/(4s2+5s+1),Gd=−0.5/(3s+1);单回路控制器TC的PID参数Kc=2.4,Ti=8.8,Td=2.2.

图4 提馏段温度单回路控制方案Fig.4 Temperature single loop control scheme of distillation

图5 提馏段温度单回路控制系统方框图Fig.5 Block diagram of temperature single loop control scheme of distillation

阶段2.态势设置.对安全态势及遭受不同时长攻击的两种危险态势进行仿真,设定系统运行总时长Trun=500.

1)安全态势:系统正常运行,温度设定值ysp=20;

2)危险态势1:在k1=200和k2=300时刻,攻击者篡改温度传感器值,分别施加攻击强度为α(k1)=30,α(k2)=−30的攻击,每次攻击持续时长为Tatc=5;

3)危险态势2:在k=200时,攻击者开始篡改温度传感器值,攻击强度为:α(k)=30,攻击持续时长为Tatc=100.

图6为系统中可能出现的三种态势仿真结果示意图.

阶段3.算法验证.算法验证部分选择t=70以后的数据进行分析,即对系统处于稳定后的数据进行仿真处理.

1)PF状态估计.图7为利用PF状态估计对三种情况进行态势检测的结果,假设安全阈值δ=2.从图7可以看出,a)Ma={0,0},此时算法没有检测到攻击,判断系统处于正常运行状态;b)Mb={0.0200,0.1667},此时算法检测到两次攻击,存在较低的错误率与漏检率;c)Mc={0.2040,0.9604},由态势指标可得,该算法在面对持续时间较长的攻击时,漏检率高达0.9604.但是能检测到攻击开始以及结束的时刻.

2)基于PF输入估计的态势理解.图8为利用态势理解算法对三种情况进行态势检测的结果,假设安全阈值δ=5.从图8可以看出,a)Ma={0,0},此时算法没有检测到攻击,判断系统处于正常运行状态;b)Mb={0.0820,0.1667},此时算法检测到两次攻击,错误率与漏检率均较低;c)Mc={0.048,0.0396};检测到长持续时间下的攻击,错误率与漏检率均低于5%.

图6 三种不同态势情况Fig.6 The three different situations

图7 PF状态估计算法仿真结果Fig.7 The simulation results related to PF state estimation algorithm

图8 态势理解算法仿真结果Fig.8 The simulation results related to situation awareness algorithm

2.3 仿真结果分析

对比两种算法的仿真结果可知:

1)PF状态估计算法

由a)和b)的检测结果可知,当系统存在突然发生的变化时,该算法能进行有效的检测,特征值变化明显,检测的错误率与漏检率较低;由c)的仿真结果可知,该算法无法感知到系统中出现的长持续性攻击,存在很高的漏报率,对系统安全产生严重威胁.

2)基于PF输入估计的态势理解算法

a)和b)的仿真结果证明,该算法能有效跟踪和预测输入的变化趋势,两种算法的漏检率相同,尽管态势理解算法的错误率相对PF状态估计算法偏高6%,但是对于系统安全性能而言,该算法依然有效检测出了b)的危险态势;由c)的仿真结果可得,态势理解算法能有效检测到系统中存在的长时间持续的攻击,错误率与漏检率均小于5%,远低于PF状态估计算法.

对比仿真结果可知,本文提出的基于PF输入估计的态势理解算法能有效判断系统中出现的危险态势,为工控网络安全态势感知提供可靠的感知判据.

3 结论

本文介绍了基于粒子滤波的工业控制网络态势感知建模,将文中构造的态势感知模型中的态势理解层作为研究重点,提出了基于PF输入估计的态势理解算法.该算法是对经典PF状态估计的改进,在Monte-Carlo思想的基础上,考虑到系统输入与输出之间的联系,通过输出值校准输入的估计值,利用实际值与估计值之间存在的差值,判断系统是处于安全态势还是危险态势.该算法具有较好的输入值估计能力,可准确获取系统态势特征,给出态势指标,对特征的可靠性进行定量衡量.该算法可为后续的态势预测过程提供科学可靠的数据信息,提升态势感知结果的准确性.

实验结果表明,本文提出的态势理解算法,能有效地利用数据源中的信息对系统内存在的危险态势进行感知.仿真结果表明该算法具有较高的可靠性与准确性.

猜你喜欢

工控态势状态
工控编程编译工具应用现状分析及展望
工控系统脆弱性分析研究
2019年12月与11月相比汽车产销延续了增长态势
汇市延续小幅震荡态势
状态联想
我国天然气供需呈现紧平衡态势
生命的另一种状态
工控速派 一个工控技术服务的江湖
工控速浱 一个工控技术服务的江湖
坚持是成功前的状态