基于Transformer 与BiLSTM 的网络流量入侵检测

2023-03-16 10:20张吉涛高宇飞陶永才
计算机工程 2023年3期
关键词:神经网络分类样本

石 磊,张吉涛,高宇飞,卫 琳,陶永才,2

(1.郑州大学 网络空间安全学院,郑州 450002;2.郑州大学 信息工程学院,郑州 450001)

0 概述

随着计算机互联网技术的快速发展,网络入侵、攻击以及病毒等网络安全问题日益严重,对互联网用户的正常使用造成了极大影响。网络入侵检测技术通过对网络流量进行识别分类,及时发现恶意入侵流量并报告给用户,提醒用户采取进一步措施,从而防止重大安全事故发生。然而,由于互联网规模的不断扩大,网络流量呈现爆炸式增长,结构也愈发复杂,如何提高恶意流量的检测准确率及高效分辨不同恶意流量的类别成为亟待解决的问题。同时,在入侵检测领域中,正常流量数据数量远大于异常数据,若对不平衡数据处理不当,则将导致高假阴性率和低召回率。

目前,入侵检测系统主要分为传统方法和基于机器学习[1]、深度学习[2]的方法两类。传统方法具有一定的局限性,无法适应日益复杂的网络环境和攻击方式。随着机器学习算法在其他领域的成功应用,网络安全领域开始利用机器学习模型实现智能化检测来提高效率[3]。传统计算机网络安全防御方法主要包括防火墙、杀毒软件、网络安全硬件产品等,即通过模式匹配对入侵流量或病毒程序进行识别,这类方法对已有的入侵行为检测效果较好,但对于新型的攻击行为防御效果较差。为此,业界引入机器学习算法,通过学习入侵流量特征进而提高对未知攻击的检出率。文献[4-5]结合随机森林算法进行入侵检测研究,提高了入侵检测的自适应性,在不平衡数据的多分类问题上具有一定优势。文献[6]和文献[7]采用主成分分析(Principal Component Analysis,PCA)对入侵检测数据进行降维:前者使用PCA 方法对KDD 99 数据集进行筛选降维,通过支持向量机(Support Vector Machine,SVM)进行训练;后者首先使用信息增益进行属性特征选取,然后使用PCA 进行数据降维,最后使用朴素贝叶斯(Naive Bayes,NB)进行分类检测。上述方法具有一定优势,但并没有提高对各类攻击的检测率。文献[8]考虑到数据具有时间、空间和内容3 个维度的特点,提出一种多维特征融合和叠加集成机制,从原始数据提取基本特征数据,结合基本特征数据形成综合特征数据,并将决策树作为基本学习算法、随机森林作为元学习算法,通过集成多种决策树,有效提高分类精度。基于机器学习的方法能够分析数据的表层特征,并通过对特征的学习达到自主检测的目的。基于深度学习的方法能够挖掘数据更深层次的特征,提高检测效率、降低误报率,有助于发现潜在安全威胁[9]。文献[10]使用降维技术与特征工程结合的预处理方法产生有意义的特征,并提出两种基于深度学习的检测方法。文献[11]基于数据的维度特征和时间序列特征,使用PCA 简化数据特征,并利用基于迁移学习的堆叠GRU 检测模型对简化后的特征进行入侵检测。文献[12]提出一种遗传卷积神经网络模型,首先使用结合了KNN 适应度函数和模糊C 均值聚类的遗传算法进行特征选择,获取改进的特征子集,然后采用五倍交叉验证选择效果最好的卷积神经网络模型,在NSL_KDD 数据集上进行了模型验证。文献[13-15]采用卷积神经网络和双向长短时记忆(Bidirectional Long Short-Term Memory,BiLSTM)网络相结合的方式进行入侵检测。文献[16-17]借鉴极限学习机(Extreme Learning Machine,ELM)泛化性强的优势,取得了良好的实验效果。

以上方法虽得到了较高的检测率,但没有注意数据集不平衡对模型训练的影响[18]。针对不平衡类分布的问题,学者们进行了大量研究并取得了一定的成果。文献[19]提出一种基于类平衡动态加权损失函数的类再平衡策略,该策略能够有效地处理类的不平衡问题,同时提高了校准性能,但并未分析数据本身的分布特点,无法产生少数类数据。文献[20]提出一种新的困难集采样算法来解决类不平衡问题,该方法首先使用最近邻算法将训练集划分为困难集和容易集,然后通过K-Means 算法压缩困难集中的多数类样本,放大少数类样本。文献[21]结合过采样和欠采样技术来解决不平衡数据的分类问题,使用SMOTE 算法进行过采样,利用互补神经网络进行欠采样,但该方法未考虑SMOTE 算法生成少数类的边缘分布问题。

为了在解决数据不平衡问题的同时提高入侵检测的准确率,建立一种融合单边选择(One-Sided Selection,OSS)、SMOTE 算法以及Wasserstein 生成对抗网络(Wasserstein Generative Adversarial Network,WGAN)[22]的上下采样模型OSW,该模型能够学习到少数类数据的分布,避免生成数据的边缘分布问题。为了使模型在关注重要特征的同时不丢失局部特征间的联系,构建一种结合Transformer和神经网络的入侵检测模型TBD。TBD 模型通过引入多头注意力机制,增加了对不同特征之间以及局部特征与全局特征之间的关注,从而挖掘特征之间的内在联系。同时,使用双向长短时记忆网络保留时序特征,利用深度神经网络(Deep Neural Network,DNN)提取深层次的特征,采用Softmax 分类器对输出进行分类。

1 TBD 模型

首先,对初始数据进行预处理,通过单边选择和SMOTE 算法对原始数据进行上采样和下采样,为避免SMOTE 算法生成数据的边缘分布问题,只生成少量数据。其次,使用WGAN[22]学习少数类数据的分布,并通过生成器进行少数类数据的上采样以构建平衡数据集,将预处理后的数据输入Transformer模块,建立不同特征之间的联系,并且通过多头注意力提取更加丰富的特征信息。然后,将数据输入BiLSTM 神经网络获取前后特征之间的联系以保留时序信息。最后,通过DNN 进一步提取特征并使用Softmax 分类器对特征进行分类识别得到最终结果。TBD 模型借鉴各模型的优点,同时考虑不同特征之间的联系以及特征的时序信息,整体结构如图1 所示。

图1 TBD 模型整体结构Fig.1 Overall structure of the TBD model

1.1 数据预处理

数据预处理过程如图1 中数据处理部分所示。首先,原始数据(X,Y)经过OSS-SMOTE 模块对多数类数据进行下采样,对少数类数据进行初步上采样生成数据(Xos,Y),其中Xs,l表示经过SMOTE 初步上采样后生成的标签为l的真实训练数据。然后,随机噪声数据Xr经过生成器后生成伪造数据Xfake,使用Xs,l和Xfake分别对每个少数类迭代训练判别器和生成器。最后,使用训练好的生成器生成少数类数据(Xg,Y)。

1.1.1 OSW 模型

OSS 算法是一种经典的欠采样算法,结合了Tomek links 和KNN,能够在对多数类数据进行采样的同时去除噪声。不同于随机移除样本,它在评估每个样本所含信息量大小的基础上决定移除哪些样本。Tomek links 指(xi,xj)样本对,存在以下关系:

其中:d(xi,xj)表示xi和xj之间的欧氏距离;xi表示少数类;xj表示多数类;xk表示任意其他样本。

由Tomek links 的定义可知,被标记为Tomek links 的样本是边界样本或噪声样本。OSS 算法以最近邻原则筛选出分类错误的样本,并在这些样本中找到Tomek links 样本对,移除多数类样本并保留少数类样本,达到下采样的目的。

SMOTE 算法的基本思想是随机在少数类样本中选择一个样本中心Xo,通过KNN 算法找到Xo的k个邻近同类样本并从中随机选择一个样本Xs。通过Xo和Xs合成新样本,如式(3)所示:

其中:rand(0,1)表示一个0~1 的随机数;Xnew表示新生成的样本。

SMOTE 算法通过在少数类样本间生成新的少数类样本来达到数据平衡,但该算法无法克服非平衡数据集的数据分布边缘化问题,容易模糊多数类与少数类的边界,从而增加分类难度。如果初始数据量过少,则WGAN 也无法充分学习少数类数据的分布。为解决上述问题,本文提出OSW 模型,在SMOTE 生成数据的基础上使用生成对抗网络(Generative Adversarial Network,GAN)来充分学习少数类数据的分布,从而使生成数据的质量更佳。由于GAN 存在梯度不稳定且生成器梯度容易消失的问题,因此使用WGAN 代替GAN。相较于原始GAN,WGAN 去除了判别器最后一层的Sigmoid 并采用Earth-Mover 距离作为Loss,其Loss 函数计算如式(4)、式(5)所示:

其中:Loss(c)和Loss(g)表示WGAN 中判别器和生成器的损失函数;gθ表示WGAN 中的生成器;fw表示WGAN 中的判别器;x表示真实数据;z表示随机噪声数据;m表示一个batch 的大小。

在对WGAN 网络进行训练时,Adam 会导致模型训练不稳定的问题,因此采用RMSProp 作为WGAN 网络训练的优化器。

1.1.2 MLP 编码

实验使用NSL_KDD 数据集[23]对模型进行训练验证。在该数据集中有9 个数据是离散型数据,使用one-hot 对其进行编码处理,并将其插入初始特征,作为整体的一部分进行训练。

类似于自然语言处理中的词嵌入层,使用一个多层感知机(Multilayer Perceptron,MLP)对每个特征数据进行数据编码,将特征放大映射到不同的子空间,提取更丰富的特征并达到模型要求的输入维度,同时在训练时动态调整MLP 的参数。MLP 结构如表1 所示。

表1 MLP 结构Table 1 Structure of MLP

在二分类和五分类实验中,原始数据标签具有38 种攻击类型,因此需要对原始数据中的标签进行预处理。在执行二分类任务时,将标签分为正常(Normal)和非正常(Abnormal)2 类,在执行五分类任务时将标签分为正常以及端口扫描攻击(Probing)、远程未授权访问攻击(R2L)、拒绝服务攻击(DOS)、本地提权攻击(U2R)等5 类。

1.2 Transformer 模块

Transformer 原始模型结构包含编码和解码两部分,由于入侵检测任务的具体需要以及数据集中每条数据定长的特点,TBD 模型只使用Transformer 中的编码部分,并对其中某些参数进行微调。编码部分包括一个多头注意力机制和一个前馈神经网络。注意力机制使用点积注意力,包含query、key 和value 等3 个输入,使用query 和key 计算出分配给每个值的权重分数,之后将该权重与value 计算加权和得到输出,使用点积注意力进行并行运算,减少训练时间。注意力计算如式(6)所示:

其中:Q、K、V分别代表Query、Key、Value 矩阵;dk为Key 的维度。

由于实验输入数据的特点,省去原模型中的Mask 部分。为了使提取的特征更加丰富,使用多头注意力结构。多头注意力计算如式(7)所示:

其中:i=1,2,…,n,n为注意力头的个数;WO表示一个可以学习的矩阵,其作用是与多个注意力头拼接后的结果进行线性变换。

前馈神经网络部分只有一个隐藏层的感知机,输入输出维度相同,由于单隐藏层网络非线性映射能力较弱,考虑到计算复杂度以及映射能力之间的平衡,因此设置隐藏层神经单元个数为输入层的2 倍。使用高斯误差线性单元激活函数GeLU 作为激活函数,其相比于ReLU 增加了随机性,计算公式如式(8)所示:

整个Transformer-Encoder 模块结构如图2 所示,使用残差连接防止出现梯度消失问题。

图2 Transformer-Encoder 模块结构Fig.2 Structure of Transformer-Encoder module

1.3 BiLSTM-DNN 结构

长短时记忆(Long Short-Term Memory,LSTM)[24]网络是一种解决了长序列远距离信息丢失的循环神经网络(Recurrent Neural Network,RNN),用来处理时序信息并解决了RNN 结构中存在的梯度爆炸和梯度消失问题,可记忆有价值的信息。BiLSTM 网络由一个前向LSTM 和一个反向LSTM 组成,包含了前向和反向的所有信息,结构如图3 所示。

图3 BiLSTM 网络结构Fig.3 Structure of BiLSTM network

输入层(Input)将输入数据分别输入前向网络(Forward)和反向网络(Backward)中,对网络的输出(Output)进行拼接处理,输出如式(9)所示。使用前向和反向的最后一个输出进行拼接,作为下一层的输入,并且设置输出维度为2 倍的输入维度以尽可能降低模型的复杂度。

其中:hj表示第j条输入数据经前向输出和反向输出拼接后的最终输出结果,j=1,2,…,n1,n1表示输入数据的总数。

深度神经网络通常也被称为多层感知机,是深度学习的一种框架,TBD 模型中DNN 具有两个隐藏层。使用ReLU 作为激活函数,随机失活率(Dropout)设置为0.5。DNN 结构如表2 所示,其中*表示根据实际需求进行设置,如果进行N分类任务,则设置为N。DNN 计算通式如式(10)所示:

表2 DNN 结构Table 2 Structure of DNN

2 实验与结果分析

2.1 实验环境

实验操作系统为Ubuntu20.04 服务器版,处理器为Intel Xeon Silver 4210,内存为64.0 GB,GPU 为NVIDIA Tesla T4 16 GB,编程语言为Python 3.8,学习框架为PyTorch 1.8.1。

2.2 实验数据集

实验数据使用NSL_KDD 数据集。该数据集是TAVALLAEE 等[23]针对KDD CUP 99 数据集存在大量冗余记录、各类数据分布不均匀等问题进行改进生成的新数据集,包含KDDTrain+、KDDTest+、KDDTest-21、KDDTrain+_20Percent 等4 个子数据集,其中,KDDTrain+包含125 973 条记录,KDDTest+包含22 544 条记录,KDDTrain+_20Percent包含KDDTrain+中的前25 192条记录。实验使用KDDTrain+_20Percent作为训练集,使用KDDTest+作为测试集。在数据集中的类标签表示正常和攻击类型,其中有1个正常类型和4个攻击类型,分别为Normal、Probing、R2L、U2R、DOS。各类型数据在训练集和测试集上的数量及所占比率如表3 所示。

表3 初始数据集详情Table 3 Details of initial dataset

训练集经过OSW 数据预处理后的数据集详情如表4 所示。

表4 预处理后的训练集详情Table 4 Details of pre-processed training set

2.3 评价标准

实验指标由表5 中的混淆矩阵计算得到,其中,真正例(True Positive,TP)是将正常样本预测为正常的数量,真反例(True Negative,TN)是将异常样本预测为异常的数量,假反例(False Negative,FN)是将正常样本预测为异常的数量,假正例(False Positive,FP)是将异常样本预测为正常的数量。

表5 混淆矩阵Table 5 Confusion matrix

实验使用的评价指标主要有准确率(A)、查准率(P)、召回率(R)和F1-score,其中,准确率表示模型能够正确分类的样本数占总样本数的比率,查准率表示被正确分类的样本数与被检索到的样本数的比率,召回率表示被正确分类的样本数与应当被正确分类的样本数的比率,F1-score 表示基于查准率和召回率的调和平均数,计算公式分别如式(11)~式(14)所示:

在多分类任务中,将所有分类正确的数据个数除以总的数据个数得到多分类的准确率,如式(15)所示:

分别计算每一个分类类型的查准率、召回率和F1-score,之后对这些数值求和并求平均得到多分类任务的评价标准。以查准率为例的计算公式如式(16)所示:

其中:m表示分类类型个数。

2.4 参数设置

不同的超参数设置会影响模型收敛速度和实验结果,本文实验超参数配置情况如表6 所示。

表6 超参数配置Table 6 Configuration of hyperparameters

在训练过程中,TBD 模型实验采用Adam 优化器来优化模型参数,能够自动调整学习率(Learning Rate),但初始学习率仍需要通过实验来确定,否则可能直接收敛到很差的局部最优点。

2.4.1 学习率参数调优实验

图4 给出了在不同学习率下训练集和测试集上的损失值变化情况。由图4 可以看出:当学习率设置为0.000 01 时,TBD 模型在训练集和测试集上均无法拟合;当学习率设置为0.000 1 或0.001 时,TBD模型在训练集上能很好地进行拟合,但在测试集上学习率为0.000 1 时的拟合效果优于学习率为0.001时的拟合效果。因此,选择0.000 1 作为TBD 模型的训练学习率。

图4 不同学习率下的实验结果对比Fig.4 Comparison of experimental results with different learning rates

2.4.2 Dropout 参数调优实验

图5 给出了在不同Dropout 下训练集和测试集上的损失值变化情况。由图5 可以看出:当Dropout为0.7 时,由于TBD 模型训练时丢弃网络单元过多导致无法充分学习数据特征,损失值下降,拟合效果不佳;当Dropout 为0.3 或0.5 时,TBD 模型在一定的训练时代之后均出现了不同程度的过拟合现象;当Dropout 为0.5 时,TBD 模型在测试集上的拟合效果优于将Dropout 设置为0.3 时的拟合效果。此外,还可以采取提前终止训练的方法避免TBD 模型过拟合问题。综上,TBD 模型选择0.5 作为Dropout的值。

图5 不同Dropout 下的实验结果对比Fig.5 Comparison of experimental results with different Dropouts

2.5 结果分析

使用常用的SVM、决策树(Decision Tree,DT)、随机森林(Random Forest,RF)等机器学习算法以及以下4 个深度神经网络模型作为实验对比方法:

1)BiLSTM-DNN(BD)。该模型在TBD 模型的基础上略去了Transformer 模块,将其作为实验对比模型以探究Transformer 模块在本文模型中的重要作用。

2)MultiAttention-BiLSTM-DNN(MABD)。该模型是在TBD 模型的基础上将Transformer 模块替换为多头注意力模块,用于探究Transformer 模块中的前馈神经网络以及残差连接对训练准确度提升的作用。

3)Transformer-DNN(TD)。该模型在TBD 模型的基础上略去了BiLSTM 模块,用于探究BiLSTM模块在保留数据时序特征和长距离依赖信息的作用上是否对分类结果产生影响。

4)Position-Transformer-DNN(PTD)。该模型在Transformer 的本体结构中,使用位置向量来保留数据中的时序信息,通过在TBD 模型中添加位置向量信息并略去BiLSTM 模块来探究BiLSTM 模块相对于位置向量的优越性。

在进行和未进行训练集数据平衡处理的情况下对各个模型和算法进行训练验证,并且设置无下采样、聚类中心(ClusterCentroids)和随机下采样(RandomUnder)等3 种算法来取代数据预处理中的下采样算法以验证OSS 的有效性。实验结果如表7所示,其中SW 表示SMOTE+WGAN。

表7 不同深度神经网络模型及机器学习算法的实验结果对比Table 7 Comparison of experimental results of different deep learning network models and machine learning algorithms %

由表7 可以看出:

1)对于二分类而言:本文提出的OSW+TBD 模型准确率达到90.3%,高于经过数据平衡处理的其他对比模型和算法;省去了前馈神经网络以及残差连接的OSW+MABD 模型的准确率为87.5%,位居第二,表明Transformer 模块相对于单纯的多头注意力模块具有一定的优越性;其他模型和算法的准确率都在87.0%以下;TBD 模型的F1-score 较高。由此可以看出,经过数据平衡处理后,各个模型的实验指标均得到较大提升,同时OSS 算法相对于其他下采样算法在实验中具有微弱优势,这证明了数据平衡处理的必要性以及OSW 数据平衡处理模型的有效性。综上所述,TBD 模型相对于只学习浅层特征的SVM、RF、DT 等传统机器学习算法更具优越性,通过与BD、MABD、TD、PTD 等模型的比较也验证了TBD 模型中每个模块都具有重要的作用。

2)对于五分类而言:本文提出的OSW+TBD 模型准确率达到了79.8%,高于其他对比模型;OSW+TD 模型的准确率达到79.5%,位居第二;在二分类实验中表现较好的OSW+MABD 模型的准确率只有70.4%,但文献[25]指出准确率这一指标在不平衡数据中具有欺骗性,业界通常使用其他评估指标对不平衡学习进行评估,例如F1-score。由此可以看出,在经过OSW 训练集数据平衡处理后,TBD 模型的F1-score 达到59.4%,优于其他模型。

综上所述,在多分类实验中,数据平衡处理具有重要的意义。相较于其他模型和算法,本文提出的OSW+TBD 模型在各类指标对比中均具有优越性。

3 结束语

本文构建针对不平衡数据处理的OSW 模型以及TBD 入侵检测模型。OSW 模型充分发挥了SMOTE 算法和Wasserstein GAN 的优势,能够学习少数类数据的分布特征。在TBD 模型中:Transformer 模块通过多头注意力机制关注不同属性特征之间的联系,提取更加丰富的特征;BiLSTMDNN 模块进一步提取深层次特征,并保留了特征的时序信息。实验设置BD、MABD、TD、PTD 等4 种对比模型,验证了TBD 模型中Transformer 模块以及Transformer 模块中前馈神经网络和残差连接的重要作用,也验证了BiLSTM 获取长距离依赖和保留时序信息的能力对结果具有重要影响。此外,通过对比进行和未进行训练集数据平衡处理的模型实验结果,证明了数据平衡处理的重要性和OSW 数据平衡处理模型的有效性。下一步将利用OSW 模型减少不平衡数据的影响,融合网络流量包数据以及人工提取特征,以解决模型普适性[26]问题,并利用深度学习技术在特征提取方面的优势,进一步提高检测准确率。

猜你喜欢
神经网络分类样本
分类算一算
用样本估计总体复习点拨
神经网络抑制无线通信干扰探究
分类讨论求坐标
推动医改的“直销样本”
数据分析中的分类讨论
教你一招:数的分类
随机微分方程的样本Lyapunov二次型估计
基于神经网络的拉矫机控制模型建立
村企共赢的样本