决策树算法在入侵检测中的应用研究
2013-12-29孟娟杨青
摘要:随着计算机和网络在人们生活和工作中的普遍应用,网络环境下数据的传输不断受到攻击和篡改,网络安全已变得越来越重要。网络安全风险防范的要求不断提高,针对目前的入侵检测系统准确度不高、自适应性差、检测效率低等问题,该文基于决策树分类算法,设计了一个基于决策树的入侵检测系统模型,将决策树算法作为分类器应用于入侵检测的过程中,提高了入侵检测系统的性能。
关键词:入侵检测;决策树;入侵检测系统;数据处理
分类号:TP393.08 文献标识码:A 文章编号:1009-3044(2013)12-2885-03
入侵检测是判断当前分析的网络连接是正常的还是异常的。实际要解决的就是一个分类问题,通过选择网络的一些特征可以快速、准确地判别该网络连接的性质,如通过主机和网络的安全特征来分析辨别。传统的基于规则的简单模式匹配方法需全部属性特征的参与,且只能检测出已有的攻击。决策树是基于统计原理的,检测方法不需要全部属性特征的参与,是从决策树根节点到叶节点的一条路径的匹配,匹配次数更低,因而提高了检测效率。决策树可以不仅可以检测出已有的攻击还可以检测出新的攻击。该文将决策树算法应用于入侵检测的数据分类中,设计了一个基于决策树分类算法的入侵检测系统。
1 入侵检测系统
入侵检测(Intrusion Detection简称ID)作为一种主动的网络安全防御措施,能主动防御入侵攻击,高效地检测入侵行为。它通过从计算机系统或计算机网络中的若干关键点收集信息,并对这些信息进行分析,从而发现计算机网络或系统中是否有违反安全策略的行为和遭到袭击的迹象[1]。要检测出对系统的攻击行为或攻击的企图,需要通过入侵检测系统(Intrusion Detection System,IDS)来实现,IDS作为一种重要的网络安全保障工具,可以对网络实现实时的监视,能有效地防止入侵攻击行为的发生。能主动对来自外部的攻击进行有效防御,并可以对系统内部的恶意入侵行为进行检测。IDS的工作过程分为数据收集、数据处理、数据分析和响应处理4个阶段。IDS基本工作结构如图1所示。
2 决策树分类方法综述
决策树是一种较常用的数据挖掘算法,用来对数据的分类和预测。决策树算法的核心内容是构造精度高、规模小的决策树。决策树分类算法的基本原理是:采用自顶向下的递归方式构造决策树,首先计算每个属性变量的信息增益,将具有最高信息增益的变量作为测试变量,创建一个分支节点,并用该变量标记,对该变量的每个值创建分支,并由此分裂样本。决策树的生成是指根据训练样本数据集生成决策树的过程。决策树是由内部各节点、分支和叶子组成的一棵有向无环树。在无环树中根节点是决策树中最顶层的节点,其中每个内部节点对应于待分类对象的某个属性,决策树中有多个分支,每一个分支指向一个内部节点或叶子节点。对未知样本应用决策树来进行分类,是从上向下进行搜索分类。从决策树的根节点开始进行节点测试,对每个内部节点进行测试,每一个不同的测试结果对应一个分支。对每一个测试的结果进行分析,根据分析结果选择分支,按照算法最后到达一个叶子节点,叶子节点内存放一个类标号,用叶子节点的类标号来表示未知样本的类别。决策树的构造过程:一是由训练集生成一棵决策树;二是对生成的决策树进行剪枝,剪去影响精度的分枝。决策树算法在模型易理解性、易实施性、通用性和有用性方面都是最佳的,因此本文选用决策树算法作为主要算法。
目前,生成决策树算法主要包括CART、CHAIR、ID3、C4.5 等算法。其中C4.5 算法是比较简单易懂的构造决策树分类器的一种算法。该文以 C4.5 算法来构造对决策树。从所有训练样本处的树的根节点开始,通过选取一个属性,对训练样本来区分开。根据每一个属性的值产生一个相应的分支,相应的样本子集根据分支属性的值被移到新生成的子节点上,按照这种递归的算法,把所有样本都分配到某个类中,到达决策树的叶节点的每条路径表示一个分类规则。不同的属性值的选择,会产生不同的记录子集,因此,对节点属性值的选择,是决策树的生成算法的关键。直接影响到决策树结构的好坏,决策树生长的快慢,导致找到的规则信息的优劣。C4.5 算法的属性选择的基础是基于使生成的决策树中节点所含的信息熵最小。集合S的熵的计算公式如下:
3 基于决策树的入侵检测系统设计
随着计算机和网络技术的不断发展,使互联网成为人们工作、学习、生活各方面不可缺少的信息获取途径。网络是把双刃剑,在给人们提供服务的同时,也被不法分子利用,网络的安全问题变得日趋严峻。由于网络不断受到黑客的攻击,攻击的方式、手段每天都层出不穷,而已有的入侵检测系统由于自身算法的原因,检测效率低,当面对新的攻击,使得当前的入侵检测系统对新的攻击不能起到很好的防御作用。
3.1 入侵检测系统模型
本文设计的基于决策树分类算法的入侵检测系统模型,按照功能来划分,该系统模型由训练模块、数据采集模块、数据处理模块、检测模块和报警与响应模块共五个模块组成。如图2所示。
3.2 模块设计
把系统模型分为两部分,一个是训练模块,另一个是数据采集模块。下面对系统中的各模块的功能实现进行分析。
1) 训练模块
系统中训练模块将根据数据库中现有的入侵检测训练样本,通过一定的策略,对训练样本集进行样本选择,来构造一个性能优良的分类模型,用于数据模块的实时检测。
首先,对数据库中的训练样本经过数值化、归一化、去重、去噪等初步的预处理。选取训练样本集中最有代表性的样本。其次,对选出的代表性的样本子集,通过某种技术,把原始样本子集的特征之间的相关性消除,去除噪声和冗余,从而从原始样本子集的特征中获取最有效的信息,进行特征提取。最后,把得到的训练集送入决策树分类器进行训练,构建系统的决策树分类模型。由于网络攻击技术的不断发展,为了更好地应对网络攻击,需要在训练数据集中增加更多的训练样本,可以增加更多的样本特征,把更多的训练集进行重新运行训练模块,不断地更新系统的分类模型,使其更好的适应新的需要。
2) 数据采集模块
对网段中传输的各种数据包进行有效的监听,并负责从网络中采集到数据包。数据采集通过系统进行高效的数据包捕获,并对所捕获的数据包进行一系列的自动分析,实现网络安全的可靠管理。数据采集模块中实现数据包捕获的硬件条件是硬件系统中的网卡,由于同一网络内所有站点的数据包必须经过一个站点的网卡过滤,才能实现对网络信息进行有效的监视。所以,根据系统要求,网卡的工作模式需要设置在混合模式下。WinPcap是由BPF模型派生而来的包捕获程序,WinPcap为用户层提供了 Windows下的一个包捕获平台。在Windows操作环境下,可以利用WinPcap来实现数据包的捕获,实现对底层包的过滤。WinPcap包括一个网络组包过滤程序(NPF),一个高层的独立于系统的函数库(Wpcap.dll)和一个底层动态链接库(Packet.dll)。
3) 数据处理模块
数据处理模块对捕获的数据包,进行解析处理,分离出与安全相关的特征信息,可以得到每个网络连接的安全相关特征,把得到的安全相关特征经过一定的变换,就可以被分类模型正确得辨识。
4) 检测和报警响应模块
从系统中的训练模块可以得到分类模型,检测模块根据分类模型预测各个网络连接的所属类别,如DoS,R2L,Normal,Probe,U2R等。在检测过程中如果检测到有网络攻击入侵行为时,将进行确认,然后记录所检测到的入侵行为,同时,系统会发出警报,并作出响应的措施,并把检测到的入侵行为报告给网络管理员。如果入侵监测系统和控制台同时在一台计算机上,则该入侵行为的警报信息就会在屏幕上直接显示出来,并发出警告提示的声音。否则,将通过有效的安全通信途径,把入侵行为的警报信息传递给网络系统管理员。另外,对检测到的入侵行为还可以有其他的响应措施,如把入侵者的网络切断,或者给入侵者发送信息给予警告,或者对入侵者进行追踪、调查、收集入侵者的额外信息用于改进系统,必要的时候还可以采取反击行动对入侵者进行反击。
4 结束语
随着网络数据被入侵攻击的不断增多,入侵检测是防火墙之后的第二道防御措施,它是一种主动的能有效的防御入侵攻击的安全防御技术,是网络信息系统安全技术领域的重要研究方向之一。因此,将数据挖掘技术应用到入侵检测系统中,可以自动地从大量的网络数据中发现新的摸式。根据目前入侵检测的实际需要,结合决策树分类算法,构建基于决策树分类算法的入侵检测系统,把决策树分类算法应用到入侵检测系统中,通过决策树分类算法来构建分类模型,利用决策树分类算法能自动地对海量数据进行预处理和分析,可以对外来的入侵数据和系统的正常数据进行有效地的识别,提高了对外来的入侵数据异常检测的准确性,并对网络中未知的入侵数据也有较好的检测效果,具有很强的自适应能力。
参考文献:
[1] 李剑.入侵检测技术[M].北京:高等教育出版社,2008.
[2] 宋明秋,傅韵,邓贵仕.基于决策树和协议分析的入侵检测研究[J].计算机应用研究,2007(12):171-176.
[3] 沈超,薛胜军.分布式协同入侵检测系统设计与实现[J].武汉理工大学学报,2010(16):155-158.
[4] 于孝美,陈贞翔,彭立志.基于决策树的网络流量分类方法[J].济南大学学报:自然科学版, 2012(3):291-295.
[5] 易倩.改进的聚类与决策树算法在入侵检测中的应用[D].广东工业大学,2012.