基于概念漂移和深度学习的网络流量入侵检测方法转让专利

申请号 : CN202111661592.8

文献号 : CN114513328B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董庆宽赵晓倩樊凯任晓龙李丽高文鑫

申请人 : 西安电子科技大学

摘要 :

本发明公开了一种基于概念漂移和深度学习的网络流量入侵检测方法,主要解决现有概念漂移检测成本较高及网络流量特征发生改变时入侵检测准确率低的问题。其方案为:获取并预处理训练样本集和测试样本集;构建自编码器网络,用训练样本集对其进行逐层无监督训练;构建多层卷积神经网络,用训练样本集对其进行训练;构建多层长短时记忆网络,用训练样本集对其进行训练;采用训练好的自编码器网络对测试样本集进行特征选择,得到48维的测试样本集,将该测试样本集分别输入到训练好的多层卷积神经网络和训练好的多层长短时记忆网络,对其输出结果加权求和,得到入侵检测结果。本发明在网路流量特征发生改变时有较高的准确率,可用于网络安全维护。

权利要求 :

1.一种基于概念漂移和深度学习的网络流量入侵检测方法,其特征在于,包括:(1)从KDD CUP99数据集中获取训练样本集Xtrain和测试样本集Xtest,并对其进行数值化和数据标准归一化的预处理,得到预处理后119维训练样本集X′train和测试样本集X′test;

(2)构建由输入层、第一隐含层、第一批量归一化层、第二隐含层、第二批量归一化层依次级联组成的自编码器网络;

(3)采用预处理后的训练样本集X′train,利用Adam优化器对多层自编码器网络进行逐层无监督训练,得到48维的训练样本集X″train;

(4)构建由输入层、第一卷积层、第一最大池化层、第一批量归一化层、第二卷积层、第二最大池化层、第二批量归一化层、全连接层、输出层依次级联组成的多层卷积神经网络;

(5)采用48维的训练样本集X″train,利用Adam优化器对多层卷积神经网络模型进行优化训练,得到训练好的多层卷积神经网络模型;

(6)构建由输入层、第一长短时记忆网络层、第一Dropout层、第二长短时记忆网络层、第二Dropout层、全连接层、输出层依次级联组成的多层长短时记忆网络;

(7)采用48维的训练样本集X″train,利用Adam优化器对多层长短时记忆网络进行优化训练,得到训练好的多层长短时记忆网络;

(8)将预处理后的测试样本集X′test输入到训练好的自编码器网络,得到48维的测试样本集X″test;

(9)对48维的测试样本集X″test进行概念漂移检测和入侵检测:(9a)构造两个滑动窗口,截取测试样本集X″test中长度为N的数据,并设置概念漂移检测阈值X,其中N为1000,X的范围为2.0~7.0;

(9b)将第二个滑动窗口的数据分别输入到训练好的多层卷积神经网络和训练好的多层长短时记忆网络中,再将这两个网络的输出结果进行加权求和,得到第二个滑动窗口数据的入侵检测分类结果;

(9c)计算两个滑动窗口数据之间的Wasserstein距离W,作为概念漂移检测结果;

(9d)将Wasserstein距离W与概念漂移检测阈值X进行比较,判断是否发生漂移:若W

若W>=X,则发生了概念漂移,此时采用第二个滑动窗口中的数据对训练好的长短时记忆网络进行再训练,再将第一个滑动窗口的位置移动到第二个滑动窗口的位置,并将第二个滑动窗口向前移动长度N,返回(9b);

(9e)重复上述(9b)~(9d)操作,直到第二个滑动窗口将48维的测试样本集X″test的数据全部检测完毕;

(9f)将所有第二个滑动窗口中的入侵检测分类结果拼接起来,得到48维的测试样本集X″test入侵检测分类结果。

2.根据权利要求1所述的方法,(1)所述的预处理如下:数值化,是采用独热编码将从KDD CUP99数据集中获取的训练样本集Xtrain和测试样本集Xtest中的符号特征转化为数值特征;

数据标准归一化,是先对数值化后的训练样本集和测试样本集中的数值特征进行标准化,再将每个数值归一到[0,1]区间,最后得到119维的训练样本集X′train和测试样本集X′test。

3.根据权利要求1所述的方法,其中(2)中构建的自编码器网络,各层参数如下:输入层输入预处理后的训练样本集X′train;

第一隐含层的参数维度为96维;

第二隐含层的参数维度为48维;

所有隐含层的激活函数均使用Relu。

4.根据权利要求1所述的方法,其中(3)中采用预处理后的训练样本集X′train,利用Adam优化算法对多层自编码器网络进行逐层无监督训练,实现如下:(3a)将每一个相连的隐含层和批量归一化层看作一个整体,作为一个中间层,将多层自编码器网络中除最后一个中间层外的每层均与该层相邻的下一中间层、及与该层具有对应结构的额外一层组成网络模型;

(3b)将此网络模型的输入与输出结果代入到均方误差损失函数,求得一次训练后的损失值;

(3c)根据每次训练得到的损失值,变化采用Adam优化器对网络参数进行梯度更新,直到达到设定的最大网络训练次数T1,得到训练好的多层自编码器网络。

5.根据权利要求1所述的方法,其中(4)中构建的多层卷积神经网络,各层参数如下:输入层输入48维的训练样本集X″train;

第一卷积层的输入通道数为48,输出通道数为24,卷积核大小为3;

第一最大池化层的卷积核大小为3;

第二卷积层的输入通道数为24,输出通道数为16,卷积核大小为3;

第二最大池化层的卷积核大小为3;

全连接层的维度为10;

输出层的参数为1,激活函数为sigmoid函数。

6.根据权利要求1所述的方法,其中(5)中的利用Adam优化器对多层卷积神经网络模型进行优化训练,实现如下:(5a)将多层卷积神经网络的输出结果与48维的训练样本集X″train的标签特征代入到交叉熵损失函数,求得一次训练后的损失值;

(5b)根据每次训练得到的损失值,变化采用Adam优化器对网络参数进行梯度更新,直到达到设定的最大网络训练次数T2,得到训练好的多层卷积神经网络。

7.根据权利要求1所述的方法,其中(4)中构建的多层长短时记忆网络,各层参数如下:输入层输入48维的训练样本集X″train;

第一长短时记忆网络层的维度参数为32;

第一Dropout层的过滤参数为0.3;

第二长短时记忆网络层的维度参数为16;

第二Dropout层的过滤参数为0.3;

全连接层的参数为10;

输出层的参数为1,激活函数为sigmoid函数;

8.根据权利要求1所述的方法,其中(7)中的利用Adam优化器对多层长短时记忆网络进行优化训练,实现如下:(7a)将多层长短时记忆网络的输出结果与48维的训练样本集X″train的标签特征代入到交叉熵损失函数,求得一次训练后的损失值;

(7b)根据每次训练得到的损失值,变化采用Adam优化器对网络参数进行梯度更新,直到达到设定的最大网络训练次数T2,得到训练好的多层长短时记忆网络。

9.根据权利要求1所述的方法,其中(9b)中的将这两个网络的输出结果进行加权求和,按如下公式进行:z=a*x+b*y

其中,a、b为两个参数不同的系数,a=0.5,b=0.5,x为多层卷积神经网络的输出结果,y为多层长短时记忆网络的输出结果,z为加权求和结果。

10.根据权利要求1所述的方法,其中(9c)中计算两个滑动窗口数据之间的Wasserstein距离W,按如下公式进行:

其中,P1为第一个滑动窗口的数据,P2为第二个滑动窗口的数据,inf为下确界,Π(P1,P2)为P1和P2组合起来的所有可能联合分布的集合,γ为从此集合中采样得到的任一联合分布,(x,y)为从联合分布γ中采样得到的任一样本组,E(x,y)γ||x‑y||为联合分布γ下样本对距离的期望值。

说明书 :

基于概念漂移和深度学习的网络流量入侵检测方法

技术领域

[0001] 本发明属于互联网络技术领域,具体涉及一种网络流量入侵检测方法,可用于网络安全维护。

背景技术

[0002] 随着科技的发展,人工智能、大数据、云计算、区块链这些网络信息技术发展蒸蒸日上,伴随而来的便是日益严峻的网络安全问题。同时,传统的入侵检测技术已不能满足网络安全的发展需求,致使人们迫切需要新型的入侵检测模型来改变当前这一现状。随着近年来深度学习的异军突起,以其独特的数据特征学习能力,给处理多特征的入侵数据带来了新的思路,且根据其在图像识别、语音识别领域的成功表现,现有技术已提出了将其应用到入侵检测领域的技术方案。但是,现有的一些入侵检测技术方案也存在着不足,即当网络环境发生动态变化时,网络流量的统计特征和分布也会发生动态变化,使得基于流量特征的入侵检测方法产生概念漂移问题。此问题会导致构建在先前流量样本上的分类器在新样本上适用性变差,造成分类器分类精度下降,因此需对概念漂移进行检测,避免系统性能下降。
[0003] 目前的概念漂移检测方法主要包括基于统计过程控制的概念漂移检测方法和基于数据分布的概念漂移检测方法。
[0004] 基于统计过程控制的概念漂移检测方法主要是通过监测分类结果的性能指标来判断漂移是否产生。常见的漂移检测方法DDM、早期漂移检测方法EDDM这些概念漂移检测方法均是基于统计过程控制来实现的。其中DDM的主要思想是通过监视总体分类错误率来探测概念漂移的发生。EDDM是DDM的变种,其目标是提高慢速渐变概念漂移的探测性能并保持突发概念漂移的探测性能。
[0005] 基于数据分布的概念漂移检测方法主要通过监测数据特征分布是否发生改变来判断漂移是否产生。这种方法通常是先将数据流样本划分成不同的窗口,量化每个窗口中数据流特征的分布,再计算两个窗口之间分布的变化量,并对此变化量进行实时监测,以实现对概念漂移的检测。常见的基于数据分布的概念漂移检测方法有基于信息熵的方法、基于KL散度的方法、基于统计检验的方法等。
[0006] 公布号为CN112131575A的专利申请提出了一种基于分类错误率和一致性预测的概念漂移检测方法,其先通过计算模型分类错误率的变化来检测突变型概念漂移,再通过计算分类错误的样本与分类正确的样本一致性程度来检测渐进型概念漂移,以检测突变型概念漂移和渐进型概念漂移。但由于此方法是基于分类错误率来检测概念漂移,带来的问题是获取样本标签需要耗费大量时间和资源,成本较高。
[0007] 公布号为CN111970259A的专利申请提出了一种基于深度学习的网络入侵检测方法和报警系统,其通过对CSE‑CIC‑IDS‑2017数据集进行归一化处理、可视化图像转换处理和滤波处理,并采用多层卷积和深度置信网络相结合的方式进行入侵检测。该方法虽然提高了网络入侵检测数据集的分类准确率,但是当网络流量数据特征发生改变时,系统准确率将会下降。

发明内容

[0008] 本发明的目的在于克服上述现有技术存在的缺陷,提出了一种基于概念漂移和深度学习的网络流量入侵检测方法,旨在降低概念漂移检测的成本,提高网络流量数据特征发生改变时的入侵检测准确率。
[0009] 为实现上述目的,本发明采取的技术方案包括如下:
[0010] (1)从KDD CUP99数据集中获取训练样本集Xtrain和测试样本集Xtest,并对其进行数值化和数据标准归一化的预处理,得到预处理后119维训练样本集X′train和测试样本集X′test;
[0011] (2)构建由输入层、第一隐含层、第一批量归一化层、第二隐含层、第二批量归一化层依次级联组成的自编码器网络;
[0012] (3)采用预处理后的训练样本集X′train,利用Adam优化器对多层自编码器网络进行逐层无监督训练,得到48维的训练样本集X″train;
[0013] (4)构建由输入层、第一卷积层、第一最大池化层、第一批量归一化层、第二卷积层、第二最大池化层、第二批量归一化层、全连接层、输出层依次级联组成的多层卷积神经网络;
[0014] (5)采用48维的训练样本集X″train,利用Adam优化器对多层卷积神经网络模型进行优化训练,得到训练好的多层卷积神经网络模型;
[0015] (6)构建由输入层、第一长短时记忆网络层、第一Dropout层、第二长短时记忆网络层、第二Dropout层、全连接层、输出层依次级联组成的多层长短时记忆网络;
[0016] (7)采用48维的训练样本集X″train,利用Adam优化器对多层长短时记忆网络进行优化训练,得到训练好的多层长短时记忆网络;
[0017] (8)将预处理后的测试样本集X′test输入到训练好的自编码器网络,得到48维的测试样本集X″test;
[0018] (9)对48维的测试样本集X″test进行概念漂移检测和入侵检测:
[0019] (9a)构造两个滑动窗口,截取测试样本集X″test中长度为N的数据,并设置概念漂移检测阈值X,其中N为1000,X的范围为2.0~7.0;
[0020] (9b)将第二个滑动窗口的数据分别输入到训练好的多层卷积神经网络和训练好的多层长短时记忆网络中,再将这两个网络的输出结果进行加权求和,得到第二个滑动窗口数据的入侵检测分类结果;
[0021] (9c)计算两个滑动窗口数据之间的Wasserstein距离W,作为概念漂移检测结果;
[0022] (9d)将Wasserstein距离W与概念漂移检测阈值X进行比较,判断是否发生漂移:
[0023] 若W
[0024] 若W>=X,则发生了概念漂移,此时采用第二个滑动窗口中的数据对训练好的长短时记忆网络进行再训练,再将第一个滑动窗口的位置移动到第二个滑动窗口的位置,并将第二个滑动窗口向前移动长度N,返回(9b);
[0025] (9e)重复上述(9b)~(9d)操作,直到第二个滑动窗口将48维的测试样本集X″test的数据全部检测完毕;
[0026] (9f)将所有第二个滑动窗口中的入侵检测分类结果拼接起来,得到48维的测试样本集X″test入侵检测分类结果。
[0027] 本发明与现有技术相比,具有如下优点:
[0028] 1)本发明采用监测样本集中两个滑动窗口之间的Wasserstein距离变化来检测概念漂移,可用于无标签的数据集,从而节省了资源;
[0029] 2)本发明采用在线网络‑长短时记忆网络和离线网络‑卷积神经网络相结合的方式来进行入侵检测,可使得系统在保持原有数据特性的基础上,增加新网络流量的特性,从而可以动态进行入侵检测,提高检测性能。

附图说明

[0030] 图1是本发明的实现流程图。

具体实施方式

[0031] 下面结合附图对本发明的实施和效果做进一步的详细描述。
[0032] 参照图1,本实例的实现步骤包括如下:
[0033] 步骤1,获取并预处理训练样本集与测试样本集。
[0034] 1.1)从KDD CUP99数据集中获取训练样本集Xtrain和测试样本集Xtest;
[0035] 1.2)对训练样本集Xtrain和测试样本集Xtest进行数值化和数据标准归一化的预处理,得到预处理后119维训练样本集X′train和测试样本集X′test;
[0036] 其中,数值化,是采用独热编码将从KDD CUP99数据集中获取的训练样本集Xtrain和测试样本集Xtest中的符号特征转化为数值特征;
[0037] 数据标准归一化,是先对数值化后的训练样本集和测试样本集中的数值特征进行标准化,再将每个数值归一到[0,1]区间,最后得到119维的训练样本集X′train和测试样本集X′test。
[0038] 步骤2,构建自编码器网络。
[0039] 2.1)设置输入层和两个隐含层,其中输入层的输入为预处理后的训练样本集X′train,第一隐含层的参数维度为96维,第二隐含层的参数维度为48维,这两个隐含层的激活函数均使用Relu;
[0040] 2.2)设置两个批量归一化层,即第一批量归一化层、第二批量归一化层;
[0041] 2.3)将输入层、第一隐含层、第一批量归一化层、第二隐含层、第二批量归一化层依次级联,组成的自编码器网络,用于进行特征选择。
[0042] 步骤3,逐层无监督训练自编码器网络。
[0043] 3.1)设定学习率L为0.0001,设定最大迭代训练次数T1为80;
[0044] 3.2)将每一个相连的隐含层和批量归一化层看作一个整体,作为一个中间层,将多层自编码器网络中除最后一个中间层外的每层均与该层相邻的下一中间层、及与该层具有对应结构的额外一层组成网络模型;
[0045] 3.3)设定均方误差损失函数作为网络模型的目标函数,公式如下:
[0046]
[0047] 其中,MSE为均方误差损失,N为训练的样本数,yi为网络模型的输入,y′i为网络模型的输出结果;
[0048] 3.4)将每个网络模型的输入与输出结果代入到上述均方误差损失公式,求得一次训练后的损失值;
[0049] 3.5)根据每次训练得到的损失值,采用Adam优化器对网络参数进行梯度更新,直到达到设定的最大网络训练次数T1,完成对自编码器网络的训练。
[0050] 步骤4,构建多层卷积神经网络。
[0051] 4.1)设置两个卷积层,其中第一卷积层的输入通道数为48,输出通道数为24,卷积核大小为3,第二卷积层的输入通道数为24,输出通道数为16,卷积核大小为3;
[0052] 4.2)设置两个最大池化层,其卷积核大小均为3;
[0053] 4.3)设置全连接层,其维度为10;
[0054] 4.4)设置两个批量归一化层,即第一批量归一化层、第二批量归一化层;
[0055] 4.5)设置输出层,其参数为1,激活函数为sigmoid函数;
[0056] 4.6)将输入层、第一卷积层、第一最大池化层、第一批量归一化层、第二卷积层、第二最大池化层、第二批量归一化层、全连接层、输出层依次级联,组成的多层卷积神经网络,可以用于入侵检测分类器。
[0057] 步骤5,训练多层卷积神经网络。
[0058] 5.1)设定学习率L为0.0001,设定最大迭代训练次数T2为100;
[0059] 5.2)设定交叉熵损失函数为多层卷积神经网络的目标函数,公式如下:
[0060]
[0061] 其中,L为交叉熵损失,N为训练的样本数,yi为样本i的标签,正常流量为1,异常流量为0,pi为样本i分类为正常流量的概率;
[0062] 5.3)将多层卷积神经网络的输出结果与48维的训练样本集X″train的标签特征代入到上述交叉熵损失公式,求得一次训练后的损失值;
[0063] 5.4)根据每次训练得到的损失值,采用Adam优化器对网络参数进行梯度更新,直到达到设定的最大网络训练次数T2,完成对多层卷积神经网络的训练。
[0064] 步骤6,构建多层长短时记忆网络。
[0065] 6.1)设置两个长短时记忆网络层,其中,第一长短时记忆网络层的维度参数为32,第二长短时记忆网络层的维度参数为16;
[0066] 6.2)设置两个Dropout层,其过滤参数均为0.3;
[0067] 6.3)设置全连接层、输出层,全连接层的参数为10,输出层的参数为1,激活函数为sigmoid函数;
[0068] 6.4)将输入层、第一长短时记忆网络层、第一Dropout层、第二长短时记忆网络层、第二Dropout层、全连接层、输出层依次级联,组成的多层长短时记忆网络,用于入侵检测分类器。
[0069] 步骤7,训练多层长短时记忆网络。
[0070] 7.1)设定学习率L为0.0001,设定最大迭代训练次数T2为100;
[0071] 7.2)设定交叉熵损失函数为多层卷积神经网络的目标函数,公式如下:
[0072]
[0073] 其中,L为交叉熵损失,N为训练的样本数,yi为样本i的标签,正常流量为1,异常流量为0,pi为样本i分类为正常流量的概率;
[0074] 7.3)将多层长短时记忆网络的输出结果与48维的训练样本集X″train的标签特征代入到上述交叉熵损失公式,求得一次训练后的损失值;
[0075] 7.4)根据每次训练得到的损失值,采用Adam优化器对网络参数进行梯度更新,直到达到设定的最大网络训练次数T2,完成对多层长短时记忆的训练。
[0076] 步骤8,对预处理后的测试样本集进行特征选择。
[0077] 将预处理后的测试样本集X′test输入到训练好的自编码器网络,得到48维的测试样本集X″test;
[0078] 步骤9,对48维的测试样本集X″test进行概念漂移检测和入侵检测。
[0079] 9.1)构造两个滑动窗口,截取测试样本集X″test中长度为N的数据,并设置概念漂移检测阈值X,其中N为1000,X的范围为2.0~7.0,本实例取但不限于X为3.0;
[0080] 9.2)将第二个滑动窗口的数据分别输入到训练好的多层卷积神经网络和训练好的多层长短时记忆网络中,再将这两个网络的输出结果进行加权求和,公式如下:
[0081] z=a*x+b*y
[0082] 其中,a、b为两个参数不同的系数,a=0.5,b=0.5,x为多层卷积神经网络的输出结果,y为多层长短时记忆网络的输出结果,z为加权求和结果;
[0083] 9.3)将z的值与判断阈值0.5进行比较,判断第二个滑动窗口中的网络流量数据为正常流量还是异常流量:
[0084] 若z>=0.5,则令z=1,判定样本数据为正常流量;
[0085] 若z<0.5,则令z=0,判定样本数据为异常流量;
[0086] 9.4)计算两个滑动窗口数据之间的Wasserstein距离W:
[0087]
[0088] 其中,P1为第一个滑动窗口的数据,P2为第二个滑动窗口的数据,inf为下确界,Π(P1,P2)为P1和P2组合起来的所有可能联合分布的集合,γ为从此集合中采样得到的任一联合分布,(x,y)为从联合分布γ中采样得到的任一样本组,E(x,y)~γ||x‑y||为联合分布γ下样本对距离的期望值;
[0089] 9.5)从联合分布γ中采样得到样本x和样本y,计算出这对样本之间的距离||x‑y||,再计算出该联合分布γ下样本对距离的期望值E(x,y)~γ||x‑y||,在所有可能的联合分布中求这个期望值的下界值inf(E(x,y)~γ||x‑y||),将此值作为概念漂移检测结果;
[0090] 9.6)将Wasserstein距离W与概念漂移检测阈值X进行比较,判断是否发生漂移:
[0091] 若W
[0092] 若W>=X,则发生了概念漂移,此时采用第二个滑动窗口中的数据对训练好的长短时记忆网络进行再训练,再将第一个滑动窗口的位置移动到第二个滑动窗口的位置,并将第二个滑动窗口向前移动长度N,返回9.2);
[0093] 9.7)重复上述9.2)~9.6)操作,直到第二个滑动窗口将48维的测试样本集X″test的数据全部检测完毕,得到每一个第二个滑动窗口的入侵检测分类结果;
[0094] 9.8)将所有第二个滑动窗口中的入侵检测分类结果拼接起来,得到48维的测试样本集X″test入侵检测分类结果。
[0095] 下面结合仿真实验对本发明的效果做进一步说明。
[0096] 1.仿真条件:
[0097] 仿真实验的硬件环境是:Intel(R)Core(TM)i5‑8500 CPU,16GB的运行内存;
[0098] 仿真实验的软件环境是:深度学习框架TensorFlow;
[0099] 仿真实验中,客观量化评价指标采用入侵检测的准确率Accuracy,公式如下:
[0100]
[0101] 其中,TP是指将正类正确预测为正类数,FP是指将负类错误预测为正类数,FN是指将正类错误预测为父类数,TN是指将负类正确预测为负类数。
[0102] 2.仿真内容与结果分析
[0103] 为了验证引入概念漂移的有效性,分别使用本发明的方法和未引入概念漂移的方法作为对比实验,其中,未引入概念漂移的方法是指将本发明的概念漂移检测部分去掉,且不对训练好的多层长短时记忆网络进行再训练,用上述两种方法进行入侵检测的仿真实验,计算两种方法的准确率Accuracy,结果如表1:
[0104] 表1 不同方法的样本集入侵检测结果
[0105]评价指标\实验方法 未引入概念漂移的方法 本发明的方法
样本集准确率(Accuracy) 92.89% 93.40%
[0106] 从表1可见,本发明的方法在准确率方面高于未引入概念漂移检测的方法,表明本发明通过引入概念漂移检测,可取得更好的检测效果。