摘 要:本文主要构建了一种基于聚类技术的分布式入侵检测系统模型——CDIDS,介绍了该模型中各个模块的设计方法和工作流程,同时,也说明了整个系统的工作流程,并对该系统进行了性能评价,说明其可扩展、强壮并且智能。
关键词:网络安全;入侵检测;聚类
1 引言
近年,随着Internet迅速发展的同时,计算机及计算机网络逐渐成为计算机犯罪的攻击目标,从而导致社会和个人都有很大的损失。计算机及网络的安全也因此成为研究的焦点。入侵检测技术是继传统安全保护措施后新一代的安全保障技术,作为一种积极主动的安全防护技术,它有效地补充和完善了其他安全技术和手段。
由于数据挖掘能够从存储的大量数据中挖掘出有效、新颖、具有潜在用途及最终可以理解的模式,所以可以将其应用于入侵检测领域中,发现新类型或变种的攻击。以聚类分析为代表的无监督检测方法的提出解决了传统方法存在的问题。因此,致力于基于聚类方法的入侵检测技术的研究具有重要的社会意义和现实意义。
2 入侵检测
入侵检测是指对入侵行为的发现,通过在计算机网络或计算机系统中的若干关键点收集信息并对收集到的信息进行分析,从而判断网络或系统中是否有违反安全策略的行为或攻击的迹象[1]。入侵检测技术的引入,使得网络、系统的安全性得到进一步的提高。完成入侵检测功能的软件和硬件的组合称为入侵检测系统(Intrusion Detection System)简称IDS。
3 数据挖掘
数据挖掘(DM,Data Mining)就是从大量的、不完整的、有噪声的、模糊的、随机的数据中,提取隐含在其中的、人们事先不知道的、但又是潜在的、有用的信息和知识的过程[2]。数据挖掘的主要分析方法有分类分析、关联规则、序列模式分析和聚类分析等等,本文着重讲述聚类分析方法。
4 聚类分析
聚类是一个将数据划分为若干组或类的过程,并使得同一个组内的数据对象具有较高的相似度,而不同组中的数据对象则是不相似的[3]。一个聚类就是由彼此相似的一组对象所构成的集合,聚类分析就是从给定的数据集中搜索数据对象之间存在的有价值的联系。
5 基于聚类技术的分布式入侵检测模型CDIDS的设计
5.1 设计思想
本文所提出的入侵检测模型的设计遵循如下原则:
5.1.1 基于Agent的分布式检测系统
本文采用分布协作式体系结构,将每个主机代理都设计成可以独立检测和响应的单元,向中央控制模块发送入侵行为特征。
5.1.2 误用检测与异常检测相结合
误用入侵检测利用已知系统和应用软件的弱点攻击模式来检测入侵,能直接检测出不利的或不可接受的行为。这种检测方法检测率高、误报率低、检测速度快,但是漏报率较高,对新的入侵行为和已知入侵行为的变种却无能为力。异常检测是基于已掌握了的被保护对象的行为建立正常工作模式,并假定正常工作模式相对稳定。异常检测最大的优点是有可能检测出以前从未出现过的攻击方式,但是误报率较高[4]。通过以上说明可以看出误用检测和异常检测技术是互补的,两种技术的结合可以互相补短,进而提高入侵检测的准确性。
5.2 CDIDS系统模型
本文将所设计的基于聚类技术的分布式入侵检测模型定义为CDIDS,该模型分为两大模块——Agent和中央控制模块。
系统工作原理如下:
(1)每个驻留在被保护主机的代理独立承担一定的检测任务,检测系统或网络安全的某个方面,并把收集到的网络数据进行检测分析,将检测到的入侵行为特征传送给中央控制模块。
(2)中央控制单元将接收到的入侵行为特征存入数据库,利用数据挖掘模块对这些入侵行为进行挖掘,形成规则即入侵特征库存入数据库,并将这些规则传送给每个代理,使得每个代理都可以自动更新入侵特征库,实现智能化。
5.2.1 Agent设计
本系统中Agent由五个模块构成:数据采集模块、预处理模块、误用检测模块、异常检测模块和响应模块。
(1)数据采集模块。数据采集模块的主要作用是收集网络数据包。为了将包输送给预处理程序以及随后的检测引擎,必须先做一些准备工作,即需要一个抓包工具。WinPcap是由伯克利分组捕获库派生而来的分组捕获库,它是在Windows 操作平台上来实现对底层包的截取过滤。
(2)数据预处理模块。数据预处理模块主要的作用是对数据采集模块采集到的连接进行特征提取,提取出能用于数据挖掘的特征群,并对这些特征数据标准化处理,供检测引擎中的数据挖掘算法使用。
(3)误用检测模块。误用检测模块将待检测的数据对象与入侵模式库中的规则类别相比较,同时设定一个阈值dn。计算待检测对象与规则库中每个类别的距离,找出距离它最短的类别,如果距离值小于dn,则说明该数据对象属于此类,将其确定为入侵行为,启动响应模块;否则,说明该对象是新型攻击或者正常数据(这里视其为可疑数据),将其送往异常检测模块。
(4)异常检测模块。异常检测模块将误用检测模块中判断得到的可疑数据与正常模式库中的类进行比较,并设定阈值da。如果数据与正常模式库中的任意类别的距离都大于da,则将此数据判定为入侵,加入入侵模式库并启动响应单元;否则说明此数据为正常行为,将其丢弃。
在误用检测模块中所使用的模式匹配技术也是基于距离计算,将待检测的数据对象与正常模式库中的聚类中心进行计算,得到距离dis(m,C)(m为待检测数据对象,C为正常模式库中到m最近的聚类的聚类中心),若dis(m,C)≤da,則说明m为正常数据,否则,便将m判定为入侵行为。
(5)响应模块。当CDIDS发现入侵时,便启动响应模块,响应模块主要的作用就是进行报警,提示系统管理员系统有入侵行为,以便管理员采取响应措施。
5.2.2 中央控制模块的设计
中央控制模块的主要作用是收集入侵行为,挖掘新的规则,并实时将最新的规则库传送给各代理。中央控制模块主要由两部分组成:数据库和数据挖掘单元。
这里的数据库可以分为入侵数据库和规则数据库。入侵数据库存放的是从各个代理传送来的入侵行为,入侵数据库实时更新入侵内容,将入侵行为提供给数据挖掘模块进行聚类。规则库存放的是入侵规则,即入侵类别。数据挖掘模块采用的是KD算法[5],将入侵数据库中的行为进行聚类,形成不同类别,存入规则库。
5.3 系统工作流程
CDIDS系统工作分为两阶段:训练阶段和检测阶段。
5.3.1 训练阶段
由于开始时系统中所有的数据库都是空的,没有入侵行为,也没有规则,因此需要有一个训练阶段来存储入侵行为和形成规则,这也是聚类分析方法在此模型中应用的主要所在。
5.3.2 检测阶段
检测阶段的任务就是检测网络中的行为是否为入侵行为。当系统的训练阶段完成后,每个代理中的入侵模式库和正常模式库都不会为空,此时开始进行检测。在检测过程中每个代理都是一个独立的实体,都具有独立的入侵检测能力。
5.4 训练阶段的实现
训练阶段主要是应用KD算法将预处理后的数据集进行聚类,目的是形成正常和入侵模式库,供检测阶段进行正常模式匹配或入侵模式匹配之用。这里供训练阶段使用的数据对象有10500个,其中正常数据10000个,入侵数据500个,充分满足了正常数据个数要远远大于入侵数据个数,实验选取的半径为2.3,实验中规定,当二次聚类后聚类中的数据对象数目大于或等于总实验数据对象数量的5%时,将该类标记为正常,否则标记为入侵。实验结果是形成正常模式和入侵模式,结果如图5-2所示。
图5-2中列出了正常模式和入侵模式所包含的聚类。正常模式中包含了两个类,入侵模式中包含了7个类。训练阶段结束后,中央控制模块将所形成的正常模式库和入侵模式库传送给各个代理,代理将自己的正常模式库和入侵模式库更新,开始进行检测阶段的入侵检测任务。
6 系统评价
6.1 实时性
分布在不同主机上的代理在工作的情况下实时地收集网络数据,并进行分析,由于CDIDS系統是分布式结构,所以每个代理所负责检测的数据要比集中式结构中中心服务器所检测的数据少很多,这样就能保证每个代理都能及时进行数据行为的检测,不会出现积攒或是丢弃数据的情况。
6.2 可扩展性
CDIDS是一个分布式系统,系统由很多代理组成,当系统想要扩展时,只需对新加入的主机配置相应的入侵检测模块即可,而无须对其他主机上的代理做任何变动。这样使得整个系统的可扩展性得到了很大的提高。
6.3 智能化
由系统工作流程可以看出,整个系统的运作完全不需要人的手工操作,而是由系统自动完成,主要体现在代理中的入侵模式库的自动更新和中央控制模块中的入侵数据库、规则数据库的自动更新。
[参考文献]
[1]罗守山.入侵检测[M].北京:北京邮电大学出版社,2004.
[2]邵峰晶,余忠清.数据挖掘原理与算法[M].北京:中国水利水电出版社,2003,2.
[3]A.K.JAIN,M.N.MURTY,P.J.FLYN.Data Clustering:A Review[J].ACM Computing Surveys,31(3),1999:264-311.
[4]蒋建春,马恒泰,任党恩,卿斯汉.网络安全入侵检测:研究综述[J].软件学报.2000,11(11):1460-1466.
[5]孙珊珊.聚类分析在入侵检测中的应用[J].河北省科学院学报2010(27),2010:31-34.