袁明兰 李 林 何守亮
1(重庆商务职业学院商贸管理系 重庆 401331)2(电子科技大学信息与软件工程学院 四川 成都 610054)3(重庆旅游职业学院智能制造与旅游交通系 重庆 409099)
拒绝服务(Denial of Service, DoS)攻击利用当今的云基础架构来攻击关键Web服务[1],其目的是使计算机或网络无法提供正常的服务。DoS攻击破坏性大,危害广,发生的频率高,攻击手段复杂,已经成为当今互联网最主要威胁之一[2]。目前基于异常的DoS攻击检测方法主要有统计、机器学习和数据挖掘。这些方法包括两个阶段,即培训和测试。培训阶段使模型通过识别特征和类来从训练数据中学习;测试阶段使用训练的模型对未知数据(没有类标签的输入数据)进行分类。机器学习方法主要分析数据中提取的关系,它分为监督学习、无监督学习、半监督学习和强化学习[3]。在本文中,使用监督学习作为训练样本已知的类标签。
径向基函数(Radial Basis Function,RBF)神经网络是具有单隐层的三层前向网络,第一层输入层接收输入的数据,第二层隐藏层负责将输入空间映射到隐藏空间,第三层输出层是对输入模式作出的响应[4]。隐藏层中包含高斯函数,输出响应随着输入数据中心位置的变化而变化,距离中心越近响应越大[5],反之亦然。在本文中,RBF用于提取特征数据中隐藏的智能信息。
提取隐藏的特征信息和权值优化是DoS攻击检测系统需要解决的关键问题。近年来,有关DoS攻击检测系统的研究已取得若干成果。文献[6]提出了一种基于熵和粒度计算的拒绝服务攻击特征选择算法,该算法利用熵计算每个属性的权重来识别DoS攻击,利用NSL-KDD数据集给出基于用户自定义选择粒度的潜在属性选择方法。文献[7]提出了一种基于模拟退火特征选择方法的拒绝服务攻击检测系统,该系统利用模拟退火算法选择最优特征来识别拒绝服务攻击。文献[8]提出了一种建模网络流量统计分布的方法,用于特定目的异常网络(分布式拒绝服务攻击)检测,该方法充分利用了原始极限学习机的良好性能和计算时间比,但是其需要有简单的更新规则,使模型随着新流量和主机的进入而及时更新。
在研究了现有DoS攻击检测系统的基础上,为了使学习快速收敛且不陷入局部最小值,本文提出一个新的DoS攻击检测系统,即基于深度径向智能(DeeRaI)分析的拒绝服务攻击检测系统,并将积累化身(Cumulative Incarnation, CuI)算法应用于DeeRaI网络的学习。该方法从具有不同抽象级别的RBF中提取隐藏的智能信息,逐层计算训练样本特征之间的相关性,为了增强学习过程,将CuI算法应用于DeeRaI网络,以此生成最佳拟合权重。该方法缩短了学习时间,并且在不陷入局部极小值的情况下逐渐收敛。
DeeRaI从第一个隐藏层中提取的RBF神经网络的智能信息训练网络,用CuI算法优化DeeRaI网络权重,生成最佳拟合权重。具有CuI优化的DeeRaI的方框示意图如图1所示,该方法包括2个阶段,即培训和测试,其中:训练阶段表示用实线表示;测试阶段用虚线表示。
图1 具有CuI优化的DeeRaI的方框示意图
DeeRaI网络是RBF和DL神经网络的混合,它采用了s-5-4-3-2-1结构,输入层由s个节点组成,由输入要素的数量决定;隐藏层共有四层,第一个、第二个、第三个和第四个隐藏层中分别有5、4、3和2个节点;输出层只有1个节点。第一个隐藏层用于形成输入值的非线性映射,由于径向智能的中心计算要求,本文在第一个隐藏层中选择5个节点,使用k均值聚类法[9]计算中心;从第二个隐藏层到最后一个隐藏层是基于试错法设计的,使用带有激活函数整流线性单元(Rectified Linear Unit,ReLU)的DL方法[10],采用4-3-2结构以循序渐进的方式逐层地学习提取的智能信息。
具有s-5-4-3-2-1结构的DeeRaI网络如图2所示。归一化特征F1,F2,…,FS作为输入传递到输入层,输入层的输入神经元I1,I2,…,IS保存并传递输入的值。从第一个隐藏层开始计算,隐藏的神经元表示为Hef(1≤e≤4,1≤f≤5),其中:e表示隐藏层数;f表示隐藏层中神经元的位置。O1表示输出层的神经元,Cout表示DeeRaI网络的计算输出。
图2 DeeRaI网络
神经网络的学习是通过权重进行的,因此神经网络中的初始权重对检测精度有着重要的作用,为了使网络快速学习,既需要正权重,也需要负权重。本文所设计的权重计算过程是通过基于特征信息的最高有效位的面值为权重指定正负符号。初始权重计算模块中的术语基于遗传术语,所有生成解决方案的集合称为人口,每个群体由许多称为染色体的个体组成,染色体由基因组成,权重来自基因,通过计算DeeRaI网络所需的权重数来生成初始权重空间。
对于第一个隐藏层到第e个隐藏层所需的权重数量WeiH1e的计算如式(1)所示,第e个隐藏层到输出层所需的权重数量WeiHeo的计算如式(2)所示,DeeRaI网络所需的权重总数如式(3)所示。
WeiH1e=NH1×NHe
(1)
WeiHeo=NHe×NO1
(2)
WeiTot=WeiH1e+WeiHeo
(3)
式中:NH1是第一隐藏层中的节点数;NHe是第e个隐藏层中的节点数;NO1是输出层中的节点数。
图3为本文设计权重的提取过程,初始种群的第i个染色体表示为s0,s1,…,sn-1。染色体的大小取决于学习所需的权重大小,假设染色体被分为WeiTot个基因,权重的大小为w,其中第一个数字决定权重的符号,剩余的数字位于小数点之后。因此,群体中个体的染色体大小计算如式(4)所示,基因Gi中提取重量Wi的数学表达式如式(5)所示。
图3 权重提取过程
Csize=WeiTot×w
(4)
(5)
DeeRaI网络学习被定义为能够使用从RBF中提取的智能信息来训练样本的DL网络,即通过对网络进行样本和权值训练,在更短的时间内找到特征数据之间的相关性。DeeRaI网络学习特点是减少了学习时间,并通过克服消失的梯度问题来更快地检测到异常。
DeeRaI网络学习将归一化的训练数据、五个聚类中心和初始权重作为输入,将学习的权重作为输出,最后将获得的学习权重用于攻击检测。输入层神经元的输出按式(6)计算;第一个隐藏层的输入为从RBF提取的输入特征的智能信息,其输出按式(7)计算;第二个隐藏层的输入是通过将相应的权重乘以第一个隐藏层的输出来计算的,如式(8)所示;第二个隐藏层的输出使用激活函数ReLU计算,如式(9)所示;与第二隐藏层算法相同,第三和第四隐藏层的输入和输出分别采用式(8)和式(9)计算,并使用相应的隐藏层输出和权重;输出层通过将相应的权重与最后一个隐藏层的输出相乘,计算DeeRaI网络的输出Cout,并按式(10)添加偏移,偏置项将输出推送到适当的类。
(6)
H1r=exp-‖Oq1-Ck‖2
(7)
(8)
(9)
(10)
适者生存(Survival of Fittest,SoF)函数可以量化解决方案的最优性,它是将特定的解决方案与其他所有解决方案进行排序,每个解决方案的适应度取决于它与问题最佳解决方案的接近程度。SoF函数首先计算数据集里每个记录的误差,然后计算群体中每个个体的均方根误差(Root Mean Square Error,RMSE),以此计算当前代中每个个体的SoF值。RMSE是根据DeeRaI学习的输出和类标签来计算的,如式(11)所示,每个个体的SoF值按式(12)计算,种群中的个体根据SoF值进行排序,并将前50%的个体保留给下一代使用。
(11)
(12)
式中:Tt是数据集里每条记录的目标类;Cout是计算输出;nt是训练记录的数量。
神经网络的权重在训练过程中起主要作用,每代权重的随机生成导致DeeRaI学习不能很快收敛,因此需要对DeeRaI网络进行权重优化。现有的遗传算法(Genetic Algorithm, GA)和差分进化(Differential Evolution, DE)算法均以随机方式产生新的权重。为了克服因权重的随机选择而导致局部极小值的问题,本文应用积累化身(CuI)算法来生成最佳权重,即通过计算最优拟合权重的累积和来生成新的权重实例。“累积化身”一词是指新的权重实例是根据前一代精英主义的最佳拟合权重计算出来的。
权重生成累积化身的过程如下:每个个体的权重根据当前SoF值排列,在上一代中排名前50%的权重(R1至R50)被选为下一代的精英,后50%的权重是根据最佳拟合权重R1-R50计算的。第51个权重是R1和R2的平均值,第52个权重是R1、R2和R3的平均值,第53个权重是R1、R2、R3和R4的平均值,以此类推,第99个权重是R1、R2、…、R49和R50的平均值,第100个权重是51到99的平均值。因为新的权重群体是从前一代的最佳拟合权重生成的,所以这种权重优化方法可以产生更好的结果。
本文设计的基于DeeRaI的DoS攻击检测系统如图4所示。DoS攻击检测系统的输入是训练阶段使用的聚类中心、学习训练数据后提取的权重,以及测试数据。针对给定的测试数据,构建DeeRaI网络,并利用聚类中心从第一个隐藏层提取径向智能信息,为所有层分配学习的权重,使用式(6)到式(10)逐层计算相应隐藏层的输入和输出。然后将计算的输出作为输入传递给检测函数(Detection Function,DetFun),如式(13)所示,如果DetFun的输出为0,则给定的测试数据被归类为正常数据,否则将其归类为攻击。
图4 DeeRaI的DoS攻击检测
(13)
为评估本文设计的系统,定义了下列性能指标:真阳性(True Positive,TP)是正确分类为攻击的攻击流量记录数;真阴性(True Negative,TN)是正确分类为正常流量的流量记录数;假阳性(False Positive,FP)是错误分类为攻击的正常流量记录数;假阴性(False Negative,FN)是错误分类为正常的攻击记录数。检测率(Ture Positive Rate,TPR)是指在所有攻击中检测到的攻击所占的比例,用式(14)计算;误报率(False Positive Rate,FPR)是指检测系统错误分类的网络流量的百分比,用式(15)计算;准确率(Accuracy,Acc)是攻击检测系统准确分类的数据比例,用式(16)计算;误差率(Error Rate,ER)是攻击检测系统错误分类的数据比例,用式(17)计算。
(14)
(15)
(16)
(17)
DeeRaI网络学习速度与收敛的代数有关,收敛的代数越少,DeeRaI网络学习速度越快。实验在MATLAB R2016B上采用NSL-KDD数据集,分别利用GA、DE算法和CuI算法对DeeRaI网络进行优化,测试训练数据。
图5到图8描绘了本文方法在不同代数下的性能指标。可以看出,采用CuI算法的DeeRaI大约在第350代收敛,采用DE算法的DeeRaI网络接近第500代收敛,采用GA的DeeRaI网络接近第450代收敛。需要注意的是,收敛的代数越少,DeeRaI网络学习速度越快。因此,与利用GA和DE算法的DeeRaI相比,利用CuI算法的DeeRaI学习训练数据花费的时间更少并且没有陷入局部最小值,并且与现有方法相比,本文方法收敛得更快。
图5 不同代数下的检测率
图6 不同代数下的误报率
图7 不同代数下的准确率
图8 不同代数下的误差率
实验在MATLAB R2016B上采用NSL-KDD数据集,将三种学习方法,即RBF、DL和DeeRaI,分别使用GA、DE算法和CuI算法进行优化,并将其测试数据与未优化的学习方法测试数据进行比较。
图9到图12描绘了不同学习方法的性能指标,可以看出,与现有的学习方法和权重优化方法相比,使用CuI算法的DeeRaI具有更高的检测率和准确率,更低误报率和误差率。使用CuI算法的RBF性能不佳的原因是隐层节点的数量较少,使用CuI算法的DL性能不佳的原因是DL中没有智能提取组件,使用CuI算法的DeeRaI性能在权重优化和特征提取方面实现了改进。
图9 不同学习方法下的检测率
图10 不同学习方法下的误报率
图11 不同学习方法下的准确率
图12 不同学习方法下的误差率
为了验证所提算法在真实物理环境下的性能,本文用5个正常用户、1个路由器、1个100 Mbit/s网关、文件传输协议(File Transfer Protocol, FTP)服务器和黑客攻击端搭建了一个DoS攻击系统,实验环境的网络拓扑结构如图13所示。网络间的速率均为100 Mbit/s,黑客随机发动100次攻击,随机选择每次攻击的时间起点。
图13 实验环境的网络拓扑结构
表1为本文算法与现有攻击检测系统中半监督机器学习方法[3]和基于自动编码器的特征学习方法[11]的准确率和误报率。
表1 不同算法的检测结果比较 %
可见,本文算法在准确率和误报率方面都优于现有方法。本文通过使用激活函数ReLU从RBF网络中提取的智能信息进行学习,利用CuI算法获得了学习的权重,因此本文DeeRaI花费较少的学习时间,以较高的准确率实现拒绝服务检测。
为了克服机器学习法梯度的消失和由于随机选择权重陷入局部最小值等问题,本文提出一种DeeRaI学习网络拒绝服务(DoS)检测系统。从第一隐藏层中提取RBF神经网络的智能信息,将其用来训练DeeRaI网络,使用本文设计的方法提取DeeRaI网络的初始权重,使用积累化身(CuI)的算法生成最佳权重,获得的权重用于区分正常流量和DoS攻击流量。实验表明,本文方法在检测率、准确性、误报率和误差率性能方面均优于现有的其他方法,并且比现有的权重优化方法收敛得更快。未来的工作是考虑在多个入侵检测数据集上进行实验,从而更全面地验证所提算法的效果。