基于自组织映射网络的网络入侵检测算法设计
2018-10-10周丽娟
周丽娟
(山西财经大学 实验教学中心, 山西 太原 030006)
0 引 言
随着网络应用的普及和规模的扩大,网络入侵检测已经成为网络安全领域迫切需要解决的课题[1-2].神经网络具有自适应能力强、泛化能力强及高度并行性的优点,非常适合在环境多变的网络环境中进行入侵检测,但基于神经网络的方法仍存在一些不足,例如随着网络用户的激增,大量的网络记录作为训练数据时需要增加大量标签,训练的难度及对机器的要求更高;现实环境中的大量数据都不包含属性,因此,需要对数据标记标签,由此带来了巨大的开销[3-4].为了解决上述问题,一些利用神经网络以外的方法被用来实现网络入侵检测.例如,康松林等[5]提出了一种基于深度多层极限学习机的入侵检测算法,李昆仑等[6]提出了一种改进的Kohenen网络的DOS攻击检测算法来提高DOS攻击检测的准确性,陈虹等[7]提出了一种基于优化数据处理等深度信念网络模型,实现对网络的入侵检测.在此基础上,本研究设计了一种基于自组织映射的网络入侵检测算法,将映射值最大的输出作为网络的最终输出,即对应了最大概率对应的攻击类别,并通过仿真实验证明了本算法的有效性.
1 自组织映射
自组织映射是一种由Kohenen提出的自动聚类算法,能实现无监督的聚类.经典的自组织映射模型如图1所示.
图1自组织映射模型图
从图1可知,自组织映射模型主要包含两层网络结构,即输入层和输出层.输入层主要是用于接收数据输入,其神经元个数与输入数据的维度相同.输出层也叫竞争层,该层的神经元不仅与输入层之间有前向的连接,同时与该层的其他神经元之间通过同侧抑制的方法进行连接.
2 基于自组织映射网络的网络入侵检测
2.1 入侵检测模型设计
本研究提出的基于自组织映射的网络模型如图2所示.
从图2可知,该组织映射网络模型包含3层:输入层、竞争层和输出层.自组织映射网络模型是在自组织映射模型的基础上加入输出层,使得输出层可以反映各种入侵攻击类型的发生概率.对于发生概率最大的攻击类型,定为数据对应的攻击类型.
图2基于自组织映射的网络模型
2.2 入侵检测原理
本研究设计的基于自组织映射的网络入侵检测模型的主要原理为:首先建立自组织映射模型,然后采集训练样本数据,并对样本数据进行预处理,将预处理后的样本数据输入到自组织映射网络,对建立的自组织映射网络进行训练,使得整个网络满足训练数据攻击类型对应的输出端对应的概率值最大.当自组织映射网络的训练误差小于某预设的阈值时,就停止训练.对测试数据经过与训练数据相同的预处理操作后,输入训练好的自组织网络,具有最大输出值的攻击类型即为对应的网络入侵检测结果.
2.3 基于自组织映射网络的入侵检测
在基于自组织映射模型的入侵检测方法中,对于输出层概率值最大的神经元,即定义为获胜神经元.当输入向量为X={x1,x2,…,xn}时,n为输入神经元个数,m为输出神经元个数.
计算输入向量与所有输出层神经元j的距离为,
(1)
计算完所有输入到所有输出的距离Dij(t)后,选择具有最小Dij(t)值的竞争层神经元j作为获胜神经元,
(2)
假设输入层与竞争层获胜神经元之间的权值Wij(t)(1),竞争层获胜神经元与输出层之间的权值邻域的权值Wij(t)(2)的更新可以表示为,
Wij(t+1)(1)=Wij(t)(1)+η(t)(1)(xi-Wij(t)(1))
(3)
Wij(t+1)(2)=Wij(t)(2)+η(t)(2)(xi-Wij(t)(2))
(4)
式中,学习率η(t)可以更新为,
η(t+1)(1)=η(1)(1)(1-t/T)
(5)
η(t+1)(2)=η(1)(2)(1-t/T)
(6)
其中,η(1)为学习率的初始值.
由于自组织神经网络更新的权值是需要满足一定邻域要求的,为了加快自组织网络学习的速度,通常希望已开始从某个较小的邻域内对权值进行更新,以加快邻域的学习速率.而在算法后期,则希望邻域的范围更大一些,实现对算法的权值进行更全局的更新.
假设输入层与竞争层获胜神经元之间的领域半径为N(t)(1),竞争层获胜神经元与输出层之间的邻域为N(t)(2),则邻域的更新可以表示为,
N(t+1)(1)=N(1)(1)(1-t/T)
(7)
N(t+1)(2)=N(1)(2)(1-t/T)
(8)
2.4 基于自组织映射网络的入侵检测算法
本研究提出的自组织映射网络的入侵检测算法可以描述为:先初始化输入层与竞争层获胜神经元之间的权值Wij(t)(1),竞争层获胜神经元与输出层之间的权值Wij(t)(2),两层的学率初始值η(t)(1)和η(t)(2),以及两层领域半径N(t)(1)和N(t)(2),最大迭代次数T.
步骤1.对训练样本集进行归一化处理,样本的形式如X={x1,x2,…,xn},n为输入神经元个数;
步骤2.根据式(1)计算输入到输出的距离Dij(t)后,并根据式(2)选择具有最小Dij(t)值的竞争层神经元j作为获胜神经元;
步骤3.根据式(7)和式(8)来更新权值的邻域;
步骤4.根据式(5)和式(6)来更新权值的学习率;
步骤5.根据式(3)和式(4)来更新邻域的权值;
步骤6.更新当前迭代次数t=t+1,判断是否达到最大迭代次数T;
步骤7.判断当前迭代次数的值:如果达到最大迭代次数,则算法停止,将具有最大输出值的网络攻击行为作为入侵检测的结果;更新当前迭代次数t=t+1,判断是否达到最大迭代次数T.如果未达到最大迭代次数,则判断输出神经元的输出与训练数据的标签之间的误差是否小于阈值,当误差小于某阈值时,算法结束,否则继续训练网络;
步骤8.将测试数据输入训练好的网络来获得检测的最终结果.
3 仿真实验
为了进一步验证本研究所提方法的优越性,采用KDDCUP99来进行仿真.这个数据机是模拟美国空军局域网在9个星期中的网络连接数据,包含一些有标签数据和一些无标签数据.其中,攻击类型的种类为22,进一步又可以归为5种类型.
表1 KDDCUP99数据标识
本研究从下面几个角度来对系统的性能进行评价,即训练的检测率DR、误检率FPR和漏报率MR,它们的表达方式如下,
(9)
(10)
(11)
误检率FPR为,
FPR=KR+MR
(12)
算法参数的设置为:将输入层与竞争层获胜神经元之间的权值Wij(t)(1)、竞争层获胜神经元与输出层之间的权值Wij(t)(2)、两层的学率初始值η(t)(1)和η(t)(2)都初始化为[0,1]之间的值.设置两层领域半径N(t)(1)和η(t)(2)为3,最大迭代次数T=1 000.
训练数据一共2 000个,测试数据一共1 000个,测试数据分为5组,每组200个.本实验应用本研究所提的方法,输入2 000个训练数据到网络中,对网络进行训练,得到训练好的模型,然后再输入5组测试数据进行测试.得到网络入侵的检测结果如表2所示.
表2 系统整体性能检测
从表2可知,本研究的检测算法在5组数据上均能有较高的检测正确率,同时保持较低的误报率和漏报率.
再次输入1 000组测试数据,将本研究的算法与文献[6]和文献[7]算法进行比较,得到3种方法的网络攻击入侵检测结果,如表3所示.
表3 各攻击类别检测结果
从表3可知,5种攻击中,本研究的算法获得的检测结果均较其他2种算法好,尤其是对于Normal攻击和U2R攻击的检测率,远远高于另外2种算法.
4 结 语
随着网络应用的普及和规模的急剧膨胀,网络安全攻击事件层出不穷,入侵检测系统作为对网络进行安全保护的重要手段,已经成为了计算机信息安全和网络安全研究的关键领域.本研究提出了一种基于自组织映射网络的入侵检测算法,通过训练数据来对自组织映射网络进行训练,得到一个用于进行入侵检测的网络安全检测算法,并采用KDDCUP99进行仿真来对本算法进行了验证,且将具有最大概率的模型作为入侵检测结果.仿真实验表明,本研究算法具有较好的有效性和可行性.