综述数据挖掘技术在入侵检测系统中的应用摘要:随着计算机网络技术的迅速发展,网络在为人们提供服务的同时,也带来了很多负面影响。入侵检测就是用于解决这个问题的。为了提高入侵检测的速度和力度,可将数据挖掘技术应用到入侵检测系统当中。并且也可将数据挖掘技术与其他领域多种先进技术相结合,应用到入侵检测系统中。本文系统地介绍了应用于入侵检测系统的数据挖掘技术及可与数据挖掘相结合的一些先进技术。关键词:入侵检测,数据挖掘(DM),知识发现(KDD)TheapplicationofDMtechnologyinIDSAbstract:Withtheswiftdevelopmentofnetwork,ittakesadvantagesaswellasdisadvantages.Intrusiondetectioncanbeusedtosolvethisproblem.Inordertoimprovethevelocityandstrengthofintrusiondetection,thetechnologyofDataMiningcanbeappliedtoIDS.ThisarticleintroducessomeDMtechnologyusedtoIDSandsomeadvancedtechnologycombinedwithDM.Keywords:Intrusiondetectionsystem(IDS),Datamining(DM),Knowledgediscoveryindatabase(KDD)随着计算机网络技术的飞速发展,计算机网络为人们带来了巨大的服务,但是同时也产生了一些负面影响。如软件漏洞,系统漏洞等为某些非法入侵者提供了可乘之机。而为了防止内部或外部非法使用者对计算机进行攻击,就设计了入侵检测系统。一、入侵检测系统简介入侵检测,简单地说就是从网络和主机上收集信息,并进行分析,检测并判断出是否有入侵行为或安全问题。入侵检测是位于防火墙之后的第二道安全闸门。入侵检测系统是执行入侵检测任务的计算机系统,其概念是由JamesAnderson于1980年提出,DorthyDenning在1987年提出了一个入侵检测模型[1]。根据检测的数据来源可分为基于主机的入侵检测系统(HIDS)和基于网络的入侵检测系统(NIDS)。前者的数据来源是主机的审计日志、应用程序日志等;而后者的数据来源是网络上的数据包。根据检测方式可分为异常监测和误用检测。异常检测又称为基于行为的入侵检测,是将得到的行为与预先建立的用户正常行为库进行比较以识别攻击,能检测到未知的和更复杂的入侵行为,但是容易产生误报和漏报的情形,并且不适应用户正常行为的突然改变;而误用入侵检测又称为基于知识的入侵检测,是将得到的行为与已知的攻击模式库进行比较,需要不断的更新攻击模式库。根据分布形式可分为集中式和分布式,其主要区别在于分析部件,而不是数据收集部件。整个系统的分析部件是位于单台主机上,称之为集中式系统;分析部件分布于不同的主机上,称之为分布式系统。传统的入侵检测系统是将异常检测和误用检测作为两个独立的入侵检测系统,为了充分利用异常检测和误用检测的优点,可将异常检测和误用检测相结合形成新的IDS基本规则:凡是与正常行为模式库匹配的行为均为正常行为,凡是与异常行为模式库匹配的行为均为入侵行为,这样可以大大地减少误报率和漏报率,提高入侵检测的准确性。但是需要手动来更新行为模式库,浪费人力和物力。同时为了提高入侵检测的速度,可以将数据挖掘技术的一些算法如:关联规则算法、分类算法、聚类算法、序列规则算法等,应用到入侵检测系统的设计当中。这样,无论是否出现入侵行为,系统都能有效识别并自动更新规则库,提高了检测系统的适应性和检测能力。二、数据挖掘现在正处在信息化的社会,大量信息在给人们带来方便的同时也带来很多问题:(1)信息过量;(2)信息真假难辨;(3)信息安全难以保证;(4)信息形式不一致。面对这种局面,数据挖掘技术应运而生。知识发现(KDD)被认为是从数据中发现有用知识的整个过程。KDD过程定义为(Fayyad等,1996):从海量数据集中识别出有效的、新颖的、潜在有用的,以及最终可理解的模式的高级过程,包括三部分:数据准备,数据挖掘及结果的解释和评估。数据挖掘是知识发现中的核心过程,用专门算法从数据中抽取模式。数据挖掘技术可以从大量审计数据中挖掘出正常的或入侵性的行为模式。其中挖掘的主体--审计数据是由经过预处理的,带有时间戳的审计记录组成,每条审计记录都包含一些属性(或特征)。三、应用于入侵检测系统的数据挖掘技术通常应用到入侵检测系统的数据挖掘技术都是按照其任务来划分的。按照数据挖掘的任务分类,可用于入侵检测系统的方法主要有:关联规则挖掘、序列模式挖掘、聚类数据挖掘,分类数据挖掘等等。1关联规则挖掘关联规则挖掘是寻找给定数据集中项之间的有趣联系。设I={i1,i2,…,im}是项的集合。设任务相关的数据D是数据库事务的集合,其中每个事务T是项的集合,使得T是I的真子集。每一个事务有一个标识符,称作TID。设A是一个项集,事务T包含A当且仅当A是T的真子集。关联规则是形如A→B的蕴涵式,其中A,B是I的真子集,并且A∩B=Φ.规则A→B在事务集D中成立,具有支持度s,其中s是D中事务包含A∪B(即A和B二者)的百分比,即概率P(A∪B)。规则A→B在事务集D中具有置信度c,如果D中包含A事务的同时也包含B事务的百分比,即条件概率P(B|A)。即support(A→B)=P(A∪B)confidence(A→B)=P(B|A)同时满足最小支持度阈值(min_sup)和最小置信度阈值(min_conf)的规则称作强规则。为方便用0%和100%之间的值,而不是0~1之间的值表示支持度和置信度。“如何由大型数据库挖掘关联规则?”关联规则的挖掘是一个两步的过程:1)找出所有频繁项集:这些项集出现的频繁性至少和预定义的最小支持度一致。Apriori算法是一种找频繁项集的基本算法。另外还可以用AprioriTid算法。2)由频繁项集产生强关联规则:这些规则必须满足最小支持度和最小置信度。2.序列模式挖掘序列模式用于发现如“在某一段时间内,客户购买商品A,接着购买商品B,而后购买商品C,即序列出现频度较高A→B→C”之类的知识。在入侵检测系统中,序列模式挖掘对入侵检测系统是很有用途的。由于网络攻击与时间变量紧密相关,因此序列模式分析在关联分析基础上进一步分析攻击行为时间相关性。Lee利用关联分析的数据结构和库函数实现序列模式分析。其序列模式的形式化描述为:已知事件数据库D,其中每次交易T与时间戳关联,交易按照区间[t1,t2]顺序从时间戳t1开始到t2结束。对于D中项目集X,如果某区间包含X,而其真子区间不包含X时,称此区间为X的最小出现区间。X的支持度定义为包括X的最小出现区间。X的支持度定义为包括X的最小出现区间数目占D中记录数目比例。其规则表示为X,Y→Z,[confidence,support,window],式中X,Y,Z为D中项目集,规则支持度为support(X∪Y∪Z),置信度为support(X∪Y∪Z)/support(X∪Y),每个出现的宽度必须小于窗口值window。考虑到网络或操作系统中审计数据流的特性,他将入侵事件序列考虑为单序列,X,Y,Z满足偏序关系。序列模式得到的是事件之间的频繁关系而不是事件内部属性之间的关系。序列模式挖掘的大部分方法都采用了类Apriori算法的变种,虽然所考虑的参数设置和约束都有所不同。另一种挖掘此类模式的方法是基于数据库投影的序列模式生长技术,类似用于无候选生成的频繁模式挖掘的频繁模式增长法。3.分类数据挖掘数据分类是一个两步的过程。第一步,建立一个模型,描述预定的数据类集或概念集。通过分析由属性描述的数据库元组来构造模型。通常,学习模型用分类规则、判定树或数学公式的形式提供。第二步,使用模型进行分类。首先评估模型(分类法)的预测准确率。模型在给定测试集上的准确率是正确被模型分类的测试样本的百分比。对于每个测试样本,将已知的类标号与该样本的学习模型类预测比较。若认为模型的准确率可以接受,就可以用他对类标号位置的数据元组或对象进行分类。分类方法最常用的是判定树,另外还有贝叶斯分类、向后传播分类、K-最临近分类、基于案例的推理、遗传算法、模糊集方法等等。4.聚类数据挖掘聚类也是对一个数据对象的集合进行分析,但与分类不同的是,它要划分的类是未知的。聚类就是将数据对象分组成为多个类或簇,在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。相异度是根据描述对象的属性值来计算的。用于入侵检测的聚类分析主要基于两个假设,一是正常行为的数目远远大于入侵行为,二是入侵行为在本质上是和正常行为明显不同的。常用的聚类技术有划分方法(partitioningmethod)、层次方法(hierarchicalmethod)、基于密度的方法(density-basedmethod)、基于网格的方法(grid-basedmethod)和基于模型的方法(model-basedmethod)等。四、数据挖掘研究的新发展数据挖掘是涉及多学科技术的集成,包括数据库技术、统计学、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息检索、图像与信号处理和空间数据分析等。数据挖掘技术可以和其他技术相结合,如粗集、模糊逻辑、人工神经网络、遗传算法、决策树理论以及规则归纳法[6]等等。下面介绍几种可以与数据挖掘技术相结合应用到入侵检测系统中的技术:1、模糊数据挖掘模糊性是客观的存在。审计记录中包含有量化特征,量化数据在挖掘过程中由支持度和置信度的阈值分隔在两个区域中。这种分区所带来的尖锐边界(sharpboundary)问题会对IDS的性能产生影响。为克服尖锐边界所引发的问题,Bridges使用数据挖掘算法(关联规则挖掘算法和频繁情节挖掘算法)与模糊逻辑相结合的方法开发IDS。具体地,Bridges把量化特征分为具有模糊隶属度值的几类。Shi使用遗传算法来自动优化隶属度函数的参数。2、多级近似(level-wise)挖掘某些正常行为发生的频率较低,其支持度不足以高过预定的阈值,但如果在挖掘过程中采用很低的支持度,又会得到大量与频繁度高的服务类型相关的模式。为解决这一问题,和提出了多级近似挖掘技术。其思想是首先找到那些与出现频率高的轴心属性值相关的模式,然后不断降低支持度阈值挖掘那些与出现频率低的轴心属性值相关的模式。在这个模式的挖掘过程中,限制那些“旧”的轴心属性的参与:候选项目集必须包括至少一个“新”(低频繁度)的轴心属性值。每次循环计算得到的模式或是由所有“新”的轴心属性构成的或是由“新”轴心属性与“旧”轴心属性一起构成。3、遗传算法遗传算法(geneticalgoritm,GA),是模拟生物进化的自然选择和遗传机制的一种寻优算法。遗传算法首先将问题的每个可能的解按某种形式进行编码,编码后的解称作染色体(个体)。随即选取个染色体构成初始种群,再根据预定的评价函数对每个染色体计算适应值,使得性能较好的染色体具有较高的适应值。选择适应值高的染色体进行复制,通过遗传算子:选择、交叉(重组)、变异,来产生一群新的更适应环境的染色体,形成新的种群。这样一代一代不断繁殖、进化,最后收敛到一个最适应环境的个体上,求得问题的最优解。对于大量数据的繁杂无序的特征,遗传算法是有效解决此类问题的方法之一。目前基于遗传算法的数据挖掘方法的研究主要集中在分类系统的方面,而对于关联规则的提取,应用较少。4、决策树方法数据挖掘的信息论方法所获得的值是一般表示为决策树。决策树方法是利用信息论中的互信息(信息增益)寻找数据库中具有最大信息量的属性字段,建立决策树的一个节点,再根据该属性字段的不同取值建立树的分支。每个分支子集中重复建立树的下层节点和分支的过程。采用决策树,可以将数据规则可视化,也不需要长时间的构造过程,输出结果容易理解,精度较高,因此决策树在知识发现系统中应用较广