APP下载

工业控制系统安全态势评估与预测方案

2022-01-28陈志浩

信息安全研究 2022年2期
关键词:工控安全事件态势

石 波 于 然, 陈志浩 朱 健

1(北京计算机技术及应用研究所 北京 100854) 2(江苏航天七零六信息科技有限公司 南京 210012)

工业控制系统(industrial control system, ICS)是由各种自动化控制组件以及对实时数据进行采集、监测的过程控制组件构成,是保证工业基础设施自动化运行、过程控制与监控的业务流程管控系统[1].近年来,工业控制系统日益遭受层出不穷的各类新型攻击,给国家、经济、社会带来严重影响,如震网病毒、乌克兰电网攻击事件等[2].传统特征式、补丁式的安全防护措施在工业控制系统中已经得到广泛应用,如工业防火墙、工业入侵检测、工业漏洞扫描等,但这些手段偏重于静态防御,无法抵御针对性强的工业控制系统攻击.

1) 传统安全防护无法应对高级安全威胁

当前网络攻击技术的发展、更新非常迅速,要想及时掌握所有攻击的特征几乎不可能,尤其针对工业控制系统的攻击威胁更加具备针对性和目的性,这决定了基于特征的安全检测无法满足工业控制系统安全形势下的威胁检测需求.且补丁式的安全加固机制也存在天然缺陷,无法有效应对日益复杂、无孔不入的深层次安全威胁.

2) 工控安全防护碎片化、孤岛化,缺乏大数据协同分析

工业控制系统中各类安全防护手段的侧重点各不相同,只能从局部解决某类安全问题,并且缺乏协同共享机制,无法形成一体化联动联防的安全防护体系,存在单点突破的风险.传统安全手段上线运行后,硬件、软件状态均得到固化,无法进行扩展,缺乏面向大数据的协同分析能力,而类似于APT的高级持续性威胁检测需要长周期的安全数据分析,传统安全设备的分析能力显然无法满足.

因此,需要大力发展工业控制系统安全态势(以下简称“工控安全态势”)评估与预测技术,对各类安全信息进行深度关联,实时检测针对工业控制系统的攻击和异常行为,实现主动防御.在网络安全态势评估与预测方面,国内学者已经开展了大量研究并取得了丰富的成果,如支持向量机[3]、粗糙集[4]、人工智能[5]、D-S证据理论[6]、大数据[7]、层次化分析法[8]、贝叶斯网络[9]等方法都有大量运用.在工业控制系统安全研究方面,尚文利等人[10]提出面向工业控制系统的可信计算环境构建方法,设计了面向工业控制领域嵌入式设备的安全架构,包括基于总线仲裁机制的可信PLC主控单元、基于虚拟化沙盒技术的可信PLC运行环境和基于白名单访问控制的可信PLC网络安全单元,实现设备的内建安全能力;陆耿虹等人[11]提出工控安全态势感知模型,采用改进的C-支持向量分类算法对多源数据进行规则提取,最终融合获取态势感知结果;陈瑞滢等人[12]利用攻击图对工业控制网络威胁进行建模,对典型攻击场景建立攻击图,借助攻击图开展安全性分析,预测攻击者最有可能采取的攻击路径,得出工业控制网络的安全需求,为构建工业控制网络安全体系架构提供指导;石乐义等人[13]提出一种改进概率神经网络的工控安全态势评估方法,利用主成分分析法对数据进行降维,使用改进的果蝇优化算法对概率神经网络的参数进行优化,通过优化后的概率神经网络进行训练和预测,得到攻击类型的分类结果,最终结合结构化的工控安全态势评估方法计算态势值,对系统的状态进行评估.

通过上述分析,本文结合工业控制系统业务固定、协议单一的特点,首先提出了工控安全态势评估与预测框架,接着基于层次化分析法构建了工控安全态势度量模型,并对工业控制系统行为轮廓特征构建及提取、基于深度学习的工业控制系统安全攻击检测、基于大数据挖掘的工业控制系统安全事件检测等技术开展研究,进而实现基于信息融合的工控安全态势评估和基于统计学习理论的工控安全态势预测,形成了针对工业控制系统的安全态势评估与预测整体解决方案,为工业控制系统安全研究与研发工作提供支持.

1 工控安全态势评估与预测框架

工控安全态势是整体工业控制系统安全状态在时间和空间维度上的持续演变过程.从时间的角度看,工控安全态势是每个节点(工控设备、工控服务等)的安全状态随时间发生改变的过程;从空间的角度看,工控安全态势是在某个时刻下(或在某个时间窗口中)整个工业控制系统范围内攻击焦点和安全风险的分布情况.一般情况下,节点安全状态的改变主要是由发生的安全事件引起,这些安全事件包括受到网络攻击、发现新漏洞、资产价值改变、安全配置失效等.

工控安全态势评估首先对每个节点在时间轴上的安全状态进行评估(定量、定性或者两者相结合),评估过程综合考虑网络攻击、发现新漏洞、资产价值改变、安全配置失效等安全事件的整体影响,对各个态势因素进行量化,给出节点态势的量化计算方法.在此基础上,考虑工业控制系统的拓扑特性、各节点权重的分布,综合评估某个子系统或者整体安全态势.需解决的主要问题如下:

1) 建立度量工控安全态势的形式化模型.模型应包括元素及元素之间的关系定义.

2) 针对工控节点的安全态势进行量化计算,其中包括态势因素(攻击、漏洞、资产价值、安全配置等)的量化指标定义及其量化方法和安全态势的量化计算法方法以及函数定义.

3) 通过节点的安全态势融合得到整体工控安全态势.

4) 从工控安全数据中检测网络攻击或安全事件,评估其对节点和整体安全态势的影响.

5) 预测安全事件发生的概率,进而预测节点的安全态势,最终预测整体工控安全态势.

基于以上分析,工控安全态势分析和预测研究思路如图1所示:

工控安全态势分析和预测研究思路描述如下:

1) 建立度量工控安全态势的形式化模型.模型中除了给出整体的工控安全态势量化值,还包含反映整体工控安全态势的元素以及元素之间的关系,并给出这些元素及其关系随时间变化的规律.

2) 建立工控安全态势的度量指标.影响安全态势的因素众多,评估模型中不可能包含所有的安全态势因素,只能选取其中的部分主要因素.

3) 工控安全态势因素量化.评估模型的输入为量化输入,基于安全态势的度量指标,将安全态势因素的定性指标和描述性语言进行量化.

4) 基于大数据挖掘、深度学习发现安全事件.在度量安全态势的形式化模型给出的约束下,采用针对大数据的聚类发现、关联分析、模式提取以及深度学习等方法发现安全事件.

5) 节点态势评估.设定时间窗口,综合考虑安全事件、节点资产价值、漏洞、安全配置等信息对节点的安全态势进行评估.给出针对该节点的攻击事件发生概率、类型、强度、危害度等,并计算该节点在当前时间下的安全态势值.

6) 整体工控安全态势评估.在节点态势的基础上融合得到整体工控安全态势.

7) 节点态势预测.基于节点态势的历史数据和当前数据,预测下一个时间的安全态势.

8) 整体工控安全态势预测.在节点态势预测的基础上融合得到整体工控安全态势发展趋势.

工控安全态势分析与预测框架如图2所示.

工业控制系统中各安全传感器采集到的数据具有如下特性:数据量巨大、高维度、多源、多层面、信息稀疏、结构化、非结构化和半结构化并存等.在使用这些数据之前必须对数据进行预处理,包括清除数据中的无关属性和噪声;再根据安全事件的关联关系将数据进行融合关联、编群、标准化表示;然后利用深度学习算法、大数据挖掘方法以及设备基检测、网络基检测、安全事件分析等发现工控系统异常行为和攻击事件.基于安全事件,结合节点的资产价值、脆弱性信息以及安全策略信息,在对指标进行量化后,基于多源信息对节点安全态势进行评估和预测,最终融合得到整体工控安全态势评估和预测信息.

2 工控安全态势评估与预测技术

2.1 工控安全态势度量模型

本文采用具有多种类型的节点和边组成的图来表征工控安全态势,安全态势图G是一个六元组,G={v(G),E(G),A(G),S(G),W(G),R(G)}.其中:

1)v(G)={v1,v2,…,vn},表示图的顶点集,每个顶点对应一个工控节点/服务类型,如工控路由器、工控终端、工控服务等.

2)E(G)={e1,e2,…,em},表示图的有向边集,由顶点的有序连接以及连接类型组成.连接类型表示工控节点间的关系集合,如工控病毒/木马路径传播关系、工控攻击依赖关系、工控行为关联关系、工控漏洞关联关系、僵尸网络控制关系等.例如,ei=(vi1,vi2,dw)表示工控节点vi1和vi2之间有蠕虫传播关系.

3)A(G)={A(v1),A(v2),…,A(vn)},表示与节点相关的工控安全事件集,A(vi)与工控节点vi对应,A(vi)={a1,a2,…,ak},其中aj(1≤j≤k)表示安全事件的属性向量.

4)S(G)={S(v1),S(v2),…,S(vn)},表示工控节点的安全信息集,S(vi)与工控节点vi对应,包括节点的资产价值、脆弱性、安全配置等.

5)W(G)={w1,w2,…,wn},表示工控节点对应的权重集,权重范围为[0,1],表示工控节点对整体工控安全态势的影响程度.

6)R(G)={r1,r2,…,rn},表示工控节点的安全态势评估值集,通过评估算法计算得到.

2.2 工控安全威胁发现技术

本文基于2种途径发现工控安全事件:1)基于已知攻击知识库的攻击分类,得到攻击特征属性(包括攻击种类、强度、危害度、发生频率、攻击意图、攻击路径等),此过程是对现有已知攻击的发现;2)建立工控系统要素的正常行为模板,将偏离正常行为模板的事件视为威胁,实现对未知工控攻击的发现.

2.2.1 工业控制系统行为轮廓特征构建及提取

工业控制系统行为轮廓的建立基于对工控攻击过程和特征的深入分析和研究.根据具体的工控攻击类型以及攻击阶段的划分,定义每个阶段的特征属性,如图3所示,这些特征属性构成了某个实体的行为轮廓.依据攻击的时间关系和空间关系(如IP关联、端口关联、进程关联等)将不同阶段的特征进行关联.特征属性值有定性和定量2种取值方式.

以针对工业控制系统的典型APT攻击为检测对象,可将攻击分为8个阶段:①探测;②获取访问权限;③内部侦察;④扩展权限;⑤收集信息;⑥抽取信息;⑦控制;⑧消除痕迹.各个阶段采用的攻击方法以及对应的攻击特征如表1所示.根据这些攻击特征建立工业控制系统行为轮廓.

表1 APT攻击阶段

针对工控设备,通常考虑的攻击特征属性如表2所示:

表2 攻击特征属性

针对网络流量可考虑的特征属性为源IP,目的IP,源端口,目的端口,连接类型,内容类型,行为动作类型,各种统计特性(如包的数量、平均包长、方差)等.

基于大数据的工业控制系统行为轮廓特征抽取是从原始数据中得到特征属性的具体值.

针对第i个目标对象,设xi,j(t)表示对象i在时刻t的第j个属性.将从采样时刻t1到tk的时间区间(即[t1,tk])内的原始数据表示成矩阵,如图4所示,其中×表示当前时刻得不到该属性值,也就是属性值获取具有异步特性.

基于挖掘构建的行为轮廓特征(反映正常行为习惯模式),对实时上报的工控安全数据进行实时匹配,对发现的偏离正常行为或习惯行为轮廓的网络活动形成异常告警.

工业控制系统行为分析的关键是对工业控制系统行为进行建模,确定工业控制系统行为与安全数据的对应关系,从而从安全数据中提炼出工业控制系统行为,支撑对行为轮廓特征的挖掘和匹配.

2.2.2 基于深度学习的工业控制系统安全攻击检测

引起工业控制系统节点的安全态势发生改变的主要原因是针对该节点的攻击行为.工控安全态势评估的首要任务是对攻击行为的检测,主要包括针对具体节点的攻击类型识别和攻击路径重构,如图5所示.

1) 攻击类型识别

攻击类型识别是对工业控制系统中正在发生的已知攻击行为的识别,本质是对攻击行为的分类.具体过程是针对某个具体的工业控制系统节点,收集针对该节点有攻击发生和无攻击发生的所有日志信息,利用这些具有标签的日志信息训练学习模型,训练形成的学习模型即可对新的输入信息进行分类识别.

传统浅层机器学习方法无法有效解决海量、原始、高速、复杂的工控安全大数据的分类问题,一方面数据特征的高维度使得传统机器学习算法学习不到任何知识,另一方面海量高速的大数据使得传统算法在现有的平台下无法运行.目前,表达能力强的深度模型能够挖掘海量数据中蕴含的丰富信息,通过深度学习网络从原始高维的攻击特征向量中提取低维度的结构性攻击特征向量,作为后续的机器学习算法的输入.如图6所示:

本文采用基于深度信念网络(deep belief nets, DBN)的机器学习分类算法发现大数据环境下的工控攻击.总体框架如图7所示.

① 数据预处理.对原始工控大数据集的属性进行指标化、归一化处理,得到标准化工控安全数据集.

② DBN特征降维.利用DBN对标准化工控安全数据集进行预训练和权值微调,获得最优的低维数据集.

③ 分类器构建.利用多源支持向量机、深度神经网络等构建分类器(二分类),基于低维数据集进行工控安全威胁发现.

本文构建了基于层叠的限制玻尔兹曼机(restricted Boltzmann machine, RBM)的DBN模型.学习DBN的过程就是非监督、贪婪地逐层训练RBM的过程.RBM预训练过程如图8所示.

2) 攻击路径重构

在大多数情况下,一个攻击过程包括多个攻击步骤,涉及工业控制系统中多个设备和多种服务.通过攻击路径重构可以发现所有可能受到威胁的设备或服务,从而对设备的安全态势以及整体的工控安全态势进行评估.攻击路径重构可基于攻击图,逆向回溯找出所有可能的攻击路径.攻击图是从攻击者的角度出发,基于工业控制系统的配置和脆弱性信息,分析工控安全威胁、攻击和脆弱性之间的依赖关系,构建出所有可能的攻击路径.

3) 攻击信息统计

在识别攻击类型以及攻击路径重构的基础上,对该攻击的相关信息进行统计计算,这些信息包括攻击频率、危害度、等级(强度)等.

2.2.3 基于大数据挖掘的工业控制系统安全事件检测

基于分类的攻击检测只能发现已知的工控攻击行为,对于新的安全事件或者未知的攻击行为无能为力.安全事件的发生将引起工业控制系统状态的改变,使得系统的状态偏离正常行为模式.因此,本文的工业控制系统安全事件检测采用基于异常检测的思想,通过建立工控节点或服务的正常行为模式,分析引起行为模式发生改变的事件,如果改变超过给定的阈值则可判定为安全事件.

工控节点或服务的正常行为模式通过基于大数据挖掘的方法建立,具体可采用基于关联规则、频繁模式、离群点挖掘等方法建立各节点的正常行为模式,如图9所示.

1) 降维处理

工控安全大数据具有极高的维度,在欧氏空间中,高维特性可造成“维数灾难”:一是在高维空间下,几乎所有的点对之间的距离都几乎相等;二是几乎任意的2个向量之间都是近似正交的.这使得传统的数据挖掘算法如聚类算法、关联规则挖掘算法等都不能正常应用于工控安全大数据进行知识挖掘分析.

根据原始工控安全数据的不同类型,降维处理使用2种主要途径:特征选择和特征抽取.特征选择从原始特征集合中选出一部分具有代表性的特征子集代替原始特征,这部分特征能够保留原始数据中的大部分信息;特征抽取通过对原始特征集合进行组合或转换,将原始特征空间转换到一个新的特征空间,新的特征空间的维度远小于原始特征空间的维度,但是保留了大部分原始信息.

整体降维处理实现思路如下:将原来众多具有一定相关性的特征属性进行线性重新组合,形成一组新的相互无关的综合性特征属性来代替原来的特征属性.这样的线性组合很多,选取其中包含原有特征属性信息最多的组合.设选取的第1个线性组合为F1,定义方差var(F1)来衡量F1包含的原有特征属性的信息,var(F1)越大,说明F1包含的信息越多,因此可得到方差最大的F1,称为第1个主成分.如果第1个主成分不足以代表原来的P个特征属性的信息,再考虑选取F2即第2个线性组合,且F2中不再出现F1已有的信息,即协方差cov(F1,F2)=0,称F2为第2个主成分.依此,可构造第3、第4直至第p个主成分.

2) 样本约简

样本约简是一个统计过程,以很高的概率从原始工控安全数据集中选出一部分具有代表性的样本,该样本集包含了原始工控安全数据集的主要信息内容.

3) 数据挖掘

采用异常检测方法对新的安全事件进行检测,首先通过正常历史数据的挖掘建立节点或服务的正常行为模式,再基于正常模式对新的安全事件进行检测.异常检测基于2个假设:①正常行为记录数目远大于攻击行为记录数目;②攻击行为本质上与正常行为不同.

结合基于数据挖掘的异常检测的具体需求,本文采用2种具体的数据挖掘方法:聚类分析、频繁模式与关联规则挖掘.

① 聚类分析

聚类分析用于对工控安全数据之间的关联关系进行分析.正常行为和异常行为对应的数据具有明显不同的特征,在行为特征空间中,异常行为与正常行为对应的数据会彼此分离,而相同类别行为对应的数据会趋于聚合,因此可采用离群点挖掘算法发现异常行为.

运用聚类算法从正常工控安全数据样本集中提取参考样本(簇中心)后,提前定义离群阈值,通过目标样本增加的数量评估增加前后簇中心位置的变化情况,计算该目标样本的离群值,离群值大于阈值的目标样本识别为异常样本,即存在异常行为(或攻击行为).

② 频繁模式与关联规则挖掘

通过关联分析从工控安全数据中找出数据项中频繁出现的模式,生成关联规则.针对正常行为数据挖掘生成的频繁项集和关联规则可以作为正常行为模式的模板,当新的频繁项集与此模板偏离,超过一定阈值则可判定为异常行为.目前常用的频繁模式挖掘算法有Apriori算法和FP-tree算法.

使用改进的Apriori算法实现这一过程,思路如下:如果一个工控事件集合的子集不是频繁项集,那么该集合也不可能是频繁项集,基于此,算法通过检查小集合而去掉大部分不合格的大集合.一条关联规则的形式为I→j,其中I是一个项集,j是一个项,意义是:如果I中所有项出现在某个网络事件中,那么j有可能也出现在这个网络事件中.通过定义规则的可信度来表征上述规则中j出现的可能性:可信度等于所有包含I的网络事件中同时包含j的网络事件的比例.

4) 异常行为信息统计

在发现异常行为的基础上,对异常行为发生的频率进行统计,进一步确定异常行为的攻击类型、等级(强度)、危害程度等.

2.3 基于信息融合的工控安全态势评估

多源数据具有冗余性、互补性和低代价等特点,可以降低系统的不确定性,工控安全态势评估采用多源信息融合思想,能够更准确地生成工业控制系统的安全态势.

首先利用针对工控节点的态势因素及其量化特征值,采用基于多源多层次信息融合的方法评估节点的安全态势值,从而进一步融合得到整体工控安全态势值,如图10所示.通过融合工控攻击信息和异常行为信息得到威胁态势,通过融合脆弱性信息和节点安全策略信息得到脆弱性态势,通过工控资产信息得到资产态势,在此三者的基础上进一步融合得到节点的安全态势.子系统由若干个工控节点和服务构成,整体工业控制系统由若干个子系统构成,采用加权求和的方法得到子系统和全局的安全态势值.

在基于多源多层次信息融合的工控节点安全态势评估过程中,采用D-S证据理论进行信息融合,融合流程如图11所示.D-S证据理论是安全态势评估中被广泛采用的一种算法,但是直接使用存在诸多问题,如线性加权不满足证据组合规则的结合律、指数加权依赖经验递推等问题,使得融合的准确性不高,需要对算法进行改进,如采用基于粒子群D-S证据理论的多源融合.

2.4 基于统计学习理论的工控安全态势预测

基于对当前工控安全态势评估和已有的历史评估数据,对未来一段时间内的工控安全态势变化趋势加以预测.首先针对工控节点的态势进行预测,然后融合得到系统和全局的安全态势.如图12所示:

工控安全态势预测是非线性时间序列预测,即过去、当前以及未来安全态势值之间存在某种确定关系,这种关系可以用函数表示:

其中,d>0,τ为时间间隔.预测本质上是函数逼近问题,本文采用数理统计模型建立函数,在概率意义下,说明以后某时刻处于某种安全态势的概率.

1) 可预测性分析

通过研究工控安全态势值的时间序列的赫斯特(Hurst)指数H进行可预测性分析.赫斯特指数可以体现统计分形的自相似程度,与时间序列轨迹的分维D有D=2-H的线性关系.对赫斯特指数进行测量的方法有多种,包括方差法(variance method)、R/S法(rescaled range method)、小波法(wavelet method)等.

2) 统计学习理论模型的建立

设具有可预测性的工控安全态势值的时间序列为(x1,x2,x3,…,xn),目标是预测未来的安全态势值xn+1,xn+2,….设时间窗口为t,将时间窗口t内的数据(xi,xi+1,xi+2,…,xi+t)作为输入训练统计学习分类器,训练好的学习分类器即可用来对未来的安全态势值进行预测.

现有的大多数预测方法信息来源单一、缺乏实时性,考虑工控系统环境下的多源异构信息源,可采用适用于时间序列分析的隐马尔科夫预测模型.首先构建针对工控节点的一系列隐马尔科夫预测模型,充分利用多源异构信息,从不同角度刻画不同时刻节点安全态势的前后依赖关系,预测节点下一时刻的安全态势.基于节点安全态势,综合考虑所有节点的类型、位置、关键性、重要性以及其他性质,量化计算下一时刻的全局工控安全态势.

3 实验验证

本文采用2014年密西西比州立大学构建的电力工控系统攻击数据集[14],图13为该电力工业控制系统的组成.该数据集包含500多万条电力工业控制系统的数据,以120次/s的速率进行采样.该数据集被分为3大类,每类都包含37种电力工控系统的场景,其中自然事件8种、攻击事件28种,还有1种是无任何事件.

首先按照本文提出的基于信息融合的工控安全态势评估方法对该数据集进行评估,并与基于粗糙集的实时网络安全态势评估方法进行对比[4],得出安全态势评估值,如图14所示.

经过计算,2种方法之间的误差为8.12%,说明本文提出的基于信息融合的工控安全态势评估方法基本是合理有效的.

然后按照本文提出的基于统计学习理论的工控安全态势预测方法进行预测,并与基于D-S证据理论的网络安全态势预测方法[6]进行对比,得出安全态势预测值,如图15所示.

经过计算,本文方法与实际安全态势值误差为8.16%,基于D-S证据理论的预测结果与实际安全态势值误差为12.39%.可以看出在安全态势值发生剧烈变化时,2种预测方法在这些剧烈变化点的预测准确度有待提高.总体可以看出本文提出的基于统计学习理论的工控安全态势预测方法相对更加准确.

4 结 语

本文提出一种工控安全态势评估与预测框架,对工控安全态势度量模型、行为轮廓特征构建及提取、安全攻击检测、安全事件检测等技术开展研究,实现了基于信息融合的工控安全态势评估和基于统计学习理论的工控安全态势预测,形成了针对工控安全态势评估与预测的整体解决方案,并通过实验验证了本文方法的有效性,为工业控制系统安全研究与研发工作提供支持.下一步,将围绕态势预测中部分特殊时间点预测准确度不佳的问题,利用深度学习等方法的反馈机制,提升预测准确度.

猜你喜欢

工控安全事件态势
工控编程编译工具应用现状分析及展望
历史虚无主义的新近演化态势与特征
工控系统脆弱性分析研究
基于蜜罐的工控网络安全防护技术研究进展
2020年度区块链领域安全事件达555起
2019年12月与11月相比汽车产销延续了增长态势
汇市延续小幅震荡态势
国际金价能否延续上涨态势
优质护理干预对精神科护理安全事件发生率的影响探析