您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 一种改进的BP神经网络入侵检测方法的设计与实现
-1-一种基于改进BP神经网络的入侵检测算法的设计与实现李勤朴何立夫国网湖南省电力公司防灾减灾中心,湖南长沙,410129,摘要:针对传统BP神经网络入侵检测算法学习效率低、收敛速度慢的缺点,本文提出了一种改进型的BP神经网络入侵检测算法,并进行了系统原型的设计。仿真实验结果表明:改进型的算法比传统型的算法具有更快的学习速度和更准确的报警率,实验结果令人满意。关键词:网络安全;入侵检测;神经网络;BP算法TheDesignandImplementationofanIntrusionDetectionAlgorithmBasedonImprovedBPNeuralNetworkLiQinpuHeLifuStateGridHunanElectricpowercorporationdisasterprevention&reductioncenter,changsha,410129,ChinaAbstract:AimingattheshortcomingsoflowlearningefficiencyandslowconvergencespeedofintrusiondetectionalgorithmbasedontraditionalBPneuralnetwork,thispaperpresentsanimprovedintrusiondetectionalgorithmbasedonimprovedBPneuralnetwork,anddesignsthesystemprototype.Thesimulationresultsshowthattheimprovedalgorithmhasfasterlearningspeedandmoreaccuratealarmratethanthetraditionalalgorithm.Andtheresultsoftheexperimentweresatisfactory.Keywords:Networksecurity;Intrusiondetection;Neuralnetwork;BPalgorithm随着互联网技术的快速发展,因特网应用的广泛普及,随之而来的信息泄漏、信息窃取、数据篡改、数据删添、计算机病毒等黑客事件不断出现,网络安全问题日显突出。据美国联邦调查局(FederalBureauofInvestigation)的分析,美国每年因为网络安全造成的经济损失超过了170亿美元;75%的公司报告财政损失是由于计算机系统的安全问题造成的;平均每个组织损失40万美元;超过70%的安全威胁都来自内部[1]。由此可见,网络安全给系统带来的损失是巨大的。因而许多组织提出更多更强大的主动策略和方案来增强网络的安全性,入侵检测就是其中一个有效的解决途径。入侵检测是通过对计算机网络或计算机系统中的若干关键点收集信息并进行分析,从中发现网络或系统中是否有违反安全策略的行为和被攻击的迹象。目前国内外普遍采用在入侵检测中引入智能化的方法来解决网络安全问题,其中人工神经网络是目前比较理想的一种方法。特别是目前研究最多、应用最广泛的一种多层前馈神经网络,将它应用在入侵检测系统中可以提高入侵检测系统的效率,增强系统的自学习能力。本文对入侵检测技术和人工神经网络技术作了深入的分析研究,尤其对神经网络的训练速度进行了相关的优化和提升,针对传统BP神经网络入侵检测算法学习效率低,收敛速度慢的缺点,本文提出了一种改进型的BP神经网络入侵检测算法,并进行了系统原型的设计,该算法具有更快的学习速度和更准确的报警率,实验结果令人满意。1入侵检测的基本模型1.1P2DR模型P2DR模型[2](Policy、Proetctino、Detection、Response)是一个动态的计算机系统安全理论模型。具有动态性和基于时间的特性。策略是该模型的核心内容,在实施过程中,策略规定了系统所要达到的安全目标-2-和为达到目标所采取的各种具体安全措施及其实施强度等,安全措施必须按需而定,措施的实施必然影响到系统的运行性能和用户操作的舒适度。防护涉及到安全管理规则的制定、系统安全配置以及各种安全防护设备,例如,VPN设备、防火墙等。检测是指对系统安全状态进行实时的动态监控。响应是指当发现了入侵活动或入侵结果后,系统做出及时的反应并采取措施,包括:记录入侵行为、通知管理员、阻断进一步的入侵活动以及恢复系统正常运行等。P2DR模型尽可能地增大保护时间,尽量减少检测时间和响应时间。入侵检测技术是其主要的技术。入侵检测系统根据现有已知的安全策略信息,配置好系统模块参数信息。当发现入侵行为后,入侵检测系统会通过响应模块改变系统的防护措施,改善系统的防护能力,从而实现动态的系统安全模型。因此,从技术手段上分析,入侵检测可以看作是实现P2DR模型的承前启后的关键环节。1.2IDS通用入侵检测模型该模型由DorothyDenning在1986年提出,依照一定的安全规则和策略,通过软件、硬件,对系统和网络的运行状况进行实时的监测,较准确的发现各种有害的攻击企图、行为或攻击结果,确保网络系统内部资源的完整性、机密性和可用性。它开创了入侵检测安全技术的分支,目前的检测技术及其体系均是在此基础上的拓展和深入。模型包括六个核心部分:主体、对象、审计记录、活动简档、异常记录、活动规则。模型首次引入入侵检测技术,并且建立了入侵检测的基本模型,被视为入侵检测领域内的开创性成果。1.3CIDF通用入侵检测框架该框架由美国国防部高级研究计划署(DARPA)和互联网工程任务组(IETF)的入侵检测工作组(IDWG)发起制定了一系列建议草案,从体系结构、API、通信机制、语言格式等方面规范IDS标准,提出了CommonIntrusionDetectionFramework(公共入侵检测框架,CIDF)规范[3]。该框架包括了四个基本组件:事件产生器、事件分析器、响应单元和事件数据库。框架在某种程度上将入侵检测标准化,开发了常用的一些协议和应用程序接口API,使入侵检测的研究项目之间能够共享信息和资源,并且入侵检测组件也能够在其它系统中再次利用。CIDF的工作集中体现在四个方面:IDS的体系结构,通信机制,描述语言和应用程序接口API。1.4BP神经网络模型BP神经网络是一种多层前馈模型,它利用误差逆传播算法进行误差校正的神经网络,即利用实际输出与期望输出之差对网络的各层连接权由后向前逐层进行校正的一种计算方法。通常,输入层的神经元不参与计算,只起到信号分配的作用。对于二层或二层以上的多层神经元网络,隐含层中左、右各层之间各个神经元实现全连接,当训练样本数据提供给网络后,其神经元的激活值将从输入层经各中间层向输出层传播,在输出层的各神经元输出对应于输入模式的网络响应。然后,当期望值与实际输出误差值较大时,模型从输出层经各中间层,最后回到输入层逐层修正各连接权。随着误差逆向传播训练的反复迭代,模型的正确率也不断的提高。然而,BP神经网络算法也有弱点,如训练速度慢、局部极小点的逃离问题、算法的收敛慢问题等问题[4]。2基于改进的神经网络的入侵检测模型2.1改进型神经网络入侵检测系统结构本文实现的基于BP神经网络的入侵检测技术的系统的结构如图1所示。其中数据获取模块:提取主机中的日志或者网络节点监听数据。由于时间有限,本文只涉及到入侵检测技术的实现,固其数据来源于模拟的主机日志。从预定义好的文件中读取所需要的数据进行学习。数据样本选取系统活动时间、登录次数,以及两次登录间的最大间隔,以秒(s)为单位。数据处理模块:从输入数据流中提取特征向量、并转化为神经网络的输入。本文将数据进行归一化处理后提交给神经网络,数据经过归一化处理后处于(0,1)之间,便于运算,本文所用的公式:)/()(minmaxminxxxxxii。数据学习模块:对样本数据进行训练学习,动量因子和学习效率的范围大都在(0,1)之间,本文选择0.7。数据分析模块:对所获得的数据向量进行分析处理,输出判断结果或者根据结果修改权值。-3-图1入侵检测系统结构图当系统进行数据分析聚类时,样本的期望输出值为0或1,但由于只有激活函数中的时才为0或l,这有可能将某些权值趋向无穷大。为了避免这种饱和现象,期望输出可适当放宽,如输出大于0.9时就看作1,当输出小于0.1时就认为是0,即每个样本的期望误差定义为01.0)1.0(2。2.2改进型BP神经网络入侵检测模型基于BP神经网络入侵检测模型包括输入层、隐含层(中间层)和输出层,模型结构如图2所示。图2入侵检测系统模型图通过反复试验,笔者认为输入层设三个结点较为合适,每个结点代表一个数据项,分别表示活动时间段,活动时间内的登录次数,两次登录相隔的最大时间;而输出层设计一个结点,判断是否发生了入侵作为输出结果;隐含层单元数的选择没有具体的判定方法,通常选取三个结点比较理想。2.3算法主要函数与基本步骤笔者在WindowsXP+C语言环境上运行,主要函数有:Detecting():检测函数;Training():训练函数;Initial():初始化函数;Normalization():归一化函数;Err_calculate():输出结果的误差计算;Err_O_H():输出层到隐层的误差计算函数;Err_H_I():隐层到输入层的误差计算函数;Delta_O_H():修改隐层到输出层的权值,学习效率以及阈值函数;Delta_H_I():修改输入层到隐层的权值,学习效率以及阈值函数。算法基本步骤:(1)调用Initial()函数初始化神经网络的各权值和阈值;(2)对所得到的数据进行归一化处理;(3)如果是进行检测,则转入Detecting()函数进行检测并输出结果,反之则转入Training()函数进行学习;(4)调用Err_calculate()函数计算Training()函数运算得出的结果,如果误差大于0.01,则转入下一步,反之,则训练结束。(5)调用Err_O_H(),Err_H_I()和Delta_O_H(),Delta_H_I(),进行运算。(6)转回并调用Err_calculate,重新计算误差,重复(4)(5)(6)直到结束。3实验结果及分析本文对算法的改进主要从三个方面进行:增加动量因子;增加学习效率自动修改;增加对阈值自动修改。通过仿真实验发现,未改进的算法对神经网络的权值和阈值进行了546次修改,增加动量因子和自动调整学习率优化后,对神经网络进行了40次修改,学习和修改权值和阈值的次数大幅下降,达到了原来的近1/14。由此可见,算法运算精度提高,学习速度提升,优化效果明显。仿真实验的结果见表1,经过一项优化的改进算法检测出全部发生入侵;经过两项优化的改进算法能检查出一项正常活动记录;经过三项优化的改进算法能检查出有两项正常活动记录。由此可见,优化项数越多的改进算法,检测的误报率越低,即准确率越高。表1改进型BP神经网络入侵检测算法仿真结果活动时间(s)登录次数最大登录时间间隔(s)动量因子优化结果动量因子和学习效率优化结果动量因子,学习效率和阈值优化结果-4-11095155发生入侵发生入侵发生入侵12520120发生入侵发生入侵发生入侵1050100990发生入侵发生入侵发生入侵140050150发生入侵正常正常160031300发生入侵发生入侵正常5001090230发生入侵发生入侵发生入侵125050270发生入侵发生入侵发生入侵15510675发生入侵发生入侵发生入侵19010560发生入侵发生入侵发生入侵26080130发生入侵发生入侵发生入侵4结论本文针对传统BP神经网络入侵检测算法学习效率低,收敛速度慢的缺点,提出了一种改进型的BP神经网络入侵检测算法,并进行了系统原型的设计,并对不同优化水平做了相应的优化。仿真实验结果表明:算法学习速度明显加快,报警率的准确性大大提高,实验结果令人满意。参考文献[1]戴英霞,连一峰,王航.系统安全与入侵检测[M].北京:清华大学出版社,2002.3.[2]唐正军,李建华.入侵检测
本文标题:一种改进的BP神经网络入侵检测方法的设计与实现
链接地址:https://www.777doc.com/doc-2814588 .html