一种基于深度学习的工控网络流量异常检测方法及装置与流程

文档序号:25991607发布日期:2021-07-23 21:03阅读:168来源:国知局
一种基于深度学习的工控网络流量异常检测方法及装置与流程

本发明涉及计算机安全技术领域,尤其涉及一种基于深度学习的工控网络流量异常检测方法及装置、计算机设备、计算机可读存储介质。



背景技术:

网络流量预测问题属于时间序列预测的应用范畴,目前已有很多方法得到了应用和发展。这些方法中,按照建模方式大致可以分为两类:第一类是基于时间序列建模的线性预测方法,例如自回归模型法、自回归滑动法、差分自回归移动平均模型法、holtwinters指数平滑法等;第二类是基于机器学习算法的非线性预测方法,如支持向量机法、循环神经网络法等。

对于线性预测方法,如自回归移动平均模型(arima,autoregressiveintegratedmovingaveragemodel)法,虽然该方法的模型简单、易实现,且只需要内生变量,不需要借助其他外生变量,但是该方法缺点在于arima要求时序数据是稳定的,且只能解决线性问题,因此不适用于工控网络流量预测。

在非线性预测方法中,支持向量机不适合用于处理大规模样本,循环神经网络(rnn,recurrentneuralnetwork)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursiveneuralnetwork),但rnn无法解决长期依赖的问题。为解决此问题,长短期记忆网络(lstm,longshort-termmemory)被提出。考虑到现有技术中的工控网络流量预测及异常检测方法往往准确性差,对人工经验的依赖性强,因此需要提出一种更为准确、更加智能的工控网络流量预测及异常检测方法。



技术实现要素:

本发明的目的是针对上述至少一部分不足之处,提供一种基于深度学习的工控网络流量预测及异常检测方法,通过训练深度学习预测模型,实现流量特征的实时预测,同时对预测结果和实际数据进行比较,实现工控网络流量的异常检测。

第一方面,本发明提供了一种基于深度学习的工控网络流量异常检测方法,包括如下步骤:

步骤s1、获取网络流量的待检测数据和历史数据并进行预处理,得到对应的流量特征;

步骤s2、选取一段历史数据所对应的流量特征组成序列数据,输入用于预测流量特征的lstm预测模型,预测待检测数据对应的流量特征,并输出预测结果;

其中,lstm预测模型至少对如下流量特征进行预测,所述流量特征包括流持续时间、正向包的数量、反向包的数量、正向包的总字节数、反向包的总字节数、正向包头总字节数、反向包头总字节数、正向子流总字节数和反向子流总字节数;

步骤s3、基于历史数据计算用于异常检测的动态阈值,结合所述预测结果与待检测数据对应的真实流量特征,检测待检测数据对应的时段是否出现网络流量异常;

步骤s4、存储流量特征数据并定期训练新的lstm预测模型,若新的lstm预测模型优于当前用于预测流量特征的lstm预测模型,则更新当前用于预测流量特征的lstm预测模型。

可选地,所述用于预测流量特征的lstm预测模型是通过如下方式进行构建的:

将真实的网络流量数据进行预处理,得到流量特征;其中,进行预处理,得到流量特征包括选取流量特征,从真实的pcap流量包数据中解析出所预测的各流量特征,将连续时刻的流量特征按时间窗口聚合统计出各时段相应的真实值,组成对应的特征向量;

利用多个按时间正序连续排列的特征向量构成样本,利用多个样本构成训练集和测试集,基于训练集和测试集训练基于lstm构建的lstm预测模型,直至lstm预测模型收敛。

可选地,所述步骤s2中,选取一段历史数据对应的流量特征组成序列数据,输入用于预测流量特征的lstm预测模型,预测待检测数据对应的流量特征,并输出预测结果,包括:

确定序列数据长度,选取历史数据所对应的流量特征,构成一组连续时段且包含有最新时段流量特征的特征向量组,输入用于预测流量特征的lstm预测模型,由lstm预测模型预测出下一时段的流量特征;其中,最新时段与下一时段在时间顺序上相邻,且下一时段为待检测数据所对应的时段;

输出lstm预测模型对下一时段流量特征的预测结果,所述预测结果包括各流量特征相应的预测值。

可选地,所述步骤s3中,基于历史数据计算用于异常检测的动态阈值,结合所述预测结果与待检测数据对应的真实流量特征,检测该时段是否出现网络流量异常,包括:

步骤s3-1、调用历史数据对应的各流量特征的真实值与预测值;

步骤s3-2、通过如下方式计算动态阈值:

其中,表示第i个流量特征对应的动态阈值,表示由第i个流量特征的真实值构成的历史数据组,表示由第i个流量特征的预测值构成的历史数据组,长度均为n;

步骤s3-3、设表示一时段中第i个流量特征的真实值,表示对应时段的所述预测结果中第i个流量特征的预测值,若对于所有的i,均满足,则认为检测到该时段出现网络流量异常。

可选地,所述步骤s3-2中,n的取值为lstm预测模型输入序列数据长度的整数倍;由连续的历史数据构成,且中包含最新时段的流量特征的真实值,中包含最新时段的流量特征的预测值,最新时段与待预测数据所对应的时段在时间顺序上相邻。

可选地,所述步骤s4中,存储流量特征数据并定期训练新的lstm预测模型,若新的lstm预测模型优于当前用于预测流量特征的lstm预测模型,则更新当前用于预测流量特征的lstm预测模型,包括:

步骤s4-1、存储流量特征数据时,若经过检测该时段未出现网络流量异常,则存储该时段各流量特征的真实值;

若经过检测该时段出现网络流量异常,则存储该时段各流量特征的预测值;

步骤s4-2、当存储的数据达到迁移训练的数据量,则利用存储的数据在线学习,训练新的lstm预测模型;

该新的lstm预测模型训练完成后,利用网络流量的历史数据检验该新的lstm预测模型与当前用于预测流量特征的lstm预测模型,分别对两个lstm预测模型的预测准确度进行评分;

若该新的lstm预测模型的评分高于当前用于预测流量特征的lstm预测模型的评分,则将此后用于预测流量特征的lstm预测模型更新为该新的lstm预测模型。

可选地,所述步骤s4-2中,利用网络流量的历史数据检验该新的lstm预测模型与当前用于预测流量特征的lstm预测模型时,所采用的网络流量的历史数据为实际获取的真实值;

分别对两个lstm预测模型的预测准确度进行评分时,将相同的历史数据所对应的流量特征分别输入两个lstm预测模型进行流量特征预测,对各流量特征的预测值与真实值之间的差异进行加权评分,表达式为:

其中,i表示一个流量特征的第i组数据,表示真实值,表示真实值的平均值,表示预测值,n表示一个流量特征的数据总数,r2_score表示流量特征对应的准确性评分;

根据表达式,每个流量特征得到一个r2_score,加入r2_score集合;

对所有流量特征对应的r2_score集合计算加权平均,权重为各流量特征的r2_score在r2_score集合中的方差,得到最终的模型评分,模型评分高代表准确性高;

通过模型评分判断新的lstm预测模型是否优于当前用于预测流量特征的lstm预测模型。

第二方面,本发明还提供了一种基于深度学习的工控网络流量异常检测装置,包括:

预处理模块,用于获取网络流量的待检测数据和历史数据并进行预处理,得到对应的流量特征;

流量预测模块,用于选取一段历史数据所对应的流量特征组成序列数据,输入用于预测流量特征的lstm预测模型,预测待检测数据对应的流量特征,并输出预测结果;

其中,lstm预测模型至少对如下流量特征进行预测,所述流量特征包括流持续时间、正向包的数量、反向包的数量、正向包的总字节数、反向包的总字节数、正向包头总字节数、反向包头总字节数、正向子流总字节数和反向子流总字节数;

异常检测模块,基于历史数据计算用于异常检测的动态阈值,结合所述预测结果与待检测数据对应的真实流量特征,检测待检测数据对应的时段是否出现网络流量异常;

在线学习模块,用于存储流量特征数据并定期训练新的lstm预测模型,若新的lstm预测模型优于当前用于预测流量特征的lstm预测模型,则更新当前用于预测流量特征的lstm预测模型。

第三方面,本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述基于深度学习的工控网络流量异常检测方法的步骤。

第四方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述基于深度学习的工控网络流量异常检测方法的步骤。

本发明的上述技术方案具有如下优点:本发明提供了一种基于深度学习的工控网络流量异常检测方法及装置、计算机设备、计算机可读存储介质,本发明使用基于lstm的深度学习网络,对网络流量的多个流量特征进行预测,并通过基于网络流量的历史数据计算动态阈值,判断当前时刻的网络流量是否发生异常,同时还加入lstm预测模型的在线学习机制,使lstm预测模型能够随着网络环境的变化不断调整优化,确保异常检测方法的准确性和长期有效性。

附图说明

图1是本发明实施例中一种基于深度学习的工控网络流量异常检测方法步骤示意图;

图2是本发明实施例中一种基于深度学习的工控网络流量异常检测方法流程示意图;

图3是本发明实施例中一种基于深度学习的工控网络流量异常检测装置结构示意图。

图中:100:预处理模块;200:流量预测模块;300:异常检测模块;400:在线学习模块。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1和图2所示,本发明实施例提供的一种基于深度学习的工控网络流量异常检测方法,包括如下步骤:

步骤s1、获取网络流量的待检测数据和历史数据并进行预处理,得到对应的流量特征。

此步骤s1旨在获取网络流量数据并进行预处理,获取网络流量数据时,采集一个工控网络中的pcap流量包数据,pcap流量包数据记录了工控网络流量真实数据,预处理时,将pcap流量包实时解析为若干工控网络流量特征,并根据时间窗口对各特征相应的数值进行聚合统计,以便后续使用。

步骤s2、选取一段历史数据所对应的流量特征组成序列数据,输入用于预测流量特征的lstm预测模型,预测待检测数据对应的流量特征,并输出预测结果。

其中,lstm预测模型基于lstm实现,至少对如下工控网络的流量特征进行预测,包括工控网络的流持续时间、正向包的数量、反向包的数量、正向包的总字节数、反向包的总字节数、正向包头总字节数、反向包头总字节数、正向子流总字节数和反向子流总字节数。正向包的数量,即正方向上传输的数据包(packet)的数量(pcap流量包中的每一行,都称为一个packet);正向包的总字节数,即正方向上传输的数据包(packet)的所有数据字节总和;正向包头总字节数,即正方向上传输的数据包(packet)包头的字节总和;正向子流总字节数,即当前会话的各子流在正方向上传输的所有数据的字节总和。同理,反向包的数量,即反方向上传输的数据包(packet)的数量;反向包的总字节数,即反方向上传输的数据包(packet)的所有数据字节总和;反向包头总字节数,即反方向上传输的数据包(packet)包头的字节总和;反向子流总字节数,即当前会话的各子流在反方向上传输的所有数据的字节总和。处理数据时,将pcap流量包拆成会话,每个会话中可能存在多个连接在发送数据,每一个发送数据的连接即为一个子流。传输数据时,可以采用子流传输也可不采用子流传输,因此可能有若干数据通过多个子流传输,也可能有数据不通过任何子流传输。

此步骤s2旨在实现网络流量预测与输出预测结果。为了提高异常检测的准确性,本发明对多个流量特征同时进行预测及异常判断。本着既要可预测又要对异常检测有帮助的特征选取原则,本发明基于分析与实践,最终选择了上述九个流量特征(即流持续时间、正向包的数量、反向包的数量、正向包的总字节数、反向包的总字节数、正向包头总字节数、反向包头总字节数、正向子流总字节数和反向子流总字节数)用于预测及异常检测。通过对上述九个流量特征进行联合预测与检测,能够提高工控网络流量异常检测的准确性,减少工控网络流量异常检测对于人工经验的依赖。

lstm预测模型的核心是lstm,作用是输入由真实的网络流量数据预处理得到的、对应一段连续时间的特征向量,预测出下一时段的、待检测数据的特征向量(即预测结果),特征向量中至少包含有上述九个流量特征。

需要说明的是,如图2所示,步骤s2中利用的是完成训练后的lstm预测模型,进行预测时直接将一段序列数据输入完成训练的lstm预测模型,预测待检测数据所对应的流量特征即可,无需每一次预测都对用于预测流量特征的lstm预测模型进行训练。

步骤s3、基于网络流量的历史数据计算用于异常检测的动态阈值,结合步骤s2中用于预测流量特征的lstm预测模型给出的预测结果,与下一时段的真实数据(即待检测数据所对应的真实流量特征),检测待检测数据所对应的时段是否出现网络流量异常。

此步骤s3旨在利用历史数据实现动态阈值计算和网络流量异常检测。检测过程中,训练好的lstm预测模型不断进行预测,同时根据历史数据计算的动态阈值随着时间推移不断变化,当预测结果与网络流量真实情况发生较大差异,即,待检测数据对应的真实流量特征与预测结果包含的流量特征之间的差异均超过各自对应的动态阈值时,认为当前网络流量发生了异常。相应地,可给出预警,提示用户可能出现了安全问题。

步骤s4、存储包含有流量特征的数据并定期训练新的lstm预测模型,若新的lstm预测模型优于当前用于预测流量特征的lstm预测模型,则更新当前用于预测流量特征的lstm预测模型。

此步骤s4旨在基于存储的流量特征数据,实现lstm预测模型在线学习。当存储的数据达到可以进行迁移训练的数据量时,开始进行在线学习;学习完成,即训练完成后,对新lstm预测模型和旧lstm预测模型(即当前用于预测流量特征的lstm预测模型)分别进行测试:当新lstm预测模型的效果优于旧lstm预测模型的效果时,lstm预测模型更新;当新lstm预测模型的效果次于旧lstm预测模型的效果时,不更新。

需要说明的是,为节约处理时间,上述步骤s4与步骤s2、步骤s3可同时进行,即在预测和异常检测的同时,搜集实时数据,进行在线学习。

本发明提供的基于深度学习的工控网络流量异常检测方法使用了基于lstm的深度学习模型对多个网络流量特征进行预测,预测结果更接近于真实值;将异常检测的阈值设置为基于历史数据计算得到的动态阈值,再加上选取的流量特征数量较多,能够使异常检测的判定结果更加合理,误报率更低;且通过在线学习的方式,可使得用于预测流量特征的lstm预测模型随着网络环境的变化不断调整优化,总是能适用于当前的网络环境,保证异常检测长久有效。

可选地,本发明中,用于预测流量特征的lstm预测模型是通过如下方式进行构建的:

获取真实的网络流量数据,进行预处理,得到流量特征;其中,进行预处理,得到流量特征包括选取流量特征,从真实的pcap流量包数据中解析出所预测的各个流量特征,将连续时刻的流量特征按时间窗口聚合统计出各个时段相应的真实值,组成对应的特征向量;

利用多个按时间正序连续排列的特征向量构成样本,样本的数据长度也即网络输入的序列数据长度,利用多个样本构成训练集和测试集,基于训练集和测试集训练基于lstm构建的lstm预测模型,直至lstm预测模型收敛。

训练lstm预测模型的具体步骤可参考现有技术,在此不再进一步赘述。

在完成了lstm预测模型训练后,即可利用lstm预测模型进行预测。

步骤s2中选取了历史数据中的一段用于预测,为确保预测的效果,优选采用包括最新时段的历史数据。因此可选地,步骤s2中,选取一段历史数据对应的流量特征组成序列数据,输入用于预测流量特征的lstm预测模型,预测待检测数据对应的流量特征,并输出预测结果,包括:

确定序列数据长度,选取历史数据所对应的流量特征,构成一组连续时段且包含有最新时段流量特征的特征向量组,输入用于预测流量特征的lstm预测模型,由lstm预测模型预测出下一时段的流量特征;其中,最新时段与下一时段在时间顺序上相邻,且下一时段为待检测数据所对应的时段;

输出lstm预测模型对下一时段流量特征的预测结果,其中预测结果包括各流量特征相应的预测值。

在一个优选的实施方式中,该基于深度学习的工控网络流量异常检测方法中的时间窗口可设为1分钟,即,将连续时刻的流量特征按1分钟的时间窗口聚合统计,使每分钟对应一个特征向量。特征向量长度为9,分别对应解析出的九个特征。lstm预测模型用于输入连续10分钟的特征向量序列数据,预测出第11分钟的特征向量。lstm预测模型输入数据的形状为(batch,10,9),输出形状为(batch,9),batch为训练时每批输入lstm的数据数量。

可选地,利用多个按时间正序连续排列的特征向量构成样本时,对特征向量的数据值进行均值方差归一化处理,转化为均值为0,方差为1的数据,以减少计算量,加快模型收敛速度。训练lstm预测模型直至其收敛时,设置损失函数为均方差损失函数mse,优化器为adam,batchsize(即batch的尺寸)为64。进一步地,一种具体的lstm预测模型的网络结构如表1所示,包括lstm层、dense(全连接)层,batchnormalization(批标准化)层,并使用prelu作为激活函数。这样设计使网络能抓住数据中的序列特征,提升网络的能力,同时又降低发生过拟合及梯度问题的风险,加快了网络收敛速度,表1中none表示模型对1个batch同时输入的数据量不做要求。

表1一种lstm预测模型网络结构

可选地,步骤s3中,基于历史数据计算用于异常检测的动态阈值,结合所述预测结果与待检测数据对应的真实流量特征,检测该时段是否出现网络流量异常,包括:

步骤s3-1、调用历史数据对应的各流量特征的真实值与预测值;

步骤s3-2、通过如下方式计算用于检测的动态阈值:

其中,表示第i个流量特征对应的动态阈值,i表示流量特征的个数,i的取值至少为1到9,若在上述九个流量特征的基础上增加了其他流量特征,则i的取值也应相应地增加,表示由第i个流量特征的真实值构成的历史数据组,表示由第i个流量特征的预测值构成的历史数据组,长度均为n,即均包括n个数据;

步骤s3-3、设表示一时段中第i个流量特征的真实值,表示步骤s2得到的、对应时段的预测结果中第i个流量特征的预测值,结合预测结果与下一时段的真实数据,若对于所有的i,均满足,则认为检测到该时段出现网络流量异常。

n表示计算动态阈值时共有n个连续时段的特征向量数据参与计算,n的取值过小则动态阈值过于敏感,n取值过大则动态阈值太过迟钝,这两种情况对结果都是不利的。

由于lstm预测模型是从输入的、一定长度的特征向量序列数据中捕捉趋势规律并进行预测,这个长度是趋势规律的一个基本单位,动态阈值是从一定长度的历史数据中捕捉特征的合理波动性,以上两个长度都是在捕捉历史规律,服务于异常检测,因此可选地,为确保计算所得动态阈值的合理性,对于历史数据进行选取时,n的取值优选为lstm预测模型输入序列数据(即多个特征向量所构成的序列数据)长度的整数倍,且倍数不宜太大。进一步地,n的取值范围可为lstm预测模型输入序列数据长度的3~5倍。

进一步地,优选由连续的历史数据构成,且中最新的历史数据所对应的时段紧邻预测结果对应的下一时段,即,中包含历史数据中最新时段的流量特征的真实值,中包含历史数据中最新时段的流量特征的预测值,以确保动态阈值的时效性。

可选地,步骤s4中,存储流量特征数据并定期训练新的lstm预测模型,若新的lstm预测模型优于当前用于预测流量特征的lstm预测模型,则更新当前用于预测流量特征的lstm预测模型,包括:

步骤s4-1、存储流量特征数据时,若步骤s3的检测表明当前时段未出现网络流量异常,则存储当前时段各流量特征的真实值;

若经过步骤s3的检测表明当前时段出现了网络流量异常,则存储当前时段各流量特征的预测值,搜集连续时刻的数据的同时保证不加入异常的数据;

步骤s4-2、当存储的数据达到迁移训练的数据量,则利用存储的数据在线学习,训练新的lstm预测模型;

该新的lstm预测模型训练完成后,利用网络流量的历史数据检验该新的lstm预测模型与当前用于预测流量特征的lstm预测模型,分别对两个lstm预测模型的预测准确度进行评分;

若该新的lstm预测模型的评分高于当前用于预测流量特征的lstm预测模型的评分,则将此后用于预测流量特征的lstm预测模型更新为该新的lstm预测模型。

具体的迁移训练所需数据量可根据实际工控网络运行的时间周期以及网络流量变化情况进行设定,在此不再进一步限定。

进一步地,步骤s4-2中,利用网络流量的历史数据检验该新的lstm预测模型与当前用于预测流量特征的lstm预测模型时,所采用的网络流量的历史数据为实际获取的、流量特征真实值,其所对应的时段优选为与当前时段时间较近的、与训练集同源的连续数据。

分别对两个lstm预测模型的预测准确度进行评分时,将相同的历史数据所对应的流量特征分别输入两个lstm预测模型进行流量特征预测,对各流量特征的预测值与真实值之间的差异进行加权评分,表达式为:

其中,i表示一个流量特征的第i组数据,表示真实值,表示真实值的平均值,表示预测值,n表示一个流量特征的数据总数,r2_score表示流量特征对应的准确性评分;

根据上述表达式,每个流量特征可得到一个对应的r2_score,并r2_score集合;

对所有流量特征对应的r2_score集合计算加权平均,权重为各流量特征的r2_score在r2_score集合中的方差,得到最终的模型评分,模型评分高代表准确性高;

通过模型评分判断新的lstm预测模型是否优于当前用于预测流量特征的lstm预测模型,若新的lstm预测模型的模型评分高于当前用于预测流量特征的lstm预测模型的模型评分,则表示新的lstm预测模型优于当前用于预测流量特征的lstm预测模型。

如图3所示,本发明还提供了一种基于深度学习的工控网络流量异常检测装置,包括预处理模块100、流量预测模块200、异常检测模块300和在线学习模块400。具体地,其中:

预处理模块100用于获取网络流量的待检测数据和历史数据并进行预处理,得到对应的流量特征;

流量预测模块200用于选取一段历史数据所对应的流量特征组成序列数据,输入用于预测流量特征的lstm预测模型,预测待检测数据对应的流量特征,并输出预测结果;其中,lstm预测模型至少对如下流量特征进行预测,流量特征包括流持续时间、正向包的数量、反向包的数量、正向包的总字节数、反向包的总字节数、正向包头总字节数、反向包头总字节数、正向子流总字节数和反向子流总字节数;

异常检测模块300用于基于历史数据计算用于异常检测的动态阈值,结合预测结果与待检测数据对应的真实流量特征,检测待检测数据对应的时段是否出现网络流量异常;

在线学习模块400用于存储流量特征数据并定期训练新的lstm预测模型,若新的lstm预测模型优于当前用于预测流量特征的lstm预测模型,则更新当前用于预测流量特征的lstm预测模型。

可选地,用于预测流量特征的lstm预测模型是通过如下方式进行构建的:

将真实的网络流量数据进行预处理,得到流量特征;其中,进行预处理,得到流量特征包括选取流量特征,从真实的pcap流量包数据中解析出所预测的各流量特征,将连续时刻的流量特征按时间窗口聚合统计出各时段相应的真实值,组成对应的特征向量;

利用多个按时间正序连续排列的特征向量构成样本,利用多个样本构成训练集和测试集,基于训练集和测试集训练基于lstm构建的lstm预测模型,直至lstm预测模型收敛。

可选地,流量预测模块200用于选取一段历史数据对应的流量特征组成序列数据,输入用于预测流量特征的lstm预测模型,预测待检测数据对应的流量特征,并输出预测结果,包括:

确定序列数据长度,选取历史数据所对应的流量特征,构成一组连续时段且包含有最新时段流量特征的特征向量组,输入用于预测流量特征的lstm预测模型,由lstm预测模型预测出下一时段的流量特征;其中,最新时段与下一时段在时间顺序上相邻,且下一时段为待检测数据所对应的时段;

输出lstm预测模型对下一时段流量特征的预测结果,预测结果包括各流量特征相应的预测值。

可选地,异常检测模块300用于基于历史数据计算用于异常检测的动态阈值,结合预测结果与待检测数据对应的真实流量特征,检测该时段是否出现网络流量异常,包括:

调用历史数据对应的各流量特征的真实值与预测值;

通过如下方式计算动态阈值:

其中,表示第i个流量特征对应的动态阈值,表示由第i个流量特征的真实值构成的历史数据组,表示由第i个流量特征的预测值构成的历史数据组,长度均为n;

表示一时段中的第i个流量特征的真实值,表示对应时段的预测结果中第i个流量特征的预测值,结合预测结果与下一时段的真实数据,若对于所有的i,均满足,则认为检测到该时段出现网络流量异常。

可选地,n的取值为lstm预测模型输入序列数据长度的整数倍;由连续的历史数据构成,且中包含最新时段的流量特征的真实值,中包含最新时段的流量特征的预测值,最新时段与待预测数据所对应的时段在时间顺序上相邻。

可选地,在线学习模块400用于存储流量特征数据并定期训练新的lstm预测模型,若新的lstm预测模型优于当前用于预测流量特征的lstm预测模型,则更新当前用于预测流量特征的lstm预测模型,包括:

存储流量特征数据时,若经过检测该时段未出现网络流量异常,则存储该时段各流量特征的真实值;若经过检测该时段出现网络流量异常,则存储该时段各流量特征的预测值;

当存储的数据达到迁移训练的数据量,则利用存储的数据在线学习,训练新的lstm预测模型;该新的lstm预测模型训练完成后,利用网络流量的历史数据检验该新的lstm预测模型与当前用于预测流量特征的lstm预测模型,分别对两个lstm预测模型的预测准确度进行评分;若该新的lstm预测模型的评分高于当前用于预测流量特征的lstm预测模型的评分,则将此后用于预测流量特征的lstm预测模型更新为该新的lstm预测模型。

进一步地,利用网络流量的历史数据检验该新的lstm预测模型与当前用于预测流量特征的lstm预测模型时,所采用的网络流量的历史数据为实际获取的、流量特征的真实值;

分别对两个lstm预测模型的预测准确度进行评分时,将相同的历史数据所对应的流量特征分别输入两个lstm预测模型进行流量特征预测,对各流量特征的预测值与真实值之间的差异进行加权评分,表达式为:

其中,i表示一个流量特征的第i组数据,表示真实值,表示真实值的平均值,表示预测值,n表示一个流量特征的数据总数,r2_score表示流量特征对应的准确性评分;

根据表达式,每个流量特征得到一个r2_score,加入r2_score集合;

对所有流量特征对应的r2_score集合计算加权平均,权重为各流量特征的r2_score在r2_score集合中的方差,得到最终的模型评分,模型评分高代表准确性高;

通过模型评分判断新的lstm预测模型是否优于当前用于预测流量特征的lstm预测模型。

上述基于深度学习的工控网络流量异常检测方法装置的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

以上各实施例中,硬件模块可以通过机械方式或电气方式实现。例如,一个硬件模块可以包括永久性专用的电路或逻辑(如专门的处理器,fpga或asic)来完成相应操作。硬件模块还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。

特别地,在本发明一些优选的实施方式中,还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施方式中所述基于深度学习的工控网络流量异常检测方法的步骤。

在本发明另一些优选的实施方式中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施方式中所述基于深度学习的工控网络流量异常检测方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述基于深度学习的工控网络流量异常检测方法实施例的流程,在此不再重复说明。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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