一种分布式IDS报警聚合模型的设计与实现.doc

上传人:吴起龙 文档编号:1591960 上传时间:2018-12-26 格式:DOC 页数:16 大小:23.41KB
返回 下载 相关 举报
一种分布式IDS报警聚合模型的设计与实现.doc_第1页
第1页 / 共16页
一种分布式IDS报警聚合模型的设计与实现.doc_第2页
第2页 / 共16页
一种分布式IDS报警聚合模型的设计与实现.doc_第3页
第3页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《一种分布式IDS报警聚合模型的设计与实现.doc》由会员分享,可在线阅读,更多相关《一种分布式IDS报警聚合模型的设计与实现.doc(16页珍藏版)》请在三一文库上搜索。

1、一种分布式报警聚合模型的设计与实现Design and implementation of distributed IDS alert aggregation model GUO Fan,YE Jihua,YU Min (College of Computer Information Engineering, Jiangxi Normal University, Nanchang 330022, China) Abstract:The article proposed a distributed alert aggregation model, composed of local compon

2、ent and network component. Local components transform raw alerts originating from traditional IDS to IDMEFbased alerts with uniform format, which were sent to network components. Network components aggregate similar alerts into a metaalert, using an aggregation algorithm based on feature similarity

3、computation. Multiple kinds of messages were proposed to meet the demands of the communication between the components and realized information share in the whole network. Its economical to construct a distributed IDS under the model. Key words:alert; aggregation; similarity 随着网络的普及,入侵监测系统(intrusion

4、detection systems,IDS)作为网络安全系统的一个重要组成部分,受到越来越多的人关注。IDS被认为是防火墙之后的第二道闸门,希望在无法完全阻止入侵时,能尽快实时检测出入侵,以便及时作出响应。传统的集中式IDS根据数据来源的不同分为基于主机和基于网络的IDS,如著名的免费软件Snort1等。但是随着网络攻击手段向分布式和协同方向发展,难以发现这些复杂的分布式协同攻击,分布式IDS可以发现整个网络范围内的入侵,因此成为目前的研究热点。 一次分布式协作攻击可能会引起多个采集单元同时产生报警(重复报警),大量的重复报警可能会湮没真正有用的信息。另外,不同采集单元的报警格式可能也并不相同

5、。报警聚合的目的是将这些重复报警聚合成为一条超报警,从而减少报警的数量,使得安全管理员可以关注真正的安全威胁。所有的分布式IDS基本上遵循一个基本标准,即公共入侵检测框架模型2(common intrusion detection framework,CIDF),将IDS分为四个基本组件,即事件产生器(数据采集单元)、事件分析器(数据分析单元)、响应单元以及事件数据库。本文提出一种分布式IDS报警聚合模型,该模型将传统IDS看做是采集单元,通过增加格式转换模块,将上报的报警转换为基于IDMEF(intrusion detection message exchange format)模型的统一报

6、警信息格式,该格式对模型中的alert类扩展而成。数据分析单元采用基于分类和属性相似度的报警聚合方法对各IDS上报的IDMEF信息汇聚。本文还设计了多种消息内容用于满足模型中采集单元和分析单元的通信需求。使用该模型能较为迅速并经济地搭建一个性能良好的分布式IDS系统。 1 相关工作 本文引用穆成坡等人3提出的一些术语,报警聚合指将由同一安全事件产生的大量性质相同或者相近的报警合并成一个报警。原始报警指直接由IDS产生没有经过处理的报警。超报警指综合多个原始报警所产生的报警。报警聚合可有效减少报警数量,使得攻击事件可以清晰呈现。报警聚合可认为是报警关联的一个预处理过程。 基于分层的分布式IDS体

7、系结构最早由EMERALD4系统提出,整个系统物理上分为三层,每层可接受更高一层的管理和控制。AAFID5也对网络分层,但是其基于自治代理的分布式IDS框架分别定义了三个重要的部件,即代理(agent)、收发器(transceiver)和监视器(monitor)。每台主机上的惟一收发器负责监督和控制该主机上所有的代理,对代理上报的分析结果和报警信息进行关联和汇聚,向一个或多个监视器报告结果以避免由于单个监视器故障导致的单点失效,监视器负责检测整个网络范围的入侵。AAFID和EMERALD这两种系统的数据采集单元采用软件代理的思想,每个代理对应某类行为的检测,即使某个代理不工作,那么也仅仅是损失

8、了一部分功能而已,可以认为是微模式。马恒太等人6提出了一种基于agent的分布式IDS框架,它与AAFID不同在于没有中央控制节点,实现了数据收集、入侵检测以及实时响应的分布化。由于该模型没有信息融合汇聚点,很难检测出攻击者的分布式协同攻击。 本文提出的分布式报警聚合架构是一种巨模式,即充分利用基于网络的传统集中式IDS(它们已经能比较好地检测出中小型网络的入侵行为),通过对它们产生的报警信息进行关联和汇聚并及时传播给网络中相关节点。在分析单元部分依据AAFID的思想采用自治代理汇聚节点的模式作为关联和汇聚组件。一种自治代理负责处理一种集中式IDS的数据关联和汇聚(相当于该IDS的后台),不能

9、处理的数据发给汇聚节点进一步分析,处理后的数据也通过汇聚节点传播到其他汇聚点。一个汇聚节点管理多个自治代理,通过一个子网内放置若干不同集中式IDS做数据采集单元可以综合各个IDS的优点。汇聚节点之间的信息传播使用基于订阅的方式来减少通信负载。分析单元采用自治代理的好处在于可以比较方便地与底层各种集中式IDS进行接口,同时可以将通信功能与分析功能逻辑上分离开来,具有很强的自适应性和灵活性,同时具备AAFID5提到的其他优点。 报警聚合算法用于比较不同报警信息的部分属性值,将具有相似属性的报警组合为一条超报警。Valdes等人7提出了报警聚合需要比较的通用报警属性为源IP和端口,目标IP和端口,以

10、及报警时间等,它将每类属性的比较结果赋予01的一个小数,属性值的比较依赖预定义的配置。通过为每类属性赋予不同权重并结合属性相似度值,最终判断两个报警是否可聚合。其主要贡献在于提出了一种报警聚合算法框架,但并未就具体的属性比较和权重赋值展开讨论。Debar等人8提出的ACC算法中包含了属性相似度的计算,但是其仅考虑完全匹配的属性,也没有考虑时间属性,因此其聚合算法很不完善。Aurel等人9在MIRADOR项目中提出的CRIM框架中包含了报警聚合算法,提出的属性分类法可对各属性进行分类,并将所有属性值分为四大类,但是并未对每类属性的具体计算方法进行深入讨论。穆成坡等人10提出一种基于模糊综合评判的

11、方法,该方法实际也是基于文献7提出的框架,但是在最终判决时引入了模糊矩阵,并且将从事件中提取的特征也作为待比较的属性之一,实验结果较好,但是实验模型中计算的属性仅包括报警时间和源IP。Oliver等人11提出基于攻击者的攻击意图来对报警进行分类,在此基础上进行报警聚合与关联,从而可最终发现攻击者的攻击意图乃至各种分布式协同攻击。本文综合文献7,9,11的思想,设计并实现了一种基于分类和相似度的报警聚合算法,并在DARPA99数据集上获得了较好的实验结果。 2 模型体系结构 整个系统可以划分为两大组件,即本地组件和网络组件(汇聚节点),如图1所示。本地组件包括:a)传统IDS指已经存在的基于网络

12、的IDS如Snort,网络组件可管辖多个不同传统IDS,因为各个IDS的检测能力以及偏重方向不同,有的入侵可能Snort检测不出来,其他IDS却能检测出来,所以在单个网络组件管辖的网络内放置多个不同IDS将综合各IDS的优点,获得最大的性能;b) 后台转换模块负责将报警信息转换为标准的IDMEF格式信息,每种IDS均有自己的后台转换模块;c) 本地聚合模块负责对单一IDS上报的报警进行聚合,因为基于网络的IDS可能有大量的伪报警和重复报警,在上报至网络组件之前在本地先作预处理,可以提高网络组件的性能,使其专注于发现网络上的协同攻击,而简单的攻击检测就尽量放到本地完成;d)响应模块接收网络组件发

13、来的响应动作命令,可修改目标主机的配置,对攻击作出及时响应;e)通信模块主要完成与网络组件的信息交换,包括控制命令和报警信息。 网络组件主要包括:a) 聚合模块从通信模块中得到经过预处理的超报警信息,应用基于分类和属性相似度的报警聚合方法,检测其所管辖范围内的网络入侵行为,将得到的检测结果以及产生的响应动作传递给本地组件或其他网络; b)通信模块不仅与本地组件进行通信,还与其他网络组件进行信息共享;c) 响应模块根据报警分析结果,作出整个网络范围内的相应决策。 图1中有一虚线框起来的备份单元,该单元与网络组件的模块相同,即作为汇聚节点信息的冗余备份,避免单点失效,实时备份汇聚节点的所有需要存储

14、的信息,一旦汇聚节点因物理故障或安全问题导致崩溃,则备份单元将成为新的汇聚节点,管理所有本地组件并与其他汇聚点通信,增加了整个分布式系统的可靠性和健壮性。 21 通信模块 本模型通信的需求主要体现在报警信息、响应动作、配置命令的传播上。在汇聚点通信agent中采用基于订阅(subscription)模式的通信模型来完成多个agent的通信和协作,使用事件管理服务模块(EMS)来实现基于订阅的通信方式。在这种模式中,事件管理服务模块相当于消息的发送方,而订阅者(subscriber) 相当于接收方,在该模型中提供了一个事件管理服务(event manage service,EMS)。 订阅者将感

15、兴趣的事件向EMS 申请注册,EMS 用一张注册/订阅信息表专门维护这些订阅的事件信息。EMS 在注册信息表中查找对该信息感兴趣的订阅者,然后将消息发送给它们。图2描述了该通信模式的逻辑结构。 通信agent中的消息发布采用多播方式,对所有注册/订阅同一事件,通知每一位subscriber。事件服务模块(EMS)是不同agent间通信和协作的基础。由于网络agent接收不同本地agent的消息,同时又要与汇聚点agent相互协调,事件的注册和发布需要遵循一定的协议来满足通用性要求。EMS需要处理以下五种消息:a)注册/注销。Subscriber 需要提供自己的IP 和注册/注销的事件。EMS收

16、到请求后,修改相应的注册服务信息表。b)发布。EMS需要注明发布的事件ID、事件相关数据。可以发布的事件有特征库更新、策略更新、响应方式更新、报警。c)通知和反馈。所有subscriber 处于同一多播组。ES在发布事件时,多播组中所有的主机均可以接收到事件,即所有活动的subscriber均可以接收到这一事件。接收到事件通知的subscriber向EMS发送反馈消息,相应agent由此修改subscriber的状态,将其对应的事件修改为已更新, 并记录更新时间。 在汇聚点通信agent中,所有agent逻辑上形成树结构,形成一片森林,本地agent通信必须通过网络agent。通信机制采用基于

17、订阅的通信模式,结合树型结构来达到快速高效传播告警信息、攻击意图和响应动作的目的。比起传统的分布式环境下的通信模式,如应答式、RPC等,基于subscription 的通信模式具有很好的时间、空间的松耦合性。在时间上,它无须通信双方同时参与消息传递过程。这样就消除了同步不同实体相互通信的负担。空间上,消息发送方和接收方不必知道对方的信息和状态,减少了信息维护的难度,并消除了每个实体均要保存其他相关实体的信息的开销。这为实体间的相互协作带来很大的灵活性。 22 消息内容详细设计 各组件之间交互的信息内容设计主要基于IDMEF标准。IDMEF 是 IETF的入侵检测工作组( IDWG) 制定的标准

18、草案,其目标之一是满足报警之间的关联需求并用于检测分布式协同攻击。目前绝大部分IDS产品均支持IDMEF格式,IDMEF关注的主要是alert和heartbeat消息。根据分布式入侵检测模型架构,各个agent之间要交互的信息比较多,IDMEF定义不足以满足需求,因此对IDMEF进行了扩展,定义了订阅、通知、指令等消息,以支持系统中数据上报、响应指令、协作分析等要求。下面具体描述五种消息内容: a)报告(report)消息。报告是集中式IDS提交的消息,用于反映IDS的上报数据,主要包括alert、heartbeat、auditData。Alert是在集中式IDS检测到入侵行为后,主动向本地汇

19、聚agent提交的报警信息,用于描述特定的攻击事件(event)。Heartbeat是集中式IDS向分析器报告自身处于运行状态,需要定时发送。AuditData用于挖掘检测规则和进行异常检测的安全审计数据。 b)订阅(subscription)消息。通信agent通过订阅消息向其他组件发布请求,订阅可以是获取本地组件中提交的状态(heartbeat)、安全审计记录、或协作请求消息(assistReq)。当出现大范围的分布式攻击行为时,通信agent向其他本地汇聚agent组件发出assistReq请求,订阅与此次攻击有关的所有信息。其他通信agent通过对协作请求中包含的事件信息,结合自身监控

20、范围内的安全事件,进行相关分析,发布相关信息,从而帮助确定攻击行为。AssistReq通知所包含的数据项包括:createTime、currentTime、sender、receiver、event、additionalData。 c)通知(notification)消息。通知是分布式入侵检测系统中最普遍应用的消息,检测组件之间通过通知交换攻击事件消息(attack),本地汇聚agent状态消息(heartbeat)和网络agent对请求协作消息的回复(assistResp)。Attack用于通信agent之间的攻击事件通知,当网络关联和汇聚agent最终确认一次攻击时,无论是由其集中式IDS

21、检测到的攻击和网络IDS检测到的攻击,还是对警报数据的关联分析结果,该汇聚点通信agent均可以使用attack类型的通知消息向其他通信agent通报,网络通信中agent接收到通知消息后,可以根据自身的安全策略,或转交网络汇聚agent处理。 AssistResp是assistReq的回复消息,用于返回协作请求消息,与assistReq数据项大致相同,增加assessment项,表示发送方汇聚agent对该事件的评估。 e)指令(instruction)消息。指令是响应agent向其控制的集中式IDS发送的消息,主要功能是控制数据收集组件的启动、停止和对网络入侵行为作出的响应。根据模型定义o

22、peration和response两种数据类型。Operation是由响应agent组件向集中IDS发出的操作指令,有启动(OPER_SRUN)、停止(OPER_STOP)、查询数据状态(OPER_STOR)等类型。Response是通信agent根据分析结果对响应agent发出的响应消息,可以是切断连接、阻塞IP或端口和杀死异常进程等类型,分别用RESP_RESET、RESP_BLOCK、RESP_KILL表示。 3 报警聚合 本文提出的报警聚合算法是一种基于分类和相似度的报警聚合方法。首先根据文献11的攻击意图分类法,根据报警属性中attackclass的值,将报警分为发现(discove

23、ry)、扫描(scan)、拒绝服务(DoS)、权限提升(escalation)四类。例如IP Sweep属于发现类报警,端口扫描属于扫描类活动,SYNflood属于拒绝服务类报警,缓冲区溢出属于权限提升类报警。攻击意图分类简化了聚合算法,因为只有从属于同一类别的报警才有可能被聚合在一起。参照文献9提出的报警属性分类方法可将属性值分为四类,分别是类别属性(categorical)、数值属性(numerical)、时间属性(temporal)和字符串属性(character)。IP地址和端口等属于类别属性,数据包大小等属于数值属性,报警时间等属于时间属性,数据包中的格式串等属于字符串属性,依据不同

24、属性分类使用不同计算方法计算相似度。 31 报警分类分析 属性相似度在不同的报警分类下有不同的考虑方法。 a)发现类报警主要是攻击者要探询某些IP、域名或者网络是否存在。通常会在较短时间内发出大量查询信息,因此源IP地址需要较大程度上精确匹配,目标IP至少需要网络地址匹配,查询时间间隔比较短。对于发现类报警主要考虑这三种属性值;另外还可以通过字符串属性来判断其查询的域名是否类似等。 b)扫描类报警往往通过端口扫描和漏洞扫描工具进行。此类报警主要是目标IP地址精确匹配,原IP地址网络匹配(因为有时其会发出一些伪造的IP地址包),格式串也很重要,因为同一种工具发出的数据包往往有一些相同的特征在里面

25、。时间属性也需要重视,有的扫描会在短时间内发出大量包,但是有的扫描比较隐蔽,如可能隔几分钟或发出一个包,可以将时间间隔设置得比较大来聚合这类扫描报警,这就需要动态调节时间。 c)拒绝服务类报警。通常由大量主机协同进行,因此源IP地址的匹配上无意义。主要考虑的是目标IP和端口精确匹配,时间间隔很短,攻击数据包通常也是类似的,因此数据包大小和格式串的匹配有时占一定权重。 d)权限提升类报警。一般是针对某一网络内所有主机或者单个目标主机以自动方式运行远程攻击程序,因此主要考虑目标网络与目标端口的精确匹配。通常源IP地址即为攻击者IP,因为攻击程序相同,数据包特征必然相同,同时时间间隔也很小。 32

26、属性相似度计算 对于数值属性和字符串属性,无论报警属于哪一类,两个属性值的比较结果要么为1要么为0,两者完全相同则为1,否则为0。时间属性和分类属性的计算,则需要根据不同的报警类别设置不同的计算方法。本文对IP地址、端口以及报警时间等属性进行详细分析。 IP的比较基于CIDR的格式来分析,IPv4地址由32 bit二进制数组成,设有两个IP地址ipaddr1和ipaddr2,r表示两个IP地址从高位开始相等的位数,则r为0表示两个地址完全不同,r为32表示两个地址完全相同,r值在一定程度上表示了两个IP地址从属于同一个子网的概率。对于不同的报警,r会有最小阈值,如发现类和权限提升类报警的源IP

27、地址需要精确匹配,那么源IP地址比较时,r的期望值可以设置得比较大,扫描类报警仅考虑网络匹配,那么r的期望值就设置得小一些,拒绝服务类攻击则不考虑源IP地址的比较。相似度的计算方法为 if rre then sim=0; else sim=r/32; 如果两个待比较报警的端口属性均只有一个值,那么只需直接比较值即可,否则考虑集合比较方法。设alert2为新报警,alert1为待比较报警,那么如果alert2中的端口均在alert1中,显然比较结果为1,如果均不在 alert1中,比较结果为0,其他情况下,令集合set1=alert1alert2,n=|set1|,total=min( |ale

28、rt1|,|alert2|),则比较结果为sim=n/total,表示两个集合的相似程度由两个端口集合的重叠度决定。 报警属性中可能有两种时间属性,即产生报警的时间和检测到攻击实际发生的时间。只有在系统负荷很重情况下,产生报警时间可能会比攻击实际发生时间有所延迟。通常情况下,只考虑报警产生时间。对每类报警的不同需求分别设置不同的时间区间Tmin,Tmax,两个报警的时间差只有落在区间之内才具备参考价值。具体算法如下: if |t1-t2|Tmax then sim = 0; else sim=(Tmax-|t1-t2|) / (Tmax-Tmin); 聚合算法的目标是判决两个报警是否可聚合,因

29、此还需要综合考虑各属性相似度值,通过给各分类报警的不同属性以不同权重,笔者采用文献2提出的方法: sim=(Wk simk)/(Wk) 总的相似度值为各属性相似度的加权平均,这里k代表了参加最终评判的所有报警属性。 33 聚合算法 聚合的最终结果将产生若干超报警,超报警代表了一类原始报警,因此每当有新报警newalert来临时,系统将newalert与所有的超报警比较,将其加入相似度最大的超报警。如果与所有超报警均不相似,则自行成为一条新的超报警。每条超报警均有其最长时限,当新来的报警生成时间超出了其最长时限,则不用计算与该超报警的相似度。 每次报警聚合,超报警的相关属性需要合并或者更新,如报

30、警时间、IP地址、端口、数据包大小、数据包格式串等。可以采用两种方式进行报警聚合判决,一是直接将超报警与新报警进行聚合,还有就是将新报警与超报警代表的报警类中若干原始报警进行比较,如原始报警可以选择时间最近的一些报警,也可以随机选择一些报警。超报警中的属性值范围比较大,特别是当其代表的报警数量很多时,进行判定花费的时间将很长,因此本文选择使用最近的五条报警与新报警进行比较,取平均值作为最终的相似度。所有的超报警按照其原始报警所属类别分为四大类,当新报警newalert来临时,其判决算法如下: a)根据newalert的类别得知其所在的报警类别,进入相关超报警集合,对其中每条超报警metaalert。如果新报警的时间超出了metaalert的时限,则进入下一条metaalert;否则取其中时间最近的五条原始报警,分别调用3.2节中的计算式得到五个相似度值,计算出平均值simav。该值即为metaalert与newalert的相似度。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1