基于卷积神经网络ResNeXt结构的入侵检测研究
2021-11-28高燚高丽婷杨宇夏
高燚 高丽婷 杨宇夏
摘要:深度学习应用于网络入侵检测,从卷积神经网络中的残差网络ResNet结构之后主要通过联合使用多种优化策略的方式进行改进,较少关注新模型的使用。因此,提出了一种基于ResNeXt结构的网络入侵检测模型,使用NSL-KDD数据集进行了二分类实验,验证了所提模型相对同样使用二维卷积的经典CNN结构模型具备一定的优势,且能保持合理的模型复杂度,表明所提模型算法的合理性,也为今后网络入侵检测的研究提供了又一种可选用的基础模型。
关键词:入侵检测;ResNeXt;深度学习;NSL-KDD;二分类
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2021)28-0085-03
开放科学(资源服务)标识码(OSID):
1 引言
深度学习是现在应用于网络入侵检测的主流技术,其中卷积神经网络CNN在图像识别方面广泛使用,应用于网络入侵检测也同样表现不俗。CNN模型从1998年LeNet结构之后也在改进和发展中,AlexNet、VGG-Net、GoogLeNet和ResNet等经典模型随着结构的改进,应用于图像分类的准确率不断提高。已有前人使用前述几种CNN结构模型进行了网络入侵检测相关实验,表明一些检测指标相对传统机器学习方法有优势。使用KDDCup99数据集测试的如杨凝之[1]提出的PCA+CNN结构的入侵检测算法,郑非凡[2]提出的基于ResNet的异常检测模型,周珮等[3]提出的基于AutoEncoder和ResNet的入侵检测模型等。使用NSL-KDD数据集测试的有杨印根等[4]提出的基于LSTM-RESNET结构的入侵检测模型等。Saining Xie等在2017年发表的论文[5]中首次提出了ResNeXt结构模型,是在Resnet之后基于CNN结构的一种改进模型,之前还没有人将其应用于网络入侵检测,本文将做这方面的探索。
2 ResNeXt入侵检测结构设计
ResNeXt结构模型主要特点是模块化,不需要人为刻意地设计模型中每个具体部分结构细节,通过模块的简单堆叠就能实现复杂的分类任务,较为简洁和规整,也便于移植和改进。根据模块堆叠次数和方式的不同,就能形成不同层数的模型结构[5],如常用的50层和101层等多个版本。ResNeXt在不明显增加模型复杂度的情况下,在ImageNet图像分类数据集上的表现优于ResNet(同等层数的两种模型复杂度相当,具体分析和图像分类对比详见文献[5])。由于本文所使用的NSL-KDD数据集特征数量不多,本文选择结构相对简单的ResNeXt50结构,同时设置全连接层执行二分类,具体模型结构设置如表1。
3 入侵检测实验分析
3.1 测试数据集的选择
现在最常用来进行入侵检测评估的是KDD CUP99数据集和NSI-KDD数据集。
(1)KDD CUP99数据集
由于有大量的数据冗余,约包含有490万条网络连接记录,完整数据集很大,实验时常选取较小的10%数据集进行评估(如文献[6])。
(2)NSI-KDD数据集
NSI-KDD数据集是KDDCUP99数据集减少了冗余的改进版。两者相同的是每条记录都由41个特征和标签(代表正常或者具体的攻击种类,攻击种类也都可分为4种类型攻击:Dos攻击、非法远程访问R2L、非法本地特权访问U2R和端口与漏洞扫描Probe)组成,特征和标签保持同样的排列顺序。不同的是NSI-KDD数据集在每条记录中增加了用来评估每条记录分类难度的第43列successfulPrediction属性。本文使用完整版的NSI-KDD数据集进行测试评估。
3.2测试数据的预处理
(1)本文选择NSL-KDD数据集已经划分好的KDDTrain+作为训练数据集(简称为训练集)和KDDTest+作为测试数据集(简称测试集)。训练集和测试集中的网络连接记录都按照时间顺序排列,每一行为一条记录,使用CSV格式存储的训练集前10条记录如图1所示。前41列为网络連接特征,第42列为记录标签,第43列为本文不需要使用的successfulPrediction属性,将这一列删除。
(2)由于每一条记录中同时有字符型和数值型数据,为了方便ResNeXt模型识别和处理,需将字符型数据转化为数值型。本文采用序号数值映射方法,对第2列至第4列的字符型数据采用顺序编号的方法进行数值化,如第2列中3种协议类型tcp、 udp、icmp分别数值化为0、1、2,对第3列和第4列的字符型数据也用类似方法处理;由于要进行二分类评估,对正常流量标签norm数值化为0,其余攻击标签都数值化为1。由于数值化之后数据集中数据的数值偏差较大,不便于模型分类,本文采用Z-score的方法进行标准化处理,公式为[Z=x-μσ],式中x属于原始数据集,?和σ为原始数据每一维特征项的均值和标准差,标准化后每一维的数据转化为以0为均值,1为标准差的标准正态分布。经标准化处理后Z的值域为[0,1]。
3.3实验测试
使用Tensorflow 2.1.0搭建运行环境,实验硬件环境为:Intel酷睿I5 10400的cpu,GeForce RTX 2060显卡,16g内存;软件环境:Windows 10 64位的操作系统,Python版本为3.7.10。
为便于ResNeXt模型识别,这里使用二维卷积的方法,将按照2.2方式预处理后的训练集和测试集中的每条记录的41个特征转化为一张6*7的二维灰度图(第42维用0填充)的形式。然后将这些灰度图片送入ResNeXt模型进行入侵检测的训练和评估。具体实验流程为将预处理好的KDDTrain+数据按照训练集:验证集=8:2的比例送入ResNeXt50模型中进行训练,将KDDTest+数据作为模型训练好之后评估的测试集。选择adam优化器,交叉熵损失函数,输出层选择softmax分类器,设置batch_size=128。训练100轮,从中选择验证集准确率较优的权重作为模型权重,这时训练集和验证集的总体分类准确率都超过了99%,表明模型已训练充分。模型训练好之后使用测试集进行测试评估。
3.4实验数据评估
本文进行的是NSL-KDD数据集的二分类评估实验。入侵检测评价指标主要包括准确率accr、精准率precision、召回率recall和F1值,通常利用混淆矩阵来计算这些值。设正常网络数据为normal,异常网络数据为attack,由此有如表2所示的混淆矩阵。
结合混淆矩阵对上述评价指标进行计算的公式为:
accr=[TP+TNTP+FN+FP+TN],precision=[TPTP+FP],recall=[TPTP+FN],F1-value=[2precision*recallprecision+recall]
公式中accr表示准确预测的normal和attack占总记录数之比,precision表示准确预测的attack与预测值为attack的数量之比,recall表示准确预测的attack占实际attack总数之比,F1值是综合precision和recall两个标准的一个总体反映。
本文算法在KDDTest+测试集二分类评估时的实验混淆矩阵值为:TP=8929,FN=3904,FP=332,TN=9379。利用上述公式进行计算,得到本文算法的accr、precision、recall和F1值如表3所示。为便于对比,同时在表3中列举了典型传统机器学习算法、同为CNN结构也使用二维卷积的GoogLeNet和50层的ResNet50模型算法,其中ResNet50与本文算法模型复杂度相当。
从表3可知,在仅使用一种模型也不使用其他优化策略联合优化的对比中,本文算法的accr、recall和F1值都是表3中最高的,同时在表3中所有评价指标都全面领先同为CNN结构的GoogLeNet和ResNet50;和传统机器学习算法的对比中,只有precision值略低于SVM,但SVM的recall值较低,且本文算法在综合反映precision与recall平均指标的F1值的对比中也明显优于SVM。网络攻击的危害较大,对入侵检测任务来说,recall和F1值更重要,在这一点ResNet50和本文模型相对传统机器学习算法更有优势。
4 结论
本文首次将CNN中的ResNeXt结构应用于网络入侵检测,在NSL-KDD数据集进行的二分类评估实验,表明本文算法模型的準确率、精准率、召回率和F1值都全面优于同为CNN结构的GoogLeNet和ResNet50模型;在与典型传统机器学习算法的比较中,在除精准率外的其余评估指标都占据明显优势,且有更高的F1值。表明ResNeXt结构模型应用于网络入侵检测的可行性。本文模型也有不足,如precision值略低,后续若妥善结合其它算法模型或者优化策略,还有较大的提升空间。
参考文献:
[1] 杨凝之.基于CNN的入侵检测技术[J].通讯世界,2019,26(1):233-235.
[2] 郑非凡.基于ResNet深度神经网络的异常检测模型[J].网络新媒体技术,2020,9(2):16-22.
[3] 周珮,周志平,王利,等.基于AutoEncoder和ResNet的网络入侵检测方法[J].计算机应用研究,2020,37(S2):224-226.
[4] 杨印根,王忠洋.基于深度神经网络的入侵检测技术[J].网络安全技术与应用,2019(4):37-41.
[5] Xie S N,Girshick R,Dollar P,et al.Aggregated residual transformations for deep neural networks[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).July 21-26,2017.Honolulu,HI.IEEE,2017.
[6] 李勇,张波.一种基于深度CNN的入侵检测算法[J].计算机应用与软件,2020,37(4):324-328.
[7] 纪书鉴.基于深度学习的网络流量入侵检测研究[D]. 深圳:中国科学院大学(中国科学院深圳先进技术研究院),2020.
[8] 张勇东,陈思洋,彭雨荷,等.基于深度学习的网络入侵检测研究综述[J].广州大学学报(自然科学版),2019,18(3):17-26.
[9] 郑伟发.基于CNN-LSTM混合模型的入侵检测算法研究[J].网络安全技术与应用,2020(5):61-64.
【通联编辑:闻翔军】