摘要 该文对入侵检测的现状进行了分析, 在此基础上重点研究了数据挖掘算法在异常检测和误用检测中的具体应用。对于异常检测,主要研究了分类算法;对于误用检测,主要研究了模式比较和聚类算法,在模式比较中又以关联规则和序列规则为重点研究对象。最后对目前数据挖掘算法在入侵检测中应用所面临的难点进行了分析,并指明了今后的研究方向。
关键字 入侵检测;数据挖掘;异常检测;误用检测;分类算法;关联规则;序列规则;聚类算法
0 引言
随着网络技术的发展,现在越来越多的人通过丰富的网络资源学会各种攻击的手法,通过简单的操作就可以实施极具破坏力的攻击行为,如何有效的检测并阻止这些攻击行为的发生成了目前计算机行业普遍关注的一个问题。
用于加强网络安全的手段目前有很多,如加密,vpn ,防火墙等,但这些技术都是静态的,不能够很好的实施有效的防护。而入侵检测(intrusion detection)技术是一种动态的防护策略,它能够对网络安全实施监控、攻击与反攻击等动态保护,在一定程度上弥补了传统静态策略的不足。
1 入侵检测中数据挖掘技术的引入
1.1 入侵检测技术介绍
入侵检测技术是对(网络)系统的运行状态进行监视,发现各种攻击企图、攻击行为或者攻击结果,以保证系统资源的机密性、完整性与可用性。wwW.133229.coM
从检测数据目标的角度,我们可以把入侵检测系统分为基于主机、基于网络、基于内核和基于应用等多种类型。本文主要分析基于网络的入侵检测系统的构造。
根据数据分析方法(也就是检测方法)的不同,我们可以将入侵检测系统分为两类:
(1) 误用检测(misuse detection)。又称为基于特征的检测,它是根据已知的攻击行为建立一个特征库,然后去匹配已发生的动作,如果一致则表明它是一个入侵行为。它的优点是误报率低,但是由于攻击行为繁多,这个特征库会变得越来越大,并且它只能检测到已知的攻击行为。
(2) 异常检测(anomaly detection)。又称为基于行为的检测,它是建立一个正常的特征库,根据使用者的行为或资源使用状况来判断是否入侵。它的优点在于与系统相对无关,通用性较强,可能检测出以前从未出现过的攻击方法。但由于产生的正常轮廓不可能对整个系统的所有用户行为进行全面的描述,况且每个用户的行为是经常改变的,所以它的主要缺陷在于误检率很高。
将这两种分析方法结合起来,可以获得更好的性能。异常检测可以使系统检测新的、未知的攻击或其他情况;误用检测通过防止耐心的攻击者逐步改变行为模式使得异常检测器将攻击行为认为是合法的,从而保护异常检测的完整性。
入侵检测的数据源可以通过一些专用的抓包工具来获取,在windows系统一下,一般采用winpcap来抓获数据包,在unix系统下,可以通过tcpdump和arpwatch来获取。在数据分析阶段将会用到我们这里重点要介绍的是数据挖掘技术,响应部分分为主动响应和被动响应。
1.2 数据挖掘技术
数据挖掘(data mining)技术是一个从大量的数据中提取人们感兴趣的模式的过程。挖掘的对象不仅是数据源、文件系统,也包括诸如web资源等任何数据集合;同时数据挖掘的过程并不是一个直线型的过程,而是一个螺旋上升、循环往复的多步骤处理过程。
数据挖掘通过预测未来趋势及行为,做出预测性的、基于知识的决策。数据挖掘的目标是从数据库中发现隐含的、有意义的知识,按其功能可分为以下几类:
(1)关联分析
关联分析能寻找数据库中大量数据的相关联系,常用的2种技术为关联规则和序列模式。关联规则是发现一个事物与其他事物间的相互关联性或相互依赖性,可用于如分析客户在超市买牙刷的同时又买牙膏的可能性;序列模式分析将重点放在分析数据之间的前后因果关系,如买了电脑的顾客则会在3个月内买杀毒软件。
(2)聚类
输入的数据并无任何类型标记,聚类就是按一定的规则将数据划分为合理的集合,即将对象分组为多个类或簇,使得在同一个簇中的对象之间具有较高的相似度,而在不同簇中的对象差别很大。
(3)自动预测趋势和行为
数据挖掘自动在大型数据库中进行分类和预测,寻找预测性信息,自动地提出描述重要数据类的模型或预测未来的数据趋势。
(4)概念描述
对于数据库中庞杂的数据,人们期望以简洁的描述形式来描述汇集的数据集。概念描述就是对某类对象的内涵进行描述并概括出这类对象的有关特征。
(5)偏差检测
偏差包括很多潜在的知识,如分类中的反常实例、不满足规则的特例、观测结果与模型预测值的偏差、量值随时间的变化等。
数据挖掘技术是最新引入到入侵检测的技术。它的优越之处在于可以从大量的网络数据以及主机的日志数据中提取出人们需要的、事先未知的知识和规律。利用数据挖掘技术实现网络安全在国内外都属于一种新的尝试。目前,对数据挖掘算法的研究已比较成熟,而数据挖掘本身是一个通用的知识发现技术。在入侵检测领域,我们将入侵检测看作是一个数据的分析过程,对大量的安全数据应用特定的数据挖掘算法,以达到建立一个具有自适应性以及良好的扩展性能的入侵检测系统。目前,应用到入侵检测上的数据挖掘算法主要集中在关联、序列、分类和聚类这四个基本模型之上。
2.算法在入侵检测中的具体使用
2.1 基于误用的检测模型
误用检测中的基本思路是:
首先我们从网络或是主机上获取原始二进制的数据文件,再把这些数据进行处理,转换成ascii码表示的数据分组形式。再经过预处理模块将这些网络数据表示成连接记录的形式,每个连接记录都是由选定的特征属性表示的,比如连接建立的时间,所使用的端口服务,连接结束的状态等等数据特征。再进行完上面的工作后,对上述的由特征属性组成的模式记录进行处理,总结出其中的统计特征,包括在一时间段内与目标主机相同的连接记录的次数、发生syn错误的连接百分比、目标端口相同的连接所占的百分比等等一系列的统计特征。最后,我们就可以进行下面的检测分析工作,利用分类算法,比如ripper 、c4.5等建立分类模型。当然,在这其中,统计特征以及分类特征的选择和构建都是我们必须要反复总结的过程,最后才能根据各种不同的攻击方式或是不同的网络服务确定最终的分类数据。只有这样才能建立一个实用性较强、效果更好的分类模型。
·id3、c4.5算法
id3算法是一种基本的决策树生成算法,该算法不包括规则剪除部分。c4.5算法作为id3算法的后继版本,就加入了规则剪除部分,使用训练样本来估计每个规则的准确率。也是分类模型的主要运用算法。
对于已知的攻击类型的检测,分类模型具有较高的检准率,但是对于未知的、新的攻击,分类模型效果就不是很理想。这个是由误用检测本身的特点所决定的,误用检测误报率低,但是它在对已知攻击模式特征属性构建和选取上往往要花费大量的精力,这也是分类检测的难点所在。所以这种检测模型只能有限的检测已知的攻击,而要更好的检测未知的攻击,就要使用到异常检测技术,但是,异常检测却比误用检测负责的多,因为对于系统正常使用模式的构建本身就是一件非常复杂的事情。
2.2 基于异常的入侵模型
异常检测的主要工作就是通过构造正常活动集合,然后利用得到的一组观察数值的偏离程度来判断用户行为的变化,以此来觉得是否属于入侵的一种检测技术。异常检测的优点在于它具有检测未知攻击模式的能力,不论攻击者采用什么样的攻击策略,异常检测模型依然可以通过检测它与已知模式集合之间的差异来判断用户的行为是否异常。
在异常检测中主要用到的两个算法就是模式比较和聚类算法
(1) 模式比较
在模式比较算法中首先通过关联规则和序列规则建立正常的行为模式,然后通过模式比较算法来区别正常行为和入侵行为。
·关联规则
关联规则挖掘是数据挖掘最为广泛应用的技术之一,也是最早用于入侵检测的技术。关联规则分析是发现所有支持度和可信度均超过规定域值的方法,它主要经过两步过程:首先识别所有支持度不低于用户规定的最小支持度域值的项目集,即频繁项目集;然后从得到的频繁项目集中构造出可信度不低于用户规定的最小可信度域值的规则。现在已有多种关联规则算法如apriori算法等用于入侵检测。
·序列分析
序列规则和关联规则相似,其目的也是为了挖掘出数据之间的联系,它们的不同之处在于前者加入了时间的概念。序列模式挖掘有几个重要的参数,如时间序列的持续时间,事件重叠窗口和被发现的模式中时间之间的时间间隔。还可以在要挖掘的序列模式上指定约束,方法是提供“模式模板“,其形式可以是系列片段(serial episode),并行片段(parallel episode),或正则表达式。序列分析使用于发现分布式攻击和插入噪声的攻击。由于各种攻击方法的规模的扩大和时间持久,序列分析变得越来越重要。
(2)聚类算法
聚类分析的基本思想主要源于入侵与正常模式上的不同及正常行为数目应远大于入侵行为数目的条件,因此能够将数据集划分为不同的类别,由此分辨出正常和异常行为来检测入侵。数据挖掘中常用的聚类算法有k-means、模糊聚类、遗传聚类等。基于聚类的入侵检测是一种无监督的异常检测算法,通过对未标识数据进行训练来检测入侵。该方法不需要手工或其他的分类,也不需要进行训练。因此呢功能发现新型的和未知的入侵类型。
3.结论
入侵检测中数据挖掘技术方面的研究已经有很多,发表的论文也已经有好多,但是应用难点在于如何根据具体应用的要求,从用于安全的先验知识出发,提取出可以有效反映系统特性的属性,并应用合适的算法进行数据挖掘。另一技术难点在于如何将数据挖掘结果自动应用到实际ids中。
入侵检测采用的技术有多种类型,其中基于数据挖掘技术的入侵检测技术成为当前入侵检测技术发展的一个热点,但数据挖掘还处于发展时期,因此有必要对它进行更深入的研究。
参考文献
[1] 张银奎,廖丽,宋俊等.数据挖掘原理[m].北京:机械工业出版社,2003 : 93-105
[2] 戴英侠,连一峰,王航等.系统安全与入侵检测[m].北京:清华大学出版社,2002 : 99-137
[3] 许卓群.数据结构[m].北京:中国广播电视大学出版社,2001 : 260- 272.
[4] 刘莘,张永平,万艳丽.决策树算法在入侵检测中的应用分析及改进[j].计算机工程与设计.2006
[5] 张翰帆.基于数据挖掘的入侵检测系统.南京工业大学,2004.
[6] 向继,高能,荆继武.聚类算法在网络入侵检测中的应用[j].计算机工程,2003 , 29(16): 1-3
[7] 谭勇,荣秋生.一种基于sliq的分类算法的实现[j].计算机工程,2003 , 29(18):1-3