一种类平衡和CNN结合的网络入侵检测方法
2023-08-10郭三田
郭三田 柳 毅
(广东工业大学计算机学院 广东 广州 510006)
0 引 言
随着网络技术的快速不断发展,互联网给我们的生活带来极大帮助的同时,针对计算机网络攻击的数量也在急剧增加。因此,网络信息安全检测对于保障人们的生活和维护网络空间安全具有重大的意义。常用的网络安全系统是网络入侵检测系统NIDS(Network Intrusion Detection System)。它主要是通过使用软件或者硬件工具来监视计算机网络和主机,当检测到异常流量时,会触发某些限制操作,并将异常上报给网络安全管理员。
目前,基于NIDS的机器学习算法可分为浅层学习和深度学习两种。
传统的浅层机器学习算法主要囊括:K最近邻算法、贝叶斯网络模型、支持向量机、随机森林等。文献[1]提出基于极限学习机(ELM)特征映射的K最近邻算法(KNN)的入侵检测模型,其主要是借助ELM将样本转变为线性可分,再利用KNN对攻击样本进行分类识别;文献[2]提出了一种基于贝叶斯攻击图的网络入侵意图识别方法,其根据提取到的有效报警证据进行贝叶斯后验推理,从而动态更新攻击图中各状态节点遭受攻击的概率,进而识别网络中已发生和潜在的攻击行为。文献[3]提出了一种基于PCA和LDA特征提取的二进制支持向量机SVM分类器,它在处理小样本数据集时检测率较高,但由于其时间以及空间复杂度的局限性,当处理大规模数据集时性能较差;文献[4]提出了一种基于随机森林的特征选择入侵检测方法,其思想主要是选择对分类最重要和最相关的特征,从而削减输入特征的数量和所花费的时间,提高分类的准确性。文献[5]提出一种基于特征选择的入侵检测技术,借助离散化与特征选择算法来生成多个特征子集,对提取后的特征用分类算法进行建模学习,进而实现攻击检测识别。浅层机器学习模型虽然都提高了检测率,但其比较依赖于特征选择,不适用于处理高维非线性的网络流量特征数据。
近年来,深度学习技术因其强大的自动特征提取能力在图像识别、语音识别、自然语言处理等方面获得了很大的突破,不少学者也开始将深度学习算法应用于入侵检测领域中,其中的模型主要囊括深度置信网络(DBN)、深度神经网络(DNN)、卷积神经网络(CNN)、循环神经网络(RNN)等。文献[6]将基于改进的增量卷积神经网络CNN应用于IDS中,其可以自动学习特征之间的内部属性关系,而不需要手动提取特征,但其在处理海量数据集时的鲁棒性仍有待提高;文献[7]利用深度置信网络对大量高维、非线性的无标签原始数据进行降维处理,从而获得原始数据的压缩低维表示,而后经过多类支持向量机分类器对所获得低维特征进行识别分析处理,然而该模型不能很好地解决数据类别分布不均衡的难题。文献[8]的作者设计一个堆叠的非对称深度自动编码器,并且使用随机森林算法作为分类器来识别网络攻击类别,但其训练的深度神经网络DNN很复杂,难以在大规模数据集中进行扩展;文献[9]提出了一种基于深度神经网络DNN(Deep Neural Networks)的入侵检测方法,其能挖掘高维数据的潜在特征,分类识别能力较强,但其没有解决训练过程中的权重优化问题。文献[10]针对数据量大、训练时间长、容易陷入局部最优的问题,提出一种基于深度置信网络和概率神经网络(PNN)的入侵检测方法。文献[11]提出一种基于深度神经网络的入侵检测方法,使用较少的连接和参数,具有易于训练等优点,但存在检测率不高的问题。相对于传统的浅层学习算法,深度学习模型对于高维复杂的网络流量数据有更好的识别检测结果。
目前基于NIDS的机器学习网络入侵检测范畴面临的一个重要挑战就是异常流量数据样本类分布不均衡的问题,一些攻击样本如拒绝服务攻击(DoS)的连接数量远大于其他的攻击如跨站脚本攻击(Web Attack XSS)。同时现有的基于机器学习的入侵检测方法大多数在于研究如何降低整体的平均漏报率,而忽略了少数类别攻击样本的入侵检测问题,但在现实的互联网环境中,少数种类样本的入侵攻击比多数类别样本的攻击危险性更大。
针对以上存在的问题,本文提出一种类平衡和CNN结合的网络入侵检测方法。首先,在数据预处理阶段,采取ROS-GMM算法对少数类样本进行过采样的同时对大多数类样本进行聚类欠采样,至此所有类别的样本数据均统一到一个确定的实例,而后通过CNN多个堆叠的卷积以及池化操作对平衡数据集上网络流量的特征属性关系进行提取,进而挖掘出潜在的异常样本,最后利用Softmax回归输出检测结果。在CICIDS2017数据集上的实验结果表明,该模型在保持较高检测率的同时,对少数类攻击样本的检测率有了更大的提升。
1 相关算法
1.1 随机过采样(ROS)算法
ROS采取有放回抽样的办法从少数类样本抽取新样本以达到补充少数类样本的目的。
1.2 高斯混合模型(GMM)算法
GMM是参数化的概率分布模型,表示多个高斯分布函数的线性组合。假设所有样本都来自具有不同参数的多个高斯分布,则隶属于同一分布的样本将被划为同一聚类,GMM可根据式(1)返回样本x属于不同聚类的概率。
(1)
(2)
1.3 ROS-GMM算法
为了避免单独过采样所导致的过多冗余数据,引起时间和空间成本的增加以及单独下采样所带来的部分重要特征丢失,提出一种新的类平衡算法ROS-GMM,它可以显著地提高少数种类攻击样本的检测率。该算法将训练数据集上所有类别样本重新采样到统一的数量实例IResample[12]。IResample的定义如式(3)所示。
(3)
式中:N为训练集上的样本总数;C为相对应的类别标签数。
算法1ROS-GMM算法
输入:training data set B={Bi,i=1,2,…,C}。
//C为总的类别数,|B|=N为训练集上总的样本数
输出:B′
//类平衡的训练数据集
2. for i←1 to C do
3. if |Bi| 5. end if 6. if |Bi|>IResamplethen 7. Hk=GMM(Bi,C) //使用GMM将Bi欠采样成C个类,k=1,2,…,C 8. for k←1 to C do 10. end for 12. end if 14. end for 15. return B′ //返回类平衡的训练数据集 CNN的网络框架一般由输入层、卷积层、池化层、全连接层和输出层5部分组成。 (4) 式中:h为非线性ReLU激活函数;j为卷积核的序列号;b为偏置值;n为网络流量特征的维度数;Xi;i+d-1是由Xi,Xi+1,…,Xi+d-1所拼接而成的特征子序列。利用卷积核对X0;d-1到Xn-d+1;n中的每个特征子序列进行迭代遍历后,得到如式(5)所示的新特征属性图。 (5) 将所有经卷积运算后生成的特征图进行堆叠得到如式(6)所示的新特征图序列。 Vm=[v1,v2,…,vn-d+1] (6) 池化层用来对卷积后生成的特征序列Vm进行池化运算,常用的池化运算有最大池化[13]和均匀池化,本文选用最大池化。首先特征图Vj通过池化操作后被分成N块,将每块中的最大值按顺序连接起来,从而得到如式(7)所示的长度为N的向量pj: (7) 全连接层由一个线性函数和激活函数组成,式(9)使用ReLU激活函数对池化层处理后得到的特征pj进行非线性变换得到ui,式(10)使用Softmax回归函数得到各流量特征ui的权重Wβ=[β1,β2,…,βn],并将其分类输出。 ReLU(x)=max(0,x) (8) (9) βi=Softmax(Wui) (10) 基于类平衡与CNN结合的异常流量入侵检测模型包括以下4个步骤,如图1所示。 图1 基于类平衡与CNN结合的入侵检测框架 1) 数据预处理。通过独热编码技术将类标签的字符型特征映射为数值型,并剔除掉数据集中的冗余特征,最后将数据进行标准归一化处理,使数据集合乎均值为0、方差为1的高斯正态分布。 2) 类平衡处理。采取随机过采样ROS算法来增添训练集中少数类别样本的数量,同时利用GMM算法来对数据集中的多数类别样本进行聚类欠采样,最终使训练集上所有种类别的样本数量均与IResample一致。 3) 网络流量高维特征提取。将上述处理后的数据输入到CNN框架中进行网络权重学习,挖掘出相关性最大的异常流量高维特征属性。 4) 分类器。通过Softmax回归对网络流量的高维数据特征属性进行识别分类,并输出分类结果。 表1列出了本文所采用的整体CNN框架以及相关超参数,卷积层中卷积核的数量依次为32-32-64-64。同时在模型训练时,将batch-size设为256,epochs设为20。 表1 CNN框架和超参数的设定 在模型训练的时候,可依据损失函数来优化目标函数,并根据BP反向传播算法来对参数进行调整。本文选择交叉熵损失函数作为模型的迭代优化对象。另外,为了避免模型在训练时产生过拟合现象,模型在卷积池化操作后需使用dropout正则化和批量归一化Batch Normalization(BN)技术对数据进行优化处理。 (11) 式中:W为权重矩阵;b为偏置;yi为实际值;f(xi)为分类器的预测值。 本文采用Nadam[14]来作为优化算法,其学习率设为0.008,参数的迭代更新过程如下: Δwi=wi-1-∂▽wiH(w) (12) wi+1=wi+Δwi (13) 式中:∂为学习率;H(w)为损失函数。 CICIDS2017[15]数据集是加拿大网络安全研究所于2017年公开颁布的一个入侵检测数据集。Sharafaldin等通过模拟一个真实的网络攻击场景来对本地网络进行攻击从而采集网络流量数据,该数据集包含2 830 743个网络流量样本,其中包括1个正常类别样本和14个攻击类别样本,正常类别样本占80.30%,攻击流量占19.70%,其数据分布跟实际的网络流量分布是一样的。将CICIDS2017中的所有样本用于实验,并以7∶1∶2的比例对数据集进行划分并用于训练、验证、测试。表2列出了每个类别的详细数据分布。 表2 CICIDS2017数据集中每个类别的样本数 数据预处理由独热编码、特征缩减和数据归一标准化三部分组成。 首先,通过独热编码将数据集中的15种类标签字符型数据进行数值化。同时,由于该数据集中的流字节和流数据包特征中包含无穷大值,为了避免模型在训练时出现错误,可将此类无穷大值用其列的最大值加1进行替换,并用零对缺失值进行填充。 然后,根据文献[12],对数据集中6个冗余且无意义的特征进行删除,分别为流ID、源IP、源端口、目标IP、协议、时间戳,此时数据集的特征大小缩减为78。 最后,根据式(14)对于所有数值型的特征采取标准归一化处理,使其合乎均值为0、方差为1的高斯正态分布,归一化后的数据与原始数据保持相同的线性关系,但其却有助于加快模型的收敛速度和提高模型的准确性。 (14) 式中:x是原始的特征属性值;x′是经过标准化后的特征属性值;μ和δ分别是特征属性值的均值和标准偏差。 分类后的数据被划分为4种类型:模型检测为攻击但实际却为正常的样本数,模型检测正确的攻击样本数,模型检测为正常但实际却为攻击的样本数,模型检测正确的正常样本数,它们分别可用FP、TP、FN、TN来表达。测试样本的总数Sum=TP+FN+FP+TN。在类不均衡数据集的性能评价中,少数类样本数据的性能检测评估相比较整体性能评估的意义更大。因此,本文选用DR(Detection Rate)、FAR(False Alarm Rate)、F1-score、AUC作为评估技术指标。 检测率(DR)是模型识别正确的攻击样本数占总攻击样本数的百分比,如式(15)所示。 误报率(FAR)是模型识别为攻击但实际却为正常的样本数占总正常样本数的百分比,如式(16)所示。 F1-score是召回率以及精准率两者的调和平均值。当二者均趋于最大时,F1-score的值为最大。F1-score的值越大,意味着不均衡数据的分类效果越好。 ROC曲线图的横坐标是FPrate,纵坐标是TPrate。曲线若离左上角越近则意味着分类器性能越好。由于曲线不能对分类器的性能进行定量的评估,所以常将曲线下方的AUC面积值作为评估指标,该值越大则阐明分类器的性能越好。 实验内容: 1) 在相同分类决策方法下验证有无ROS-GMM类平衡处理方法对于异常入侵检测的影响。 2) 与ROS、Smote-Kmeans算法进行对比,剖析所提出的类平衡算法在入侵检测的实用性与优越性。 3) 在同样采用ROS-GMM类平衡算法下,采用RF、MLP、RNN等算法与CNN进行对比,剖析CNN框架相较其他算法与类平衡算法结合后的优越性。 4) 在同样采用CICIDS2017实验数据下,验证不同的分类办法对于网络异常入侵检测的影响。 4.4.1类平衡处理方法的有效性验证 为了验证ROS-GMM类平衡处理方法的有效性,将经过ROS-GMM算法处理的前后数据集在CNN上进行验证。两者检测的多分类ROC曲线分别如图2、图3所示,其中class0-class14依次所代表的数据类型与表2所列举的顺序一致。从图2和图3可以明显看出,经过ROS-GMM算法处理后的CNN模型对所有类别样本的宏平均AUC值提升了0.07,这表明采用ROS-GMM对不均衡数据集处理后,分类器的分类成效更好,且对于少数类攻击样本的分类精度提升更多,从而验证了本文算法的有效性。 图2 CNN的多分类ROC曲线 图3 ROS-GMM-CNN的多分类ROC曲线 4.4.2不同类平衡算法的对比验证 表3展示了不同的类平衡算法在同一CNN框架下对15种类别样本的检测率性能比较。可以看出,加入本文提出的ROS-GMM算法后,F1-score比前面三者分别提高0.23百分点、0.15百分点、0.02百分点。F1-score的提升说明数据集在分类过程中,在整体数值分类精度得到提升的情况下,少数类攻击样本的分类精度获得提升的程度更高。而宏平均AUC值相较于其他三种方法分别提高0.07、0.05、0.01,说明经类平衡算法ROS-GMM处理后,分类器的整体性能得到更大的提升。 表3 不同类平衡算法在15种类别样本上检测率的性能比较 续表3 同时,实验对比结果还表明,对于少数类攻击模式,本文方法在保持较高F1-score以及AUC的前提下,可以更好地对少数类入侵模式进行检测识别,使其检测率在不同程度上获得相应的更大的提升,如对于Web Attack XSS,相较于其他三种方法分别提升了0.81、0.33、0.02。 4.4.3在同一类平衡算法下不同分类方法的对比验证 如图4所示,在统一使用类平衡算法的前提下,分别采用随机森林RF、多层感知机MLP、循环神经网络RNN与本文模型在各项分类性能指标上进行对比分析。可以看出,与RF、MLP、RNN等模型相比,类平衡算法与CNN结合后模型的测试效果最好,其检测率达到99.58%,相比较其他三种模型分别提高了7.1百分点、0.77百分点、0.46百分点;其F1-score值为99.42百分点,比其他三种模型分别提高了5.29百分点、0.49百分点、0.19百分点;而精确率达到99.55百分点,比其他三种模型分别提高了2.9百分点、0.44百分点、0.24百分点;这进一步说明类平衡ROS-GMM算法与CNN结合的网络入侵检测方法,在面对复杂的网络流量数据时,能保持较高的异常入侵检测识别率,具有更好的入侵检测能力。 图4 在同一类平衡算法下不同分类方法的入侵检测性能比较 4.4.4与最近机器学习方法的比较 表4展示了本文模型与其他最近入侵检测方法的模型比较结果,统一使用CICIDS2017数据集,结果表明,该模型的检测率相对其他两种机器学习模型分别提升了1.37百分点、5.49百分点,同时误报率相对于两者分别降低了0.32百分点和0.68百分点。其中文献[16]提出了一种基于并行交叉卷积神经网络PCCN的异常检测方法,其检测率为98.21%;文献[17]提出了一种新型的基于深度学习和区块链的智能电网能源交换框架,其检测率为94.09%。 表4 与最近机器学习方法结果对比/% 为了提高大规模数据集中少数类样本的检测率,提出使用ROS-GMM算法对数据集进行类平衡处理,从而在平衡的数据集上训练卷积神经网络,本文模型在保持较高检测率和效率的基础上,对少数类别样本的检测率有了明显提高,且误报率较低,具有重大的实用价值。2 卷积神经网络
3 基于类平衡与CNN结合的异常流量检测模型
3.1 模型框架
3.2 超参数设定
3.3 损失函数
3.4 优化算法
4 实验验证
4.1 实验数据
4.2 数据预处理
4.3 评估指标
4.4 实验分析
5 结 语