
基于关联分析的入侵检测系统的研究与改进.pdf
3页计算机科学2 0 0 6 V 0 1 .3 3 №.8 ( 增刊)基于关联分析的入侵检测系统的研究与改进D e v e l o p m e n ta n dI m p r o v e m e n to fa nI n t r u s i o nD e t e c t i o nS y s t e mB a s e do nC o r r e l a t e dA n a l y s i s王新生张颖李彦辉( 燕山大学信息科学与工程学院秦皇岛0 6 6 0 0 4 )A b s t r a c tT h i sp a p e rp r e s e n t sac o r r e l a t e da n a l y s i sm e t h o do fp r e r e q u i s i t e s - b a s e d ,a n dt h e np r o p o s e sas o l u t i o nt ot h ep r o b l e mi n v o l v e di nt h ea p p l i c a t i o no fi n t r u s i o nd e t e c t i o n ,w h i c hi sb a s e do nt h em e t h o dm e n t i o n e da b o v e .Am o d —u l ew i t ha t t a c k sp r e d i c t i o nf u n c t i o na d d e di n t ot h ei m p r o v e ds y s t e m ,w ed e s i g nan e wi n t r u s i o nd e t e c t i o ns y s t e mw h i c hi sa b l et op r e d i c ta t t a c k sa n de s p e c i a l l yd e s c r i b et h ei m p r o v e dc o r r e l a t e da n a l y s i sa l g o r i t h ma n da t t a c k sp r e d i c -t i o na l g o r i t h m .K e y w o r d sC o r r e l a t e da n a l y s i s ,A t t a c k sp r e d i c t i o n1引言传统的入侵检测系统只针对低层的人侵或异常[ 1 ] ,所检测到的结果常常是一系列入侵步骤的一步或完整入侵的一部分,不能对隐藏在警报背后的 攻击策略进行提示。
美国北卡罗莱纳州大学的P e n gN i n g 及其工作小组提出了一种基于因果关系的报警信息关联方法[ 2 ] 通过大量实验证实这种方法在较好的解决了诸如事件风暴、虚报率高、上下文不明确等问题的同时又出现了一个新的问题关联分析依赖于I D S 的警报信息,因此,如果I D S 发生漏报,丢掉了攻击序列中的关键警报信息,那么系统将无法正常工作,失去了原有的意义本文首先针对关联分析中出现的漏报问题给出了一种解决方案,并提出了一种攻击预测算法,结合基于因果关系的关联分析方法,构架了一个具有攻击预测功能的人侵检测系统,重点研究该模型中改进的关联分析模块和攻击预测模块种因果关系这种方法提出了一个超警报类[ 3 ] 的概念,用来表示一种警报类型的先决条件及结果定义1 超警报类T 是一个三元组( f a c t ,p r e -r e q u i s i t e ,c o n s e q u e n c e ) 其中f a c t 是一系列的属性名,每一个属性关联到一个阈值,f a c t 介绍了在警报中( 或检测攻击时) 已知或已获得的所有信息;先决条件p r e r e q u i s i t e 是一系列渭词逻辑连接,描述了攻击要成功所必须具备的条件,它的变量都存在于f a c t 中;结果c o n s e q u e n c e 是一系列谓词逻辑连接,描述了攻击成功后所获得的信息,它的变量也存在于f a c t 中。
定义2 给定一种超警报类T 一( f a c t ,p r e r e q —u i s i t e ,c o n s e q u e n c e ) ,一个T 类型的超警报实例h是一个关于f a c t 的有限元组的集合,其中每一个元组通过时间戳[ b e g i n _ t i m e ,e n d _ .t i m e - ] 来关联,超警报类型暗示其先决条件必须为真,其在每个三元组的结果中的逻辑公式可能为真2 基于因果关系的关联分析方法3 改进的系统该方法用关联规则表示攻击场景,它以谓词为基本构建块对每种类型攻击进行编码,描述攻击的前提和结果研究表明,黑客的攻击行为总是沿一定的步骤和路径来进行的,在一个完整的攻击过程中,由单个攻击步骤触发的警报事件可能存在其前因事件和可能带来的后果事件例如,攻击者可能会首先进行漏洞扫描,发现有漏洞的主机后,根据获取的漏洞信息,进一步对目标主机进行渗透攻击,在取得主机的控制权后,再去攻击其他主机概念上,这些事件都属于同一个复杂攻击,它们之间存在某该系统主要由五个功能模块组成,系统结构如图1 所示本系统与I D S 相连,将I D S 产生的每条警报经过预处理模块,对警报数据进行综合分析,提取所需信息,根据知识库中定义的标准警报格式对接收到的原始数据进行预处理转化为关联分析所需的特定格式。
直接关联模块根据知识库中定义的关联规则对超警报进行关联,在大量离散的单个的警报中挖掘出具有时序性和逻辑性的若干警报,并将其定义为同一攻击策略的不同步骤或不同阶段漏报关联分析模块对那些经过直接关联分析后无法进王新生教授.研究方向为计算机删络及M 络安全理论;张颖硕1 :.研究方向为网络安全·1 6 1·行关联的警报进行漏报分析,首先判断I D S 是否漏报了某一攻击环节,然后根据漏报攻击算法找到被漏掉的攻击,并将漏报的攻击行为的前后两步攻击行为进行关联报警,如果经过算法分析I D S 没有漏掉攻击则认为此警报为误报攻击预测模块将系统认为是真实报警的警报信息进行预测分析,给出一种入侵者将要实施的攻击行为在漏报分析模块和攻击预测模块中均引入了基于因果关系的关联分析方法和模式匹配算法图1 系统功能模块图本系统中关联分析和攻击预测是两个最重要的部分,本文将详细介绍改进后的关联分析模块和攻击预测模块3 .1关联分析通过对黑客攻击行为的分析,我们知道,黑客入侵行为不是独立的,而是攻击系列中的不同阶段,早期阶段为后期阶段做准备,前期步骤的成功是后期步骤成功的前提条件[ 4 ] ,它们之间存在着因果关系。
我们可以利用这个分析结果将一系列攻击步骤关联起来即,如果一个攻击的结果是另一个攻击成功的前提条件,那么我们说,这两个攻击是关联的,是同一系列攻击中的两个步骤下面首先介绍两个关于关联规则的定义: 定义3 警报A 和警报B 直接关联,如果满足下述条件:A .c o n s e q u e n c e = B .p r e r e q u i s i t e 并且符合关联条件限制定义4 警报A 和警报B 间接关联,如果满足下列条件:( 1 ) 警报A 通过关联规则R ,和警报类型X ,直接关联;( 2 ) 对于任何i ∈[ 1 ,n 一1 ] .警报类型X .和警报类型X 一通过关联规则R ,直接关联;·】6 2·( 3 ) 警报类型x 通过关联规则R 与警报B 直接关联3 .1 .1 直接关联直接关联模块的功能是将隐藏于大量离散繁杂的单个警报中具有相关性的若干警报挖掘出来,它主要通过两步操作来完成,即冗余处理和因果处理冗余事件往往是由一个简单攻击或一个复杂攻击的某个步骤触发多个I D S 系统或多次触发一个I D S系统所引起的以常见的端口扫描为例,通常,一次扫描攻击会同时针对目标机器的多个端口,这样同一个行为可能产生多个警报。
本系统采用聚类合并的方法将冗余警报过滤掉相对于冗余关系警报之间的因果关系显得更加隐蔽简单来说,如果前一个攻击的结果可能是下一步攻击的前提条件,就认为这两个攻击事件具有因果关系例如:一个存在缓冲区漏洞的服务被开启是针对这个服务执行缓冲区溢出攻击成功的前提条件如果这个服务没有开启,即使存在漏洞也不可能被攻击成功;如果这个服务开启了,但是漏洞已被补上,那么这个缓冲区溢出攻击也不会成功其中,前提条件和结果都可能会不只一个,我们用逻辑与将它们连接起来例如:s a d m i n d 缓冲区溢出攻击的前提条件是:目标系统的操作系统是S o l a r i e sA 目标系统开放了s a d m i n d端口^ 目标系统的s a d m i n d 端口存在缓冲区溢出漏洞3 .1 .2 漏报关联通过大量的实验,发现直接关联方法存在一个缺陷由于系统的所有关联均依赖于I D S 的警报,如果I D S 发生漏报,而此漏掉的警报又恰恰是两个攻击事件的关联点,此关联方法则无法将两个攻击事件关联起来如果这两个攻击事件本来是相关联的,此时则出现漏关联现象针对这一问题,本文对原来的关联分析进行改进,在直接关联分析模块后添加了一个漏报关联分析模块。
下面将详细介绍这个功能模块的算法和实现对一个警报A 进行关联分析时,如果通过直接关联没有找到与之相关联的警报,则进行漏报关联分析,其算法如下:I 是警报集合,T 是用户定义的关联时间间隔限制,A .p r e 表示警报A 的前提条件,A .c o n 表示警报A 的结果,A .b e g i n —t i m e 表示警报A 的开始时间,A .e n d _ t i m e 表示警报A 的结束时间,X 、Y 是攻击类型,P r e r e q 和C o n s e q 两个表位于知识库中,分别用于存放各种攻击类型的前提条件和结果,P r e r e q S e t 和C o n s e q S e t 两个表位于警报预处理单元,分别用于存放实例化警报的前提条件和结果F o re a c ha l e r tI { ∈I ,d o { F o re a c ha l e r tA ∈Ld o {I fA .p r eHc o na n dO < A .b e g i n _ t i m eI le n d _ t i m e












