一种基于对抗掩码的网络流量异常检测系统与方法

文档序号:32895796发布日期:2023-01-13 00:20阅读:61来源:国知局
一种基于对抗掩码的网络流量异常检测系统与方法

1.本发明涉及网络流量异常检测领域,尤其涉及一种基于对抗掩码的网络流量异常检测系统与方法。


背景技术:

2.随着机器学习的深入发展,基于机器学习的网络异常检测模型已经成为主流方案。它通过从流量中提取特征,用检测器进行分类,极大提高了网络异常检测系统的检测性能,克服了传统网络流量异常检测系统识别检测不稳定,处理效率不高、自适应能力差等缺点。最近有研究已经发现机器学习模型具有脆弱性,容易被精心设计的样本所欺骗。因此为了有效应对对抗样本的威胁,已经有不少工作研究如何提升网络异常检测模型的鲁棒性。
3.但是,目前有关利用对抗样本提升网络异常检测模型精度的研究依然比较稀缺。由于在该领域,很难收集到大量有标签的数据样本,所以有研究工作选择使用随机掩码模型作为前置任务去更好地学习样本特征。虽然随机掩码模型充当着数据增强功能,但是生成的假样本处于哪一类真实样本的数据流形之上却是未知的,而这可能会导致前置模型的无效学习。尽管最近在图像识别领域有研究者开始利用对抗目标去提升图像编码器的表征学习能力,关于网络流量异常检测领域的对抗样本特性的使用还尚未研究,并且网络流量特征与图像特征不同,它并非每个特征都是连续的,因此设计一种属于网络安全领域独特的对抗样本生成算法也尤为关键。
4.陈振宇等人在中国发明专利申请“一种基于数据防御的深度学习模型优化方法”(申请号:cn202010712774.2)中为了针对对抗样本攻击方法优化模型,数据层面的防御策略主要通过在训练阶段将对抗样本注入训练数据集后重新训练模型,或预测阶段对样本进行修改,进行重建并将转换后的对抗样本输入到原模型来进行预测。利用开源对抗样本生成工具对待测模型以及目标数据集生成对抗样本,比较生成对抗样本前后模型在指定数据集上的成功率,但该发明属于在图像识别领域借助对抗样本对训练模型或预测阶段进行优化。
5.因此,本领域的技术人员致力于开发一种新的网络流量异常检测方法,提供一种属于网络安全领域独特的对抗样本生成算法,克服上述随机掩码模型可能会生成无效数据的问题。


技术实现要素:

6.有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何克服随机掩码模型可能会生成无效数据的问题,通过设计针对网络流量特征的对抗攻击算法,并将该对抗攻击引入到掩码生成模型之中,进而生成对模型更具有挑战性的假样本,从而帮助前置模型学习到更为丰富的潜在信息,从而提升模型训练的效率与检测精度。
7.为实现上述目的,本发明提供了一种基于对抗掩码的网络流量异常检测系统,所述系统包括上游的前置模型和下游的分类检测模型;
8.其中,所述前置模型包括对抗掩码生成模块、编码器网络、特征向量评估模块和掩码向量评估模块;在上游的所述前置模型中,将对所述编码器网络进行训练;
9.所述分类检测模型包括训练过的所述编码器网络,以及分类器;在保证所述编码器网络的权重不变的情况下仅对所述分类器进行训练,得到最终的分类模型;所述分类模型对测试数据集进行分类预测。
10.进一步地,所述对抗掩码生成模块接收由原始样本组成的原始数据集,生成远离输入的所述原始样本的流形的对抗样本;
11.所述编码器网络接收所述对抗掩码生成模块生成的所述对抗样本,借助于深层神经网络的非线性特征提取能力,从人为设置的代理任务中提取所述对抗样本中的隐含特征;
12.所述特征向量评估模块连接所述编码器网络,将所述隐含特征还原成与所述原始样本一样维度的特征形式,并利用重构误差来衡量所述对抗样本与所述原始样本之间的距离;
13.所述掩码向量评估模块同样连接所述编码器网络,预测所述潜在特征的位置。
14.进一步地,所述对抗掩码生成模块包括一个自动编码器,所述自动编码器又包括一个编码器和一个解码器,将输入的所述原始样本通过所述编码器得到潜在特征,再利用所述解码器将所述潜在特征还原为和所述原始样本的维度一样的重构样本,所述重构样本即所述对抗样本。
15.进一步地,所述特征向量评估模块和所述掩码向量评估模块是并行搭建。
16.本发明还提供了一种基于对抗掩码的网络流量异常检测方法,所述方法包括以下步骤:
17.步骤1、对原始数据集进行数据预处理;所述原始数据集为包括连续特征和离散特征的网络数据,由原始样本组成;对于所述连续特征,利用min-max方式转换到0到1的区间之中;对于所述离散特征,使用独热编码转换为数值形式;取所述原始数据集的10%数据作为训练数据集,剩余90%数据作为测试数据集;将经过预处理后的所述原始数据集记为其中其中,表示维度大小为d的实数集;
18.步骤2、构建对抗掩码生成模块,所述对抗掩码生成模块包括一个自动编码器;将所述训练数据集中的所述原始样本取出,作为所述自动编码器的训练集,并利用重构误差作为所述自动编码器的损失函数;
19.将所述自动编码器记为i,所述训练数据集记为x,则相应的所述损失函数为:
[0020][0021]
其中,i相当于一个函数表达式,i(x)表示当函数表达式的输入为x时的输出结果;在中,右侧底下的2表示求向量x-i(x)的第二范数的值,上面的2表示对第二范数求平方值;
[0022]
在所述自动编码器的训练完毕后,将所述损失函数作为判断样本是否异常的衡量标准;如果所述原始样本的重构误差高于预先设定的阈值,则判定为异常样本,否则为正常样本;
[0023]
步骤3、应用预先设计的对抗攻击算法,对所述训练数据集中的每一个所述原始样
本生成一个相应的对抗样本;
[0024]
步骤4、完成编码器网络以及特征向量评估模块和掩码向量评估模块的训练和构建;
[0025]
步骤5、将分类器连接在已经训练好的所述编码器网络后面,在保证所述编码器网络的权重不变的情况下仅对所述分类器进行训练,得到最终的分类模型;所述分类模型对所述测试数据集进行分类预测。
[0026]
进一步地,在所述步骤3中,所述对抗攻击算法为:
[0027]
假设所述原始数据集为x=(xc,xs),其中xc=(x1,x2,

,xk),代表着k个元素组成的所述连续特征,而xs=(x
k+1
,x
k+2
,

,xd),表示由d-k个元素所组成的所述离散特征;设扰动范围为ε,迭代次数为n,针对所述训练数据集的所述对抗攻击算法可表示为:
[0028][0029][0030][0031]
其中,在x上有*的符号,代表该数据特征经过人为扰动;上面的c
*
表示所述原始数据集中被人为修改过的所述连续特征;底下的数值表示当前迭代计算的次数,0表示计算为0次;中的n代表计算n次;中的n+1代表计算n+1次;α表示单次计算的扰动范围,一般来说,α=ε/n,该范围在[0,1]区间之内;sign表示数学符号函数,即当x》0,sign(x)=1;当x=0,sign(x)=0;当x《0,sign(x)=-1;表示求梯度clip为截断函数,作用是将修改后的限制在范围[xc+ε,x
c-ε]之中;n属于[0,n-1]范围之内,并逐步递增;符号根据所述原始样本的异常与否来确定,如果输入的所述原始样本为异常样本,则该符号为减号,否则为加号;为所述训练数据集的损失函数。
[0032]
进一步地,在所述对抗攻击算法中引入随机特征更改,即对于k个所述连续特征,利用均匀分布从中随机选择出p个所述连续特征作为可修改项,剩余的k-p个所述连续特征保持不变;
[0033]
引入所述随机特征更改后的所述对抗攻击算法的表达式如下:
[0034][0035][0036][0037]
生成完所述对抗样本x
*
之后,掩码向量m可表示为:
[0038][0039]
其中,中的p
*
表示所述原始数据集中被人为修改过的部分所述连续特征,表示异或运算,x
*
表示引入所述随机特征更改后的由所述对抗样本组成的数据集。
[0040]
进一步地,将随机打乱的所述对抗样本x
*
作为新的训练数据集去训练所述编码器网络e以及所述特征向量评估模块sf和所述掩码向量评估模块sm的权重参数;将训练完成之
后的所述编码器网络e记为所述编码器网络f;
[0041]
所述对抗样本x
*
通过所述编码器网络e压缩后得到隐含特征向量z;所述掩码向量评估模块sm评估输入向量的哪种特征被改动,假设当所述隐含特征向量z作为所述掩码向量评估模块sm的输入时,所述掩码向量评估模块sm的输出表示为则掩码向量损失函数由下式表示:
[0042][0043]
其中,由于m也是d维向量,因此mj表示的是在m中第j个特征的值;
[0044]
设所述特征向量评估模块sf将所述隐含特征向量z重构成所对应的目标函数的表达式为:
[0045][0046]
其中,x为所述原始数据集;
[0047]
所述编码器网络e以及所述特征向量评估模块sf和所述掩码向量评估模块sm可利用以下损失函数进行联合训练:
[0048][0049]
其中,γ是用来控制与之间的比重。
[0050]
进一步地,将所述分类器g连接在所述编码器网络f的后面,在保证所述编码器网络f的权重不变的情况下仅对所述分类器g进行训练,得到最终的分类模型;
[0051]
所述分类模型的损失函数为:
[0052][0053]
其中,yn表示所述测试数据集中的真实标签,表示所述分类器g所预测的标签。
[0054]
进一步地,利用准确率、精确率、召回率以及f1-score作为评价指标去评价所述分类模型对于所述测试数据集的检测效果。
[0055]
本发明提供的一种基于对抗掩码的网络流量异常检测系统与方法至少具有以下技术效果:
[0056]
1、在网络异常检测领域中,含标签的数据极为稀缺。利用数据集经验边际分布的随机掩码模型进行数据增强,可以提升模型的检测性能。但是,在特征表征的学习过程中,由于随机掩码的不确定性,可能会使该样本过度接近该样本所在的原始流形空间,从而导致所学到的样本特征可能无效。因此,本发明提出的技术方案,运用无监督学习算法和对抗攻击算法,将随机掩码转变为可控的对抗掩码,使得原始样本朝着分类边界移动,从而生成更为难以学习的训练样本。
[0057]
2、本发明提出的技术方案以训练集生成的对抗样本为新的训练集去训练编码器,使其捕获到更具有代表性的潜在空间特征,最后将其运用到下游任务当中,使分类模型的检测性能得到提升。
[0058]
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以
充分地了解本发明的目的、特征和效果。
附图说明
[0059]
图1为本发明的一个较佳实施例提供的对抗样本生成过程示意图;
[0060]
图2为本发明的一个较佳实施例提供的对抗掩码异常检测模型框架图。
具体实施方式
[0061]
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
[0062]
本发明提供的一种基于对抗掩码的网络流量异常检测系统,包括上游的前置模型和下游的分类检测模型(如图2所示)。
[0063]
其中,前置模型包括对抗掩码生成模块、编码器网络、特征向量评估模块和掩码向量评估模块;在上游的前置模型中,将对编码器网络进行训练;
[0064]
分类检测模型包括训练过的编码器网络,以及分类器;在保证编码器网络的权重不变的情况下仅对分类器进行训练,得到最终的分类模型;分类模型对测试数据集进行分类预测。
[0065]
对抗掩码生成模块接收由原始样本组成的原始数据集,生成远离输入的原始样本的流形的对抗样本,如图1所示。不同于利用样本特征的经验边际分布随机替代部分特征而实现样本增强的随机掩码生成器,该对抗掩码生成模块主要生成远离输入原始样本流形的对抗样本。网络流量样本与常见的图像样本不同,它并不是所有特征都是可变的,在进行特征改动时必须符合一定的网络协议规范约束和特定功能的约束。生成的对抗样本必须满足两个条件,一是保证仅改变连续特征且离散特征不能变动,二是朝着相反方向改变样本通过检测器的分数值,以使检测器误判该样本。具体来说就是,如果原始样本的原始输出分数较高,则在满足相关特征约束的前提下,通过修改部分可变特征从而使该样本的输出分数减少,反之亦然。在本发明所提供的技术方案中,对抗掩码生成模块的核心为自动编码器,由一个编码器和一个解码器共同构成。首先将输入的由原始样本组成的原始数据集通过编码器得到潜在特征,再利用解码器将潜在特征还原为和原始样本维度一样的重构样本。比输入层和输出层维度低的潜在层会鼓励模型学习到数据的压缩表征特性,并通过输入样本与重构样本之间的重构误差去分辨样本正常与否。借鉴于图像领域监督学习中的基本迭代对抗攻击算法,对于无监督算法的攻击也采用的是迭代方法,只不过需要更改相应的损失函数。
[0066]
编码器网络接收对抗掩码生成模块生成的对抗样本,借助于深层神经网络的非线性特征提取能力,从人为设置的代理任务中提取对抗样本中的隐含特征。在自动编码器中所提取的数据潜在信息将会运用到下游的分类检测模型之中,从而实现更好的预测性能。
[0067]
特征向量评估模块连接编码器网络,类似于普通自编码器中的解码器,将隐含特征还原成与原始样本一样维度的特征形式,并利用重构误差来衡量对抗样本与原始样本之间的距离。
[0068]
掩码向量评估模块同样连接编码器网络,同类特征向量评估模块相似,但该模块
的代理任务则是去预测对抗掩码生成模块生成掩码特征所在的位置。
[0069]
其中,特征向量评估模块和掩码向量评估模块是并行搭建。
[0070]
本发明还提供了一种基于对抗掩码的网络流量异常检测方法,首先对网络异常检测数据集进行预处理,然后搭建对抗掩码生成模型并应用先前设计好的对抗攻击算法生成对抗样本,紧接其后构建学习潜在特征的编码器,随后再并行搭建特征向量评估模块以及掩码向量评估模块。此时,前置模型已经完成,便可以开始通过反向传播进行网络参数的训练。在预训练完成之后,将已经训练好的编码器同分类器连接起来共同构成分类检测模块,在保证编码器权重不变的情况下仅对分类器进行训练,从而得到最终的分类检测模型。
[0071]
所述方法具体包括以下步骤:
[0072]
步骤1、本发明实施例采用的网络异常检测数据集为nsl-kdd公共网络安全数据集;对原始数据集进行数据预处理;在数据预处理阶段,首先将四种不同攻击类型的样本都标为异常样本,正常样本则维持不变;原始数据集为包括连续特征和离散特征的网络数据,由原始样本组成。对于连续特征,利用min-max方式转换到0到1的区间之中;对于离散特征,使用独热编码转换为数值形式;取原始数据集的10%数据作为训练数据集,剩余90%数据作为测试数据集;将经过预处理后的原始数据集记为其中其中,表示维度大小为d的实数集;
[0073]
步骤2、构建对抗掩码生成模块,对抗掩码生成模块包括一个自动编码器;将训练数据集中的原始样本取出,作为自动编码器的训练集,并利用重构误差作为自动编码器的损失函数;
[0074]
将自动编码器记为i,训练数据集记为x,则相应的损失函数为:
[0075][0076]
其中,i相当于一个函数表达式,i(x)表示当函数表达式的输入为x时的输出结果;在中,右侧底下的2表示求向量x-i(x)的第二范数的值,上面的2表示对第二范数求平方值;
[0077]
在自动编码器的训练完毕后,将损失函数作为判断样本是否异常的衡量标准;如果原始样本的重构误差高于预先设定的阈值,则判定为异常样本,否则为正常样本;
[0078]
步骤3、应用预先设计的对抗攻击算法,对训练数据集中的每一个原始样本生成一个相应的对抗样本;
[0079]
步骤4、完成编码器网络以及特征向量评估模块和掩码向量评估模块的训练和构建;
[0080]
步骤5、将分类器连接在已经训练好的编码器网络后面,在保证编码器网络的权重不变的情况下仅对分类器进行训练,得到最终的分类模型;分类模型对测试数据集进行分类预测。
[0081]
其中,在步骤3中,对抗攻击算法为:
[0082]
假设原始数据集为x=(xc,xs),其中xc=(x1,x2,

,xk),代表着k个元素组成的连续特征,而xs=(x
k+1
,x
k+2
,

,xd),表示由d-k个元素所组成的离散特征;设扰动范围为ε,迭代次数为n,针对训练数据集的对抗攻击算法可表示为:
[0083]
[0084][0085][0086]
其中,在x上有*的符号,代表该数据特征经过人为扰动;上面的c
*
表示原始数据集中被人为修改过的连续特征;底下的数值表示当前迭代计算的次数,0表示计算为0次;中的n代表计算n次;中的n+1代表计算n+1次;α表示单次计算的扰动范围,一般来说,α=ε/n,该范围在[0,1]区间之内;sign表示数学符号函数,即当x》0,sign(x)=1;当x=0,sign(x)=0;当x《0,sign(x)=-1;表示求梯度clip为截断函数,作用是将修改后的限制在范围[xc+ε,x
c-ε]之中;n属于[0,n-1]范围之内,并逐步递增;符号根据原始样本的异常与否来确定,如果输入的原始样本为异常样本,则该符号为减号,否则为加号;为训练数据集的损失函数。
[0087]
对于一个网络流量特征来说,所包含的连续特征维度固定不变。为了使得后续的编码器模块可以学习到更为丰富的潜在信息,在此又引入了随机特征更改,即对于k个连续特征,利用均匀分布从中随机选择出p个连续特征作为可修改项,剩余的k-p个连续特征保持不变;
[0088]
引入随机特征更改后的对抗攻击算法的表达式如下:
[0089][0090][0091][0092]
生成完对抗样本x
*
之后,掩码向量m可表示为:
[0093][0094]
其中,中的p
*
表示原始数据集中被人为修改过的部分连续特征,表示异或运算,x
*
表示引入随机特征更改后的由对抗样本组成的数据集。
[0095]
其中,将随机打乱的对抗样本x
*
作为新的训练数据集去训练编码器网络e以及特征向量评估模块sf和掩码向量评估模块sm的权重参数;将训练完成之后的编码器网络e记为编码器网络f;
[0096]
对抗样本x
*
通过编码器网络e压缩后得到隐含特征向量z;掩码向量评估模块sm评估输入向量的哪种特征被改动,假设当隐含特征向量z作为掩码向量评估模块sm的输入时,掩码向量评估模块sm的输出表示为则掩码向量损失函数由下式表示:
[0097][0098]
其中,由于m也是d维向量,因此mj表示的是在m中第j个特征的值;
[0099]
设特征向量评估模块sf将隐含特征向量z重构成所对应的目标函数的表达式
为:
[0100][0101]
其中,x为原始数据集;
[0102]
编码器网络e以及特征向量评估模块sf和掩码向量评估模块sm可利用以下损失函数进行联合训练:
[0103][0104]
其中,γ是用来控制与之间的比重。
[0105]
其中,将分类器g连接在编码器网络f的后面,在保证编码器网络f的权重不变的情况下仅对分类器g进行训练,得到最终的分类模型;
[0106]
分类模型的损失函数为:
[0107][0108]
其中,yn表示测试数据集中的真实标签,表示分类器g所预测的标签。
[0109]
其中,利用准确率、精确率、召回率以及f1-score作为评价指标去评价分类模型对于测试数据集的检测效果。
[0110]
本实验采用的是pytorch机器学习框架去训练检测模型和实现对抗掩码异常检测算法。所有的实验都在nvidia geforce rtx 3060laptop gpu的环境运行。
[0111]
下面的表1为不同异常检测方法在nsl-kdd公开数据集上的性能对比,其中最好的实验结果加粗表示:
[0112][0113]
其中,vime就是利用随机掩码进行数据表征学习的方法。从表1的结果可以看出,在训练集与测试集完全相同的条件下,本发明所提出的异常检测方法在各个评价指标中都取得了最好的效果,能够很好的解决了对于网络异常检测数据如何进行高效的数据增强从而提高模型性能的问题。
[0114]
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1