0引言
最近十年,随着互联网技术的迅速发展,网络安全越来越受到人们的重视,各种利用网络漏洞和病毒入侵的手段层出不穷,极大地威胁着网络安全。而传统的杀毒软件和防火墙技术面对端口扫描和新型木马等网络攻击显得力不从心。在此背景下,作为一种积极主动的安全防护策略,网络入侵检测技术得到了人们广大的关注,获得了广泛的应用。但是随着网络入侵技术的进化,传统的入侵检测技术暴露出诸多缺陷,因此,本文引入了神经网络技术对传统入侵检测系统进行升级,以提高系统的检测性能。目前国内外有许多学者和机构都进行了基于神经网络的网络入侵检测系统的研究和探索。美国国防部为了提高计算机网络系统的防入侵能力,从20世纪90年代开始陆续起草了一系列的建议草案和标准,从结构体系上规定了计算机网络入侵防御的相关技术标准,并资助MIT发布了KDDCUP99入侵检测测试集,为相关研究提供了研究样本;美国学者LTony等采用单隐含层的简神经网络构建了一个IDES的入侵检测专家系统,实现了对局域网内几种典型入侵行为的判断,开启了利用神经网络对网络入侵行为进行判断的新途径。随着网络技术,特别是网络入侵技术和大数据技术的迅速发展,国外的网络安全提供商分别推出了自己完善的反网络入侵解决产品,如:思科的IDS4250T和InternetSecurity的Realsecure等[1]。我国的网络入侵检测技术研究起步于20世纪90年代,哈尔滨工程大学的唐立力教授采用KDDCUP99入侵检测测试集作为研究样本,利用RBF神经网络作为判断模块,根据知识库中已经定义好的网络攻击方式来判断是否发生入侵行为,通过网络训练,对常见的四大类型的入侵行为进行了很好的判断;华中科大的周毅等采用遗传算法对BP网络输入参数进行优化,建立了GABP的诊断网络,大大提高了对网络入侵行为的诊断精度和速度,提高了网络的使用安全性[2]。虽然国内外对神经网络技术在入侵检测中的研究有着许多亮点,也取得了很多成绩,但是从目前的研究情况来看,大多学者采用的方法存在的普遍问题有:一是构建的网络入侵检测模型缺乏泛化能力,模型稳定差,当系统加入新的入侵类型时,模型诊断精度较低;二是除了国外少数商业软件巨头,其他研究者并未建立有效的基于检测模型的防入侵检测系统,即相关研究的实际用途有待进一步提高;三是检测系统的可扩展性和检测效率低。
1入侵检测系统的组成
1.1常见的两种入侵检测方法
在目前常见的入侵检测系统中,根据其检测方法的不同,可分为异常检测和误用检测两种方法。异常检测的基础是建立一个安全行为的数据库,在此数据库外的操作会被进行比对,当其严重偏离安全行为时即被判断为入侵行为。此方法的优点是对未知的入侵行为有较好的检测效果,漏报率较低;缺点是容易将一些未定义的正常行为判定为入侵行为,即误报率较高。误用检测则是一种基于入侵行为数据库的检测,该数据库是多种已知入侵行为及特征的集合,且数据库是实时更新的。误用检测工作时,会对网络行为与数据库中的信息进行比对,以判定其是否属于入侵行为。误用检测的优势是可以快速有效地判断常见入侵形式;缺点是数据库需要快速和持续的进行更新,随着数据库规模的持续增大,可能影响检测的速度。本文研究了两种检测法的优缺点,决定在本文所构建的系统中同时采用这两种检测法,并以神经网络技术作为其实现的基础。
1.2现有入侵检测系统存在的问题
一般来说,目前常见的入侵检测系统具有以下一些问题:(1)检测效率较低。不管是误用检测还是异常检测都很难快速检测具有欺骗性的入侵行为;异常检测的正常运行需要系统维护记录的实时更新,误用检测则需要复杂的专家系统shell来编码和解释,需要耗费大量的系统资源,因此其效率较低。(2)维护性和系统更新能力较低。一个入侵检测系统需要实时维护及更新,目前广泛存在的系统在维护和更新时往往要求操作者了解专家系统规则语言,使得操作者的学习成本大大提高。(3)漏报和误报问题。目前常见的入侵检测系统普遍存在漏报率和误报率偏高的问题,这极大的影响了系统的性能。
1.3将神经网络技术应用于入侵检测系统的优势
将神经网络技术应用到入侵检测研究中。主要有以下优势:(1)误警率低。现有系统的一大缺点就是误报率较高,这是由于其采用的模式匹配模块缺乏自学习能力导致的,神经网络模型有较高的自适应和自学习能力,可以很好的解决这一问题。(2)自适应性好。传统的入侵检测系统需要对每种已知的攻击行为制定专家系统shell来编码和解释。当新的攻击类型出现时,需要重新进行编码和解释,这极大的增加了系统的更新和维护成本。而基于神经网络技术的系统则不依靠信号的模式匹配,其具有很强的自适应性,当需要对系统进行更新时,也不会造成太大的学习成本。(3)漏报率低。传统入侵检测系统,特别是采用误用检测法的系统对于新的攻击行为会有较高的漏报率,而采用神经网络技术则可以有效解决这一问题。
1.4基于神经网络的入侵检测模型
本文借鉴文献[34],结合神经网络的相关特点,建立了如图1所示的检测模型。在图1的入侵检测系统中,神经网络训练模块1在发现新的攻击类型后会将相关信息输入到神经网络训练模块2中进行训练,从而扩充误用检测库的数量,极大地提高了该系统的实用性,该系统主要分为以下几个模块:(1)数据采集模块数据采集模块采用Winpcap来捕获网络中的数据包和处理系统日志并送入预处理模块。Winpcap体系结构利用的Packet.dll和Wpcap.dll两个API为用户提供支持。(2)数据预处理模块对Winpcap采集到的数据进行筛选和处理,检查其格式,并调用不同的分析程序段对包中不同协议类型的内容进行分析,以转化为神经网络所能识别的标准格式。(3)神经网络模块本系统建立了分别基于误用和异常检测库的神经网络模型。该网络首先需要一定样本的训练,然后即可以对相关的入侵行为进行识别,并把确定的行为报送给入侵响应模块。(4)报警响应模块该模块的功能主要有两个:一是记录入侵行为的时间日志,以便复查、分析及作为证据,并保证这些记录不能被擦除或远程销毁;二是及时报警,通知网络管理人员及时采取相应措施以阻止网络入侵行为。
2系统的试验过程及结果分析
2.1实验环境
本次实验的硬件平台为Inteli53.2GHz,8GB内存和1TB硬盘的计算机,实验在Windows8平台上用Matlab语言编程实现。
2.2试验数据源的选取
本文所采用的分析数据是目前入侵检测研究中常用的KDDCup1999Data数据集,该数据集包含了近500万条模拟网络环境中的各种攻击和正常访问链接的记录。其中入侵行为主要包含4种常见的攻击类型和1种新的攻击类型,它们分别是拒绝服务攻击(DenialofService,DOS)、本地用户权限提升攻击(UsertoRoot,U2R)、远程攻击(RemotetoLocal,R2L)、探测攻击(Probe)和新类型攻击(Other)[5],这5种攻击类型中包含的18种具体的攻击名称如表1所示。在KDDCup1999Data数据集中,每条链接都包含41个特征,标志着这条链接记录的各个属性,其中最后一个特征为表明其为正常数据或入侵的类型。本文选择其中比较重要的24个特征作为神经网络的输入值,再对这24个属性进行编码处理,将符号属性转化为神经网络可以识别的数值型,最后进行归一化处理。考虑到实验用机的数据处理能力,本次实验从KDDCup1999Data数据集中选取试验数据7600条,并取尽可能多的包含常见的攻击方法,且保证每种攻击方法有一定数量的数据个数,以满足神经网络的训练需求,其具体的数据分布如表2所示。在Matlab中定义该神经网络对攻击类型的判断输出如表3所示。
2.3构建BP神经网络
考虑到本文所需分析的网络的输入/输出参数较少,且经过处理后数值类型比较规范,为提高网络求解速度,本文采用含一个隐藏层的BP神经网络结构进行分析。其中,由于输入单元数为24,输出单元数为6。根据经验公式可选隐藏层节点数为7~17之间的整数。采用试凑法得到了隐含层数与均方误差值(MSE)的曲线关系如图2所示。其中隐含层神经元数为8时,得到的MSE值最小为35,所以确定的隐含层神经元数为8。隐含层单元数为8,主要传递函数为“logsig”和“purelin”函数。2.4BP神经网络的训练在Matlab中应用输入和输出样本向量对网格进行训练,定义期望误差为1×10-5。训练过程中,BP神经网络误差的变化情形如图4所示。3结语本文主要对神经网络技术在网络入侵检测中的应用进行了研究,分析了传统入侵检测系统存在的检测效率低和漏报、误报率高等问题,指出了将神经网络运用于入侵检测系统可以有效降低漏报、误报率,提高系统自适应性和减去数据过载等优势。本文构建的系统共有数据采集、数据预处理、神经网络和报警响应四个模块组成。通过利用该系统进行的仿真实验表明,采用神经网络技术的网络入侵检测系统具有较高的检测精度,可以有效提高网络的安全性。
作者:詹沐清 单位:景德镇陶瓷学院