一种面向工业物联网安全的网络包负载异常检测方法

专利2024-07-10  60



1.本发明涉及一种面向工业物联网安全的网络包负载异常检测方法。


背景技术:

2.互联网的连接性通过物联网扩展到许多工业领域,工业控制系统正在向工业物联网过渡。越来越多的计算机、通信等领域的成熟技术被应用到工业控制系统中。与传统物联网不同的是,工业物联网常用的modbus、dnp3等标准协议设计之初未考虑安全需求、信息传输过程中缺乏认证技术和明文数据传输等。并且为了提高工业制造的效率,工业物联网将工控系统间的设备交互和实时信息收集结合起来,这使得对于正常负载的建模并进行异常检测的问题在工业物联网时代成了一个新的挑战。
3.一方面,现有的网络包负载异常检测方法要么依赖于提取n-grams及其统计变体的特征,要么在不考虑通信方向的排列的情况下处理原始负载。这类方法在针对普通物联网环境的负载异常识别是有效的,但无法很好的应对工业物联网环境下复杂且多样化的正常负载模式建模需求。因为工业工厂必然存在高度异构的通信系统,并且通信协议通常有独特的报头结构,此外,工业物联网通信模式通常发生在请求负载和相应的响应负载的双向通信之间,许多正常的工业通信模式可能隐藏在其中。这些因素都降低了网络流量异常检测的准确性。
4.另一方面,近年来的一些研究工作意识到使用深度神经网络模型可以帮助解决包负载异常检测的有效载荷复杂性问题。通常的方案是通过自动编码器架构学习正常负载的模式并对输入负载进行重建。这种设计方式可以通过输入负载与重建负载之间的巨大差异来检测潜在的异常。但是当前这种架构严格限于先前在训练集中存在的样本,无法对正常负载的真实特征分布进行泛化。这个缺陷会导致异常检测模型容易产生大量误报,因此在训练集之外重建正常负载样本的有效性非常低。而自动编码器与gan网络相结合的gan架构能够学习训练集之外的更一般的正常负载样本,使网络包负载异常检测方法能够满足工业物联网安全需求。
5.综上所述,为解决面向工业物联网的网络包负载异常检测难题,需要使用2d-cnn直接学习二维负载特征,并通过gan架构有效泛化训练集的正常样本。


技术实现要素:

6.本发明的目的在于突破当前网络包负载异常检测方法中局限于一维负载建模的限制和无法泛化正常负载样本的难题,提出一种面向工业物联网安全的网络包负载异常检测方法,基于2d-cnn,使用gan架构,无需任何特征工程过程,直接从二维的原始负载中学习,以便对其中更复杂的正常模式进行建模。并使用自动编码器联合gan模型,在gan对抗训练收敛之后,可以用生成器来构建更通用的样本,从而将其作为构建更广义的自动编码器的核心,以满足工业物联网的网络安全管理需求。本方法适用于工业物联网高度复杂的工业过程下学习负载的正常模式,对网络包负载进行异常检测,为进一步的网络运营和维护
提供保障。
7.为了达到上述发明目的,本发明通过以下具体技术方案进行实现:
8.一种面向工业物联网安全的网络包负载异常检测方法,包括以下步骤:
9.步骤1)、对通过工业物联网设备的网络流量负载按请求和响应两个方向逐行进行建模,生成以二维灰度图像表示的负载样本;
10.步骤2)、部署基于gan架构的网络包负载异常检测模型,包括基于2d-cnn的自动编码器,辅助编码器和鉴别器;其中自动编码器的解码器作为gan的生成器,并将负载的字节数据视为第1个卷积层的输入节点;
11.步骤3)、构建三个损失函数将自动编码器、辅助编码器和鉴别器结合在一起并使用正常负载样本进行模型训练,利用随机梯度下降法训练神经网络;
12.步骤4)、将工业物联网的网络包负载输入训练好的神经网络,然后通过原始负载与生成器重建的负载之间的重建误差来检测异常。
13.所述步骤1)具体包括下列步骤:
14.步骤1.1)、以tcp为标志进行切流,通过tcp三次握手的syn包考虑网络流的开始,通过tcp四次挥手的fin包考虑网络流的结束,最后过滤掉所有空的tcp数据包,并将封装负载数据的数据包留在每个tcp流中;
15.步骤1.2)、确定二维负载样本宽度x,x为请求数据包中负载的最大字节数、响应数据包负载的最大字节数或者数据包负载串联后的最大字节数;这里的数据包串联又分为存在两个响应之间的请求数据包串联,或者是两个请求之间的响应数据包串联;
16.步骤1.3)、确定二维负载样本宽度y,y由最长网络流中数据包的数量来确定,这里的数据包是请求数据包、响应数据包或者是两者之间的包组合;
17.步骤1.4)、对于尺寸无法达到x
×
y的二维负载样本,使用0进行填充以达到这个大小,得到具有统一尺寸x
×
y,以二维灰度图像表示的负载样本。
18.所述步骤2)具体包括下列步骤:
19.步骤2.1)、部署的自动编码器编码部分与辅助编码器的结构完全相同,均具有3对卷积层和最大池化层,解码器具有相同数量的转置卷积层和上采样层对;鉴别器的结构与编码器类似,仅最后通过附加一个全连接层、一个激活函数以及一个softmax层,以便将输入负载分类为原始或重建;
20.步骤2.2)、在编码器、辅助编码器和鉴别器的神经网络中,3个卷积层的卷积核个数分别为256,128,100;卷积滤波器和最大池化滤波器的尺寸均为3
×
3;在鉴别器的神经网络中,3 个转置卷积层的卷积核个数分别为100,128,256;上采样池和转置卷积的滤波器尺寸均为3
×
3。
21.所述步骤3)具体包括下列步骤:
22.步骤3.1)、第一个损失函数为重建负载与原始负载的重建误差;
23.步骤3.2)、第二个损失函数为重建的潜在向量与原始潜在向量的重建误差;
24.步骤3.3)、第三个损失函数为gan鉴别器造成的分类误差,用于区分真正的正常负载和自动编码器重建的伪造负载;
25.步骤3.4)、使用权重将三个损失函数组合在一起,得到最终的损失函数,以指导自动编码器的训练;
26.步骤3.5)、输入正常负载样本进行模型训练,得到神经网络训练的损失;
27.步骤3.6)、将网络损失采用梯度下降法后向传播,从而更新神经网络模型权重,重复步骤3.5)直到网络损失收敛。
28.所述步骤4)具体包括下列步骤:
29.步骤4.1)、将测试集的负载样本输入训练好的神经网络,并使用重建负载与原始输入计算重建误差;
30.步骤4.2)、计算每个样本产生的重建误差,做出受试者工作特征(receiver operatingcharacteristic,roc)曲线,通过约登指数确定异常检测模型的判定阈值;将负载样本计算的重建误差与阈值进行比较,若误差小于阈值,则将该输入负载判断为正常,否则为异常负载。
31.本发明与现有技术相比较,具有如下优点:
32.本发明方法不局限于从一维角度对负载进行建模,提出二维深度神经网络模型,并将自动编码器与gan网络相结合。从而可以考虑负载的通信方向,对于从双向通信中反映的正常模式进行建模,同时可以学习训练集之外的更一般的正常负载样本,较好地应对工业物联网负载异常检测的任务。
附图说明
33.图1为本发明方法的总流程图。
34.图2为本发明的方法具体步骤流程图。
35.图3为基于2d-cnn的编码器结构。
36.图4为基于2d-cnn的解码器结构。
37.图5为基于gan架构的网络包负载异常检测模型。
具体实施方式
38.下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
39.本发明的目的是通过2d-cnn对负载进行二维建模,并将基于2d-cnn的自动编码器和 gan联合训练,通过生成器重建的负载与原始负载之间的重建误差判断负载是否异常。
40.如图1所示,本实施例一种面向工业物联网安全的网络包负载异常检测方法以关联与识别工业互联网典型的modbus协议、dnp-3协议和mqtt协议为例,具体的实施步骤如下:
41.步骤1)、对通过工业物联网设备的网络流量负载按请求和响应两个方向逐行进行建模,生成以二维灰度图像表示的负载样本;
42.步骤2)、部署基于gan架构的网络包负载异常检测模型,包括基于2d-cnn的自动编码器,辅助编码器和鉴别器;其中自动编码器的解码器作为gan的生成器,并将负载的字节数据视为第1个卷积层的输入节点;
43.步骤3)、构建三个损失函数将自动编码器、辅助编码器和鉴别器结合在一起并使用正常负载样本进行模型训练,利用随机梯度下降法训练神经网络;
44.步骤4)、将工业物联网的网络包负载输入训练好的神经网络,然后通过原始负载与生成器重建的负载之间的重建误差来检测异常。
45.如图2所示,所述步骤1)具体包括下列步骤:
46.步骤101、将工业物联网modbus、dnp-3和mqtt协议的网络流pcap文件数据集按tcp标志进行切流,并将每个tcp流单独保存为一个pcap文件。
47.步骤102、过滤空的网络包后,将剩下的网络包从pcap文件中提取出,并对每一个网络包从头开始将其字节逐一提取出来。
48.步骤103、确定二维负载的灰度图像样本宽度x和高度y,对于尺寸无法达到x
×
y的二维负载样本,使用0进行填充以达到这个大小。
49.步骤104、将二维负载数据集按正常样本和异常样本划分,其中80%的正常样本用于模型训练,剩下20%的正常样本和所有异常样本作为测试集。
50.所述步骤2)具体包括下列步骤:
51.步骤201、构建基于2d-cnn,使用gan架构的负载异常检测模型,模型组成包括一个自动编码器,一个辅助编码器,一个鉴别器。
52.步骤202、构建模型各部分2d-cnn结构。首先编码器、辅助编码器与gan鉴别器使用 3个卷积层的卷积核个数分别为256,128,100,如图3所示。卷积层和最大池层的滤波器的尺寸均为3
×
3。此外,鉴别器在最后加入全连接层、激活函数tanh()以及softamx层。解码器使用3个转置卷积层的卷积核个数分别为100,128,256,如图4所示,转置卷积层和上采样层的滤波器的尺寸均为3
×
3。
53.所述步骤3)具体包括下列步骤:
54.步骤301、用l1范式构建负载重建误差,即其中p和 p'分别为原始负载和重建负载,(i,j)为二维负载的坐标,||*||1为l1范式且|*|返回*的绝对值。
55.步骤302、用l1范式构建潜在向量重建误差,即其中z和z'分别为原始潜在向量和重建的潜在向量。
56.步骤303、用二进制交叉熵函构建负载分类误差,即上式中c1是真实正常负载的类标签,c2是重建负载的类标签,pr(ci)表示输入负载属于ci的预测概率,i∈[1,2]。
[0057]
步骤304、用权重来控制最终损失函数l中每个损失的重要性,即
[0058]
步骤305、输入正常负载样本进行模型训练,得到神经网络训练的损失。
[0059]
步骤306、神经网络训练时,采用梯度下降法更新模型权重,即其中η为模型学习率,重复步骤305-306直到损失收敛。
[0060]
所述步骤4)具体包括下列步骤:
[0061]
步骤401、将测试集的负载样本输入训练好的神经网络,并使用重建负载与原始输
入计算重建误差,即
[0062]
步骤402、计算每个样本产生的重建误差,做出roc曲线,通过约登指数(tpr-fpr) 确定负载异常检测模型的判定阈值。将负载样本计算的重建误差与阈值进行比较,若误差小于阈值,则将该输入负载判断为正常,否则为异常负载,如图5所示。
[0063]
下表列出了本发明所提方法在检测工业物联网协议modbus、dnp-3、mqtt异常负载时的实验结果,该结果表明了本发明方法的有效性:
[0064]
协议名称检测率召回率modbus98.8%98.1%dnp-397.1%99.1%mqtt99.9%100%
[0065]
本发明上述实施例面向工业物联网安全的网络包负载异常检测方法,步骤如下:对通过工业物联网设备的网络流量负载按请求和响应两个方向逐行进行建模,生成以二维灰度图像表示的负载样本。部署基于gan架构的网络包负载异常检测模型,包括基于2d-cnn的自动编码器,辅助编码器和鉴别器。构建三个损失函数将自动编码器、辅助编码器和鉴别器结合在一起并使用正常负载样本进行模型训练,利用随机梯度下降法训练神经网络。上述实施例将工业物联网的网络包负载输入训练好的神经网络,通过原始负载与自动编码器重建的负载之间的重建误差来检测异常。本发明上述实施例方法根据重建负载与原始负载的相似度区分正常行为和异常行为,能较好的解决工业物联网复杂多样的负载建模和异常检测难题。
[0066]
以上所述的具体实施例,对本发明的解决的技术问题、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种面向工业物联网安全的网络包负载异常检测方法,其特征在于,包括以下步骤:步骤1)、对通过工业物联网设备的网络流量负载按请求和响应两个方向逐行进行建模,生成以二维灰度图像表示的负载样本;步骤2)、部署基于gan架构的网络包负载异常检测模型,包括基于2d-cnn的自动编码器,辅助编码器和鉴别器;其中自动编码器的解码器作为gan的生成器,并将负载的字节数据视为第1个卷积层的输入节点;步骤3)、构建三个损失函数将自动编码器、辅助编码器和鉴别器结合在一起并使用正常负载样本进行模型训练,利用随机梯度下降法训练神经网络;步骤4)、将工业物联网的网络包负载输入训练好的神经网络,然后通过原始负载与生成器重建的负载之间的重建误差来检测异常。2.根据权利要求1所述的面向工业物联网安全的网络包负载异常检测方法,其特征在于,所述步骤1)具体包括下列步骤:步骤1.1)、以tcp为标志进行切流,通过tcp三次握手的syn包考虑网络流的开始,通过tcp四次挥手的fin包考虑网络流的结束,最后过滤掉所有空的tcp数据包,并将封装负载数据的数据包留在每个tcp流中;步骤1.2)、确定二维负载样本宽度x,x为请求数据包中负载的最大字节数、响应数据包负载的最大字节数或者数据包负载串联后的最大字节数;这里的数据包串联又分为存在两个响应之间的请求数据包串联,或者是两个请求之间的响应数据包串联;步骤1.3)、确定二维负载样本宽度y,y由最长网络流中数据包的数量来确定,这里的数据包是请求数据包、响应数据包或者是两者之间的包组合;步骤1.4)、对于尺寸无法达到x
×
y的二维负载样本,使用0进行填充以达到这个大小,得到具有统一尺寸x
×
y,以二维灰度图像表示的负载样本。3.根据权利要求1所述的面向工业物联网安全的网络包负载异常检测方法,其特征在于,所述步骤2)具体包括下列步骤:步骤2.1)、部署的自动编码器编码部分与辅助编码器的结构完全相同,均具有3对卷积层和最大池化层,解码器具有相同数量的转置卷积层和上采样层对;鉴别器的结构与编码器类似,仅最后通过附加一个全连接层、一个激活函数以及一个softmax层,以便将输入负载分类为原始或重建;步骤2.2)、在编码器、辅助编码器和鉴别器的神经网络中,3个卷积层的卷积核个数分别为256,128,100;卷积滤波器和最大池化滤波器的尺寸均为3
×
3;在鉴别器的神经网络中,3个转置卷积层的卷积核个数分别为100,128,256;上采样池和转置卷积的滤波器尺寸均为3
×
3。4.根据权利要求1所述的面向工业物联网安全的网络包负载异常检测方法,其特征在于,所述步骤3)具体包括下列步骤:步骤3.1)、第一个损失函数为重建负载与原始负载的重建误差;步骤3.2)、第二个损失函数为重建的潜在向量与原始潜在向量的重建误差;步骤3.3)、第三个损失函数为gan鉴别器造成的分类误差,用于区分真正的正常负载和自动编码器重建的伪造负载;步骤3.4)、使用权重将三个损失函数组合在一起,得到最终的损失函数,以指导自动编
码器的训练;步骤3.5)、输入正常负载样本进行模型训练,得到神经网络训练的损失;步骤3.6)、将网络损失采用梯度下降法后向传播,从而更新神经网络模型权重,重复步骤3.5)直到网络损失收敛。5.根据权利要求1所述的面向工业物联网安全的网络包负载异常检测方法,其特征在于,所述步骤4)具体包括下列步骤:步骤4.1)、将测试集的负载样本输入训练好的神经网络,并使用重建负载与原始输入计算重建误差;步骤4.2)、计算每个样本产生的重建误差,做出受试者工作特征,即roc曲线,通过约登指数确定异常检测模型的判定阈值;将负载样本计算的重建误差与阈值进行比较,若误差小于阈值,则将该输入负载判断为正常,否则为异常负载。

技术总结
本发明提出一种面向工业物联网安全的网络包负载异常检测方法,步骤如下:对通过工业物联网设备的网络流量负载按请求和响应两个方向逐行进行建模,生成以二维灰度图像表示的负载样本。部署基于GAN架构的网络包负载异常检测模型,包括基于2D-CNN的自动编码器,辅助编码器和鉴别器。构建三个损失函数将自动编码器、辅助编码器和鉴别器结合在一起并使用正常负载样本进行模型训练,利用随机梯度下降法训练神经网络。将工业物联网的网络包负载输入训练好的神经网络,通过原始负载与自动编码器重建的负载之间的重建误差来检测异常。该方法根据重建负载与原始负载的相似度区分正常行为和异常行为,能较好的解决工业物联网复杂多样的负载建模和异常检测难题。的负载建模和异常检测难题。的负载建模和异常检测难题。


技术研发人员:周鹏 陈冲
受保护的技术使用者:上海大学
技术研发日:2022.05.07
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-8642.html

最新回复(0)