设为首页 加入收藏
   
     
   
科技•信息
 
于特征增强的深度学习入侵检测算法
双击自动滚屏 发布者:admin 时间:2023-8-23 12:44:26 阅读:1117次 【字体:

基于特征增强的深度学习入侵检测算法


关键词:集上类别样本


唐群玲,张兴兰

(北京工业大学 信息学部,北京 100124)

0 引 言

互联网飞速发展的同时也带来了很多安全问题,任何企图危害计算机或网络资源的行为都被定义为入侵。该文主要从入侵检测方面来解决网络安全问题。

传统的入侵检测技术已经暴露出以下弊端:第一,当前入侵的数据量大,传统的入侵检测技术难以处理,比如分布式拒绝攻击,在一分钟内就能产生几十万条攻击数据,对系统的性能要求很高。第二,随着技术的发展,攻击的形式也在不停变化,由于入侵检测属于防御手段,这使得入侵检测面临新型攻击时显得束手无策。第三,在入侵检测数据中存在不平衡现象,例如入侵数据中Dos攻击的数量远大于正常流量的数据。

类别不平衡,指的是当信息集中一个类别数据数量大大地超过了另一类别样本数,在实际的分析应用中,如垃圾邮件分析、电话欺诈分析等过程中都出现了数据不平衡现象。入侵检测中的样本是类别不平衡数据,数据不平衡很容易导致针对少数攻击的高误报检测率。类别不平衡往往导致性能降低,甚至分类失败。对于一般的分类器的训练而言,在非平衡的数据集下很容易训练出一个正确率很高,而召回率很低的分类器。不平衡数据面临的最大问题是过拟合,会因为样本数太少,偏向训练样本,从而造成召回率很低的结果。解决类别不平衡造成的召回率低的问题是一个很有意义的研究课题。

特征对于模型分类的影响可以与梯度信息建立起密切的联系。在卷积神经网络中,不同的卷积层可以学习到不同的特征,将这些特征组合到一起时,就会描述一个特定的对象,这就意味着特征提取的质量,对最后的分类结果有着重要的影响。因此,该文提出了一种基于特征增强的深度学习入侵检测方法,通过一个辅助网络来自适应地学习不同特征对类别预测的重要性,并利用学习到的特征重要性来动态调整分类模型对不同特征的关注度,使模型更加关注对分类结果有积极作用的特征,同时抑制模型对冗余特征的学习,通过这种方式提升模型的准确率。最后在NSL-KDD和CICIDS2017数据集上进行了实验,并与多个模型进行对比,实验结果表明,该方法在2个数据集上都取得了不错的效果。

1 相关工作

1.1 数据增强的发展与研究现状

近年来,异常检测任务中大多数缺乏标记数据,并且数据类别不平衡。为了解决数据不平衡导致性能降低,甚至分类失败的问题,在早期对数据增强产生新样本的方法是围绕原样本进行操作,如移位[1]、旋转[2]、缩放[3-4]、裁剪[3-5]、翻转[5-6]等来扩大数据集。Nitesh V. Chawla提出了SMOTE,对小类进行插值产生额外的小类数据[7],以及ADSYN,根据学习难度的不同,对不同的少数类别的样本使用加权分布。SMOTE和ADSYN都是使用过采样技术进行数据增强。EasyEnsemble方法使用集成的机制,把大类分割成若干个小集合给不同的学习器使用,对各个学习器都进行了欠采样,且通过全局分析不遗漏重要数据[8]。虽然现在已经开发了几种过采样或数据增强方案来平衡不同类别的数据,但是通常只是合成观察或者复制得到的数据,并不能提高数据的多样性。张志武等人[9]提出LSTM深度学习框架下自适应不平衡数据方法。对多数类进行多组欠采样,并分别与少数类样本组合成多组平衡的训练数据集,然后分别对每组训练数据学习一个LSTM模型,最后通过集成学习方法获得最终结果,能提高类别不平衡数据的深度学习性能。这些方法都是从数据集入手,解决类别不平衡问题,采用数据增强的方法,使得数据较为均衡,进而提高分类准确率。

1.2 入侵检测

在文献[10]中首次将机器学习引入入侵检测中,目的是对于网络异常进行检测和判断,且进一步识别该攻击行为。文献[11]中提出了k最近邻和支持向量机算法,这是常用的数据挖掘算法。文献[12]在入侵检测算法中引入了支持向量机,但是随着数据量的增加,传统的机器学习算法更适合解决小样本问题,对于复杂的入侵检测系统不能更好地进行特征提取,导致误检率升高等问题出现。

入侵检测技术主要是通过特征的提取和特征的分类来达到检测和判断的目的。从大量数据中提取特征从而进行分类,这是非常关键的步骤。文献[13]提出了基于一维卷积神经网络的入侵检测方法,可自动提取原始数据的特征。文献[14]提出了RNN进行入侵检测的可能性,它是通过将数据流量建模为状态序列来完成入侵检测行为。文献[15]提出将长短期神经网络(LSTM)应用于入侵检测,长短期神经网络是一种特殊的循环神经网络,也是经典的深度学习方法之一,能够有效地解决数据训练时出现的梯度消失和梯度爆炸问题。文献[16-18]将卷积神经网络(CNN)也应用于入侵检测。文献基于RNN-SVM的入侵检测方法研究,该入侵检测系统以HDFS作为文件存储平台,以Spark作为数据预处理平台,Tensorflow作为模型训练测试平台,能处理海量数据,利用RNN对特征进行提取,同时利用SVM分类器,对低维特征具有良好的分类能力,对降维后的特征进行分类,降低漏报率和误报率。

2 方 法

基于特征增强的入侵检测模型的结构如图1所示。与传统的卷积神经网络不同,在卷积最后一层添加了一个辅助网络,先对卷积神经网络提取的特征进行增强,再送入全连接层进行分类。

图1 模型架构

整体任务流程为:设输入的样本数据为X=[x1,x2,…,xn],其中X∈Rn×1,n为输入样本的特征数目,模型的目标是正确对输入流量进行预测。

2.1 特征增强

特征增强本质上是让模型更加关注对分类结果有积极作用的特征。该文设计了两种增强特征方法,首先受到显著图的启发,根据样本的标签类别来计算与其相关的重要通道。计算方法如式(1)所示:

(1)

(2)

(3)

在得到gl后,对原始特征图zl进行增强,计算方法如式(4)所示:

(4)

(5)

(6)

其中,α∈(0,1)是超参数。

2.2 训练方法

在实际操作中,特征增强模块应用于模型的倒数第二层,即全连接层之前的卷积模块。该文提出的是设计一个辅助网络辅助特征增强的方法,因此它有自己的损失函数,需要与原始网络的损失函数一起进行训练。通道增强模块的损失函数如式(7)所示:

L(x,y)=LCE(p,y)+γLCE(a,y)

(7)

其中,LCE(·)为交叉熵损失函数;p和a分别是原始网络和辅助网络的预测结果;γ∈(0,1)是一个超参数,用来平衡原始网络和辅助网络的预测结果。

3 实验与结果分析

3.1 实验环境与参数设置

该文主要将深度学习模型应用到入侵检测的实验中,并对比了每个模型的结果。实验是在Linux系统下进行的;显卡使用的是GTX 2080Ti;深度学习模型是使用Pytorch框架搭建的。

3.2 数据集及预处理

(1)NSL-KDD数据集。

NSL-KDD数据集是KDD 99数据集的改进,NSL-KDD数据集的训练集中不包含冗余记录,所以分类器不会偏向更频繁的记录。NSL-KDD数据集的测试集中没有重复的记录,使得检测率更为准确。训练和测试中的记录数量设置是合理的,这使得在整套实验上运行实验成本低廉而无需随机选择一小部分。因此,不同研究工作的评估结果将是一致的和可比较的。NSL-KDD数据集解决了KDD99数据集中存在的固有问题。NSL-KDD数据集由于缺少基于入侵检测网络的公共数据集,所以NSL-KDD数据集仍然存在一些问题,同时也不是现有真实网络的完美代表。但它仍然可以用作有效的基准数据集,以帮助研究人员比较不同的入侵检测方法。表1展示了NSL-KDD数据集中的攻击类型。

表1 NSL-KDD数据集详细攻击

(2)CICIDS2017数据集。

CICIDS2017数据集包含了大量最新的攻击场景,这个数据集不仅包含了最新的网络攻击,也满足了现实世界攻击的所有标准。这个数据集其中一个明显的缺点是数据量非常庞大,跨越了八个文件。此外数据集包含冗余记录以及一些缺省值,且数据集本质上是高度不平衡的。

对于分散存在的问题可以通过合并各种数据文件得以解决且删除缺失的值,在实际检测过程开始之前对数据集进行采样,可以克服高容量的缺点。在抽样之前,必须先解决类别不平衡问题,如果是平衡数据集,所有类标签实例的发生概率将增加。解决类别不平衡问题的主要方法之一是重新给类贴标签,包括将多数类分裂形成更多的类,或将少数类合并成一个类,以此减少类别不平衡问题。表2展示了CICIDS2017数据集标签合并后的结果。

表2 CICIDS2017数据集新攻击标签的特征

3.2.1 在NSL-KDD数据集上的实验

对于NSL-KDD数据集的处理主要包括数值化、特征扩充以及归一化三个步骤:

(1)数值化。

在NSL-KDD数据集中,含有三种字符类型的特征,然而神经网络并不能很好地处理字符类型的特征,因此在将数据送入神经网络进行学习之前,需要对字符类型的特征进行处理。在数据集中,三种字符类型的特征分别是协议类型、目标主机服务类型以及连接状态。该文将字符类型的特征处理成one-hot的形式,例如协议类型的值有3种,处理成one-hot的形式后,3种值分别被处理成[0,0,1][0,1,0][1,0,0]。其他特征的处理方式类似,最终,数据集中的每条样本的特征长度为121维。

(2)特征扩充。

该文提出的方法主要依托卷积神经网络来提取样本特征,因此在特征提取过程中,需要将样本转化成图片数据的格式。在数值化以后,样本的长度被处理成为121维,再通过维度转化,将121维的向量转化成11×11的矩阵。针对某些卷积神经网络的结构不能很好地处理小维度的样本的问题,将11×11维的矩阵扩充成32×32的矩阵,扩充的特征用0进行填充。值得注意的是,针对LSTM等网络,则不需要再进行维度转化和特征扩充的操作。

(3)归一化。

在样本特征中,由于衡量特征的量纲不同,会导致特征之间有很大的数值差异,会影响模型的判断。在对样本进行数值化以后,再进行归一化处理,消除量纲不同带来的数据差异。采用最大-最小归一化的方法,将所有特征的值统一到[0,1]之间,如公式(8)所示:

(8)

其中,x是原始数据,xmin是所有样本中同一特征中的最小值,xmax是所有样本中同一特征中的最大值,xnorm是原始数据归一化后的结果。

将处理后的数据集可视化后可以发现,不同类别的数据样本之间有着明显的不同特征,将标签为Normal和DoS的部分样本进行了可视化,结果如图2所示。

图2 NSL-KDD数据集中部分样本可视化

3.2.2 在CICIDS2017数据集上的实验

在原始CICIDS2017数据集中存在特征缺失的现象,因此在处理数据前,先将特征缺失的样本进行删除。并且为了解决类别不平衡的问题,根据文献[19],将特征相似的类别进行合并,生成新的标签。最后将处理后的数据集进行数值化、特征扩展以及归一化的操作,操作过程与NSL-KDD一致。同时,将标签为Normal和Attack的部分样本进行了可视化,结果如图3所示。

图3 CICIDS2017数据集中部分样本可视化

3.3 评价指标

该文使用准确率AC、精确率P、召回率R以及F1-Score作为实验结果的评价指标,其公式定义如下:

(9)

(10)

(11)

(12)

其中,TN(True Negative)是预测结果为Negative,且预测正确的数量;TP(True Positive)是预测结果为Positive,且预测正确的数量;FN(False Negative)是预测结果为Negative,且预测错误的数量;FP(False Positive)是预测结果为Positive,且预测错误的数量。

3.4 结果与分析

3.4.1 在NSL-KDD数据集上的实验

在划分测试集上的实验:

在实验过程中,使用了5折交叉验证,即将原始训练集平均划分为5等份,其中4份用来训练模型,1份用来测试模型,并且训练集与测试集中的样本没有重叠,最终的实验结果去平均值。使用了ResNet-50、VGG-19以及LSTM进行对照,实验结果如表3所示。

表3 在NSL-KDD划分数据集上的结果 %

从实验结果可以看出,在准确率上,ResNet-50比LSTM高0.22百分点,VGG-19要比LSTM高0.06百分点,这说明卷积神经网络提取特征的能力要优于LSTM,而该文提出的方法在准确率上要比ResNet-50和VGG-19分别高0.14百分点和0.3百分点。显然该文提出的方法要优于传统的神经网络分类模型。

在原始测试集上的实验:

该文也使用了原始的测试集KDDTest+进行了实验,原始测试集中存在训练集中不存在的样本,并且类别不平衡的影响更加明显,可以检验模型的泛化能力。在实验过程中,依旧使用ResNet-50、VGG-19以及LSTM进行对照,实验结果如表4所示。

表4 在NSL-KDD原始测试集上的结果 %

从结果中可以看出,该文提出的方法与其他方法相比,在每个指标上都取得了最高的分数。其中与ResNet-50相比,准确率提升了2.19百分点;与LSTM相比,准确率提升了5.18百分点。这说明传统的卷积神经网络并不能很好地提取相关特征,尤其是在类别不平衡的数据集上。而该文提出的方法可以着重使模型关注与分类密切相关的特征,而削弱噪声特征对分类结果的影响。在类别不平衡的数据集下,模型可以在只有获得少量样本的情况下,提取到更加重要的特征,提升模型在不平衡数据集下的准确率,也进一步提升了模型的泛化能力。

3.4.2 在CICIDS2017数据集上的实验

在划分测试集上的实验:

由于CICIDS2017数据集并没有提供专门用于模型评估的测试集,因此在实验过程中,需要手动划分训练集和测试集。数据集的划分步骤与NSL-KDD一致,同样使用了5折交叉验证的方法。对比模型使用了ResNet-50、VGG-19以及LSTM,实验结果如表5所示。

表5 在CICIDS2017数据集上的结果 %

处理后的数据集在一定程度上解决了类别不平衡的问题,因此每个模型在测试集上都获得了良好的表现,但该文提出的方法在不同指标上的表现更加突出。提出的方法在准确率上,比ResNet-50提高了0.39百分点,比LSTM的方法提高了0.82百分点。结果表明,提出的方法使得模型在不同数据集上都有了不错的性能提升。

3.4.3 模型效率分析

该文提出的方法可以看作是一个附加的辅助网络,为了研究该方法的效率,展示了ResNet-18模型在3×32×32大小的样本下的训练时间和推断时间,如表6所示。在训练过程中,原始的ResNet-18模型训练每个Batch平均需要95 s,修改的模型需要103 s,其中每个Batch包含128个样本。在测试过程中,原始的ResNet-18模型在测试阶段需要0.007 s;而修改的模型则需要0.011 s。从实验结果中可以看出,提出的方法并没有导致太多的额外计算时间消耗。

表6 时间损耗的结果 s

4 结束语

构建了一个特征增强的方法,使用梯度得分来获取对模型分类有益的特征,同时为了避免在反向求导获得梯度信息的过程中造成资源的浪费,通过使用一个辅助网络,在训练过程中与原始分类网络一起训练。通过这种方法,使模型在训练过程中,重点关注对分类结果有促进作用的特征,同时减少不重要特征的影响,使模型的准确率有了明显的提升。今后需要进一步提升模型提取特征的能力,增强模型在类别不平衡数据集上的表现,并提升模型的运行效率。


上一篇|下一篇

 相关评论

暂无评论

 发表评论
 昵称:
 评论内容:
 验证码:
  
打印本页 || 关闭窗口
 
 

咨询电话: 13891856539  欢迎投稿:gmlwfbzx@163.com  gmlwfb@163.com
617765117  243223901(发表)  741156950(论文写作指导)63777606     13891856539   (同微信)

All rights reserved 版权所有 光明论文发表中心 公司地址:西安市碑林区南大街169号-6
CopyRight ©  2006-2009  All Rights Reserved.


  制作维护:中联世纪  网站管理
访问 人次
国家信息产业部ICP备案:陕ICP备17019044号-1 网监备案号:XA12993