首页> 中国专利> 一种基于循环神经网络的工业控制系统入侵检测方法

一种基于循环神经网络的工业控制系统入侵检测方法

摘要

本发明涉及一种基于循环神经网络的工业控制系统入侵检测方法。该方法通过采取工业控制系统现场控制网络中特定大时间尺度下的正常历史数据,对通信数据进行协议解析得到通信过程中的数据包,针对数据包特征细化分析,通过降维得到每一个数据包的有效特征集;利用自然语言处理获得其向量表示,进一步获得当前时间尺度下的系统正常历史通信数据库;输入到循环神经网络预测模型中,学习正常通信行为的序列特征,最终通过概率分析得到具体的工业控制系统通信数据包是正常与否。本发明利用概率主成分分析方法充分挖掘每一个数据包的有效信息,提高了模型的训练速度;并通过循环神经网络模型融合贝叶斯公式,有效提高了入侵检测的准确率,降低了误报率。

著录项

说明书

技术领域

本发明属于工业控制系统安全领域,涉及一种基于循环神经网络的工业控制系统入侵检测方法。

背景技术

工业控制系统(industrial control system,ICS)是一种用于工业生产的控制系统的统称,包括监控和数据采集系统(supervisory control and data acquisition,SCADA)、分布控制系统(distributed control system,DCS)和可编程逻辑控制器(programmable logic controller,PLC)等多种类型控制系统。它是电力、交通、水利等传统国家关键基础设施的核心,它的安全关系到国计民生,是社会经济发展的重要保障。

早期的工业控制系统处在一个相对隔离的环境中,与外部互联网不直接接触,系统自身的实时性和可用性是其关注的主要问题。但随着工业化4.0时代的到来,信息化和工业化融合进程加快,ICS朝着开放、网络化方向前进,各种先进的信息技术和通信网络协议在工业控制系统中得到越来越多的应用,使得工业控制系统逐渐暴露在外界互联环境中,而自身的系统化安全措施尚未跟上开放的步伐,病毒、木马等引起的安全隐患层出不穷。ICS的安全防护问题在学术界和产业界引起广泛重视,研究人员开始借鉴传统信息安全领域的防护技术解决ICS的安全防护问题,如工业防火墙、风险评估技术等,但是传统信息安全技术不能提供实时的安全防护,防火墙等防御措施也无法防御来自系统内部的攻击。入侵检测是一种通过安全监控和异常报警的入侵检测技术,作为一种主动防御方法可以弥补传统安全方法的不足,实现对ICS外部和内部入侵的实时监测。

发明内容

本发明的目的在于针对目前工业控制系统安全的欠缺和不足,提供一种基于循环神经网络的工业控制系统入侵检测方法。

本发明的目的是通过以下技术方案实现的,一种基于循环神经网络的工业控制系统入侵检测方法,包括以下步骤:

A.建立异常检测网络模型的步骤:

A1.采集工业控制系统中流经现场控制网络的正常通信数据;

A2.对数据进行数据解析、数据降维、标准化编码处理,获取有效特征序列;

A3.建立GRU循环神经网络预测模型,用有效特征序列训练该模型并优化网络参数,得到异常检测网络模型;

B.对流经现场控制网络的通信数据进行实时检测的步骤:

B1.采集工业控制系统中流经现场控制网络的实时通信数据;

B2.对数据进行数据解析、数据降维、标准化编码处理,获取有效特征序列;

B3.用有效特征序列输入该模型初步判断实时数据是否异常;

B4.利用贝叶斯公式进一步计算实时数据的主成分异常概率,最终输出现场控制网络的入侵检测结果。

所述采集工业控制系统中流经现场控制网络的正常或实时通信数据,是利用抓包软件Wireshark采集的,其中正常历史数据来源为实际现场数据或网络公开的实验数据集。

所述数据解析包括:对正常历史数据集合或实时数据中的每一个数据包进行协议解析,识别、提取数据包的特征。

所述数据包特征为数据的属性,包括IP地址、设备ID、端口号、协议类型。

所述数据降维包括:将数据包中的特征进行降维,提取相应数据包的有效特征建立有效特征集。

是采用概率主成分分析方法PPCA进行特征降维,所述概率主成分分析方法包括EM算法、条件概率、迹的循环不变性处理。

所述标准化编码包括:对获得的有效特征集中的正常历史数据或实时数据进行标准化处理,获得包含所有标准化数据包向量的历史数据或实时数据的有效特征序列;

所述数据标准化处理包括:填充缺失值、以独热码的形式对有效特征进行编码。

所述用有效特征序列输入该模型初步判断实时数据是否异常,包括对模型计算的结果设置阈值范围[u,g],其中,u,g均为0到1之间的实数:

i.若实时数据输入该模型后计算的概率值小于u,则判断当前实时数据异常,网络受到入侵;

ii.若实时数据输入该模型后计算的概率值大于g,则判断当前实时数据正常,网络未受到入侵;

iii.若实时数据输入该模型后计算的概率值落入阈值范围[u,g]内,则初步判断当前实时数据可能正常,网络可能未受到入侵。

所述利用贝叶斯公式进一步计算实时数据的主成分异常概率,包括:

对实时数据输入该模型后计算的概率值落入阈值范围[u,g]内的,利用贝叶斯公式再一次计算实时数据的主成分异常概率,并根据概率计算结果进一步判断当前实时数据是否正常,网络是否受到入侵。

本发明的有益效果是:基于循环神经网络模型的工业控制系统入侵检测方法,增加了工业控制系统入侵检测准确性,降低了误报率。

(1)特征提取:利用概率主成分分析方法提取数据包的有效特征,一方面降低了数据包特征的维度,从而提高模型训练速度;另一方面,特征具有代表性,可以充分捕获数据包特征,提高检测准确率。

(2)挖掘正常历史数据集合:利用循环神经网络学习正常历史通信序列特征,首先根据数据包有效特征的发生概率进行异常判断,结合贝叶斯公式进一步判断可疑数据包,增强了检测准确性,降低了误报率。

附图说明

图1是本发明方法流程示意图;

图2是本发明的预测模型结构示意图;

图3是工控协议Modbus报文结构解析;

图4是基于GRU的循环神经网络神经元内部结构示意图;。

具体实现方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方法做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但本发明能够以很多不同于在此描述的其他方式来实施,本领域技术人员可以在不违背发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。

除非另有定义,本文所使用的所有技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

下面结合附图对本发明作进一步详细说明,如图1所示,为本发明方法流程示意图,如图2所示为本发明的预测模型结构示意图,步骤如下:

步骤1,利用抓包软件Wireshark等采集工业现场控制网络中的通信数据。数据来源可以是一段正常运行时间段(比如3个月)内的实际现场数据或网络公开实验数据集,如KDD99数据集。

步骤2,针对步骤1获取的正常历史数据集合中的每一个数据包进行协议解析工作,识别、提取包的特征,包括IP地址、端口号、协议类型等。现场控制网络中包含不同的工业控制系统通信协议,不同的协议数据包结构不同,包长度、包到达时间间隔等也有所差别,需要对常用的协议包进行识别分析。如图3所示,对常用工控协议Modbus进行报文结构解析。

步骤3,将步骤2识别后的数据包中的特征降维,提取相应数据包的有效特征建立特征集,对特征集中的数据进行预处理,将每一个数据包处理成一条标准化的向量,最终获得包含所有标准化数据包向量的正常历史数据库。采用概率主成分分析方法(Probabilistic PCA,PPCA)进行特征降维,包括EM算法、条件概率、迹的循环不变性等。

步骤3.1,将步骤2中解析后的数据包用向量

步骤3.2,对样本数据进行标准中心化处理;并在隐变量z的条件下得到观测数据的概率分布:

p(x)=N(x|Wz,WW

其中,z表示隐变量;W表示因子矩阵;σ表示方差;

步骤3.3,通过EM算法获得PPCA的模型参数W(因子矩阵)和σ方差:

其中,U

步骤3.4,舍去不满W和方差特定关系的归一化特征,剩余满足条件的数据为降维后t时刻有效特征:

步骤4,对步骤3获得特征集中的数据进行预处理,将每一个数据包处理成一条标准化的向量,最终获得包含所有标准化数据包向量的正常历史数据库。预处理方法包括:填充缺失值、以独热码的形式对有效特征进行编码等。

步骤5,将步骤4获得的正常历史数据库输入循环神经网络预测模型中,对正常历史通信行为特征进行学习;采用基于GRU(Gated Recurrent Unit)的循环神经网络进行模型训练。如图4所示基于GRU的循环神经网络神经元内部示意图。在GRU模型中只有两个门:更新门z

步骤5.1,预构建的GRU前向训练过程的函数表达式,计算h

z

r

其中,×为哈达马乘积,+为矩阵加法,·为矩阵乘法,W、b分别为权重参数和偏差参数;W

步骤5.2,函数表达式中涉及的激活函数为:

其中,σ为设置的门的激活函数,用于将数据变换为(0,1)范围内的数值;tanh为输出的激活函数,用于将数据缩放到(-1,1)范围,z表示待更新门上一个时刻的输出值。

步骤5.3,预构建的网络预测模型的输出训练过程函数为:

y

其中,h

步骤5.4,将步骤4中的正常历史数据库输入模型中,根据预先设定的参数学习历史通信行为的序列特征,训练过程不断调整模型优化器学习率(例如本实施例中的为80%)、权重参数和偏差参数等,直至模型收敛于80%的优化器学习率,获得序列异常检测模型。

步骤6,在实时检测时,首先将待检测的数据包依次输入步骤(2-4)进行特征降维,然后将提取了主成分的有效特征数据包输入步骤5中训练完成的预测模型,判断是否为异常数据。判断过程中,首先计算待检测数据包特征的发生概率,若发生概率不在区间内数据包正常与否可以直接判断,区间左侧为异常,右侧为正常;若在给定的阙值区间内,利用贝叶斯公式再一次计算主成分异常概率,并根据概率作进一步判断。

步骤6.1,设S为正常历史数据库中的所有数据包的集合,则当前待检测数据包有效特征的发生概率为:

本实施例的GRU的循环神经网络模型:

给定概率区间[0.2,0.9],经过计算得到发生概率值,若小于0.2,则为异常数据包,大于0.9为正常数据包;若在区间内,则在步骤6.2中作进一步判断。

步骤6.2,经过预处理后的每一个数据包的有效特征之间是独立无相关的,根据贝叶斯公式,得到当前数据包有效特征的异常概率如下:

其中,x为当前待检测数据包,c

当i=1时为正常特征;反之,为异常特征。

本实施案例中的一种基于循环神经网络的工业控制系统入侵检测方法的创新性在于利用概率主成分分析方法充分挖掘每一个数据包的有效信息,提高了模型的训练速度;并通过循环神经网络模型融合贝叶斯公式,有效提高了入侵检测的准确率,降低了误报率。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号