一种基于卷积时序网络的工控流量异常检测方法及系统

文档序号:687793 发布日期:2021-04-30 浏览:1次 >En<

阅读说明:本技术 一种基于卷积时序网络的工控流量异常检测方法及系统 (Industrial control flow abnormity detection method and system based on convolution time sequence network ) 是由 毛北逢 刘静 赖英旭 于 2020-10-28 设计创作,主要内容包括:本发明公开了一种基于卷积时序网络的工控流量异常检测方法及系统,包括以工控协议流量作为输入,将其按读写功能拆分并将拆分后的数据包按照单位时间窗口合并、规整、分组用于预测模型进行学习;以流量数据为输入,形成数据集,利用编码-解码架构并带有ConvLSTM层的神经网络模型获得能够利用当前窗口数据预测下一窗口数据的流量数据预测模型;利用得到的预测模型,对待检测流量数据包进行预测,得到预测数据与真实数据的距离差距。对组内差距信息计算归一化得分,得到窗口与得分的分布。利用加权方式融合读写模型的得分分布,利用分布信息检测异常数据流量。本发明采用解码-编码结构的预测用深度学习模型,引入ConvLSTM模块,对工控流量时间和空间上的特征进行有效地学习。(The invention discloses an industrial control flow abnormity detection method and system based on a convolution time sequence network, which comprises the steps of taking industrial control protocol flow as input, splitting the industrial control protocol flow according to a read-write function, merging and arranging split data packets according to a unit time window, and grouping the data packets for a prediction model to learn; forming a data set by taking flow data as input, and obtaining a flow data prediction model capable of predicting next window data by using current window data by using a coding-decoding framework and a neural network model with a ConvLSTM layer; and predicting the flow data packet to be detected by using the obtained prediction model to obtain the distance difference between the predicted data and the real data. And calculating a normalization score for the intra-group gap information to obtain the distribution of the window and the score. And (4) fusing the score distribution of the read-write model by using a weighting mode, and detecting abnormal data flow by using distribution information. The invention adopts a deep learning model for prediction of a decoding-coding structure, introduces a ConvLSTM module, and effectively learns the characteristics of industrial control flow on time and space.)

一种基于卷积时序网络的工控流量异常检测方法及系统

技术领域

本发明属于网络信息安全技术领域,涉及攻击检测技术领域,特别是工业控制系统下的异常检测。

背景技术

随着工业互联网的普及,工业信息化程度不变的加强。网络中的节点设备越来越多的接入互联通信中,利用带有不同协议的通信数据(流量)来实现多设备之间的交互。伴随着这种交互的不断深入,风险也随之而来。越多的节点的开放,导致工业底层控制系统越来越容易受到攻击者的攻击;攻击者往往会利用前序攻击来实现对PLC控制设备的控制。从而导致工厂作业的停止甚至是设备的损坏,对企业带来巨大的影响。而传统的工控设备由于更新迭代慢,其安全设施并不能很好的适应网络高速发展带来的风险问题,因此需要额外的安全模块引入对其进行特殊保护,尤其是对工控系统的特殊保护。在传统的入侵检测中,入侵检测技术根据数据;来源的不同,可以分为主机检测和网络检测;在工控系统中,执行设备与控制设备之间通过特有的工控协议如MODBUS、S7、DNP3等,控制设备利用这些协议来控制执行设备的寄存器值,来修改执行器要执行和更改的开关设备。从而实现对于工厂设备的有序运行,保证生产的自动化运转。而想改变这种情况,攻击者就无法逃离于工控流量传输指令来下达攻击。因此,对于工控流量的分析和检测成为了检测工控系统中风险的有效方法。对于工控流量的异常检测逐渐变得日趋火热。

工业控制系统流量(工控流量)与传统流量不同,其报文形式固定,流量固定,在固定周期上呈现一定的规律性。其需要控制的指令存在于报文负载的固定位置,因此需要着重注意该区域的区别变化。同时,因为指令变化呈现的周期性,流量在连续时间内前后关系存在很大的关联性,而攻击往往会改变这些关联性,因此在检测攻击时,需要考虑前后关联关系。为了能够有效监测这些数据变化,在传统的入侵检测中,往往会考虑进行人为的特征提取,之后再结合分类器模型,对这些特征进行学习和分析,利用特征判断流量中是否存在异常。然而,人为提取特征的过程会损失大量的数据信息,主观因素提取的特征会对模型的分类训练过程产生一定的影响,从而会影响性能和精度提升。

随着计算性能的不断提高,深度学习逐渐代替了机器学习成为了人工智能领域的热点,其强大的学习能力也越来越多的用来进行入侵检测技术。其检测精度也可以有了显著的提高。然而,目前对于流量的模型分类有两种,一个是利用提取的特征来对特征利用深度学习模型分类;这无异于传统的机器学习方法,浪费了一定的深度学习效果;第二种是利用卷积的深度学习模型来对流量进行分类,类似于图像的方式。此方法的问题在于丧失了流量数据中的前后关系。尤其是在工控流量如此依赖前后关系的特性上,很难充分利用数据信息来检测异常。因此,如何将空间上与时间上的关系进行考虑,利用深度学习模型更好地学习到有效地关系数据,成为研究的重点。

发明内容

本发明所要解决的技术问题是提供一种基于卷积时序网络的工控流量异常检测方法及系统,用于解决工控系统下利用机器学习或者深度学习提取特征学习方法丧失掉的数据信息,以及不能充分考虑前后数据关系的问题。

本发明解决上述技术问题的技术方案如下:一种基于卷积时序网络的工控流量异常检测方法,包括:

步骤1,以工控协议流量网络数据包为输入,将其按照读、写功能类型进行拆分,并将拆分后的数据包按照单位时间窗口进行合并、规整、分组用于预测模型学习。

步骤2,以步骤1处理后的数据作为输入,形成流量数据集。设计编码、解码架构的神经网络模型,并引入ConvLSTM层(带卷积操作的长短期记忆网络),完成对输入数据的特征学习,获得能够利用当前窗口数据预测下一窗口数据的流量数据预测模型。

步骤3,利用步骤2得到的预测模型,对待检测流量数据包进行预测。利用预测结果与真实结果进行比较,得到距离差距。并对组内差距信息计算归一化得分,得到所有窗口的得分分布。再利用加权方式融合读写模型的得分分布,利用总分布信息检测异常数据流量。

在上述技术方案的基础上,本发明还可以做如下细化。

进一步,所述步骤1中将所有数据包合并、规整、分组的过程具体包括:

步骤11,以工控数据包单位周期时间T为时间窗口,对T时间窗口内数据包进行提取并合并为一个数据帧。

步骤12,将合并后的每一帧数据包进行规整,对其数据形状进行改变,由1 维数据(1*N)转换为2维方阵(M*M)数据。

步骤13,对合并且规整后的所有数据矩阵,按照固定的大小进行分组,依次提取多个相邻数据帧作为一组。

进一步,还需判断是否已有用于检测流量异常的工控流量的预测模型,若没有则利用深度学习方法构建流量预测模型,否则直接对待检测的工控流量做出预测。

进一步,所述步骤2中利用深度学习方法,构建流量预测模型,来学习工控流量数据包特征对流量进行拟合做出预测数据的方法具体包括:

步骤21,利用步骤1中合并且规整好的无异常工控流量数据集,放入卷积层中进行编码,得到编码后的数据。

步骤22,对编码后的数据利用ConvLSTM层对时空特性进行学习,预测下一时刻对应的流量数据。

步骤23,对预测的数据放入反卷积层中进行解码得到解码后的预测数据。

步骤24,利用MSE(均方误差)函数计算Fi+1(真实的第i+1位置的数据) 与Fi'+1(预测的第i+1位置的数据)的损失,利用损失信息对模型进行负反馈。利用优化器优化对应参数层参数。

步骤25,若达到终止条件(模型迭代轮数达到最大)时,则算法终止,返回构建的流量预测模型,否则重复步骤21至步骤24。

进一步,所述步骤3中,利用步骤2生成的预测流量模型生成预测流量时,还需要对其进一步处理,来得到是否异常结果。

进一步,所述步骤3中对于未知异常情况的工控流量得到预测数据后,利用预测数据与真实数据的对比检测数据异常的具体步骤包括:

步骤31,利用权力要求1步骤2得到的流量预测模型,对待检测的数据进行放入,得到预测的下一数据帧流量。

步骤32,利用得到的预测流量数据与真实流量数据进行对比,计算差异程度,得到元素之间的差异距离。

步骤33,利用得到的每个数据帧与对应预测的下一数据帧之间的差异结果,根据步骤1中的分组情况,对组内每个数据帧的数据差异程度进行归一化,计算组内每个数据帧的归一化得分。

步骤34,对所有数据与归一化得分结果按照前后顺序关系进行贴合得到得分分布表。

步骤35,以加权融合的方式对读写模型分别给出的得分分布进行融合,得到总的得分分布图

步骤36,对分布状态内低于某一阈值或者出现得分谷点的数据进行提取,认定此数据为异常数据

基于上述方法,本发明的技术方案还包括了一种基于卷积时序网络的工控流量异常检测系统,包括:

数据包预处理模块,以工控流量数据包作为输入,对数据包按照功能进行拆分,并对拆分后的数据进行合并、规整和分组。

预测模型学习模块,其用于以数据包预处理模型后的数据作为输入,形成训练数据集,利用深度学习模型和优化方法对流量特性进行学习并拟合,获得工控流量预测模型。

异常检测模块。利用预测模型学习模块得到的流量预测模型对待检测的流量进行预测,利用预测结果与真实流量信息进行比较计算出差异性,并利用差异性对待检测流量的异常性进行判断。

进一步,所述数据预处理模块包括:

数据包按功能拆分模块:其利用工控协议中不同的读写指令功能对数据包进行拆分。

数据包合并、规整模块:其用于对拆分后的数据分别按照单位时间窗口进行截取,并对截取的数据进行合并,并重塑成方阵的形式。

数据包分组模块:其用于对合并、规整后的数据按照固定大小进行分组。

进一步,所述预测模型学习模块利用深度学习模型框架针对于工控流量进行学习,生成预测流量模型。

进一步,所述系统还包括输出模块,所述预测模型学习模块利用深度学习模型框架针对于工控流量进行学习,生成预测流量模型。

本发明的有益效果是:

一、模型输入为所有系统中的工控协议流量,不需要额外数据处理提取对应的特征,直接对现有捕获的流量进行有效的学习,且训练过程无监督化。

二、与传统的机器学习和深度学习的方法相比,本发明直接处理流量数据,利用编码解码格式,对流量特征进行自动提取和转换。利用 ConvLSTM模块同时提取一组流量在数据上的空间特征,还能够处理在一段时间内流量上的时间特征信息。从而更加全面的掌握工控流量的规律。

三、本发明的模型与以往利用分类模型检测异常流量不同,本模型为预测模型流量,即利用前序流量预测当前流量来对实际流量的异常进行判断,而不是简单地利用分类模型对模型进行分类。这样一是更加有助于追溯到异常的流量信息;二是对于异常的判断更具有依据性、可靠性。

四、本系统最后的输出结果为异常的时间点以及操作序列,能够使管理员等利用异常检测信息的人员能够更加清晰的对高风险的攻击进行判断,从而更快速的做出防御措施。

综上所述,本发明公开了一种利用卷积时序网络实现的预测模型检测工控系统流量异常的检测方法及系统,有效解决了传统利用机器学习检测时需要提取特征导致的数据利用不充分问题;又解决了利用卷积神经网络或者LSTM(长短期以及网络)模型不能同时对工控流量学习时间和空间的特性问题;最后整体模型在训练时无需监督,在学习上更加方便。本发明利用ConvLSTM层结合编码和解码结构模型对工控流量呈现时间上的连续、空间上的相关特性进行有效的学习,能够有效处理和学习输入的数据,从而实现对工控流量异常检测能力的提高。同时,此模型在整体上无需人工提取特征,无需监督学习,直接对正常流量进行学习即可。在整体学习效率(高准确性和高召回率)上也可以达到很好的效果。

附图说明

图1为本发明所述一种基于卷积时序网络的工控流量异常检测方法的流程示意图;

图2为本发明实施例一中通过预处理后的工控流量构建预测模型并检测异常的方法示意图;

图3为本发明实施例一利用正常工控数据构建预测模型的流程示意图;

图4为本发明所述实施例二基于S7协议工控数据集实验结果图;

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

实施例一

如图1所示,实施例一是一种基于卷积时序网络的工控流量异常检测方法,包括:

步骤1,以待检测的工控流量数据包为输入,并将数据包进行拆分、合并、规整以及分组。

步骤2,以步骤1获得的流量数据包作为输入,形成数据集,利用带有解码和编码的深度学习模型对该数据集进行时间和空间特征的学习,根据此预测对应数据下一阶段的数据流量,得到流量预测模型。

步骤3,利用步骤2得到的流量预测模型,对待检测的流量进行预测,得到预测结果,利用预测结果与真实流量进行比较,得到距离差距。对组内差距信息计算归一化得分,得到距离差距分布,利用得分分布信息检测异常数据流量。

如图2所示,根据工控网络数据包构建预测模型并检测异常的具体内容为:

1)数据包拆分:数据包拆分操作是利用工控协议类型中,根据操作不同,可将数据包分为写寄存器(write)和读寄存器(read)两种操作数据包,得到Fwrite和Fread流量,其中Fwrite为写寄存器包数据,Fread为读寄存器包数据。

2)数据包分组和规整:此操作对拆分后的流量Fwrite和Fread流量分别按照命令周期T进行周期内窗口流量截取,将每个窗口内的数据进行合并,得到F1,F2,F3,...,Fn,其中n为总窗口数。之后将得到的F进行分组,以N为单位进行分组得到分组后的数据对应分组数据G1,G2,...,Gm,m 为分组数。

3)判定是否已有训练存在的模型,如果没有则将数据进行汇总放入新模型中进行训练,如果有则将数据放入模型进行检测。

4)新训练模型利用初始化的深度学习模型对接收到的分组后的Fwrite和 Fread数据进行预测拟合。依据时间Ti时刻流量Fi放入模型(i为对应数据位置),拟合Fi+1流量,依据损失函数LOSS,计算损失,进行对模型的负反馈处理。

5)当已存在模型时,将数据Fi作为输入放入模型得到Fi'+1,利用得到的数据与真实数据Fi+1计算欧式距离差异dst(i),公式为其中x,y为数据帧中差异数据元素的横坐标与纵坐标位置,m、n表示整体差异数据的长度和宽度,t表示为整体差异数据所在整体数据集中的位置,dst(t)表示总体差异值;其中e为预测与真实数据帧中对应的每个元素的差异数据,计算公式为 e(x,y,i)=||Fi+1(x,y)-Fi'+1(x,y))||2,x,y为Fi流量数据帧中某元素的横坐标与纵坐标位置,i表示为当前输入的数据处于整体数据集中的位置,i+1表示第i位置的后一位置,F表示为真实数据帧,F'表示预测的数据帧。利用分组,计算组内距离的归一化结果,得到每个数据帧的归一化得分其中,dst(t)代表第t位置的数据差异程度,j表示组内第j位置,遍历范围为1到N,N为小组内的数据总个数,Score表示t数据对应的归一化得分。该公式的整体数据范围为Ft所在小组G中的所有数据,计算组内的距离总和得到最终的归一化结果,最后得到单位时间窗口内对应的得分情况。

6)由于对流量进行了拆分,因此将拆分的两种流量对应的两种模型检测结果按照时刻信息进行合并,利用加权求和的方式对同一时刻的read 的对应得分Scoreread和write对应得分Scorewrite进行相加得到融合后的得分Scoreall(t),将得分按照时间排列得到得分分布表。

7)利用得分分布表,对得分分布的谷点进行提取,找到对应时刻的异常流量操作,进行关联得到异常攻击序列。

预测模型结构设计为解码、特征提取、解码的流程结构,训练过程为正向递推与反向递推共存的结构。首先,编码层为卷积操作的编码,有利用更好地将空间数据转换为模型可接收的数据,有利用时空特征的学习。其次,对于ConvLSTM 层,其输入为4维度的张量(时间,分组,高度,宽度),能够在内部利用卷积操作学习空间特征,同时利用LSTM结构学习存在于空间数据上的时间特性。这样能够对数据进行有效地学习并利用学习的特性输出下一时刻预测的流量数据。最后,为了能够实现原始数据与预测数据的对比并计算差异,在最后进行反卷积进行解码,还原数据为原始编码。如图3所示,具体的实施步骤为:

步骤21,首先将准备训练的数据F1,F2,...,Fn进行规整,调整每个数据形状为卷积可以接受的大小M*M形状。

步骤22,将数据放入卷积层进行编码得到编码后的数据。

步骤23,对编码后的数据进行时空特性学习预测下一单位时刻对应的数据。

步骤24,对得到的预测数据放入反卷积层进行解码得到解码后的预测数据。

步骤25,利用MSE(均方误差)损失函数计算F’i+1与Fi+1的损失,利用损失对模型进行负反馈。

步骤26,判断是否达到训练轮数,如果达到则输出结果,如果没有达到训练轮数则重复此过程。得到最终的结果。

另外,所述步骤3异常检测完成后,输出结果为两类:一类是判断某一单位时刻内流量存在异常行为;另一类是某一单位时刻内不存在异常行为。

综合上述基于前序数据预测模型的异常检测模型方法,本发明同时公开了一种基于深度学习的工控流量异常检测系统。本系统主要由数据包处理预处理模块、预测模型学习和训练模块和异常检测模块三部分构成。

1)数据包预处理模块。数据包预处理模块以网络数据包作为输入,自动将数据工控流量数据包以执行功能如读写等操作进行分离,根据时间窗口进行流量合并以及数据规整,最后将合并的流量进行分组,得到分组好的预处理数据。

2)预测模型学习模块。以数据包预处理模块得到的结果作为输入。利用神经网络模型对当前数据组数据进行特征学习和预测,使模型输出贴近下一组数据,利用模型拟合结果与实际结果的差异程度,优化模型中的参数来实现对模型的训练。

3)异常检测模块。以数据包预处理模块得到的分组数据为输入。利用预测模型学习模块得到的预测模型,对输入的数据进行预测。利用预测结果计算与实际的数据进行差异值计算,并最终计算出分组内的差异值归一化得分。得到每个窗口数据的得分,汇总得分得到得分分布。通过得分分布找到分布谷点,从而得到异常时刻点,检测到异常流量。

同样对应上述的一种利用时序信息的流量预测模型检测工控流量的异常的方法,这种检测工控流量的异常的系统中:

所述数据预处理模块包括:数据包按功能拆分模块,其利用工控协议中不同的读写指令功能对数据包进行拆分。数据包合并、规整模块,其用于对拆分后的数据分别按照单位时间窗口进行截取,并对截取的数据进行合并,再重塑成方阵的形式。数据包分组模块,其用于对合并、规整后的数据按照固定大小进行分组。

所述预测模型学习模块其利用编码-解码的深度学习模型框架针对于工控流量进行学习,生成预测流量模型。

所述系统还包括输出模块,用于对预测模块得到的结果做出判断,并根据判断结果输出是否为捕捉到异常流量。

实施例二

实施例二是对以S7为主工控协议的模拟炼油厂工控数据进行实验,利用以下几个精度对模型的效果进行评估。

首先定义以下四种样本集合:

1)TP:数据集中阳性样本且被模型归类为阳性的样本集合。

2)FP:数据集中阴性样本但被模型归类为阳性的样本集合。

3)TN:数据集中阴性样本且被模型归类为阴性的样本集合。

4)FN:数据集中阳性样品但被模型归类为阴性的样本集合。

基于上述四种样本集合,本发明采用入侵检测领域中通常使用四种评价指标来对本发明中的入侵检测模型进行检测性能评价。

模型检测性能评价指标,其中包括:准确率(Accuracy),精确率(Precision),召回率(Recall)和F-Measure。具体定义如下:

由于准确率与召回率分别描述系统性能的两个方面,单一使用准确率和召回率作为评价指标具有局限性,因此,本发明选用F-Measure指标将这两个指标进行综合考虑,从而选择最优方案。

在该数据集中,数据分布在10个小时的数十个周期内,攻击者共在64个时刻时制造了不同的攻击。

针对于本实验数据集,数据集在前2-3周期(前2900秒内)没用攻击出现,因此利用此段时间内的数据训练建立模型。为了保证数据的整洁性,将数据中的非S7协议包进行去除,将write包与read包分离,分离后对每一秒内的数据包进行提取,放入模型中训练。设计合适的数据窗口,将数据能够全部装入。模型利用Adam优化器进行优化,利用MSE作为损失计算方式。在训练100轮后,模型趋于拟合。

利用训练好的模型对整个数据集全部周期进行测试,部分测试结果如图4所示。在测试时,利用两个模型分别输出read和write包的得分曲线。根据时刻信息将两个结果进行合并。从结果中可以看到,无论是单一的攻击还是连续的dos 攻击都能够通过模型得到检测。如图4的b中,在4000到4200秒之内大多数时刻得分布在1.0附近。在4170秒附近,得分突然下降,此时正好捕捉到恶意的工控指令。同时在图4的c中,可以看到在5500至5600连续一段时间得分在 0.6左右。判断此时系统遭遇了连续的恶意指令攻击。通过对该段流量的查看可以发现有DOS泛洪攻击存在。此时攻击者在单位时间内发送大量恶意数据包。

通过验证整体效果可以检测到绝大部分被恶意插入的序列指令攻击,利用评估指标可以知道,本模型在检测准确率,召回率,F-Measure指数上可以达到99.9%,基本上可以对所有恶意注入的命令进行有效检测,

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于可解释卷积神经网络CNN与图检测的多步攻击检测方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类