基于ICNN-MMD的网络入侵检测方法

2024-01-02 08:35李卓文邓在辉叶彩瑞
软件导刊 2023年12期
关键词:源域神经网络分类

李卓文,邓在辉,叶彩瑞,彭 涛

(武汉纺织大学 计算机与人工智能学院,湖北 武汉 430200)

0 引言

网络技术发展使人们联系更紧密,在带来便利的同时,各种网络安全问题也不断浮现,一旦民生等重要设施被境外攻击者入侵,后果将非常严重。为了应对上述问题,工业界和学术界提出了许多解决方案,网络入侵检测系 统(Network Intrusion Detection System,NIDS)为其中之一。

虽然,基于深度学习的网络入侵检测方法极大提升了检测性能,但需要大量带标签数据才能训练出更好的攻击分类模型。与此同时,标注攻击流量本身也是一项耗时长、易出错的工作[1-2]。此外,深度学习方法只有在新数据与原有数据具有相同特征空间与统一分布的条件下才具有较好的性能,这意味着在网络入侵检测领域中一旦检测到新型攻击,模型就需要耗费大量计算资源重新训练,并未较好运用原有模型蕴含的知识。因此,迁移学习[3]方法被提出,其核心思想是从原有数据集中提取信息并重新应用于新数据集,即利用源域数据集知识提升目标域的任务性能[4]。

本文提出一种基于改进卷积神经网络结合最大均值差异(Improved Convolutional Neural Network and Maximum Mean Discrepancy,ICNN-MMD)的迁移学习网络入侵检测方法,通过无监督域适应方式最小化源域与目标域间距离,实现两者特征迁移,达到提升模型泛化能力的目标。实验表明,本文所提方法的各项总体指标相较于现有方法提升较大,证实了所提方法的有效性。

1 相关工作

张阳等[5]使用简单抽样与SMOTE 算法平衡KDD99 数据集,随后利用常见的传统机器学习算法分别在平衡前后的数据集上进行测试,但并未改进机器学习算法。其中,采用KNN 算法在少数分类攻击类型上的检测准确率较差。由于传统机器学习方法未能较好提取数据特征,学者们开始研究基于深度学习的入侵检测方法。时东阁等[6]利用卷积神经网络提取特征,通过Softmax 回归进行多分类,最后采用Focal loss 函数优化数据集不平衡问题,但需要花费较长的训练时间。Sun 等[7]组合CNN 与LST 提取数据集的时空特征,利用分类权重优化方法平衡数据集以提升检测率,但在CICIDS2017 上测试时,由于数据较少导致攻击类型Heartbleed、SSH-Patator 的检测率较差。Kunang等[8]结合预训练的自编码器(Auto Encoder,AE)与深度神经网络(Deep Neural Network,DNN)实现入侵检测,模型使用自动超参数优化过程寻找最优配置,预训练阶段使用AE、深度自编码器(Deep Auto Encoder,DAE)、堆叠自编码器(Stacking Auto Encoder,SAE)提取特征,其中深度自编码器结果最优。Gao 等[9]设计基于深度神经网络与联合分析(Association Analysis,AA)的异常检测系统,使用Apriori算法构建数据集各种特征间的关联规则,然后匹配分类数据与规则,将不匹配的信息识别为恶意流量,生成报警日志,但该方法相较于部分方法在NSL-KDD 的二分类精确度偏低,深度神经网络依然存在改进空间。

迁移学习作为新的学习方法,学者们尝试将迁移学习应用到网络入侵检测领域。彭雨荷等[10]提出基于联合分布适配的迁移学习方式,寻找最优变换矩阵以适配源域、目标域的边缘概率、条件概率,实现源域与目标域的特征迁移,解决源域与目标域间的分布差异导致检测率降低的问题。然而,该方法会产生高维特征迁移矩阵的搜索问题,对训练集规模具有一定要求,且在大规模数据集上训练模型时收敛速度较慢。Singh 等[11]提出一种基于广义深度迁移学习(Transfer Learning,TL)的高扩展性堆叠GRU模型处理网络入侵检测中的多维数据、多变量时间序列的回归与分类问题,但实现较为复杂。卢明星等[12]设计的迁移学习框架由嵌入层和标签层实现编解码,权重由源域、目标域共享,用于知识迁移。在嵌入层中,通过最小化域间嵌入实例的KL 散度来强制源域与目标域数据分布相似;在标签编码层中,使用Softmax 回归模型编码分类源域标签信息。Li 等[13]提出基于主动迁移学习的入侵检测算法AcTrAdaBoost,该算法准确率、训练时间相较于其他算法更优,但更适用于单个源域且目标域存在少量数据标注的条件下。

2 ICNN-MMD模型

本文提出的ICNN-MMD 模型采用暹罗式网络,源域数据与目标域数据共享神经网络权值,具体结构如图1 所示。ICNN-MMD 的神经网络包含5 个卷积层,两个最大池化层,4 个全连接层[14]。其中,卷积层1-3 使用RELU 激活函数增大网络稀疏程度,全连接层1、2 使用Dropout 方法防止过拟合。

Fig.1 ICNN-MMD model structure图1 ICNN-MMD模型结构

网络采取跨层聚合的设计方式,跨层是指从卷积层2开始保存卷积结果,随后分别进行卷积、池化、全连接操作,聚合是指利用Tensorflow 的concat 函数合并操作全连接层2、4 的输出数据。最后,通过Softmax 分类计算分类损失值并反向传播,不断修正网络权值和偏置值,直至模型收敛,ICNN 结构如图2所示。

Fig.2 ICNN model structure图2 ICNN模型结构

为了实现源域与目标域间的域适应(Domain Adaption,DA),本文设计的卷积神经网络架构[15]引入适配层(Adaptation Layer,AL)与域损失(Domain Loss,DL),将入侵检测数据集的训练集作为源域数据,测试集作为目标域数据,二者共享神经网络权值。在模型训练时,DL 与原有损失共同计算并反向传播,逐渐优化、调整卷积神经网络的权值与偏置值,具体网络架构如图3所示。

Fig.3 Structure of convolution neural network in this paper图3 本文卷积神经网络结构

为了定量描述源域与目标域间的差异(域损失),引用标准分布度量,即最大均值差异(Maximum Mean Discrepancy,MMD),具体计算公式为:

其中,φ(·)为定义表征,xs∈XS表示源域数据,xt∈XT表示目标域数据。

因此,新架构的网络优化目标是最小化分类损失与MMD 距离,如式(2)所示。

其中,LC(XL,y)表示标签数据XL的分类损失,XL为Ground Truth 标签,MMD(XS,XT)表示源域数据XS和目标域XT的距离,λ为超参数,决定了域适应的强度。若该参数设置过低将导致MMD 正则化在学习表征时效果较差,设置过高会导致数据点距离过近,学习表征退化。

3 数据预处理

3.1 实验数据集

本文采用的NSL-KDD 数据集相较于KDD CUP 99,在模型训练上收敛速度更快,样本数据分布更均衡合理,可利用性更高,一定程度上提升了模型的泛化能力[16-17]。其中,训练集KDDTrain+包含125 973 条记录(约18.2 MB),测试集包含KDDTest+与KDDTest-21,分别包含22 544 条记录(约3.28 MB)、11 850 条记录(约1.69 MB)。表1 为NSL-KDD 数据样本分布。

Table 1 Sample distribution of NSL-KDD dataset表1 NSL-KDD数据集样本分布

由表1 可见,数据集中包含正常类数据(Normal)和另外4 种攻击类型数据,分别为Probe、DoS、U2R、R2L,而他们又可细分为39 个小类攻击类型。因此,NSL-KDD 数据集的每条记录均为42 维,包含38 维数字特征,3 维符号特征与1个攻击类型标签(Label)。

3.2 数据预处理

3.2.1 独热编码(One-Hot Encoding)

NSL-KDD 的3 个符号特征分别为protocol_type、service、flag。具体的,protocol_type 在数据集中包含TCP,UDP、ICMP,编码为3 维二进制向量;service 在数据集中有70 类,编码为70 维二进制向量;flag 编码为11 维二进制向量。包括其他数值特征,数据集中的每条记录始终为122维向量。

3.2.2 归一化

NSL-KDD 数据集中各特征数值范围不同,即存在明显差异,如果直接送入模型训练会导致收敛速度缓慢、波动较大、模型精度较差等问题。归一化操作是将各区间数据映射到统一、特定区间,以此加速模型收敛速度。为此,本文将各特征数值缩放至[0,1]区间,具体计算公式如下:

其中,x为某个特征值,xmin表示数据集中对应该特征的最小值,xmax表示数据集中所对应特征的最大值,xnorm为归一化处理后的结果。

4 实验结果与分析

4.1 实验设计

本文通过实验验证所提方法是否能使源域与目标域间的域适应为目标域带来增益,并依据此方法所构建的多分类器是否能提升目标域的效果。

实验将训练集KDDTrain+作为源域数据,测试集KDDTest+、KDDTest-21 作为目标域数据并进行多分类输出。同时,实验分为两次训练,第一次在最优超参数的情况下使用源域数据训练ICNN 模型,然后在目标域数据上测试得到结果;第二次为基于ICNN-MMD 的方法训练,即在第一次训练好的ICNN 模型基础上使用不带标签的目标域数据,以无监督方式进行基于MMD 的域适应优化训练。随后,分别比较两次训练在目标域数据上的实验结果,包含总体指标和多分类指标。最后,将本文算法与现存算法进行比较。

4.2 实验环境

本文实验在Windows 10 下进行,处理器为Intel i7-7700HQ,显卡为NVIDIA GEFORCE GTX 1050,显存为4GB。为提高程序运行效率,采用基于GPU 的Tensorflow-GPU 框架及Keras API,使用Pycharm 2019平台进行开发。

4.3 实验指标

本文使用检测准确率(Accuracy)、精确度(Precision)、召回率(Recall)和F1 值(F1-Score)作为评价指标。其中,检测精度为测试数据检测过程中得出的检测精度。

(1)准确率。准确率越高代表模型性能越好。

(2)误报率。误报率是正常流量被错误的判断为攻击的比例。

(3)精确度。精确度是精确性的度量值,精确度计算值通常为Precision=1 -FAR,也可通过公式(6)求解。

(4)召回率。召回率是覆盖面的度量值,该值表示真实为正中被预测为正的比例。

(5)F1 值。F1 值是综合计算Precision 与Recall 的指标值,能表示模型整体性能。

对于整体数据集而言,除误报率外的指标越高越好;对于模型分类而言,精确度、召回率越高代表分类效果越好,但仅靠准确率可能无法判断模型的分类优劣。

4.4 结果分析

经过多次组合训练,第一次训练最优参数Epoch=50,学习率为0.05,batch_size=50,优化器选择随机梯度下降优化器。第二次训练最优参数epoch=10,学习率为0.005,lambda=30,优化器也选择随机梯度下降优化器。表2、表3均将KDDTest+作为目标域数据,表2展示多分类指标,表3展示总体指标。由表2 可见,ICNN-MMD 方法相较于ICNN,Normal 准确度提升0.13%,DoS 提升4.06%,Probe 提升0.41%,U2R 提升2.98%,R2L 提升0.38%。由表3 可见,ICNN-MMD 总体指标优于ICNN,Accuracy 提升1.5%,Precision提升0.26%,Recall提升2.54%,F1值提升1.9%。

Table 2 Multi-classification accuracy performance of ICNN-MMD on KDDTest+表2 ICNN-MMD在KDDTest+上多分类准确率指标(%)

Table 3 Global performance of ICNN-MMD on KDDTest+表3 ICNN-MMD在KDDTest+上总体指标(%)

表4、表5 将KDDTest-21 作为目标域数据。表4 展示多分类指标,表5 展示总体指标。由表4 可见,ICNN-MMD方法的多分类指标均有提升,Normal的准确度提升0.65%,DoS 提升7.21%,Probe 提升0.46%,U2R 提升1.49%,R2L 提升0.38%。

Table 4 Multi-classification accuracy performance of ICNN-MMD on KDDTest-21表4 ICNN-MMD在KDDTest-21上多分类准确率指标(%)

Table 5 Global performance of ICNN-MMD on KDDTest-21表5 ICNN-MMD在KDDTest-21上总体指标(%)

由表5 可见,ICNN-MMD 相较于ICNN,Accuracy 提升2.96%,Precision 提升0.54%,Recall 提升3.46%,F1 值提升3.0%。

为直观观察模型表现,表6 给出了KDDTest+数据集在多分类上的混淆矩阵,其中纵列为真实类,横列为预测类。由此可见,大多数样本被正确分类,位于对角线上,但U2R、R2L类型更多地被误判为Normal类型。

Table 6 Confusion matrix on KDDTest+表6 KDDTest+上的混淆矩阵

表7 为KDDTest+每个攻击分类的FAR 和Recall 指标。由于NSL-KDD 训练集中U2R、R2L 类型数据较少,由此可见U2R、R2L类型的误报率偏高,检出率偏低。

Table 7 Multi-classification attack performance表7 多分类攻击指标(%)

将本文所提方法与RF、DT、GaussianNB、BiLSTM、GoogleNet 和DLNID 方法进行比较,总体指标均在KDDTest+上测试所得,如表8 所示。由此可见,本文提出的ICNN-MMD 方法优于ICNN;DLNID-MMD 方法也优于DLNID。整体而言,本文所提方法的总体指标值均高于其他算法。

Table 8 Overall indicators of various methods on KDDTest+表8 各类方法在KDDTest+上总体指标(%)

5 结语

在目前网络环境中,网络设施数据交换量大,攻击类型多样,人工标注的数据集规模极为有限。为此,本文提出基于ICNN-MMD 的网络入侵检测方法,首先将NSLKDD 数据集预处理为适合神经网络输入的格式;然后将实验分为两次训练过程,第一次以最优参数预训练ICNN 模型,第二次则在前者的基础上利用无标签目标域数据进行无监督的域适应优化训练;最后将两次训练的模型与第一次训练和其他方法进行比较。

实验表明,本文所提方法提高了网络入侵检测模型的总体指标。此外,由于KDDTest-21 同源域数据分布差异更大,将KDDTest-21 作为目标域数据相较于KDDTest+对模型的提升更明显。

猜你喜欢
源域神经网络分类
分类算一算
基于参数字典的多源域自适应学习算法
神经网络抑制无线通信干扰探究
分类讨论求坐标
数据分析中的分类讨论
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
可迁移测度准则下的协变量偏移修正多源集成方法
基于支持向量机回归和RBF神经网络的PID整定