摘 要:本文以数据挖掘技术和代理技术做为研究的基础,分析了数据挖掘技术应用于分布式入侵检测的必要性和可行性,遵循公共入侵检测框架,综合利用网络和主机两种数据源,结合异常检测与误用检技术,提出了基于数据挖掘的分布式入侵检测系统。该系统首先从训练数据中提取得到规则,然后用这些规则去检测新的入侵,通过实验证明将数据挖掘运用到入侵检测系统中是可行的,也是有效的。
关键词:数据挖掘;分布式入侵检测 ;代理
1. 数据挖掘技术在分布式入侵检测中应用的必要性和可行性
随着互联网的迅猛发展,如何保证网络信息的安全成为信息系统的的关键问题。分布式计算环境的广泛采用,海量存储和高带宽传输技术的普及,分布式拒绝服务攻击(DDOS)的出现等使分布式入侵检测(Distributed Intrusion Detection, DID)逐渐代替传统的集中式入侵检测;操作系统的日益复杂和网络数据流量的急剧增加,现行的入侵检测系统在利用用户行为特征来建立正常模式或异常模式时所提取的用户行为特性和入侵模式特征不能很好的反映实际的情况;所建立的正常模式或异常模式容易造成误警或漏警;入侵检测系统要经常更新才能检测出新的攻击和适应环境的变化,它们大多采用人工编造攻击特征的方式来检测入侵,这使得入侵检测系统更新代价较高。而数据挖掘在用户行为特征提取方面具有非常大的优势,本文提出将数据挖掘技术应用到入侵检测中,来自动生成入侵检测规则,解决入侵检测系统的不足。
2. 基于数据挖掘的分布式入侵检测系统模型的提出
本文以数据挖掘技术和代理技术做为研究的基础,遵循公共入侵检测框架,综合利用网络和主机两种数据源,结合异常检测与误用检技术,提出了一种新的的入侵检测模型——基于数据挖掘(Data Mining,DM)的分布式入侵检测系统(DID)(如图1)。该系统模型利用代理的思想来构造分布式入侵检测结构,使之不但兼有基于静态代理和基于移动代理入侵检测的优点,又克服了它们各自存在的一些缺陷,具有良好的分布性能和可扩展性。在整个模型系统中,两次运用数据挖掘技术,提高了系统检测的准确性,降低了漏报率和误报率。
将数据挖掘技术应用于入侵检测能够广泛地收集审计数据来计算模型,从而精确地捕获实际的入侵和正常行为模式。这种自动化的方法无需再手工分析和编码入侵模式,同时在创建正常使用轮廓时不再像以前一样凭经验来选择统计方法。它更主要的优点是相同的数据挖掘工具可应用于多个数据流,从而有利于建造自适应的入侵检测系统。采用数据挖掘技术实现分布式入侵检测系统,可以最大限度的满足入侵检测系统的要求,从海量的审计数据中提取出具有代表性的系统特征模式,自动扩充规则库,提高其可扩展性和环境实用性。
代理是指能在特定的环境下无须人工干预和监督而完成某项工作的软件实体,是具有特定功能的独立的应用程序。由于代理本身具有自治性、反应性、智能性、主动性、学习能力、协作性、移动性等基本特点,选用代理技术实现分布式检测结构,可以为系统提供良好的扩展性,并且可以防止单点失效,具备高度的灵活性。
该系统模型利用数据挖掘具有自动预测的功能,在入侵检测中两次引用了数据挖掘模块来提高检测的有效性。第一次引入数据挖掘模块是在入侵检测代理中(如图2),第二次是在控制代理之中(如图2)。
在入侵检测代理中,数据挖掘技术可以在由不同数据源构成的事件库中自动找寻预测信息,在扫描事件库的同时,形成入侵行为模型和正常行为模型,并能辨认隐藏模式,而不需要管理员再手动编写入侵模式,也无需在建立正常模式时凭经验去猜测其特征项,又由于其可以处理来自不同数据源的数据,如网络监测数据、主机审计日志等,并能合并为新的检测模式,因此,可以在此系统模型中综合运用基于主机的和基于网络的两种检测结构。
在控制代理中运用二次数据挖掘,主要是对静态检测代理传送的入侵特征、入侵模式及少量可疑数据进行再挖掘,进行特征和规则的提取,并入规则库,并将新形成的规则通过直接或通信代理返回给入侵检测代理的规则库对其进行完善,并可以协同其它代理传送的检测结果做出相关分析,以便发现协同式攻击或分布式入侵行为,以提高检测率、降低漏报率。
数据挖掘技术应用于分布式的入侵检测代理结构,无论从扩展性和自适应性,还是从其它方面都大大改善了传统入侵检测系统的性能。
在异构网络中,各响应代理多数都是基于跨平台的语言(如Java)编写,所以移动检测代理很容易实现跨平台的连接。又由于一般的移动代理体系都建立了与其相配套的平台无关的通信协议,通过这些协议,代理之间无需建立直接的通信连接,而是利用了虚拟机提供的相应消息服务,不仅简化了消息的传递操作,还促进了移动代理在网络上的广泛传播,为构建统一、规范、易管理和维护的分布式IDS提供了条件。
3. 数据挖掘在分布式入侵检测中的具体应用
本文首先采用KDD-99 Data实验数据作为入侵实验数据,对数据源进行数据预处理,使其成为符合数据挖掘的数据;在带有挖掘功能的MS SQL SERVER 2000中,针对预处理后的数据,利用决策树算法进行数据挖掘,分析审计数据、提取用户行为特征,以决策树形式来对用户行为进行分类,构造分类模型。得出具体的入侵检测规则,然后把得到的规则集导入到入侵检测软件SNORT 2.0的规则库中,验证系统对入侵行为的有效识别。
最后通过对某局域网的网关进行监测,以TCPDUMP做为包捕获的工具,在Linux的高速计算机上来捕获数据包。作为测试数据源,使用基于数据挖掘技术生成规则库的SNORT 2.0来对其进行检测,对于采集到的13031条连接记录,SNORT检测到SYN类型的攻击记录共8539条,检测率为99.67%,将正确记录误检为攻击的记录共1条,误警率为0.001%.。
4. 结论
总的来说,基于数据挖掘的分布式入侵检测系统能够很好的检测入侵行为,检测效率很高,所以,将数据挖掘技术应用到入侵检测在理论上是可行的,在技术上建立这样一套系统是可能的。当然,我们构建的基于数据挖掘的分布式入侵检测系统还仅仅是一个早期原型,还需要不断的改进和完善。但它对于IDS的开发和使用者而言,确实具有一定的指导意义。要想把基于数据挖掘技术的分布式入侵检测系统应用于现实中,我们还要做出很大的努力。
参考文献:
连一峰,戴英侠,卢震宇等,基于自适应Agent的入侵检测系统,计算机工程,2002(2).