刘 唐,周 炜,王晓丹
(1.空军工程大学研究生院,西安 710051;2.空军工程大学防空反导学院,西安 710051)
随着网络安全面临的威胁升级,入侵检测技术的发展需求愈加迫切。网络入侵检测是一种主动的网络信息安全防御手段,通过监测网络数据实现对外部攻击、内部攻击和误操作的实时保护,是防火墙后的第2道安全屏障,具有主动性和实时性的特点,是防火墙有益的和重要的补充。入侵检测一般分为两步:1)特征提取;2)分类器的选择。
近年来,国内外学者对特征提取在入侵检测方面的应用做了大量研究。目前,常见的入侵检测方法有支持向量机算法(SVM)[1]、遗传算法及其改进算法等,这些算法通常需要以大量的时间或者人为干涉为代价。文献[2]采用清除训练数据中一部分常见攻击或者避开攻击频发的时间等方法来减少训练数据中的攻击,但这往往会丢失一些有用信息。文献[3]等提出的实时入侵检测方法在特征提取中发挥了较好的作用。而综合多种分类器的级联入侵检测系统[4-5]则从分类器上对算法进行改进,这种系统集成了多种分类器的优点,但是会造成时间与成本的浪费,而且并不适用于所有的攻击类型。
鉴于极限学习机快速学习能力强等特点,为提高入侵检测的训练速度,降低误报率。本文对极限学习机[6]加以优化改进,在极大减少隐层节点数的同时提高了节点的学习质量,使得精简的IKH-ELM的泛化性能明显提高,且超过需要众多隐层节点的原始ELM的性能。同时,本文将IKH-ELM应用到入侵检测中,通过实验验证其效果,并与原始ELM、BP、SVM等算法进行比较,结果表明IKH-ELM具有更好的综合性能。
极限学习机(Extreme Learning Machine,ELM)是单隐层前馈神经网络(Single-hidden Layer feed-Forward Network,SLFN)的一种快速学习[7]方法。整个学习过程一次完成,无需迭代,因而能达到极快的学习速度[8]。对于 N个不同样本其中则激励函数为g(x)且隐层节点数为的SLFN的模型为
以上N个方程的矩阵形式可写为
式中,
H为隐层输出矩阵,H的第i行表示全部隐层节点与输入xi相关的输出。
ELM算法对输入权值wi和偏置bi的值采取随机设置,在输入样本集给定的情况下,隐层输出矩阵H也被确定了。
由式(3)得到的解为最小范数二乘解
式中,H+为H的Moore-Penrose广义逆。
在研究自然界磷虾群觅食活动的规律后,Gandomi等人于2012年提出了磷虾群(Krill Herd,KH)算法[10]。该算法中,以每只磷虾表示问题的可能解,通过模拟每只磷虾觅食过程中位置的不断更新来寻找最优解。磷虾群算法的主要内容如下,详细内容见参考文献[11-12]。
一个有N只磷虾的磷虾群在觅食过程中,磷虾i的第K次位置更新会受下面3种因素的综合影响:
其中,Nmax为最大引导速度,为惯性权重,为上一次引导运动,表示引导源,表示周围磷虾产生的局部影响,表示当前最优磷虾产生的目标方向的引导。
其中,Dmax为最大随机扩散速度,Imax为最大迭代次数,δi为当前的随机扩散方向向量,且为区间[-1,1]的随机数。
磷虾i从t经Δt时间后的位移公式为:
其中,Δt为速度矢量比例因子,其值取决于问题空间,p为变量总数,Uj和Lj分别表示第j个变量的上、下界,差值决定搜索范围,为常数。
每只磷虾在上述3种因素的综合影响下,不断更新自身位置,直至当前最优磷虾位置对应的解符合条件要求或达到最大迭代次数后停止。
首先,磷虾群算法求最优解有如下优点:周围磷虾的引导运动和磷虾本身的觅食运动都有全局、局部寻优决策,两种决策结合,使得磷虾群算法在求参数最优解过程中能很好地协调全局搜索与局部挖掘的关系。但是也存在不足:在迭代次数增加到一定后,大多数磷虾都会向同一方向运动,从而导致磷虾群的个体特异性降低,易陷入局部最优;本文在磷虾本身的随机扩散运动中添加变异因子进行了改进。
在求参数最优解过程中增加变异是避免陷入局部最优的有效方法,本文针对磷虾群算法的优化,引入了一种变异因子,如下:
由此可知,μ和fit共同决定了变异大小进而对磷虾本身的随机扩散的幅度进行调整。在算法迭代前期,μ值较大时,可以产生较大幅度的变异,增加了求参数最优解的全局遍历性,使得算法有较强的全局搜索能力;随着迭代次数的增加,μ值线性减小,全体磷虾本身的随机扩散幅度降低,使得单只磷虾在自身周围进行较精确的搜索,此时算法就有较好的局部挖掘能力,从而使收敛的速率加快。在算法后期,每只磷虾都向全局最优的位置收缩,易陷入局部最优。这时,较大fit值的磷虾会拥有较强的变异能力,使得该磷虾可以在更大范围进行随机扩散运动,如此就丰富了磷虾个体的特异性,扩大算法求最优解的范围,避免陷入局部最优。
ELM的输入权值wi和隐层偏置bi随机产生的方法的确能够降低系统的学习时间,但是需要以消耗很多隐层节点为代价。在给定条件下,ELM的学习质量随隐层节点数的增加而逐渐上升。然而当隐层节点数较少时,一般学习质量会很差。这种情况反应出,需要大量的隐层节点来补偿单个节点判断能力和学习能力的欠缺。因此,获得了最优的节点,ELM不需要众多隐层节点就能够得到较好的效果,从而精简ELM。
IKH-ELM主要从以下两个方面使ELM精简并使其泛化性能提升。首先明确隐层每一个节点的责任。隐层节点数量根据分类问题的目的设定,不再像原始ELM那样随机设定。再利用IKH优化每个节点的权值wi和偏置bi。选出具有较好的泛化能力的最优节点。
k类问题中,IKH-ELM根据一对多原则[13]将分类任务分割成k个子分类,第i个子任务将第i类与另外k-1类分开。每个节点对应一个分类子。因此,只须将隐层节点数目设为类别数目k,为了让每个节点更好地发挥分类泛化性能,需要对每一个节点的线性决策函数进行相应的优化操作[14-15]。
1)初始化IKH的种群,设定种群规模大小N、最大引导速度Nmax、觅食速度、最大随机扩散速度Dmax,输入学习训练样本集。
2)对样本进行学习训练,利用均方根误差(RMSE)算出每只磷虾的适应度值。
3)通过式(5)~式(6)计算更新引导运动,通过式(7)计算更新觅食运动,通过式(8)计算更新随机扩散运动;结合引导运动、觅食运动及随机扩散运动,通过式(9)~式(11)对磷虾位置进行更新,重新计算适应度值判断是否符合条件,符合就结束迭代操作,否则更新磷虾位置并继续重复上面迭代,直到满足条件或达到最大迭代次数,最后得到权值wi和偏置bi。
4)把优化得到的权值wi和偏置bi代入进行学习训练,则得到隐藏层输出矩阵为
上式中:
学习参数
由此,可以建立类似于式(2)的学习系统
其最小范数二乘解就是ELM的最优解
本实验采取的数据为美国国防部高级研究规划署(DARPA)在1999年KDD竞赛所供给的入侵检测系统评估的数据。数据全部采用Tcpdump和Solaris BSM Audit Data的格式,数据的基础是正常的网络数据,但又在其中加入了多种入侵数据。实验过程分为两步:数据预处理和数据划分。数据预处理包含对入侵的归类和数据的标准化。
数据集含有一个标明入侵攻击类型的标识属性,一共有23种类型,Normal为正常的网络活动,其他 22 种(Smurf、Back、Neptune等)为入侵行为[16]。将其映射为 5 大类型,即 Normal、DoS、R2L、U2R 和Probing。各种攻击类型在学习训练数据集的分布如表1所示。
表1 实验学习训练数据中各种攻击类型分布
所采用的学习训练数据集(Kddcup10per)共有494 021条记录,其中标记为Normal的有97 278条记录,占19.6%,而攻击记录396 743条,占80.4%。测试数据集共有311 029条记录。
此数据集中有41个特征属性,其中34个特征属性为数值型变量、4个为二元变量、3个为标称变量(属性及其意义见文献[17])。在实验检测过程中发现,并不是所有的特征属性都对入侵检测有帮助,有些特征属性甚至会降低辨别率。根据文献[18],属性约简后如下:
Normal约简属性集(26个)为:
DoS 约简属性集(18 个)为:{1,3,5,6,23,24,
Probing约简属性集(7 个)为:{3,5,6,23,4,32,33};
U2R 约简属性集(8 个)为:{5,6,8,15,16,18,32,33};
R2L 约简属性集(8 个)为:{3,5,6,21,22,24,32,33}。
此外,原始数据中有34个数值属性,但每个属性的取值范围却大不相同,所以,对数据进行规范化处理,将其规范化到区间[-1,+1]。采用如下公式:
规范化后,upper为上界,取+1;lower为下界,取-1;max(fi),min(fi)分别表示属性fi的最大值和最小值。
数据划分即把原始数据分成学习训练样本集和测试样本集。学习训练样本集是从原始学习训练数据集随机抽取出来的10 000条数据;测试样本集是从原始测试样本集中随机抽取出来的10 000条数据,包括Normal数据5 182条,DoS攻击3 869条,R2L攻击276条,U2R攻击71条,Probing攻击602 条[19]。
当使用IKH优化求解隐层节点权值wi和偏置bi时,因为检测数据包含5个类别,所以基于IKH优化的极限学习机的隐层节点数固定为类别数5。原始的ELM所需的隐层节点数需要调试时确定,ELM以及IKH-ELM的激励函数选用效果较好的Sigmoid。
表2 IKH-ELM分类实验检测结果
从表2可知,IKH-ELM算法针对各种入侵类型检测正确率都较高,误报率也较低,并且具有较好的稳定性。但是仅从表2不能显示IKH-ELM算法的优越性。因此,表3同文献[20]中的BP神经网络和SVM入侵检测算法进行了比较。同时,表4同文献[21]中的原始ELM、BP神经网络和SVM入侵检测算法进行比较。
表3 检测正确率比较
从表3可以得知,与BP神经网络和SVM算法相比,IKH-ELM算法依旧检测正确率较高,具有较大的优越性。
从表4可以看出,IKH-ELM算法的平均检测正确率高达98%,而BP的平均检测正确率低到只有82%,而且学习时间是IKH-ELM学习时间的150倍左右。SVM的平均检测正确率虽然较高,但学习时间是IKH-ELM的7倍。而ELM的平均检测正确率和学习时间与IKH-ELM相差不大,原因在于IKH-ELM算法是源于ELM,所以单从算法归类平均检测正确率这一点上看很相近,但从隐层节点数等属性来说,IKH-ELM的优越性非常明显,同时IKH-ELM的平均误报率也相对其他3种算法较低,更加说明其性能良好。
表4 平均检测正确率、误报率与学习时间比较(%)
对于原始ELM,在调试的过程中依次选用5,50,500,2 000,5 000,10 000 个隐层节点来进行性能观测。原始ELM的实验结果如表5所示。
从实验结果易看出,DoS、U2R和Probing类型随着隐层节点数目的增加,ELM检测正确率逐渐提高;而R2L类型,随着隐层节点数目的增加,ELM检测正确率出现了局部波动,但是总趋势仍然是向上的;这说明ELM的学习效果和隐层节点数即网络规模有很大关系,如果想要达到较好的学习效果,则必须有大量的隐层节点来支持。
对比表2和表5可以发现,IKH-ELM在各类型攻击的检测正确率都高于ELM,其中在DoS类,IKH-ELM比ELM最高检测正确率高5.56%,在R2L类,IKH-ELM比ELM最高检测正确率高9.87%,在U2R类,IKH-ELM比ELM最高检测正确率高5.84%,在Probing类,IKH-ELM比ELM最高检测正确率高6.54%,ELM在各类型攻击的检测正确率达到此精度水平分别需要2 000个、10 000个、5 000个和2 000个节点,而IKH-ELM仅需要5个节点,就使学习机的性能超越ELM。这说明优化隐层节点的权值和偏置能够有效提高ELM的泛化性能,因此,优化精简ELM是有效的。
本文在ELM的基础上提出了基于IKH优化的极限学习机的入侵检测算法,通过IKH迭代优化隐层节点权值和偏置,选出最优的隐层节点,提高了极限学习机的泛化性能,同时还减少隐层节点数为类别数,提高了检测正确率,还节省了存储资源空间。从实验结果分析表明:与BP、SVM等其他已有的算法相比,IKH-ELM算法具有较高的检测正确率并且能够快速完成学习训练,具有较明显的优越性和稳定性。同时IKH-ELM只用5个节点就能够超越原始ELM用众多节点才能达到的分类泛化性能。因此,IKH-ELM在入侵检测中是有效的。