基于双轮廓模型的工业控制系统异常检测方法与流程

文档序号:12121549阅读:238来源:国知局
基于双轮廓模型的工业控制系统异常检测方法与流程

本发明属于工业控制系统技术领域,涉及一种基于双轮廓模型的工业控制系统异常检测方法。



背景技术:

由于工业控制系统广泛采用通用软硬件和网络设施,以及与企业管理信息系统的集成,导致工业控制系统越来越开放,并且与企业内网,甚至是与互联网产生了数据交换。也就是说以前工业控制系统在物理环境上的相对封闭性以及工业控制系统软、硬件的专用性将会被打破,通过互联网或企业内网将有可能获取相关工业控制系统较为详细的信息,再加上运营工业控制系统的企业安全意识普遍较差,这样就给敌对政府、恐怖组织、商业间谍、内部不法人员、外部非法入侵者等创造了可乘之机。

在ICS(工业控制系统)中存在以下缺点:1)在ICS中由于设备商众多,缺乏统一的系统硬件、操作软件和应用软件、协议规范标准,导致在ICS组态时存在自身的脆弱性。2)该系统中应用广泛的Modbus TCP协议缺乏认证、授权机制,数据为明文传输,只可能通过网络中的安全网关对现场设备层的采集到的数据进行安全防护,而传统的安全防护方法主要是基于协议数据包格式匹配的过滤技术,这种规则配置方法很难拦截众多恶意攻击者的攻击,如构造符合协议规范数据包进行攻击。3)在现场设备层中设备寄存器值易被攻击者篡改,而数据包格式依然符合协议规范,该攻击不易被察觉,使企业管理层做出错误决策。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于双轮廓模型的工业控制系统异常检测方法,该方法能够解决现场设备层中对未知攻击和设备异常类别识别存在的不足。

为达到上述目的,本发明提供如下技术方案:

一种基于双轮廓模型的工业控制系统异常检测方法,在该异常检测过程中涉及的工业控制网络设备包括:安全网关、可编程逻辑控制器、现场传感器设备和安全管理平台、工程师站;所述安全网关包括异常检测子系统和数据包深度解析系统,该方法具体包括以下步骤:

S1:工程师站对系统组态、运行,各区域所在PLC对其IO模块所接的受控设备进行鉴别,匹配受控设备信息列表,形成主、从站的周期性通信方式;

S2:PLC将数据信息实时反馈给安全网关,安全网关的数据包深度解析系统提取数据特征,去除多余的属性特征,只留下关于系统行为模式相关的特征,包括基于通信频率的协议特征、数据包传递方向特征以及寄存器值变化规律;

S3:异常检测子系统根据数据包深度解析系统所提取的特征向量,根据分类器进行测量和统计,进行异常检测,并对异常结果向安全管理平台发出警报。

进一步,在步骤S2中,数据包深度解析系统针对Modbus TCP协议的报文格式规定数据包中应该存在的特征字段以及这些字段的期望值,逐层对报文进行深度解析,归纳协议的指令和状态特征;

对于数据包协议特征集,通过建立一个的主、从站通信的滑动时间窗口,由周期性时间窗口对重要特征进行频率标记,对数据包进行周期性采集与特征提取,建立特征向量;

根据在Modbus TCP协议的ICS中,现场设备层主站、从站之间的通信存在高度的周期性特点以及对从站设备的周期性读写操作,得出包到达时间间隔规律、事务处理标识符频率、读从站功能码频率、写从站功能码频率、从站通信地址频率、数据包的传递方向,从而基于通信频率对每一类有规律的特征值构造出特征向量X=(x1,x2,x3…xn)。

进一步,所述包到达时间间隔规律是指PLC对受控设备所发出的相同指令的时间间隔保持一致;所述事务处理标识符频率、读从站功能码频率、写从站功能码频率、从站通信地址频率指的是,通过Modbus TCP协议特征和周期性的规律分析,得出数据包各个字段的特征频率;所述数据包的方向是指PLC与底层受控设备数据交互时,依据数据包的源地址、目的地址生成数据包的传递方向。

进一步,在步骤S3中,当使用分类算法检测Modbus TCP协议的向量特征时,先用k-means聚类算法对协议特征向量预处理:随机选择k个对象,作为初始化聚类簇,计算各个聚类簇中数据的均值,通过使用标准准则函数,判断聚类簇中心是否稳定,该标准准则函数定义为:

其中,xk表示聚类簇中的某一个点,ci表示某个聚类的均值;这样既缩短了分类时间,又提高分类准确度,满足ICS的实时性要求,一旦检测出异常情况立即产生警报通知安全管理平台。

进一步,在步骤S3中,通过分析可编程逻辑控制器与现场传感器设备之间传感器寄存器值,主控PLC计数寄存器值的规律性变化,生成时间与寄存器值的关系映射表,分析巨涌攻击特点是攻击者在t时刻篡改正常值使其突然增大,对照寄存器值关系映射表,设定寄存器阈值β为正常情况下输出值的2倍,发现实时检测值θ一旦超过阈值β,立即向安全管理平台发出警报;只有当实时的寄存器值没有超过阈值β时,利用TCM-KNN算法分类器类进行判别,这样比仅仅运用算法分类器的检测方法更具有实时性;

考虑到寄存器值可能被攻击者以每次数值的增量很小的数据篡改,系统难以察觉的特点,并且在ICS中一个完整的周期性运行,在每一个周期的相同时间点上寄存器值是相同的或差别极小,依此规律,利用TCM-KNN算法分类器来检测每个对应时间点上实际寄存器值与映射表寄存器值的偏差,来实时监测寄存器值是否正常;寄存器值一旦遭到篡改,安全网关立即将异常情况报告给安全管理平台,记录异常情况所在区域以及该区域PLC编号,向该PLC发送控制指令。

进一步,所述TCM-KNN算法是将经典的分类算法K-近邻与直推信度机(transductive confidence machines,TCM)相结合,以距离计算的方法(样本之间特征向量欧式距离)根据已分类的ICS寄存器数据集对待测数据进行分类;

为了量化实时寄存器值与映射表中寄存器值的差异程度,定义的奇异值来表示:

TCM中采用的置信度机制是基于随机性检测的,对置信度的估算采用随机性检测函数来进行,定义P值为检测函数的值实时寄存器值i相对于同类别y的P值:

在待分类样本集中每个样本对应每类都有一个P值,P值可以计算为一次处理一个样本,P值的取值范围为[0,1],P值越大表明i归属于y的可能性越大。

本发明的有益效果在于:

1、采用异常检测的双轮廓模型的思想,不断对异常样本的增加与学习,以及双轮廓检测模型的协同判别检测,从而提高了异常检测的准确率及其泛化能力。

2、该双轮廓模型的思想,不仅在数据采集区域针对寄存器值异常情况进行检测,而且控制层网络的数据传输过程提出了协议特征的检测算法。

3、通过分析主、从站通信的高度周期性和协议特征规律,建立周期性滑动时间窗口,对可代表ICS的重要特征元素进行标记,构造出数据元素丰富并具有代表性的特征向量。

c4、对于PLC寄存器值绘制关于时间的映射表,根据映射表规律设定阈值β,首先通过判别实时寄存器值是否大于阈值β,一旦发生异常就产生报警响应,否则,再对实时寄存器值进行TCM-KNN分类器监测,这样分情况的检测有利于提高ICS的实时性。

附图说明

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:

图1为基于Modbus TCP的ICS的异常检测系统结构图;

图2为Modbus TCP报文结构图;

图3为PLC控制系统实例;

图4为寄存器值检测数据获取流程图;

图5为基于聚类的SVM异常行为检测模型;

图6为寄存器值异常检测算法流程图。

具体实施方式

下面将结合附图,对本发明的优选实施例进行详细的描述。

本发明针对工业控制系统中Modbus TCP协议特征,构造基于通信行为频率的特征向量,建立了基于异常行为的聚类算法优化SVM的检测模型。根据主控PLC传感器寄存器值、计数寄存器值的高度周期性规律,ICS中控制寄存器模型预计输出值与寄存器实际值的出入,建立了基于异常行为的TCM-KNN检测模型,从而建立双轮廓模型的异常检测系统。

如图1所示,在该异常检测方法中涉及到的主要工控设备有:安全网关、主控PLC、受控设备、安全管理平台、工程师站,各自扮演的角色为:

1.安全网关:包括数据包深度解析系统与异常检测子系统,数据包深度解析系统对Modbus TCP数据包的深度解析与特征提取,异常检测子系统是底层网络与安全管理平台交互数据的检测与报警。其Modbus TCP协议特征如图2所示。

2.主控PLC:在ICS中,按照监控计划,PLC被用做本地控制器。PLC拥有一个用户可编程的存储器,用于存储指令以实现特定功能,如I/O控制、逻辑、定时、计数、三种模式的比例-积分-微分(PID)控制、通信、算术以及数据和文件处理。PLC可通过位于工程师工作站的编程接口访问。如图3所示。

3.受控设备:包括液位计、压力计、温湿度传感器、执行器等,负责工业生产过程中物理量的采集,并将采集信息经PLC上传至安全网关进行异常检测,同时,受控设备接受PLC的控制指令,完成指令动作,使工业生产过程有序进行。

4.安全管理平台:负责对安全网关安全机制的配置以及异常报警的处理。

5.工程师站:提供工业过程控制的工程师使用,对计算机系统进行组态、编程、修改等的工作站。

本方案主要针对基于Modbus TCP协议的ICS,先由工程师站对系统组态、运行,各区域所在PLC对其IO模块所接的受控设备进行鉴别,匹配受控设备信息列表,形成主、从站的周期性通信方式。

PLC将数据信息实时反馈给安全网关,网关的数据包深度解析系统提取数据特征,去除多余的属性特征,只留下关于系统行为模式相关的特征,包括基于通信频率的协议特征、数据包传递方向特征以及寄存器值变化规律。

然后,入侵检测子系统的数据分析模块进行异常检测,并对异常结果向安全管理平台发出警报。

入侵检测子系统是根据数据包深度解析系统所提取的特征向量,根据分类器进行测量和统计。

对于协议特征的数据向量,由于ICS主从站通信的高度周期性,并分析Modbus TCP的协议特征,得出数据包交互时间间隔规律,事务处理标识符频率、读从站功能码频率、写从站功能码频率、从站通信地址频率以及数据包传递方向等特征元素,构造出特征元素丰富的向量X=(x1,x2,x3…xn),建立k-means聚类算法优化SVM的异常检测模型。最后得到ICS实时数据包构造决策函数:

对于PLC传感器寄存器值、计数寄存器值绘制周期性的时间—寄存器值关系映射表,得到系统运行对应寄存器值的规律。并根据此映射表分别设定各个寄存器值的阈值β,当检测到其实际值大于等于阈值β时,立即向安全管理平台发出异常警报。当寄存器实际值小于阈值β时,采用TCM-KNN算法对寄存器值进行实时检测,以防止篡改数值的增量很小异常情况。

在该工控系统中,一方面,根据ICS的Modbus TCP协议特征与系统运行的高度周期性,由数据包深度解析系统得到协议特征向量,运用基于聚类的SVM算法建立了基于行为模式的异常检测系统,同时,基于行为模式的异常检测系统极大提高了异常情况的识别能力,另一方面,现场设备层PLC中传感器寄存器值、计数寄存器值的变化规律,生成寄存器值关于时间的映射表,构造了TCM-KNN异常检测模型,分析ICS正常运行寄存器值与实时寄存器值的偏差,来实现寄存器值异常的检测。因此,从ICS中的Modbus TCP协议特征和寄存器值变化规律两个不同类别的角度出发,构造出了双轮廓模型的异常检测系统,实现不符合主从站操作规律意图、寄存器值篡改等异常情况,同时通过两者的协同检测与判定,极大提高了系统异常检测率以及扩大了异常情况检测类别。

具体实施例:

基于双轮廓模型的ICS异常检测方法,主要涉及到以下3个模块:数据包深度解析系统、异常检测子系统、安全管理平台。

数据包深度解析系统是逐层对报文进行深度解析,关于Modbus应用协议报文头,它包含了传输标识、协议标识、长度和单元标识等,以及标记功能码周期性特点,归纳各协议的指令和状态特征,并根据主从站通信周期记录通信行为频率。

异常检测子系统根据来自数据包深度解析系统的信息,实时数据分析,对于Modbus TCP协议构造事务处理标识符频率、读从站功能码频率、写从站功能码频率、从站通信地址频率的特征向量,建立k-means聚类算法优化SVM的异常检测模型,对于寄存器值提取其关于时间的映射关系表,先通过设定的阈值β判断是否存在异常情况,如果实际值小于阈值,再通过TCM-KNN算法分类器模型进行异常检测,并将判断结果实时报告给安全管理平台。

安全管理平台主要负责管理及监视现场设备层到过程监控层整个网络的运行。

对于ICS中基于Modbua TCP协议特征的异常检测的主要方法是,从报文结构的层面分析,Modbus/TCP报文包含了Modbus应用协议报文头(MBAP,Modbus Application Protocol)和协议数据单元(PDU,Protocol Data Unit)两大部分,对于Modbus应用协议报文头,它包含了传输标识(Transaction ID)、协议标识(Protocol ID)、长度(Length)和单元标识(Unit ID)。对于Modbus TCP通信常用的功能码,比如,读线圈功能码01、读输入离散量02、写单个线圈05、写多个线圈15、读输入寄存器04、写单个寄存器06等,该协议中对主、从站的通信存在高度周期性。因此,构造数据包时间间隔、事务处理标识符频率、读从站功能码频率、写从站功能码频率、从站通信地址频率、数据包传递方向的特征向量,建立k-means聚类的SVM异常检测模型。

在ICS正常运行情况下,由安全网关获取训练样本,采用k-means和SVM相结合的分类方法进行异常检测,先用k-means聚类算法将特征向量大致聚为k类,然后再对已经聚好的k类用支持向量机进行细分,这样分类既缩短时间,又提高分类准确度。其具体算法流程如图5所示。

首先将样本数据X1,X2,X3…Xn作为输入样本,通过k-means聚类算法产生k个类别。然后,将聚类产生的数据作为输入构造SVM分类器,对ICS进行实时异常检测。

设定训练参数惩罚因子为c,径向基核函数K(xi,x),针对聚类算法的结果,构造分类超平面为w·xi+b=0,完成数据分类:

w·xi+b≥1→yi=+1 (1)

w·xi+b≤1→yi=-1 (2)

SVM线性分类问题化为二次回归问题:

其中:yi(w·xi+b)-1+ξi≥0,ξi≥0,i=1,2,…n,c>0为惩罚因子,ξi为松弛变量。然后引入拉格朗日因子α=[α12…αn],构造对偶支持向量机

针对未知的实时检测数据构造决策函数

当使用SVM分类Modbus TCP协议的向量特征时,先用k-means聚类算法对协议特征向量预处理,然后再对已经聚好的k类用支持向量机进行细分,随机选择k个对象,作为初始化聚类簇,计算各个聚类簇中数据的均值,通过使用标准准则函数,判断聚类簇中心是否稳定,该标准准则函数可定义为:

其中,xk表示聚类簇中的某一个点,ci表示某个聚类的均值。

对于ICS中主控PLC传感器寄存器值、计数寄存器值关于时间呈现周期性变化的规律,寄存器值检测数据获取流程如图4所示,通过系统多个周期下的正常运行,绘制出寄存器值关于时间的映射表,分析寄存器值变化设定寄存器阈值β,首先通过判别实时寄存器值是否大于阈值β,一旦发生异常就产生报警响应,否则,再对实时寄存器值进行TCM-KNN分类器监测,其检测方法如下:

TCM-KNN算法就是依照已分类的样本类别对待测样本进行分类,此异常检测模型如图6所示,为了量化待测样本与现有样本的差异程度,因此,定义的奇异值来表示:

其中,表示样本i同类别y中所有样本的距离,即距离序列,表示序列中第j个最小距离,代表样本i与除类别y外的其他类别中所有样本的距离序列,代表序列中第j个最短距离,k表示选取的最近邻数目。同类别的样本由于具有相似性,它们的特征向量在特征空间上的分布具有聚集性,样本之间的距离比较小,不同类别的样本存在差异性则相反。

TCM中采用的置信度机制是基于随机性检测的,对置信度的估算采用随机性检测函数来进行,定义P值为检测函数的值。

定义了待测样本i相对于类别y的P值:

其中,#是集合的“势”,表示有限集合的元素个数;αi表示i的奇异值;αj是集合中任意样本的奇异值;j是类别y中奇异值大于i的奇异值的样本个数;n是集合的元素个数;P值是待分类样本属于已存在的几类样本空间的概率。在待分类样本集中每个样本对应每类都有一个P值,P值可以计算为一次处理一个样本,P值的取值范围为[0,1],P值越大表明i归属于y的可能性越大。

在位于PLC上层的安全网关上设备中运行基于TCM-KNN算法的异常检测机制,根据寄存器值关于时间的周期性映射表,构造寄存器值正常样本集X'。

根据式(8)计算出正常样本集X'中相对于某特征f的奇异值αx

由安全网关采集到的实时数据作为待检测样本Y,由式(8)计算出待测样本Y相对于正常样本的奇异值αy

从而依据式(9)得出样本Y的P值P(αy)。通常设定出p(αi)的阈值τ为0.95,当待检测样本P(αy)≥τ时,判定为正常寄存器值,当P(αy)<τ时,判定为异常寄存器值,并向安全管理平台发送警报响应。

因此,对于ICS的高度周期性特点,根据ICS协议特征提取以及主控PLC中传感器寄存器值、计数寄存器值的变化规律,分别运用基于k-means聚类算法的SVM和TCM-KNN算法分类器构造异常检测模型,从而构造出双轮廓异常检测模型,从协议特征和寄存器值规律性变化两个角度出发,由双轮廓异常检测模型协同检测判别,极大提高了异常检测率及异常情况类别。

最后说明的是,以上优选实施例仅用以说明本发明的技术方案而非限制,尽管通过上述优选实施例已经对本发明进行了详细的描述,但本领域技术人员应当理解,可以在形式上和细节上对其做出各种各样的改变,而不偏离本发明权利要求书所限定的范围。

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