第28卷正 占・第2期 ^ 2 计算机工程 2002年2月 February 2002 Computer Engineering 安全技术・ 文章壕号:L000--3428(2002)02—o165—∞ 文蕾标识码:A 中田分娄号:TP393・08 分布式入侵检测系统的数据采集技术 张镐束.金虚赡,赵交栝 摘(复旦大学计算机科学系.上海200433) 要:讨论了分布式入侵拉涓系统中的数据采集子系统,通过对几种不同的数据采集技术的优势相局限的分析t提出了分布式入侵橙涓系 统的数据采集子秉统的实现方法 美酮:入经检测i分布式入侵检测ji统;数据采集 Data Cnilect[ion Technology f0r Distributed Intrusion Detection System 肌NG Mi幢Ia1.肛N Chenblao,豇IAo Wenyan (CompltcrScienceDepartment ofFudanUniversity,Shanghai 20043舢 lAbstractl Thls paper discuuestbe data collection sub-system ofdistributedmS,anaIyz廿diferent klnds of data collecfientcchnoiogy,and dIiIlI置^methodtoimpkmeat|tI柚dlstribu‘柚1DS. [Key words][ntrms,on detection;Distribnted]DS;Dats collection 1背景 1.1入侵监蔫秉统氍含的提出 入侵检测.顾名恳殳.便是对入侵行为的发觉。它通过 对计算机两络或计算机蒜统中的若干关键点收集信息井对其 进行分析,从中发现嘲络或系统中是否有违反安全策略的行 为和被攻击的迹象。 个良好的IDS系统应该具备以下特征: 一部分出故障不会遗成所有的模块全部瘫痪。 1.2.2基于两络和基于主机的数据采集 入侵吐渊系统UDS)按照数据采集的方式不周可以分为 基于两络的IDs和基于主机的IDS。基于同络的[DS的数据艨 通常是侦听两络上的数据包.而善于主机的IDS的数据源通 一常是系统日志或系统调用。 (1)必须在管理人员很步干疆的时候也售持续稳定运行。 (2)妊须在系统崩溃后舶保存当时的状卷并自动恢复,壤续对系 统或罔持进行监控。 (3)必须舶发现自己是否被入侵者攻击成已经被入侵者惨改。 现有的IDS发现的入侵中大部分是在主机上发生的:执 行一个命令,向一个服务提供不音适的数据.等等。虽然攻 击可能是通过两络进行的,但攻击最终发生在主机上。纯粹 针对两络的攻击是那些将两络带宽占满的洪 攻击,但其中 大部分也能被基于主机的数据所发现。伪如,要发现Ping lfood ̄击,只要在主机的『c P层出现大量的Echo R朝ucst包 就舱作出判断。有一种情况使基于两络的数据采集优于基于 主机的数据采集,即对两络的攻击不会有任何主机啊应(侧 如将靛据包发至所有主机都关闭的蝴口)。然而即使在这种 情掘下,在主机的底层两络协议中仍能发现攻击。 我们认为基于主机的数据采集忧于基于两绺的数据采 集,理由如下: (I)善于主机的蕞据采集舶准确地知道主机上发生什么,而基于 网络的数据采集是在 估计。主帆对收到某一个数据包的反应,因此 容易受到 插入”(Insertoin)攻击和 逃避 (Evasion)攻击.ptacek和 (4)妊须在运行的计算帆上消耗尽量步的责舔,不影响正常操 作。 (5)柏适应运行环境的变化,在不同的嘉统中都能正常运行 ( 艟着网络的扩大和被监涓系统的增加.舶进行相应的扩屉e (7)如果IDS的一部分意外停止工作,对其它部分的影响要达到 最小。 (8’应谖允许魂杰设置.如果IDS在监稿许多系统,修嘲Ds的 设置不应该要求被监 的系统全部重新启动a 1.2入侵检 秉坑的分类 l 2l集中式IDs和分布式IDS IDS按照数据处理的方式不同分为集中式IDS和分布式 IDS。分布式IDs的靛据采集和分析在多个主机上完成,而 集中式IDS的数据采集可以是分布式的,但数据处理是在一 Ne 帆在文献1U中详掘分新了进两种攻击的过程。 (2)在高速网络环境中,一个基于网络的侦听器(Snifer)很可能 因为来不爰处理而丢掉一些数据包.而且s口if衙不能收到跨网段的 数据包。 台主机上进行的。集中式IDS存在以下问题: (11∞s所在的计算机报可能是攻击的目标.如果入侵者髂使这 那么整十同络就舍失去保护。 (2)可伸缩摊有限。由于一台计算机的处理能力有限.一个IDS 耍负责整个网络的安全.网耋齑不能过大,否尉IDS来不爰处理。如 果采用分布式数据采集还会造成更大的网络负担。 (3)基于网络的数据采集对加密的数据无能为力。当制览器和一 个撞甩安全囊接字(SSL)的web服务器相连耐,数据包直斟封迭web 服务器应甩车身时才被饵密,忘种应甩缎加密会使用络监视器对许 多攻击视而不见。 (3)重新设置JDS或增加新的功能比较困难。重新设置IDS通常 耍僖改配置文件、在数据表中增加一瓒内窖戚珏加一个新的模块. 进常常娶 ̄.nDs重新启动才饴生效 作者蕾弁:张铭来11977 ̄),磺士生.研究方向:簌件工程 同络 管理;金成飕.颈士生;赵文耘,教授、中国计算机学会软件工程 专委舍副主任 收囊日期:2001-05-16 一分布式IDS的结构使它具有更好的伸缩性和扩展性,分 布在不同计算机上的IDS模块相互独立且能相互通信,其中 l65_~ 维普资讯 http://www.cqvip.com
1 2.3主机型IDS的数据采集可以分为直接监视和间接监视 直接监视获取的数据是从产生数据的对象那里获取数 据,例如我们要直接获取cPu负荷的数据,就要从内核结构 中获得数据。如果要监视in利后台进程提供的网络服务,我 们就可以直接从in刚获取信息。 间接监视获取的数据通常来自于日志文件。间接监视 CPU负荷的信息需要查找相关的日志文件,间接监视网络服 务需要查阅inctd产生的日志文件。 在实现IDS的时候,我们认为直接监视优于间接监视, 理由如下: (I)日志文件作为IDS的敷据源时可能已经梭入侵者改动过a 】有些事件授有记录在日志文件中。倒如.并 ̄ine'td的每一十 动作都记在日志文件中。 f31由于日志文件在产生的时候并不知道1Ds会使用它,所以日 志文件的窖量通常报太,其中报多是IDS不关心的,如果生部由IDS 处理特会降低其效率 对于采用直接监视的方挂来获取数据的IDS 而言,它们胃获取需要的数据,这样产生的散据量就小得多a (4]间接监视所用的敷据裤的产生和IDS访问这些数据之间存在 一十延迟.而直接监视时IDS舱立即对收到的敷据作出反应 如果IDS要用直接监视来采集教据,必须有相关操作系 统的支持 一种方法是在内核里加入一些代码来实现对系统 的监视;另一种方法是写一些程序与现成的应用进行通信, 通过观察应用的输入和输出来监视。因此分布式IDS中代理 的实现可以有两种选择:内部代理和外部代理 内部代理是 指实现代理的程序已经成为被监视的应用的一部分;外部代 理是用独立的程序来监视某个应用。 因为内部代理是被监视的应用的一部分,所以不容易被 攻击者关闭或修改,并且能够最快地得到应用程序的有关信 息。如果能成功地实现内部代理,它占用的系统资鑫f比外部 代理要少.因为它的运行不需要产生新的进程。内部代理能 够比外部代理获取更多的应用程序的信息,因为它能访问应 用内部的数据结构和变量。而外部代理相对而言比较容易修 改、增添或删除。 从软件工程的角度看,内部代理与外部代理各有特点: (I漕误的引入:内部代理的使用更窖易引入错误,因为要修改 原来应用程序的代码,外部代理也可能引入错谩(倒如消耗过多的 系统资裤)。然而.如果内部代理的实现胃需修改根少的应用程序 代码.就舶控制错误的出现.也更窖易进行检查 在openBsD系统 上实现的内部代理舶发现15种攻击I。I.包括Land,TearDrop.Ping ofDeath等等.这个代理只蕾改了内棱中的73行代码,另外附加了 两十文件共354行代码。因此采用内部代理是能够控制错误的。 [2]维护:外揶代理更容易堆护.因为它们与被监视的应用程序 是分开的 ㈣软件太小:内部代理更小.因为它们是现有程序的一部分, 在运行时避免了产生新的进程。 (4]完整性:由于内部代理能获取被监视的应用的所有信息.而 外部代理胃是从外部获取信息,因此内部代理舶更生面地了解被监 视的应用所发生的一切。 (5)正确性:内部代理能获取更多的信息,它得出的结论比外部 代理更能反映真实情况。 通过对内部代理和外部代理的综合比较,我们发现外部 代理在易用性和维护方面比较好,而内部代理在监视能力以 。两种代理都可以应用于分 布式IDS中,在不同场台可以发挥各自的优点。 一166'一 2 ̄,IDS系统的结构 分布式IDs中包括以下几种元素:代理、转发器、监视 器、过滤器和用户界面,其结构如图1所示。 [———]± —圈1分弗式【— Ds的结构图 …, 代理是负责监视主机的某个方面的独立实体,它将收集 的信息向转发器报告。例如一个代理可以监视一个主机的许 多T ̄inet连接,收集可疑的信息。代理向指定的转发器报告 它发现的情况,但它无权直接产生报警。通常是转发器或监 视器根据代理送来的信息产生报警。转发器通过不同代理送 来的报告能够对主机的状态有一个全面的了解,监视器通过 不同转发器发来的报告对监视的网络有一个全面的了解。 过滤器可以看作是代理的一个数据选择和抽象的层次 代理在收集主机信息时,遇到两个问题:(1)一个系统中可 能有多个代理使用同一个数据源,倒如Euni ̄,p使用同一个 日志文件,每个代理都对数据源处理一遍意睐着重复劳动; (2)可能有一种代理在不同的Unix版本中都要用到,但不同 的Unix版本日志文件的存放位置可能不同,文件格式可能不 同,这意睐着要写几个代理来适应不同的版本。而过滤器的 提出正是为了解决这两个问题。代理向过滤器提出条件,过 滤器返回符合条件的纪录。过滤器还将处理与系统版本相关 的问题,使得实现统一功能的代理能用于不同的操作系统- 转发器负责收集主机上各个代理提供的信息,以及和外 界的通信。每个被分布式1DS监视的主机上都有一个转发 器,它既要控制相应代理的工作,又要对代理送来的教据进 行处理,还要对监视器发来的请求进行响应。 监视器控制转发器的工作,并 处理。监视器和转发器最大的区别是:监视器控制不同主机 上的转发器,而转发器控制一个主机上的代理。监视器与用 户界面通信,从而为整个分布式IDs提供了管理的入口。 用户界面为用户提供可视化的圈形来进行管理,并将用 户的指令传达给监视器。 由于代理是独立运行的实体,它可以从系统中增加或删 除而不影响其他元素,不需要重新启动IDS。使用代理来进 行IDS的数据采集有利于我们测试,有利于在不同的系统中 进行移植。如果一个代理停止工作,有两种情况:(1)这个 代理是完全独立的,能够自己产生结果,那么将仅仅丢失这 维普资讯 http://www.cqvip.com
个代理产生的数据,其他的代理仍会正常工作;(2)这个代 理产生的数据是其他几个代理的输入,那么这一组代理都将 不能正常工作 无论哪一种情况。损失都限制于—组代理, 其他代理会继续工作,这比起采用集中式的数据采集损失要 小得多。用代理来进行数据采集和分析还有以下特点: ・在实现代理的时候我钔既可以从系统日志中获得数据,也可 以从同络中获取数据包,所以采用代理来进行数据采集的IDS能够 暖取基于网络的IDS和基于主机的IDS两者的优势。 ・由于代理的启动和关闭不会干扰IDS的其他部分,代理的升 级很方便.只要代理的接口保持不变,IDS的其他元素甚至不知道 代理已经升袅。 如果代理是主机上的不同进程,它们可以根据用途的不同采 用不同的褊程语言来实现。 3分布式IDs囊t据采集子系统的实现 最初考虑把每个代理用独立的进程来实现.但要收集和 分析的鼓据蔼【通常来自内核,这意味着要记录内核产生的数 据必须将它从核心空阔传刊用户空间,从而造成上下文切 换.这必将增加被监测主机的负载。随着代理数量的增加, 过大的负载将影响用户对该主机的正常使用.当代理用脚本 语 ̄Pcr1.TCLJTk来实现的时候将舍稍耗很大的资源 一个改进方法是使用编译语言如C语言.这将会减小对 内存和CPU的捎耗.但仍然不能解决上下文切换的问题.以 及许多进程之间切换带来负载 我们又考虑到使用支持多线 程的编程语言,让每个代理成为一十独立的线程而不是一个 独立的进程.这当然尝进一步减小每个代理的负载.但依旧 投有解决上下文切换的问题。最后我们决定把代理变成Unix 内核的一部分.例如一个监视网络连接的代理可以直接从内 核中读取相关的数据结构,而不用重复地执行nctstat命夸。 将代理写进内核可以解决上面的一些问题: -避免了上下文切按,因为代理本身就在内棱里面。 -信息收集和处理的地方和信息产生的地方非常接近,所以入 侵者耍修改代理翰出的信息就不很容易。 -入侵者要屏蔽掉代理斐得更加困难.因为必须修改内棱。 转发器也可以成为内核的一部分,这样只有当转发器将 数据处理的结果发送到监视器时才和内核以外的部分通信。 代理、转发器、监视器的设计和实现有两个方向:一个 是尽量减少代理和转发器的工柞,这样它们实现起来就比较 容易而且捎耗的资源可以很小.监视器设计得比较复杂,主 要的工作由它来完成,这个方向发展刊极端就是采用分布式 数据采集的集中式IDS,这种系统存在的问题是代理和转发 器进行的处理很少,于是网络E传翰的数据量就会很大。另 一个方向是为了减小两络的负载,让代理和转发器馓更多的 数据处理.这种方向的极端就是每个被监视的主机上的代理 和转发器瓠相当于一个独立的IDS,如果代理和转发器设计 得复杂,要把它们写进内核就会难以实现。 以下是针对几种常见的网络攻击的代理在OpenBSD2.6 上的实现: (1)uanc ̄击 这种攻击是向一白机;晕开放的嫱口发送TCP SYN包,并且谣包 的目的地址和蜡口地址与矩地址和镩靖口相同,这将导袭教攻击的 机器不停蛐向自身发Ac●泡,最终造成当机 OpenBSD2 6一接受到这些数据包蔬会将其过谜.此时喜接字 还处于Listen状春.我们只要在丢弃这些数据包前截取这十信息. 就能实现代理。 Case TCPS_LISTEN:i if(ti->lidsLslddr==ti->lisrc ̄__—_addr{ 舟转发暴发进一索h_d瑷击的精且; Golo drop; /・丢弃谴数据包 , } } ∞_re p攻击 这种攻击由两个重叠的IP分片组成。第u-i"是大的IP分片,第2 个IP分片的结束位移量(offset); ̄开始信移量之前,有些系统会给第 2个分片分配一个太水为负数的内存,这将使系统崩溃。 OpenBSD2 6对接受的IP分片的偏移量要进行检查.我们实现 的代理就可以放在里面: 1=p->ipqejp->ip_off p->ipq ̄_ip->ip_| ̄n—ipq ̄->i! ̄ejp->ip _ofr; if(1 ){ lf(1 ipqe->ipqe—ip->ip_leu)i 何转发暴发进一索n・rdrop攻击的精息; go佃dropfrag i 菩弃蕞分片‘, , , (3)TCPRS珊t击 TCP RsT攻击是由攻击者发出一个伪造的TCPRST包,将已经 建立的 rcP连接断开。这种攻击的发生是因为有些系统在娃理RsT 包时不植营 P序刊号 ,(EOpenBS1)2 6中对RST包的TCP序列号进 行了检啬.如果发现TcP序列号不对,就有可能是他P RsT敦击。 源代码如下: H(filfag¥矗TH_RS33{ If( 呻 I罡tp->lasL ̄ ̄k se,0 i 舟转嚣暴发进一索TCP Rs1破击的精息; goto dropi } } (4)Ping of h攻击 分片的ICMP响应请束(Echo Request)包组装以后长度太- ̄:IP包 的最大值,就产生P ofD睫lll攻击。这是一个地较老的攻击方 法.Ol ̄nBSD2 6对这种攻击进行了过菇: if((next 4-(ip->hl<<2)J)IP_MAXPACKE { if(ip->ip_p==IPPROTO ICMP、 舟转裳暴发送— }PingofDe,ih ̄的精it; } ∞sm、】rf攻击 A主机冒充B主机向lP广播地址发 ̄:ICMP响应请求包,B主机 特会收封大量的ICMP响应圄答(echo reply)包,这时B主机就受封 smlIrf攻击。由此可见smrt ̄击包括两部分:反射器是ICMP响应 回答包的发送者,受攻击者是ICMP响应圄罄包的接收者。 OpcnBSD2 6可被设置为息略lP广播响应请束,但遗不是默认 设置,因为向广播地址发送请束是网路管理的一个有用的工鼻.耍 防l匕0penBsD2.6受攻击者刺用成为反射器,可插入一个代理: Case IcMP_ECHO f(!iempbmclstecho&& 珊・>re_flags& M MCAST[ MLBCAS )『-0) 向转发嚣发送一条SmurfRelfector攻击的稍息; P 程序在发送ICMP响应请束时把ICMP包中的Identiifcation域 设置为进程号fp曲并且在一个原始喜接字(Raw Sock ̄)上侦听所有 的ICMP包,当地址、序列号和ln域都匹配耐才报告 我们可吼甩 f下转第1舛页】 一l67—一 维普资讯 http://www.cqvip.com
大延迟时间来确定控制时间虽然总是船满足媒体实时同步表 现的要求.但由于通信网络上的数据传输本质上具有随机 性,有些数据单元可能会经过较小的延迟而达到目的端。所 以必须要在目的端加上缓冲器以保留这些提前到达的数据单 设置—个独立的缓冲器。 另外一个问题是.由于网络对于每一个数据单元具有不 同的1"f4 ̄时延,这样就导致在相同的时间间隔里.到达缓冲 器的数据单元并不相同。假设在某一段时间里传输两络对于 其上传播的数据单元具有较小的延迟,则这段时间里到达缓 冲器的数据量必然增多.但媒体数据的播放速率却是恒定 的.比如每秒播放25帧.因此这段时间里滞留在缓冲器中的 数据量也将增加。由于缓冲器容量的限制.随着时间的推 移.当缓冲器的容量到达满载时将会导致后续部分媒体数据 的丢失,从而影响播放效果。与之相反.如果某一段时间里 两络具有较大的传输延迟,就可船会出现缓冲器中无数据可 供播放的情形。在本框槊中我们采用基于反馈信息的缓冲器 的流控机制。其原理是缓冲器根据当前的容量状态.发出相 应的反馈信息给远端服务器.由服务器根据该反馈信息动态 调整媒体数据的发送数率。 3.3用户接I=l与交互 所有媒体流的播放必须在用户的交互下由媒体播放管理 器来予以组织播放。用户的交互通过用户接I=l向同步规范模 块、同步管理模块发出指夸.然后 应的格式来组织发起、同步、管理播放各媒体流。 另外.用户交互的异步性将会增加系统同步的难度和复 杂度。例如,当用户要求reverse(反向)播放当前正在播放的 媒体流时,将意味着必须重新向远端服务器请求那些业已播 放完的媒体数据。在这个过程中,用户首先通过用户接口同 时发出“reverse 消息给媒体播放管理器和同步管理模块。媒 体播放管理器接到该消息后特立即停止当前的媒体播放,同 时将管理器中当前正在播放的媒体数据单元的序列号返回给 缓冲器,再由缓冲器将该序列号反馈绪远端服务器,远端服 务器在接到该反馈信息后.将停止当前的传输过程,并且重 新配置其传输参数以便发出满足客户端需要的媒体数据。同 ☆☆☆☆ 步管理模块接到“reverse“消息后,将停止同步器1和同步器2 中的同步操作,同时清除缓冲器中当前的及后续进来的不满 足要求的媒体数据,直到服务器发回了客户端所需要的数 据,由数据序列协调模块负责确定服务器是否发回了满足要 求的数据。 显然.在用户发出“ v黜“的操作指夸到实现该操作将 由于上述过程的存在而不可避免地造成一段时间延迟。为了 同步该用户的交互,霸们采用在客户端本地存储器中开辟一 块一定容量的存储区域来存放那些最近播放完的媒体数据。 这样,当用户发出“ v哪e“命夸后,可以快速地从本地存储 器中取出所需的媒体数据进行播放,而向远端服务器请求新 的媒俸数据的过程也在并行进行中。这样的处理大大地缩短 了”reverse 发出后其实现的延迟时间,所付出的代价是需要 额外占用本地的一块存储空间以及该存储空间与缓冲器进行 媒体数据序列号协调所增加的复杂性。其他的用户交互还 有:paos ̄,reslxfl ̄,skip等,但较“r e“而言.较为简单。 4结束语 多媒俸技术是目前计算机科学与技术领域研究最括跃的 内容之一,而多媒体信息的同步作为分布式多媒俸信息系统 的关键问题,已经越来越受到关注。本文在媒体同步的4层 参考模型的基础上提出了一个实际应用的分布式多媒体系统 的同步框架,并对该框架中的一些关键内容如缓冲器及其控 制时间、用户接I=l与用户交互等进行了讨论。该框槊不要求 很高的网络带宽和Q0s参数,在当前广泛使用的TCP/IP两络 环境中可取得较好的效果。 参考文献 1 W ̄o M Q担i N U.Ghafoor AA Synchronization Framewc ̄k for Communication of P『e-0劬鹤tr 删Multimedia【n向伽li∞IEEE Network Magzine,1994,8(1):52-61 2 Little T,Ghafoor A.MuIdmedia Synchronizati ̄pro ̄cols for Broad- b∞d[ntegmted Services.IEEE Journal oll Selected nication、I991-12,9:1 368-I382 in Commu- 3 Geotganas N,Steinmets RNakahawa T(Eds)Synchronization Issues in Multimedia Communications 1EEE Jounml o[1 Selcteed AIe雎in c0mmunication,1996_01.14(I (上接第167页) 同样的方{击来检查[CMP响应回答.将ICMP的ID和所有的原始套接 字的ID比辘(在函数c1|eck_smurf()中实现),如粜不匹配就在ICMPN 将读数据包丢弃;如粜匹配就将数据包发至响应的原始套接字。 Case ICMP-ECHOREPLY: If(eh eck—smⅡ id in,id:.O{ 的数据采集技术。并给出了针对几种常见的网络攻击如何实 现代理的方法。 参考文献 1 Pt ̄cck T H Ncwsh ̄m T N.Insertion,Evasin and D曲joaI of Service: Eluding Network[ntmsin oD ̄ection Secure Networks.Inc.1998_01 2 Balasub ̄ffnan [in J S,Garcia-Femandez J qSpafford E.n al An Arch- itectum for In口usion Detection Using Autonomous Agents C0A5T Laboratory PurdI University,I998-05 3 Network-vs Host-based Intrusion Dekction疔on w',vw.iss net 4 EscamfllaT In ̄rus[On Detection 1999 向转发器发送一条smu 囊击的消息; gotofreer; ) goto RawSoekeB 5 Spa岛 E Zamboni D Dam Collection Mechanisms for]ntrasion Detection Syst ̄n 2000-06 4结束语 本文分析了分布式IDS数据采集时运用的几种技术:基 于主机的和基于网络的数据采集技术.直接监视和间接监视
因篇幅问题不能全部显示,请点此查看更多更全内容