模块化免疫神经网络模型在计算机病毒分类检测中的应用
扫描二维码
随时随地手机看文章
0 引言
随着信息技术的发展和互联网应用的普及,计算机系统受到计算机病毒的威胁。计算机病毒分类检测,指将可疑文件作为输入,执行某病毒检测算法后输出结果(无毒、带毒/带何种毒)的过程,实质上是对文件的分类。病毒分类检测应属于模式识别范畴。由于单一的技术无法有效地对抗计算机病毒,技术的融合并用及智能化,将是未来计算机病毒检测的趋势。故采用免疫算法和神经网络的新型网络模型,对计算机病毒分类检测进行研究。
1 模块化免疫神经网络模型的提出
人工神经网络和人工免疫系统都是受生物学的启发发展而来的理论和技术,两者在生物学原理和人工原理上各有异同。研究表明,免疫原理可以应用到神经网络中,以提高神经网络的性能;反之,神经网络理论也可以应用到人工免疫系统中,从而产生一个相互之间可以受益的研究领域。
图1中,抗原(Ag)表示神经网络中输入神经元到输出神经元的权向量Wk(由抗体Ab和自体库集S共同作用后,基本调节好的权向量),基于计算机病毒的入侵检测中,代表一类网络数据包,以二进制串表示。抗体(Ab)表示神经网络中的输入样本。S代表自体库集合。权值及输入样本和输出单元都使用二进制,即只使用0和1表示,如图2。
首先抗体库中的向量都会和白体库的向量进行识别。如果抗体库中的向量一旦和自体库中的向量匹配,则会进行剪枝操作。
沿用传统的抗体网络特征,规定ξj表示网络中抗体j的抗原浓度,即抗体j所能识别的抗原个数。1个抗体细胞k与某种抗原细胞的亲和力,由权向量与该抗体的汉明距离(Hamming)决定,可由式(1)得到与Ag可能性的最大状态序列δ:
亲和力δ越大,说明这种抗体能够对此抗原进行较好的应答,保留。相反,通过剪枝的方式,从网络中删掉。把不与自身反应的抗体保留,进行对抗原的识别,进行后续的工作。
否定选择后的抗体与抗原进行神经网络的作用,规则如上,如果抗体不匹配,按照已有的神经网络的权值算法的改进步骤进行权值的调整,以达到在给定抗体空间中拥有最大的解空间度,即2个抗体之间有最大的不相同度。
更新抗体种群,经过若干次的叠代运算,把抗体种群训练收敛于一个较稳定的集合,即学习过程完毕。学习完成后,可以用于计算机病毒检测中。
2 模型设计思路
整个网络的竞争学习步骤分为2部分:
第1部分:首先从抗体库里根据概率密度P(Ab)选择出1个抗体进行输入。并和自体库S进行运算,并设定阈值ε,当满足式(2)时:
抗体经过了自体耐受,变为成熟的检测器,且不与自体发生免疫应答,是合格的检测器。如果超过阈值ε,则从网络中删除此抗体节点。抗体Ab1和自体集S中的S1产生了免疫应答。
第2部分:经过自体耐受的抗体分别和某个抗原Agk进行作用,在抗体内部设定1个ξi,一旦抗原的权向量和抗体的汉明距离超过阈值ε,ξj增加1,如果ξj长时间等于0,将此抗体从网络中删去。当ξj增加到1个常值M时,不再继续增加,启动1个计时器,按一定的间隔时间t递减ξj,避免了长时间未产生应答的抗体继续残留在抗体库中。新模型中的神经网络处理单元如图3。
在该模型中,每个神经元的基本性质相同,但具体形式不同。因此,每个神经元的激活函数被设计成可变形式,也就是说,激活函数的基本性质保持不变,但具体的形式应该可以通过调整函数的参数来改变,任一神经元i的激活函数可设计成:
3 抗体自体库的建立
随机获取一组输入向量抗原X,按照式(1)产生与X最匹配的中心序列k,把k添加到抗体群中。由于计算机病毒入侵检测中在某段时间出现相同的入侵行为的概率较高,可根据网络使用情况,进行最快速度的匹配运算,而不需要进行学习功能。
抗体自体库主要由选择抗体集、交叉抗体集和变异抗体集组成。
1)选择抗体集的设计:是保证免疫算法种群优胜劣汰的重要抗体集,且有较多的实现。
2)交叉抗体集的设计:交叉就是把2个父个体的部分结构加替换重组而生成新个体的操作,其目的是能在下一代产生新的优化抗体集。
3)变异抗体集的设计:因免疫算法中变异抗体集以辅助手段出现,故采用本位变异的方法即可。
4 仿真实验
其训练方法如图4。
4.1 仿真训练初始数据的收集
目前世界上很多研究机构和研究人员致力于计算机病毒入侵检测方面的研究和系统开发,提供了一些测试资料集合,包括网络资料、基于主机的审计资料和系统调用序列。
网络传输协议/网络协议(TCP/IP)对需要组织传输的资料包进行打包。TCP层在包中加入了头信息如:源埠、目的埠、序列号、ACK确认号、偏移量、SYN、FIN、窗口和紧急指针等。含有TCP头信息的包被送到IP层,加IP资料包头如:包头长度、服务类型、资料包长度、分段偏移量、生存期、协议类型、源地址和目标地址等。而正常和异常的数据包都在网上传输,其特征是有差别的。
为测试改进后的网络在病毒入侵检测应用中的效果,采用了具有30万条数据记录的测试数据集,每条数据包括了网络数据包的包头信息、网络连接信息和数据信息等,每条数据包含96位的二进制代码。其中前32位二进制为源IP地址,32-64位二进制为目标IP地址,64-96位二进制表示了一些数据信息,每个数据被标记为异常或者正常。该数据源由MATLAB利用random()函数产生一组随机的小数,因为考虑到是二进制运算,规定:
这样随机产生的二进制串96个为一组,模拟的IP数据包,一共产生96万个二进制串组合。
4.2 抗体自体库仿真训练(自体库的建立)
使用这1万条数据进行自体库的建立和神经网络的学习。在不断调整抗体自体库的同时,使自体库的解空间在最大程度上得到提高,最后趋近与一个稳定的自体库接集合。利用建立好的抗体检测库检测未知的29万条数据纪录。仿真试验算法如下:
4.3 病毒入侵检测算法的仿真训练
建立起自体库后,进行病毒入侵检测算法的仿真试验,步骤如下:
首先,引入新的一组数据向量,与自体库也就是所谓的记忆细胞匹配,如果在一定的阈值范围内匹配度很高,则认为该向量为入侵行为,并把匹配度提升1;相反,如果匹配度不高,则找出记忆细胞里与之亲和力较大的进行权值的调整,达到两者之间的最优匹配度,然后把新的向量作为抗体集合加入到记忆细胞,重复操作,完成后统计结果。
检测算法仿真程序如下:
4.4 实验结果统计
在模式识别领域中,Receiver OperatingCharacteristics(ROC)曲线用于比较不同分类检测算法的性能。曲线下的面积越大,则算法分类检测性能越好越稳定。图5为该模型与遗传算法模型以及传统抗体模型的基于MATLAB环境下的仿真测试ROC图。可见,集成新型抗体模型网络ROC曲线下方的面积要大于其它2个网络模型的面积。说明基于模块化的免疫神经网络模型的计算机病毒检测模型性能要优于其它2个,正好支持了文献[2]的结论。文献[2]对基于n-gram的恶意代码检测取得了很好的效果,一共测试了8种分类器,结果如图5、图6,其中Boosted J48性能最优。
分析以上实验数据,可得到以下结果:
1)由表1可知,自体库选得过小,会造成单抗体的高扰动率,频繁更新抗体群,缺乏抗体的多样性,覆盖范围减小。
2)自体库过大,会造成训练网络的时间增多。拟采用200条为自体库大小,对这30万条数据记录通过新模型进行检测,并与单免疫算法模型和传统的抗体网络模型进行对比,如表2。虽然此网络模型在时间上略逊于其他两种已知算法模型,但在准确率上却有明显的提高。
5 小结
由实验可知,基于免疫算法和神经网络的新型网络模型降低了传统的病毒入侵检测模型的误报率和漏报率,提高了免疫系统的学习效率和系统的智能化程度,在系统的容错性上也有较大的改善,对提高系统的检测能力具有重要意义。