刘安云,黄 洪,2,方彬皓
(1.四川轻化工大学计算机科学与工程学院,四川 宜宾 644000;2.企业信息化与物联网测控技术四川省高校重点试验室,四川 宜宾 644000)
随着互联网技术的发展,数据泄漏、黑客攻击、勒索软件等安全事件日益增加,给社会、企业和个人带来了严重损失。因此,在当前复杂的网络环境中如何有效地检测和防御网络攻击是亟需解决的问题。入侵检测技术是继防火墙之后的一种积极主动的安全防护技术,能够有效检测网络攻击。蹇诗婕等[1]总结了近些年来提出的入侵检测技术,涉及多个领域,并重点讨论了基于机器学习和深度学习等的检测技术。现有的入侵检测系统大多是基于异常检测的,本质是分类问题。机器学习中的很多算法已广泛应用于入侵检测中,如支持向量机(Support Vector Machine,SVM)[2-3]、随 机 森 林(Random Forest,RF)[4-6]、K 近 邻 算 法(K-Nearest Neighbor,KNN)[7]和K-means[8]等。准确性和实时性是当前入侵检测系统的重要要求,网络数据的高维性以及数据冗余和噪声导致入侵检测模型检测速度慢、准确率低。因此,对网络数据进行有效的降维至关重要。陈良臣等[9]总结了在入侵检测中常用的两种维数约简技术:特征选择和特征提取。特征选择包括信息增益[10-11]、遗传算法和XGBoost[12]等算法,特征提取包括主成分分析法(Principal Component Analysis,PCA)[13]、自 动 编 码 器(Auto-Encoder,AE)[14]和 受 限 玻 尔 兹 曼 机(Restricted Boltzmann Machine,RBM)[15]等。
深度学习算法具有自动特征学习、深层学习等优点,已被广泛用于高维数据的特征提取,如AE 和深 度 信 念 网 络(Deep Belief Network,DBN)等。文献[16]结合深度自编码器(Deep Auto-Encoder,DAE)和深度神经网络(Deep Neural Network,DNN)进行入侵检测,但入侵检测的各指标仍有提升空间。文献[17]提出了DBM-SVM 入侵检测模型,利用深度玻尔兹曼机(Deep Boltzmann Machine,DBM)模型提取网络数据特征,SVM 进行检测,该模型在二分类下具有良好的检测效果,但未进行多分类相关的试验。文献[18]结合稀疏自编码器(Sparse Autoencoder,SAE)和SVM 对NSL-KDD 进行入侵检测,相比单一的SVM,检测速度和准确率等指标都得到提升,但仍有提升空间。文献[19]结合深度收缩自编码器和SVM 设计了一种新型的云入侵检测系统,利用深度收缩自编码器从原始网络流量中自动学习低维特征,但该模型的准确率和F1值等指标还较低。文献[20]使用深度稀疏自编码器作为特征提取模型、随机森林作为分类器,在入侵检测的正常和异常流量分类中获得较高的准确率,但少数攻击类的检测效果较差。文献[21]结合深度自动编码器(Deep Auto-Encoder,DAE)和单类支持向量机(OCSVM)进行分布式拒绝服务攻击(DDoS)检测,该模型具有很高的准确率,但模型的误报率也较高。文献[22]结合对抗自编码器和KNN 用于物联网边缘的入侵检测,具有较高的准确率,但对抗自编码器模型结构较复杂。文献[23]提出了一种结合非对称卷积自编码器和随机森林的入侵检测系统,填充构造了二维数据,较复杂。除此之外,文献[24]将卷积神经网络(Convolutional Neural Networks,CNN)用于入侵检测,文献[25]使用DBN 学习网络数据的低维抽象特征,文献[26]使用对抗自编码器的编码器初始化DNN 的权重,并提取原始样本的高级低维特征,文献[27]使用DAE 提取网络数据的低维抽象特征,这些模型的检测性能虽然相对较高,但仍然有提升的空间。
上述研究均为采用单一的特征提取模型用于高维数据的特征降维,入侵检测存在准确率低或模型较复杂的缺陷。单一特征提取模型容易造成数据中重要信息丢失,不能很好地解决网络数据的高维性、冗余和噪声。因此,本文提出了一种基于多通道特征提取的入侵检测模型(MCFE-IDS),以提高准确率和检测速度。模型改进之处在于实现网络数据的多通道特征提取,分别从多类数据中学习低维特征,以实现高维数据的降维,从而帮助SVM提高对高维数据的分类能力;另外,该模型结合深度学习和浅层学习技术,并充分利用其优势,以降低入侵检测中的分析开销,以用于海量高维非线性网络数据的处理。
自编码器是一种无监督的神经网络模型,能够从无标签数据中自动学习数据的有效抽象特征表示,常用于数据降维或特征学习。自编码器先将高维输入转换成低维数据,再对低维数据进行重构以输出原始数据的复现,最后利用反向传播算法调整网络参数使输入与输出近似相等,从而实现数据降维。自编码器由编码器和解码器两部分组成,其网络结构如图1所示。
图1 自编码器网络结构
DAE 由多个自编码器堆叠而成,前一个自编码器层的输出作为下一个自编码器层的输入,逐层获取原始数据的高阶特征表示,将特定的特征向量转换成抽象特征向量,实现数据从高维空间向低维空间的非线性转换。DAE 的网络结构如图2 所示。
图2 深度自编码器
DAE 可分为两个过程:编码过程和解码过程。现 有 数 据 输 入 为X(x1,x2,…,xn),低 维 表 示 为Z(z1,z2,…,zp),重构输出,则DAE 的训练可具体描述如下:
编码过程(X⇒Z):
其中:W为编码层与输入层之间的权重,be为编码层的节点偏置,σ为节点激活函数。
解码过程(Z⇒):
其中:WT为W的转置,bd为解码层的节点偏置。
训练DAE 来重构原始数据,调整编码器和解码器的网络参数,使重构输出和输入近似相等,即损失函数最小。最后,将编码器最后一层隐藏层的输出作为原始输入的最佳低维表示,由此实现高维数据的非线性降维。重构误差函数用下式的均方差函数表示:
DAE 通常采用梯度下降算法,反向传播调整网络参数,最小化损失函数,以学习原始数据的最佳低维特征。权重W和b的更新公式如下:
其中η为梯度下降算法的学习率。
MCFE-IDS 模 型 采 用LeakyReLU 和Sigmoid 作为激活函数,两者的函数表达式如下:
支持向量机(SVM)是一个二分类算法,但通过扩展可将其应用于多分类中。在构造支持向量机多分类器时,采用一对多策略,训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,如此反复,k类样本构造k个分类器SVM,其构造过程如图3所示。
图3 支持向量机多分类器
基于多通道特征提取的入侵检测模型MCFEIDS 的整体框架如图4 所示,包含数据预处理、多通道特征提取和入侵检测3个部分。数据预处理将类别特征使用One-hot 编码进行数值化,再利用Min-Max对特征数据进行标准化以消除特征之间的量纲差异,得到高维且标准化的数据集。多通道特征提取使用无标签的高维数据进行训练,实现数据降维,获得低维数据集。入侵检测对低维数据进行分类并得到检测结果。
图4 整体框架
现有的基于深度学习的入侵检测模型大多只设计单一的特征提取模型用于数据降维,由于各类数据最佳特征的差异性,单一模型容易造成重要信息损失、引入噪声,从而导致入侵检测效果不佳,严重影响了对网络攻击的检测。多通道特征提取技术主要是对各类数据进行单独特征提取以获得各自的最佳特征,避免特征提取过程中各类数据重要特征丢失和产生额外的噪声,以此来提高检测结果。本文所提的MCFE-IDS模型通过训练多个DAE以提取各类数据的最佳低维特征,消除原始数据中存在的冗余特征和噪声。
DAE按照图5所示的流程进行训练,按照式(1)~(2)正向传播、式(4)~(5)反向传播进行训练,将原始数据编码压缩,再进行重构,按式(3)计算重构误差,多次迭代训练以最小化重构误差,训练终止的条件为最大的迭代次数。网络模型的输出层用式(7)所示的Sigmoid 激活函数,其余层使用式(6)中的LeakyReLU 激活函数。为加快模型训练采用Xavier参数初始化,采用Adam 算法优化模型训练。初始化迭代次数、批大小等参数,设置验证集为20%训练集以检测模型是否过拟合,画出训练过程中的损失曲线和精度曲线以便模型调参。在模型训练过程中,由于特征的非线性转换,各层的数据分布会发生改变,导致网络难以训练和收敛,因此加入批量归一化BN 层,加快网络的训练和收敛速度,并控制梯度爆炸防止梯度消失。最后在网络中适当地加入dropout 防止过拟合。调整模型参数直至重构损失最小且损失曲线收敛,最终得到DAE 模型的参数设置,训练完成后,保存DAE 模型的编码器部分,以便后续使用。
图5 深度自编码器的训练过程
为了评估所提模型的有效性,选用试验环境:计算机CPU 为i5-7300HQ,内存大小为8 GB,操作系统为Win10,开发环境为Python 3.8.5 和Keras 2.4.3,使用NSL-KDD 和UNSW-NB15 作为入侵数据集进行测试。
为有效评估入侵检测模型的效果,选用模型训练时间、测试时间、准确率(Accuracy)、精确率(Precision)、召回率(Recall)以及F1值作为评估模型性能的关键指标,其中准确率为预测正确的结果占总样本的百分比,精确率为所有被预测为正的样本中实际为正的样本的概率,召回率为实际为正的样本中被预测为正样本的概率,F1值综合考虑了精确率和召回率,为两者的调和平均。其中准确率、精确率、召回率和F1值的定义如下:
其中:TP为攻击数据正确地分类为攻击数据,FP为正常数据错误地分类为攻击数据,TN为正常数据正确地分类为正常数据,FN为攻击数据错误地分类为正常数据。
由于入侵数据中某些类的样本太少,因此对数据进行如下 分 类:(1)NSL-KDD 数据分为3 类:Normal、DoS、(Probe,U2R,R2L),训练3 个DAE 模型;(2)UNSW-NB15数据分为5类:Normal、Generic、Exploits、(Fuzzers,DoS)、(Reconnaissance,Analysis,Backdoor,Shellcode,Worms),训练5 个DAE 模型。DAE 模型中包含网络结构、迭代次数、批大小以及学习率参数。网络结构影响着最终的降维结果,随着层数加深,提取的低维特征越抽象;迭代次数指将整个训练集输入到神经网络进行训练的次数,过少会出现欠拟合,过多会出现过拟合;批大小决定每次训练的样本数,影响着模型的优化程度和速度;梯度下降算法的学习率影响着如何用损失函数的梯度调整网络权重,好的学习率能帮助更快地达到loss的最小值并保证收敛的loss值是神经网络的全局最优解。经反复试验,模型调优,最佳的多通道特征提取模型的参数设置见表1。本文主要研究为SVM提供服务的特征提取技术,未对SVM分类器的参数进行优化。
表1 入侵检测模型参数设置
为了验证模型的有效性,研究了多通道特征提取模型对SVM分类器的影响,并与基于单一SVM入侵检测模型在多个评估指标上进行了对比。使用多通道特征提取模型从高维的数据中提取20 维的低维特征,并将其作为SVM 多分类器的输入,结合原始标签进行分类,从而得到结果,另外,将高维数据直接输入到分类器用于对比。在两个数据集上单一SVM 分类器模型和MCFE-IDS 模型的结果如图6 所示,横轴表示评估指标准确率、精确率、召回率和F1 值,纵轴代表数值大小。对于NSL-KDD 数据集(图6(a)),单一SVM 模型的准确率、精确率、召回率与F1 值分别为76.0%、81.0%、76.0%和72.0%,MCFE-IDS 模型的各指标分别为94.9%、97.0%、95.0%和95.0%,分别提高了24.9%、19.8%、25.0%和31.9%。对于UNSW-NB15 数据集(图6(b))而言,单一SVM 模型的指标分别为70.0%、81.0%、70.0%和71.0%,MCFE-IDS 模型的各指标分别为95.8%、95.0%、96.0%和95.0%,分别提高了36.9%、17.3%、37.1%和33.8%。可以看出,在两个数据集上相比于单一的SVM 模型,MCFE-IDS 模型的各项指标均得到较大地提高。原始数据中噪声和冗余导致单一的SVM 模型检测效果不佳,而经多通道特征提取技术检测结果得到提升,说明多通道特征提取模型去除了数据中的噪声和冗余,有效地提取了各类数据的最佳特征,从而提高了分类器对各类数据的检测能力。
图6 在不同数据集上MCFE-IDS模型与单一SVM模型的检测结果
另外,为了研究多通道特征提取对分类器检测速度的影响,将模型的训练时间和测试时间作为评估指标以评估模型的检测速度,单一SVM 模型与MCFE-IDS 模型在两个数据集上的训练时间与测试时间见表2。从表2中可以看出,相比于单一的SVM模型,所提模型的训练和测试时间在NSL-KDD 上分别缩短了91.73%和91.56%,在UNSW-NB15上分别缩短了97.46%和90.88%。通过计算入侵检测模型训练和测试的总时间,可以看出MCFE-IDS 模型较单一SVM 模型在入侵检测速度上在NSL-KDD 与UNSW-NB15 数据集上分别提高了91.69% 和94.91%。因此,多通道特征提取能较好地改善SVM在高维数据入侵检测中存在的检测速度慢的问题。单一SVM 模型直接对高维且含冗余和噪声的网络数据进行入侵检测时,模型训练很慢且效果差。而经多通道特征提取技术,能有效降低数据的维度,并加快分类器模型训练,提高检测速度,更好地满足入侵检测实时性要求。
表2 模型训练时间和测试时间
为了进一步研究模型的有效性,将MCFE-IDS模型与现有的其他入侵检测模型进行对比,表3 和表4 给出了在两个入侵数据集上MCFE-IDS 模型与其他模型在准确率、精确率、召回率和F1 值性能的对比。从表3 可知,在NSL-KDD 数据集上,MCFEIDS 模型较SCAE-SVM 模型各指标分别提高了8.65%、10.28%、8.78%和11.75%,MCFE-IDS 模型的整体性能都优于现有的一些模型。从表4 可以看出,在UNSW-NB15 数据集上,较CWGAN-CSSAE模型各指标分别提高了2.79%、2.54%、0.60%和1.07%,相比现有的一些模型,MCFE-IDS 模型的整体效果更优,进一步说明了该模型的有效性,入侵检测效果更好。
表3 不同模型NSL-KDD数据集对比 %
表4 不同模型UNSW-NB15数据集对比 %
网络数据的高维性、冗余和噪声严重影响了入侵检测系统的性能,若将其直接用于入侵检测会增加检测的难度和计算开销,降低入侵检测的准确性,而基于单一特征提取的入侵检测模型检测效果差。因此,提出了一种基于多通道特征提取的入侵检测模型(MCFE-IDS),利用多个深度自编码器对网络数据特征降维,并利用支持向量机分类器对低维数据进行入侵检测,将深度学习和浅层学习技术相结合,充分利用各自的优势实现了网络数据的入侵检测。在NSL-KDD 和UNSW-NB15 入侵数据集上进行试验评估,并取得了一定效果。从试验结果来看,MCFE-IDS 模型在网络入侵检测中具有良好的性能,具有较快的检测速度和较高的检测准确率,很好地帮助SVM 提高了对高维网络数据的检测能力。