一种工控现场设备隐蔽攻击检测方法与流程

文档序号:15142941发布日期:2018-08-10 20:06阅读:187来源:国知局

本发明涉及工控信息安全技术领域,特别是指一种工控现场设备隐蔽攻击检测方法。



背景技术:

工业控制系统(简称“工控系统”,industrialcontrolsystems,ics)目前已经广泛应用于金融、交通、水利、制造、能源、军工等重要领域,是国家关键信息基础设施中的重要组成部分,直接影响国计民生。

近年来,随着工控系统与互联网的不断融合,以及网络空间安全形势日益严峻,针对工控系统的攻击越来越多。2010年的“震网”病毒感染伊朗纳坦兹铀浓缩基地中的工业控制程序,控制生产浓缩铀的离心机异常加速,超越设计极限,致使离心机报废、核工厂被迫关闭;2015年“blackenergy3”攻击乌克兰电网,伪造继电开关控制指令,断开电路,同时破坏控制系统的网络和控制软件,发起电话ddos攻击,阻止控制系统恢复和感知电网异常状态,导致22万人失去电力供应;2017年staggs博士团队在黑客大会上公开通过物理手段连接美国境内无人值守的风力发电机,入侵并控制风电场控制系统。这一系列安全事件表明,工控领域正成为网络空间安全对抗的主战场,工控现场设备是攻击者的重点攻击对象,保障工控系统安全稳定运行已成为国家政治、军事、经济、社会稳定亟需解决的核心问题之一。

入侵检测(intrusiondetectionsystem,ids)是工控系统安全防护的重要手段之一。由于现代工控系统主要采用“互联网-企业网-控制网-现场层”四层架构,因此传统的it系统入侵检测技术,如网络协议分析、网络流量挖掘等方法可用于检测针对前三层的网络攻击。而现场层与传统it系统有显著不同,该层与物理世界紧密关联,涉及工控对象、智能传感器、可编程逻辑控制器、主终端与远程终端单元等现场设备。虽然工控对象种类繁多,但绝大多数工控对象具有共性特征,即其动态行为可用关键过程变量表征,且过程变量值在短时间内不会发生大幅跃变,因此基于工业过程数据分析的入侵检测技术应运而生。此类技术主要用于检测针对现场设备的攻击行为,利用过程分析技术预测工控对象的期望行为,再将其与观测行为进行对比,根据两者差异是否超过特定阈值决定是否发出入侵告警。

然而,近年来有研究人员发现了一种针对工控现场设备的更为隐蔽的攻击行为,能够躲避现有工控入侵检测技术,并给系统造成致命的破坏。隐蔽攻击充分利用绝大多数工控对象动态行为不会在短时间内发生大幅跃变这一共性特征,使工控对象的观测行为与其期望行为非常接近但不完全一致,从而诱导入侵检测系统将此类精心设计的微小偏差当作正常测量误差或噪声,故不对其作任何处理,因此攻击者可隐藏其攻击行为。然而,经过较长时间的累积,攻击者仍可向目标工控系统中注入足够多的错误信息,导致系统崩溃。近几年,工控现场设备的隐蔽攻击逐渐受到重视,国内外研究团队针对隐蔽攻击做了前期的探索,取得了初步的成果,如尽可能降低隐蔽攻击对工控系统的不良影响程度,但目前仍无有效的技术成功检测出隐蔽攻击。



技术实现要素:

本发明要解决的技术问题是提供一种工控现场设备隐蔽攻击检测方法,以解决现有技术所存在的无法检测出工控现场设备的隐蔽攻击的问题。

为解决上述技术问题,本发明实施例提供一种工控现场设备隐蔽攻击检测方法,包括:

将工控对象的观测输出与预测的期望输出进行对比,得到残差序列并进行残差预处理;

计算残差序列的排列熵;

若残差序列的排列熵在预设时间间隔内的下降幅度大于预设的第一阈值,则确定工控对象遭遇隐蔽攻击,否则,则确定工控对象没有遭遇隐蔽攻击。

进一步地,在将工控对象的观测输出与预测的期望输出进行对比,得到残差序列并进行残差预处理之前,所述方法还包括:

构建工控对象状态空间模型;

根据构建的工控对象状态空间模型,利用卡尔曼滤波预测工控对象的期望输出,得到预测的期望输出;

采集工控对象的观测输出。

进一步地,所述构建工控对象状态空间模型包括:

若工控对象的动态行为可用明确的物理方程式表示,则对物理方程式进行数学推导获取对应的状态空间模型;

若工控对象的动态行为无法用明确的物理方程式描述,则将工控对象置于无攻击环境下运行一段时间,收集运行过程中工控对象的输入输出数据,运用系统辨识技术获取工控对象的状态空间模型。

进一步地,所述状态空间模型表示为:

xk=axk-1+buk+εk

yk=cxk-1+duk+ek

其中,xk和yk分别表示工控对象在k时刻的状态变量和输出变量,xk-1表示工控对象在k-1时刻的状态变量,εk和ek分别表示k时刻的过程噪声和测量噪声,uk表示工控对象在k时刻的输入变量,a为状态转移矩阵,b为控制输入增益矩阵,c为输出矩阵,d为前馈矩阵。

进一步地,所述根据构建的工控对象状态空间模型,利用卡尔曼滤波预测工控对象的期望输出,得到预测的期望输出包括:

执行卡尔曼滤波的时间更新方程,所述时间更新方程表示为:

其中,时间更新方程借助状态转移矩阵a,将工控对象k时刻的后验状态xk映射为k+1时刻的先验状态将k时刻的后验预测误差协方差矩阵pk映射为k+1时刻的先验预测误差协方差矩阵qk表示k时刻的过程噪声协方差矩阵,at和bt中的t表示矩阵转置;

执行预测方程:在获取k+1时刻的先验状态后,利用输出矩阵c预测k+1时刻的期望输出:

执行卡尔曼滤波的测量更新方程,所述测量更新方程表示为:

其中,所述测量更新方程利用工控对象k+1时刻的实际观测输出yk+1修正k+1时刻的先验状态获得对应时刻的后验状态xk+1,kk+1表示k+1时刻的卡尔曼增益矩阵,rk+1是k+1时刻的测量噪声协方差矩阵,i为单位矩阵。

所述时间更新方程、预测方程、测量更新方程迭代执行,推动卡尔曼滤波对工控对象期望输出的预测过程。

进一步地,所述残差序列由工控对象的观测输出序列和预测的期望输出序列在同一时刻的值相减得到。

进一步地,所述进行残差预处理包括:

若工控对象的实际输出值大于预设的第二阈值时,工控系统危险,则将区间[-τ-δ,-δ+e]分割成一系列相邻小区间,位于同一个小区间内的所有残差值映射为该区间内任意一个固定值,其中,τ表示检测阈值,δ表示噪声阈值,e为分割后每个小区间的大小。

进一步地,所述进行残差预处理还包括:

若工控对象的实际输出值小于预设的第三阈值时,工控系统危险,则将区间[δ-e,τ+δ]分割成一系列相邻小区间,位于同一个小区间内的所有残差值映射为该区间内任意一个固定值。

进一步地,所述计算残差序列的排列熵包括:

将残差序列分解成一系列长度均为n的滑动窗口;

对每个滑动窗口中的元素进行升序排列,重排序后得到新的索引序列is=[j1,j2,…,jn],其中,1≤ji≤n,1≤i≤n,jn表示重排序后第j个滑动窗口中的第n个元素的原索引值,每个滑动窗口共有n!种可能的索引序列{πi|1≤i≤n!};

对残差序列各滑动窗口内的元素进行重排序后,计算每个索引序列πi出现的相对频率:

其中,k为滑动窗口的总数,j表示滑动窗口的序号;

根据得到的p(πi),计算残差序列的排列熵:

其中,h(n)表示残差序列的排列熵。

本发明的上述技术方案的有益效果如下:

上述方案中,将工控对象的观测输出与预测的期望输出进行对比,得到残差序列并进行残差预处理;计算残差序列的排列熵;若残差序列的排列熵在预设时间间隔内的下降幅度大于预设的第一阈值,则确定工控对象遭遇隐蔽攻击,否则,则确定工控对象没有遭遇隐蔽攻击;这样,根据排列熵是否在预设时间间隔内有显著下降趋势来判断工控对象是否遭遇隐蔽攻击,从而实现对隐蔽攻击的有效检测,进一步提升工控系统的安全防护水平。

附图说明

图1为本发明实施例提供的工控现场设备隐蔽攻击检测方法的流程示意图;

图2为本发明实施例提供的工控现场设备隐蔽攻击检测方法的详细流程示意图;

图3为本发明实施例提供的工控对象的状态空间模型构建过程示意图;

图4(a)为本发明实施例提供的工控对象实际输出值越大表示工控系统危险程度越高的情况下,残差预处理过程示意图;

图4(b)为本发明实施例提供的工控对象实际输出值越小表示工控系统危险程度越高的情况下,残差预处理过程示意图;

图5为本发明实施例提供的液位控制系统结构示意图;

图6为本发明实施例提供的工控现场设备隐蔽攻击检测效果示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

本发明针对现有的无法检测出工控现场设备的隐蔽攻击的问题,提供一种工控现场设备隐蔽攻击检测方法。

如图1所示,本发明实施例提供的工控现场设备隐蔽攻击检测方法,包括:

s101,将工控对象的观测输出与预测的期望输出进行对比,得到残差序列并进行残差预处理;

s102,计算残差序列的排列熵;

s103,若残差序列的排列熵在预设时间间隔内的下降幅度大于预设的第一阈值,则确定工控对象遭遇隐蔽攻击,否则,则确定工控对象没有遭遇隐蔽攻击。

本发明实施例所述的工控现场设备隐蔽攻击检测方法,将工控对象的观测输出与预测的期望输出进行对比,得到残差序列并进行残差预处理;计算残差序列的排列熵;若残差序列的排列熵在预设时间间隔内的下降幅度大于预设的第一阈值,则确定工控对象遭遇隐蔽攻击,否则,则确定工控对象没有遭遇隐蔽攻击;这样,根据排列熵是否在预设时间间隔内有显著下降趋势来判断工控对象是否遭遇隐蔽攻击,从而实现对隐蔽攻击的有效检测,进一步提升工控系统的安全防护水平。

在前述工控现场设备隐蔽攻击检测方法的具体实施方式中,进一步地,在将工控对象的观测输出与预测的期望输出进行对比,得到残差序列并进行残差预处理之前,所述方法还包括:

构建工控对象状态空间模型;

根据构建的工控对象状态空间模型,利用卡尔曼滤波预测工控对象的期望输出,得到预测的期望输出;

采集工控对象的观测输出。

在前述工控现场设备隐蔽攻击检测方法的具体实施方式中,进一步地,所述构建工控对象状态空间模型包括:

若工控对象的动态行为可用明确的物理方程式表示(简单系统),则对物理方程式进行数学推导获取对应的状态空间模型;

若工控对象的动态行为无法用明确的物理方程式描述(复杂系统),则将工控对象置于无攻击环境下运行一段时间,收集运行过程中工控对象的输入输出数据,运用系统辨识技术获取工控对象的状态空间模型。

本实施例中,采用状态空间模型描述工控对象(所述工控对象为工控现场设备、工业控制对象的简称)的输入、状态以及输出之间的关联关系,所述状态空间模型表示为:

xk=axk-1+buk+εk

yk=cxk-1+duk+ek

其中,xk和yk分别表示工控对象在k时刻的状态变量和输出变量,xk-1表示工控对象在k-1时刻的状态变量,εk和ek分别表示k时刻的过程噪声和测量噪声,uk表示工控对象在k时刻的输入变量,a为状态转移矩阵,b为控制输入增益矩阵,c为输出矩阵,d为前馈矩阵。

在前述工控现场设备隐蔽攻击检测方法的具体实施方式中,进一步地,所述根据构建的工控对象状态空间模型,利用卡尔曼滤波预测工控对象的期望输出,得到预测的期望输出包括:

a11,执行卡尔曼滤波的时间更新方程,所述时间更新方程如下式所示:

时间更新方程借助状态转移矩阵a,将工控对象k时刻的后验状态xk映射为k+1时刻的先验状态将k时刻的后验预测误差协方差矩阵pk映射为k+1时刻的先验预测误差协方差矩阵qk是k时刻的过程噪声协方差矩阵;

a12,执行预测方程,即在获取k+1时刻的先验状态后,借助输出矩阵c预测k+1时刻的期望输出:

a13,执行卡尔曼滤波的测量更新方程,测量更新方程利用工控对象k+1时刻的实际输出yk+1修正k+1时刻的先验状态从而获得对应时刻的后验状态xk+1,如下式所示:

其中,kk+1表示k+1时刻的卡尔曼增益矩阵,rk+1是k+1时刻的测量噪声协方差矩阵,i为单位矩阵;

a14,时间更新方程、预测方程、测量更新方程迭代执行,不断推动卡尔曼滤波对工控对象期望输出的预测过程。

需要说明的是:

先验状态和后验状态都用于描述工控对象的状态,其中,先验状态指的是在观测到当前时刻工控对象输出值之前,利用之前时刻的所有信息对当前时刻的状态作出的估计,后验状态指的是在观测到当前时刻的输出值后对当前时刻状态的估计,这些是状态空间模型的术语,在本实施例中,右上角有-号的就是先验值,没有-的就是后验值。

在前述工控现场设备隐蔽攻击检测方法的具体实施方式中,进一步地,所述残差序列由工控对象的观测输出序列和预测的期望输出序列在同一时刻的值相减得到。

本实施例中,所述残差序列由采集的工控对象的观测输出序列yk和预测的期望输出序列在同一时刻的值相减得到,即形成残差序列{rk}。

本实施例中,在将工控对象的观测输出与预测的期望输出进行对比,得到残差序列之后,需进行残差预处理,以便削弱增强型隐蔽攻击中人工随机噪声对检测机制的影响,具体步骤可以包括:

若工控对象的实际输出值大于预设的第二阈值时,工控系统危险,则将区间[-τ-δ,-δ+e]分割成一系列相邻小区间,位于同一个小区间内的所有残差值映射为该区间内任意一个固定值,其中,τ表示检测阈值,δ表示噪声阈值,e为分割后每个小区间的大小;

若工控对象的实际输出值小于预设的第三阈值时,工控系统危险,则将区间[δ-e,τ+δ]分割成一系列相邻小区间,位于同一个小区间内的所有残差值映射为该区间内任意一个固定值。

本实施例中,若工控对象的实际输出值大于预设的第二阈值时,工控系统危险(也可以理解为:工控对象的实际输出值越大表示工控系统危险程度越高),则将区间[-τ-δ,-δ+e]分割成一系列相邻小区间,位于同一个小区间内的所有残差值映射为该区间内任意一个固定值,其中,τ的取值可以为传统有状态入侵检测算法中的检测阈值,δ的取值可以为传统有状态入侵检测算法中残差序列每一步的噪声阈值;其中,“工控对象的输出值越大表示工控系统危险程度越高”这句话是要描述“系统的特性”,比如:水位控制系统,水位越高会导致水溢出,造成系统短路等故障;压力控制系统,压力过高会导致爆炸事故。

本实施例中,若工控对象的实际输出值小于预设的第三阈值时,工控系统危险(也可以理解为:工控对象的实际输出值越小表示工控系统危险程度越高),则将区间[δ-e,τ+δ]分割成一系列相邻小区间,位于同一个小区间内的所有残差值映射为该区间内任意一个固定值。

本实施例中,所述计算残差序列的排列熵具体可以包括:

b11,将残差序列{rk}分解成一系列长度均为n的滑动窗口;

b12,对每个滑动窗口中的元素进行升序排列,重排序后得到新的索引序列is=[j1,j2,…,jn](1≤ji≤n,1≤i≤n),满足r(j+j1-1)≤…≤r(j+jn-1),其中,j表示滑动窗口的序号,jn表示重排序后第j个滑动窗口中的第n个元素的原索引值。由于给定阶数n,总共有n!种排列组合,因此每个滑动窗口共有n!种可能的索引序列{πi|1≤i≤n!}。

b13,对残差序列各滑动窗口内的元素进行重排序后,计算每个索引序列πi出现的相对频率:

其中,k为滑动窗口的总数。

b14,根据得到的p(πi),计算残差序列{rk}的排列熵h(n):

其中,h(n)的取值范围为[0,logn!],单调增和单调减序列的排列熵为0,随机序列的排列熵为logn!。

本实施例中,可以通过残差序列的排列熵曲线是否有显著下降趋势来判断工控现场设备是否遭遇隐蔽攻击。当工控系统正常运行时,工控对象的输出残差序列呈现规律性,排列熵值减小;当工控现场设备遭遇隐蔽攻击时,残差序列接近于随机序列,因此其排列熵值较大。也就是说,如果排列熵在短时间内有显著下降趋势,表示检测到隐蔽攻击,从而发出告警信息。

本发明提供的基于排列熵的工控现场设备隐蔽攻击检测方法能够有效识别隐蔽攻击所具有的规律性特征,因此可以检测出传统入侵检测方法无法识别的工控现场设备隐蔽攻击,从而进一步提升工控系统的安全防护水平。

为了更好地理解本发明实施例所述的工控现场设备隐蔽攻击检测方法,对其进行详细说明,如图2所示,所述方法主要包括:工控对象状态空间模型构建和输出预测、残差获取、残差预处理、残差排列熵计算、隐蔽攻击识别步骤。图3给出了工控对象状态空间模型的构建方法,如为简单系统,可从物理方程式中推导出状态空间模型,如为复杂系统,通过系统辨识方法获取状态空间模型。图4(a)、4(b)给出了残差预处理过程的示意图,分两类场景,若工控对象实际输出值越大代表系统危险程度越高,则将残差区间[-τ-δ,-δ+e]划分为长度为e的小区间,并进行残差映射,如图4(a)所示;若工控对象实际输出值越小代表系统危险程度越高,则将残差区间[δ-e,τ+δ]划分为长度为e的小区间,并进行残差映射,如图4(b)所示。

图5给出了一个典型的工控场景:液位控制系统。该系统主要由输入泵、液体容器、输出泵、液位传感器、可编程逻辑控制器plc组成。系统正常运行过程中,当容器液位过低时,控制器启动输入泵,向容器内注入液体;当容器液位过高时,控制器关闭输入泵,停止液体注入。在这个系统中实行隐蔽攻击,攻击者持续地小幅度地篡改液位测量值,直至液位高于容器高度而溢出,攻击目标达到。隐蔽攻击检测程序可以嵌入此系统的plc中,在plc将传感器测量的模拟量转换为数字量后进行入侵检测。针对此系统的隐蔽攻击检测主要通过以下步骤实现:

步骤1,构建该液位控制系统的状态空间模型。分析该系统为简单系统,系统行为规律可用明确的物理方程式表示:

其中,hk+1和hk分别是k+1时刻和k时刻容器内液位高度值,分别是k时刻的注入和抽出的液体体积,area为容器底面积。基于此物理方程式可以得到以下状态空间模型:xk=hk,b=[1/area,-1/area],a=1,c=1。

步骤2,利用卡尔曼滤波机制对容器内的期望液位进行预测,得到预测值

步骤3:,隐蔽攻击检测系统根据液位传感器的测量值得到容器内液位的观测值hk,并获取液位残差形成残差序列{rk}。

步骤4,对残差序列{rk}进行预处理。此系统不允许液体溢出,因此实际液位值越大表示系统危险程度越高,则需要将区间[-τ-δ,-δ+e]分割成一系列长度为e的小区间,同一个小区间内的所有残差值映射为该区间内任意一个固定值。

步骤5,计算残差序列的排列熵,并根据排列熵的变化情况判断是否出现隐蔽攻击行为,如果排列熵曲线在短时间内有显著下降趋势,表示检测到隐蔽攻击,从而发出告警信息。

从图6中可以看出,残差排列熵对隐蔽攻击非常敏感,从隐蔽攻击发生开始,残差排列熵曲线显著下降,证明了基于排列熵的方法对检测工控现场设备隐蔽攻击的有效性。同时,图6中还展示了残差预处理过程的重要性,未经过残差预处理的检测方法不能有效识别隐蔽攻击,而经过残差预处理以后检测系统才能有效识别隐蔽攻击。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1