当前位置:文档之家› BP神经网络在入侵检测中的应用

BP神经网络在入侵检测中的应用

收稿日期:2002-10-20.作者简介:肖道举(1954-),男,副教授;武汉,华中科技大学计算机科学与技术学院(430074).BP 神经网络在入侵检测中的应用肖道举 毛 辉 陈晓苏(华中科技大学计算机科学与技术学院)摘要:对如何检测未知入侵手段的问题进行了探讨.在被监测程序输入条件已知情况下,借助程序行为简档,给出了一种基于BP 神经网络的入侵检测方法,阐述了所用BP 神经网络的基本结构以及训练方法,最后在LIN U X 环境下进行了实验验证.结果表明,在程序行为简档内容比较清晰的条件下,运用BP 神经网络检测入侵,可在一定程度上提高入侵检测系统的准确检测率.关 键 词:入侵检测;BP 神经网络;程序行为简档中图分类号:T P393 文献标识码:A 文章编号:1671-4512(2003)05-0006-03 网络入侵本质上都是入侵者利用服务器提供的服务程序的弱点进行非法操作以期获得所想要得到的结果.例如LINUX 下的lpr ,sendm ail ,xterm 和eject 等被广泛使用的服务程序都存在一些缓冲区溢出的漏洞,这些漏洞容易被网络入侵者用来获取root 权限.由于这些程序漏洞不易被发现,而且很难修补,无法通过软件升级完全解决,这就要求入侵检测系统应该能够对此类利用服务程序漏洞的攻击作出正确响应[1].本文依据系统服务程序行为简档,提出了一种基于BP 神经网络的入侵检测方法,以求提升入侵检测系统的准确检测率.1 程序行为分析与检测方法的基本特征1.1 程序行为分析检测未知入侵手段的一种方法是通过建立用户活动简档来记录所有用户在服务器上的活动情况.该方法的基础建立在对用户历史行为的学习之上,通过不断更新用户活动简档,并以此与当前用户行为相比较,一旦发现当前用户行为显著背离正常行为,系统就认定发生了网络入侵.基于用户活动简档的入侵检测方法通常基于这样一个假设,即:入侵者总是突然地改变其行为.因此,如果入侵者缓慢地改变他的行为特征,往往易导致入侵检测系统产生漏报.应该看到,与用户行为相比,系统服务程序则具有相对稳定的行为特征,因而本文选取系统服务程序的行为作为研究对象,以期尽可能多地发现未知的入侵行为.基本做法是对不同系统服务程序分别建立程序行为简档,同时在分析这些简档的基础上求取正常程序行为的期望值,一旦当前程序行为偏离给定期望值过大,即认为攻击发生.这样做的一个优点在于不再需要重复记录用户的正常行为,大大降低了系统开销,同时也可避免因入侵者行为的缓慢改变而导致的系统漏报.一般而言,程序行为特征至少可表现在以下两个方面:程序的外部特征.例如它的输入;程序的内部特征.例如某些内部变量的取值.1.2 检测方法的基本特征对程序行为的检测实际上就是对系统服务程序的行为进行分类和识别.为了达到这一目的,要求入侵检测系统不仅应具有系统中每一个服务程序行为模式的知识,而且还应能适应程序行为的改变.显然,采用传统的统计分析方法很难满足这些要求.为此,本文采用BP 神经网络作为入侵检测的基本分析工具.神经网络有多种模型,本文采用了误差反向传递神经网络(Erro r Back Propagation Neural Netw ork ,简称BP -NN ).BP -NN 采用BP (Back Propagation )算法进行训练.该算法实际上是工程上常用的最小均方误差算法的一种广义形式,它使用梯度最速下降搜索技术,按代价函数(网络的实际输出和期待输出的均方误差)最小的准则递归求解网络的权值和各结点的阈值[2].第31卷第5期 华 中 科 技 大 学 学 报(自然科学版) V ol .31 No .52003年 5月 J .Huazhong U niv .of Sci .&Tech .(N ature Science Editio n ) M ay 2003DOI :10.13245/j .hust .2003.05.0032 神经网络训练过程为了对程序行为进行准确的判别,必须训练一个合适的神经网络.神经网络的训练过程可分为以下三个阶段:收集训练数据;训练神经网络;系统测试与性能评估.2.1 训练数据的收集为了保证神经网络的准确判断率,必须收集丰富的且具有代表性的训练数据.从程序行为判别这一角度出发,用来训练神经网络的数据既应包含导致正常程序行为的程序输入,也应包含导致恶意程序行为的程序输入.训练数据的来源分为两个部分:一部分来自于服务器的服务记录,包括导致正常程序行为的程序输入和导致异常程序行为的程序输入;另一部分是随机生成的字符串,视作导致正常程序行为的程序输入.2.2 BP 神经网络的训练图1给出了BP 神经网络训练系统的总体结构.其中预处理模块主要用来将被监测程序的输入转换成可计算的数字量.图1 BP 神经网络训练系统的总体结构BP 神经网络要求在有导师条件下训练.有导师的训练除要求恰当选取组成训练集的无素外,还需对导致正常程序行为的程序输入和导致异常程序行为的程序输入进行恰当分类.因此不宜进行在线训练.对神经网络的整个训练过程可以分为多个阶段,每个阶段都是全体训练数据集的一次遍历,整个训练过程就是不断地重复这样的训练阶段,直到网络判断整体误差不再减小或者训练阶段数达到一个较大给定值为止.要强调的是,在训练神经网络过程中,如果需向训练集添加新元素,则整个训练过程必须从头开始而不是仅仅只对新添加的元素进行训练.2.3 BP 神经网络的结构图2给出了一个含隐层、输入层和输出层的典型BP 神经网络基本结构.本文所用神经网络中各网络结点的传递函数为Sigmoid 函数O j =11+ex p -∑W ij O i +Q j,式中,O j 是网络结点j 的输出,Q j 是结点j 的阈值;W ij 是从结点i 到j 的权值.图2 BP 神经网络结构在图2中,输入向量由被监控的系统服务程序的部分输入以及程序内部部分变量的取值所组成.输入分量在提交给BP 神经网络之前,经由预处理模块完成数值化.输出向量包含两个分量y 1与y 2,它们被用来表示正常程序行为和异常程序行为的概率,取值在0~1之间,并设定θ1和θ2分别表示正常程序行为和异常程序行为的阈值.因此,若:a .y 1=1,y 2=0,表示程序行为正常;b .y 1=0,y 2=1,表示程序行为异常;c .y 1>y 2且y 1≥θ1,认为程序行为正常,同时给出必要的提示信息;d .y 1<y 2且y 2≥θ2,认为程序行为异常,系统报警;e .其他情况需结合另外的检测手段进一步判断.2.4 神经网络的测试与选择神经网络存在的一个主要问题就是其隐层结构的不确定性.换言之,神经网络的性能在很大程度上取决于如何恰当确定隐层结点的数量,而隐层结点的确定又与特定的应用紧密相关.此外,由于神经网络所拥有的知识主要取决于网络连接的权值与结点阈值,因此网络权值与结点阈值的初始值不仅仅影响到网络的收敛速度,而且可能对最终网络的性能会有很大影响.遗憾的是,目前很难找到一种恰当的方法来确定神经网络的初始状态,一般都是采用一组随机值来初始化网络的权值和阈值[3].基于以上考虑,在取相同训练集的前提下,应选取若干不同结构的BP 神经网络,分别对其进行训练,从中选出性能最好的神经网络.由于不同BP 神经网络在结构上存在的差异主要体现在隐层结点数和隐层结构,因而在不失一般性的原则下,本文选取了隐层结点数分别为10,15,20,25,7第5期 肖道举等:BP 神经网络在入侵检测中的应用 30,35,40,50和60的九种不同结构的神经网络进行实验.同时,对每一种神经网络,采用10组随机值初始化神经网络的权值和阈值.这样对每一个被监测的系统程序来说,将有90个神经网络需要训练.90个神经网络被训练完之后,分别对其进行性能测试(测试数据不包括在训练数据集之中),从中挑选出对测试数据集的总体判断正确率最高的神经网络,用于在线使用.3 实验分析举例为了检验本文所给出的入侵检测方法是否能够很好地检测出针对系统服务程序的非法使用,在LIN UX环境下,对系统服务程序lpr的使用情况进行了测试.lpr是一个提供远程打印服务的系统程序,它存在缓冲区溢出漏洞,容易被攻击者利用来执行一个具有roo t权限的shell程序,或者其他一些root命令.攻击者为了利用lpr存在的缓冲区溢出漏洞进行攻击,首先需要设计一个特殊的攻击程序,该程序至少具有如下特征:a.会自动生成一个很长的字符串;b.在上述字符串的结尾自动加上一串起攻击作用的字符,用来覆盖堆栈的返回地址指针,同时将新的返回地址指针指向内存中另一条指令的入口地址(通常这个指令是/bin/sh);c.为了使系统缓冲区溢出,被用来攻击的字符串总长度应达4096个字符以上.由于攻击程序所生成的字符串的最后一部分字符(一般不长于75字符)是真正产生实质性攻击的,因此,可以取攻击字符串的最后75个字符作为导致异常程序行为的程序输入来训练神经网络.另一方面,正常的lpr输入字符串一般不长于75个字符(不足75个字符时,以NULL填充),因此也用来可以作为导致正常程序行为的程序输入来训练神经网络.显然,神经网络的输入向量包含75个分量.实验中,共收集了800例数据,其中导致异常程序行为的程序输入200例.具体实验时,将800例数据平均分为两部分(各含100例导致异常程序行为的程序输入),一部分用于训练神经网络,另一部分用于测试神经网络性能.测试结果:隐层结点数为25个的BP神经网络表现最好,其误报数为5,漏报数为16. 预测正确率= 1-预测出错的实例数测试实例总数×100%=(1-21/400)×100%=94.75%. 实验结果表明,在程序行为简档比较清晰的情况下,使用BP神经网络作为入侵检测的一种方法,灵活性较好、自适应能力较强、预测精度较高,能在一定程度上实现对未知入侵行为的检测.参考文献[1]Lunt T.A survey of intrusion de tection techniques.Computers and Security,1993,12:405~418[2]Jain A,M ao J,M ohiuddin K M.Artificial neural net-w orks:a tuto rial.I EEE Computer,1996,29(3): 31~33[3]Lane T,Bro dley C.An application of machine learningto anomaly detection.in:Stephen B ed.The20th Na-tio nal I nformation Systems Security Conference.Balti-more,1997.Baltimore:Boulder.CO.,1997.366~377The application of BP-neural network in the intrusion detectionXiao Daoju Mao Hui Chen X iaosuA bstract:In order to detect the unknow n intrusion into system service,this paper presented a study of BP neural netw ork in the intrusion detection system under the condition that the behavio r of program w as pro-filed.The structure and training method of neural netw ork w as explained.With this method,an experi-ment based on LIN UX platfo rm was given.The result showed that the accuracy of detection based on BP neural netw ork w as very satisfacto ry if the profile of the prog ram behavior w as clear.Key words:intrusion detection;BP neural netw ork;program behavior profileXiao Daoju Assoc.Prof.;College of Computer Sci.&Tech.,Huazhong Univ.of Sci.&Tech., Wuhan430074,China.8 华 中 科 技 大 学 学 报(自然科学版) 第31卷。

相关主题