




已阅读5页,还剩49页未读, 继续免费阅读
(计算机应用技术专业论文)snort系统检测方法的改进研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内蒙古大学硕士学位论文 s n o r t 系统检测方法的改进研究与应用 摘要 随着网络安全问题的日益严峻,入侵检测系统凭借其自身特点有效地弥补 了传统安全保护措施的不足,已成为计算机与网络安全的重要组成部分。规则 匹配是基于特征匹配的入侵检测系统中的核心,规则匹配的效率决定这类入侵 检测系统的性能。 本文分析研究了基于特征匹配的网络入侵检测系统s n o r t 2 4 4 。给出了 s n o r t 系统的体系结构和规则组织形式,进一步说明了入侵检测系统的工作原理 和规则匹配算法,为修改s n o r t 2 4 4 的检测方法打下了基础。 论文对几个经典的模式匹配算法的原理进行了分析研究,包括单模式匹配 算法b m 算法,多模式匹配w m 算法以及s n o r t 系统默认使用的m w m 算法。 论文针对m w m 算法的不足及规则库中规则的特征,对原系统进行了改进。给 出了在遍历匹配规则子集时,将模式串分为两组,长度小于3 的模式串为一组, 其他为一组,分别应用不同算法;同时增加哈希冲突二次散列处理以减少匹配 节点数,减少匹配时间。 论文同时对规则列表的组织结构进行了改进,将规则的规则头列表应用改 进的动态调整法。 对以上改进在s n o r t 2 4 4 系统中进行测试,通过与原系统的比较,得出运 用改进后系统检测的耗费时间有所减少,证实了改进的有效性和实用性。 关键词:s n o r t ,模式匹配,m w m 算法,哈希冲突,动态调整法 s n o r t 检测效率的研究 t h ei m p r o v e dr e s e a r c ha n da p p l i c a t i o no f d e t e c t i n g t e c h n i q u eo fs n o r ts y s t e m a b s t r a c t w i t hn e t w o r ks a f e t yp r o b l e mg r a d u a l l ya u s t e r e ,i d so ni t sc h a r a c t e r i s t i ch a v i n g m a d eu pt h e d e f i c i e n c yo ft r a d i t i o n s a f e p r o t e c t i o n ,b e c o m i n gt h ei m p o r t a n t c o m p o n e n to ft h ec o m p u t e ra n dt h en e t w o r ks a f e t y r u l em a t c h i n gi st h ec o r eo f i d so w i n gt ot h ec h a r a c t e r i s t i c ,r u l em a t c h i n ge f f i c i e n c yd e c i d e st h ec a p a b i l i t yo f t h ei d s t h ea r t i c l ei sb a s e do fs t u d y i n gt h ei d sa n da n a l y z i n gs n o r t 2 4 4 i ti n c l u d e s s y s t e ms t r u c t u r ea n dr u l eo r g a n i z a t i o nf o r mo fs n o r t ,f u r t h e re x p l a i n ss y s t e m a t i c o p e r a t i n gp r i n c i p l ea n de s t a b l i s h e st h eb a s i so fr e v i s i n gt h ed e t e c t i n ge n g i n e t h ea n a l y s i si nt h i st h e s i sh a sb e e nc a r r i e do u to ns e v e r a lc l a s s i c a la l g o r i t h m i c p a t t e r nm a t c h i n gp r i n c i p l e ,s u c ha st h es i n g l e - p a t t e r nm a t c h i n ga l g o r i t h mi sb m a l g o r i t h m ,m u t i - p a t t e r nm a t c h i n ga l g o r i t h mi sw m a n dm w mt h a ti ss n o r ts y s t e m a r ea c q u i e s c e di nb e i n gp u ti n t ou s e t h et h e s i si sa i m e da ta l g o r i t h m i cd e f i c i e n c yo fm w m ,a n dd i v i d e st h ep a t t e r n s t r i n g si n t ot w os e t t h el e n g t ho fp a t t e r n sa r es m a l l e rt h a n3a r ei nag r o u p ,o t h e r s a r ei na n o t h e rg r o u p ,a n dt h e na p p l y m w ma l g o r i t h mr e s p e c t i v e l y t oc u td o w nt h e m a t i n gn o d en u m b e r sa n dt h em a t i n gt i m ei ti n c r e a s e dt h eh a s hc o n f l i c ta r r a n g i n g m a t h o d t h et h e s i sh a sc a r r i e do u ti m p r o v e m e n to nr u l e l i s t i n g f r a m e w o r ko f o r g a n i z a t i o na tt h es a m et i m e t h el a wi m p r o v e m e n td e v e l o p m e n ta p p l y i n gt h er u l ep o r tl i s t i n gi sa d j u s t e d ,h a s u s e di m p r o v e da l g o r i t h ma n do p e r a t i o nt e s t e di n s n o r t 2 4 4s y s t e m c o m p a r i s o n w i t hp r i m a r ys y s t e m ,t h i st h e s i sh a sr e a c h e dt h et i m ec o n s u m e dw i t hi m p r o v i n g d e t e c t i n gs y s t e mf a l l i n go f ft o s o m ee x t e n t ,h a sc o n f i r m e dt h e v a l i d i t y a n d p r a g m a t i s mi m p r o v i n g k e y w o r d s :s n o r t ,p a t t e mm a t c h i n g ,m w ma l g o r i t h m ,h a s hc o n f l i c t ,d y n a m i c a l i g n m e n t i i 内蒙古大学硕士学位论文 图表目录 图3 1s n o r t 在i d s 模式下的工作流程1 0 图3 2s n o r t 规则树1 2 图4 1d 2 的情况一1 4 图4 2d 2 的情况二1 4 图4 3 模式集合排序1 9 图4 4 前缀和模式子集的关系2 0 图4 5s n l p t 表2 0 图4 6 文本串的匹配过程2 1 图4 7 增加哈希冲突二次散列处理2 4 图4 8 原遍历模式子集实例说明2 6 图4 9 改进的遍历模式子集实例说明2 6 图4 1 0m w m 与改进算法的匹配时间比较3 1 图4 1 1m w m 与改进算法的报警数比较3 0 表5 12 0 0 8 年3 月2 5 日3 月2 7 日报警信息情况统计3 1 图5 1 一步动态调整法规则树3 3 图5 2 两步动态调整法规则树3 4 图5 3 改进的两步动态调整法规则树3 5 表5 2 两种动态调整法匹配数据包总检测时间对比表( s ) 3 7 图5 4 快速规则匹配引擎的构建流程3 8 图5 5s n o r t 规则索引图4 0 图5 6r u l e n o d e 应用改迸的动态调整法规则树4 3 表5 3p o r t g r o u p s 动态调整法与原结构匹配数据包总检测时间对比表( s ) 4 5 v 原创性声明 本人声明:所呈交的学位论文是本人在导师的指导下进行的研究工作及取得的研究成 果。除本文己经注明引用的内容外,论文中不包含其他人己经发表或撰写过的研究成果, 也不包含为获得凼苤直太堂及其他教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示谢意。 学位论文作者签名:圣丞垂! 日 期= 3 盟仝。笸:9 指导教师签名:三韭 日 期:型:堑:2 在学期间研究成果使用承诺书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:内蒙古大学有权 将学位论文的全部内容或部分保留并向国家有关机构、部门送交学位论文的复印件和磁盘, 允许编入有关数据库进行检索,也可以采用影印、缩印或其他复制手段保存、汇编学位论 文。为保护学院和导师的知识产权,作者在学期间取得的研究成果属于内蒙古大学。作者 今后使用涉及在学期间主要研究内容或研究成果,须征得内蒙古大学就读期间导师的同意; 若用于发表论文,版权单位必须署名为内蒙古大学方可投稿或公开发表。 学位论文作者签名:墨墨! 蕉: 日期:兰2 翌艺! 歪:皇 指剥币虢硷 日 期:生丝2 :! :z 内蒙古大学硕士学位论文 1 1 研究背景 第一章引言 2 0 0 8 年上半年,大量的基于互联网的新业务如雨后春笋般涌现出来,网络攻击的频次、 种类和复杂性也比往年大幅增加,遭入侵和受控计算机数量巨大,潜在威胁和攻击力继续 增长,信息数据安全问题日益突出,网络安全形势依旧严峻。国家计算机网络应急技术处 理协调中心( c n c e r t c c ) 发布的2 0 0 8 上半年网络安全工作报告表明我国的互联网安全 问题令人担忧,其接收和自主监测的各种网络安全事件数量与2 0 0 7 年上半年同期相比有较 为显著的增加。其中,垃圾邮件事件和网页恶意代码事件增长较快,网页恶意代码同比增 长近一倍;网页篡改事件和网络仿冒事件也有大幅增长,同比增长分别是2 3 7 和3 8 , 其中涉及国内政府机构和重要信息系统部门的网页篡改事件、涉及国内外商业机构的网络 仿冒事件是2 0 0 8 年上半年事件监测和处置的重点【l 】。我国大陆地区感染木马和僵尸网络的 主机数量巨大。国家互联网应急中一o ( c n c e r t ) 的监测数据显示,2 0 0 8 年前5 个月监测到 的感染木马和僵尸网络的主机数量缓慢波动上涨,但在6 月份出现跳跃式增长【2 j 。面对当 前日益严峻的网络安全问题,单纯的防火墙策略已经显得苍白无力,特别是很多攻击其实 就是源于自身所在的内部网,防火墙更是无法防范。因此作为防火墙的合理补充,入侵检 测系统( i d s ) 成为了研究热点。但是随着网络速度的不断增加,入侵检测系统的负荷也不 断加大,出现了大量的丢包、漏报现象。为了弥补网络速度加大带来的检测效率的降低, 有必要对目前的入侵检测系统的效率进行研究和分析,减少检测时间,降低丢包率。 检测引擎是s n o r t 系统的重要组成部分,是整个检测过程中最耗时的部分,而规则匹配是 检测引擎的核心。所以提高s n o r t 系统效率的重点是降低规则的匹配时间。 1 2 本文研究内容 本文围绕如何提高s n o r t 的检测效率,开展了以下研究工作 ( 1 ) 对多模式匹配算法枷m 算法进行改进,减少匹配的规则数,尽可能降低模式 串的匹配时间。 ( 2 ) 对原规则链表结构进行改进,减少无关规则的匹配时间。 本论文全文共分五章,其中四、五章为重点。 s n o n 检测效率的研究 第一章引言部分介绍了本文的研究背景、研究内容、结构及意义。 第二章系统地介绍了入侵检测系统,包括入侵检测系统的概念,入侵检测系统分类, 常见攻击手段以及入侵检测系统发展趋势和不足。 第三章介绍了基于特征的轻量级网络入侵检测系统s n o r t 2 4 4 ,包括对其功能、体系结 构的概述,随后着重介绍了s n o n 的规则组织形式。 第四章着重对当前的模式匹配算法进行了分析,同时阐述了不同模式算法的原理、效 率及优缺点,并对s n o r t 中默认使用的m w m 算法提出了改进并与实现方法。 第五章围绕s n o r t 2 4 4 规则排序进行了研究及改进,并对测试结果做了评估。 1 3 本文所做工作的意义 i d s 是一种积极主动的安全防护技术,提供了对内部攻击、外部攻击和误操作的保护, 在网络系统受到危害之前拦截和响应入侵。在执行入侵检测工作时,检测时间长短决定了 系统的效能,若能达到实时性检测,将可提升入侵检测系统处理数据包的能力。 入侵事件检测模块是入侵检测系统的核心模块,其主要功能就是检测是否有入侵行为 发生。检测引擎的两个主要功能就是规则分析和特征检测。 为了解决s n o r t 处理网络包时,不因网络包负荷太大而减缓检测效能,所以必须采取 实时的检测,降低检测处理的时间,让s n o r t 有足够的能力来处理及分析网络包,并实时 记录被检测到的网络包,让s n o r t 将使用频率越高的特征规则先匹配,同时对满足一定条 件的规则数减少,从而可降低s n o r t 在处理网络包时比对特征规则的时间【3 】。因此从理论和 应用这两个角度出发,本文所做的工作都有现实意义。 2 内蒙古大学硕士学位论文 第二章入侵检测和网络安全概述 2 1 入侵检测系统概述 2 1 1 入侵和入侵检测的概念 入侵是指在非授权的情况下,试图存取信息、处理信息或破坏系统以使系统不可靠、 不可用的故意行为。 入侵行为主要有以下几种: ( 1 ) 外部渗透:指既未被授权使用计算机,又未被授权使用数据或程序资源的渗透。 ( 2 ) 内部渗透:指虽被授权使用计算机,但是未被授权使用数据或程序资源的渗透。 ( 3 ) 不法使用:指利用授权使用计算机、数据和程序资源的合法用户身份的渗透。 入侵检测是对入侵行为的检测。它通过收集和分析网络行为、安全日志、审计数据、 其它网络上可以获得的信息以及计算机系统中若干关键点的信息,检查网络或系统中是否 存在违反安全策略的行为和被攻击的迹象。 2 1 2 入侵检测系统的分类 i d s 按照功能大致可以分为以下3 类: ( 1 ) 基于网络的i d s ( n i d s ) 这类i d s 一般安装在需要保护的网段中,实时监视网段中传输的各种数据包,并对这 些数据包进行分析和检测。如果发现入侵行为或可疑事件,入侵检测系统就会发出警报甚 至切断网络连接。n i d s 如同网络中的摄像机,只要在一个网络中安装一台或多台入侵检测 探测器,就可以监视整个网络的运行情况,在黑客攻击造成破坏之前,预先发出警报,并 通过t c p 阻断或防火墙联动等方式以最快的速度阻止入侵事件的发生。n i d s 自成体系, 它的运行不会给原系统和网络增加负担。 ( 2 ) 基于主机的i d s ( h i d s ) 这类i d s 通常安装在被保护的主机上,主要对该主机的网络实时连接以及系统审计日 志进行分析和检查,当发现可疑行为和安全违规事件时,系统就会向管理员报警,以便采 取措施。 ( 3 ) 分布式i d s ( d i d s ) 典型的d i d s 是控制台探测器结构。n i d s 和h i d s 作为探测器放置在网络的关键结点, 并向中央控制台汇报情况。攻击日志定时传送到控制台并保存到中央数据库中,新的攻击 3 s n o r t 检测效率的研究 特征能及时地发送到各个探测器上。每个探测器能够根据所在网络的实际需要配置不同的 规则集。 2 2 入侵的常见形式 为了使入侵检测系统能更准确、更快速地报告入侵行为,设计者需要对已知的所有入 侵手段进行分析,更精确地描述入侵数据包与正常通信数据包的本质区别,才能减少误报 和漏报。 本节简单介绍入侵者常用的网络攻击手段。 ( 1 ) 口令窃取 进入一台计算机最容易的方法就是采用口令登录。只要在许可的登录次数范围内输入 正确的口令,就可以成功地登录进入系统。 口令猜测攻击有3 种基本方式。第1 种方式是利用已知的或假定的口令尝试登录。第2 种方式是根据窃取的口令文件进行猜测。第3 种方式是通过窃听某次合法的终端之间的会 话,记录所使用的口令。 ( 2 ) 未授权访问攻击 利用系统管理策略的疏忽,用户可能获得比合法用户权限更高的操作权。目前的操作 系统越来越复杂,很多系统在发布时,其默认的配置往往隐藏着漏洞。这将造成大量计算 机成为黑客的傀儡主机。 ( 3 ) 缓冲区溢出 缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量, 溢出的数据覆盖了合法数据。攻击者用自己精心设计的指令覆盖合法程序后,只要这些指 令被执行,攻击者就拥有了系统的控制权。 ( 4 ) 欺骗攻击 欺骗攻击可以从o s i 任何一层发起。 常见的第二层攻击有m a c 攻击和a r p 攻击。攻击者通过修改自己的m a c 地址伪装 成合法用户,称为m a c 攻击。a r p 攻击则是向网络中宣告虚假的a r p 信息,以诱骗受害 者与之通信。 最常见的第三层攻击是口欺骗。利用原始套接字可以发送伪造的口包。 常见的第四层攻击有u d p 和t c p 欺骗。由于u d p 包相对简单,仅有端口号、长度等 4 内蒙古大学硕士学位论文 几部分,因此更加易于伪装。而t c p 协议面向连接,其包传输受到序列号和确认号的控制。 除非嗅探到完整的通信报文,否则不太可能对t c p 协议进行成功的攻击。 此外,通过指定路由或伪装的假地址,以假冒身份与其它主机进行合法通信,或发送 假报文,使受攻击主机出现错误动作。 ( 5 ) 恶意代码攻击 恶意代码主要指脚本、病毒、蠕虫、木马。黑客在服务器上运行恶意代码,可使服务 器崩溃或泄露重要资料。木马还可能伪装成应用程序或一个框骗取用户输入,一些跨站脚 本漏洞则可能使服务器错误地执行恶意脚本。 ( 6 ) 拒绝服务( d o s ) 攻击 拒绝服务是以计算机或网络无法提供服务为目的的攻击。攻击者模拟大量用户向目标 网络发送数据包,使服务器无法响应合法用户的请求。这类攻击往往比较明显,容易暴露, 但要找到攻击的源头却十分困难。 2 3 入侵检测系统目前存在的问题 入侵检测系统有如此重大的作用,但在国内的应用远远谈不到普及,一方面是由于用 户的认知程度较底,另一方面是由于入侵检测是一门比较新的技术,还存在一些技术上的 困删4 1 。目前的入侵检测产品大多存在这样一些问题: ( 1 ) 误报和漏报的矛盾 入侵检测系统对网络上所有的数据进行分析,如果攻击者对系统进行攻击尝试,而系 统相应服务开放,只是漏洞已经修补,那么这一次攻击是否需要报警,这就是一个需要管 理员判断的问题。但大量的报警事件会分散管理员的精力,反而无法对真正的攻击作出反 映。和误报相对应的是漏报,随着攻击的方法不断更新,入侵检测系统是否能报出网络中 所有的攻击也是一个问题。 ( 2 ) 隐私和安全的矛盾 入侵检测系统可以收到网络的所有数据,同时可以对其进行分析和记录,这对网络安 全极其重要,但难免对用户的隐私构成一定的风险,这就要看具体的入侵检测产品是否能 提供相应功能以供管理员进行取舍。 ( 3 ) 被动分析与主动发现的矛盾 5 s n o r t 检测效率的研究 入侵检测系统是采取被动监听的方式发现网络问题,无法主动发现网络中的安全隐患 和故障。如何解决这个问题也是入侵检测产品面临的问题。 ( 4 ) 海量信息与分析代价的矛盾 随着网络数据流量的不断增长,入侵检测产品能否高效处理网路中的数据也是衡量入 侵检测产品的重要依据。 ( 5 ) 功能性和可管理性的矛盾 随着入侵检测产品功能的增加,可否在功能增加的同时,不增大管理的难度。例如, 入侵检测系统的所有信息都储存在数据库中,此数据库能否自动维护和备份而不需管理员 的干预? 另外,入侵检测系统自身安全性如何? 是否易于部署? 采用何种报警方式? 也都 是需要考虑的因素。 2 4 入侵检测技术发展趋势 随着网络技术和网络规模的不断发展,人们对于计算机网络的依赖也不断增强。与此 同时,针对网络系统的攻击越来越普遍,攻击手法日趋复杂【5 】。i d s 也随着网络技术和相 关学科的发展而日趋成熟,其未来发展的趋势主要体现在以下几个方面: ( 1 ) 分析技术的改进 入侵检测误报和漏报的解决最终依靠分析技术的改进。目前入侵检测分析方法主要有: 统计分析、模式匹配、数据重组、协议分析、行为分析等。 统计分析是统计网络中相关事件发生的次数,达到判别攻击的目的。模式匹配利用对 攻击的特征字符进行匹配完成对攻击的检测。数据重组是对网络连接的数据流进行重组再 加以分析,而不仅仅分析单个数据包。协议分析技术是在对网络数据流进行重组的基础上, 理解应用协议,再利用模式匹配和统计分析的技术来判明攻击。行为分析技术不仅简单分 析单次攻击事件,还根据前后发生的事件确认是否确有攻击发生,攻击行为是否生效,是 入侵检测分析技术的最高境界。 ( 2 ) 内容恢复和网络审计功能的引入 前面已经提到,入侵检测的最高境界是行为分析。但行为分析前还不是很成熟,因此, 个别优秀的入侵检测产品引入了内容恢复和网络审计功能。 内容恢复即在协议分析的基础上,对网络中发生的行为加以完整的重组和记录。网络 审计即对网络中所有的连接事件进行记录。 6 内蒙古大学硕士学位论文 内容恢复和网络审计让管理员看到网络的真正运行状况,其实就是调动管理员参与行 为分析过程。此功能不仪能使管理员看到孤立的攻击事件的报警,还可以看到整个攻击过 程,了解攻击确实发生与否,查看攻击者的操作过程,了解攻击造成的危害。不但发现已 知攻击,同时发现未知攻击。不仅发现外部攻击者的攻击,也发现内部用户的恶意行为。 ( 3 ) 集成网络分析和管理功能 入侵检测不但对网络攻击是一个检测,同时入侵检测可以收到网络中的所有数据,对 网络的故障分析和健康管理也可起到重大作用。当管理员发现某台主机有问题时,也希望 能马上对其进行管理。入侵检测也不应只采用被动分析方法,最好能和主动分析结合。所 以,入侵检测产品集成网管功能,扫描器,嗅探器等功能是以后发展的方向。 ( 4 ) 安全性和易用性的提高 入侵检测是个安全产品,自身安全极为重要。因此,目前的入侵检测产品大多采用硬 件结构,黑洞式接入,免除自身安全问题。同时,对易用性的要求也日益增强,例如:全 中文的图形界面,自动的数据库维护,多样的报表输出。这些都是优秀入侵产品的特性和 以后继续发展细化的趋势。 ( 5 ) 改进对大数据量网络的处理方法 随着对大数据量处理的要求,入侵检测的性能要求也逐步提高,出现了千兆入侵检测 等产品。但如果入侵检测检测产品不仪具备攻击分析,同时具备内容恢复和网络审计功能, 则其存储系统也很难完全工作在千兆环境下。这种情况下,网络数据分流也是一个很好的 解决方案,性价比也较好。 ( 6 ) 防火墙联动功能 入侵检测发现攻击,自动发送给放火墙,防火墙加载动态规则拦截入侵,称为防火墙 联动功能。目前此功能还没有到完全实用的阶段,主要是一种概念。随便使用会导致很多 问题。目前主要的应用对象是自动传播的攻击,如n i m d a 等,联动只在这种场合有一定的 作用。无限制的使用联动,如未经充分测试, 响。但随着入侵检测产品检测准确度的提高, 2 5 本章小结 对防火墙的稳定性和网络应用会造成负面影 联动功能日益趋向实用化【6 1 。 本章对网络安全体系结构进了全面而简要的概述,介绍了攻击者经常采用的攻击手段 及相应的防范措施。在此基础上,介绍了入侵检测系统目前存在的问题,如海量信息与分 7 s n o r t 检测效率的研究 析代价的矛盾等,同时分析了入侵检测技术的发展趋势。目前,随着网络的快速发展,攻 击形势的多样性,依靠单一的安全产品还不能确保网络的安全,只有将它们有机结合,恰 当地部署在网络环境中,才能构建真正的网络安全体系。 8 内蒙古大学硕士学位论文 第三章s n o r t 入侵检测系统分析 s n o r t 是一种基于网络的轻量级入侵检测系统,建立在数据包嗅探器上。它能实时分析 网络上的数据包,检测来自网络的攻击。它能方便地安装和配置在网络的任一节点上,而 且不会对网络运行产生太大的影响,同时它还具有跨系统平台操作、最小的系统要求以及 易于部署和配置等特征,并且管理员能够利用它在短时间内通过修改配置进行实时的安全 响应【7 】,因此被大部分中小企业及个人用户广泛使用。 本章将对s n o r t2 4 4 作简单分析,为下文对s n o r t 系统检测引擎的修改打下基础。 3 1s n o r t2 4 4 系统结构 s n o r t 有三种工作模式:s n i f f e r ( 嗅探器) 、数据包记录器以及n i d s 模式【8 】。 s n i f f e r 模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上;数据包记 录器模式把数据包记录到硬盘上;n i d s 模式可以实时检测网络中存在的攻击,予以报警。 在n i d s 模式下,s n o r t 首先通过配置文件确定应该加载哪些预处理插件和规则库。通 过预处理插件和规则判断数据包中是否含有恶意内容。 s n o r t 工作在入侵检测模式下时,由主控模块、解码模块、预处理模块、检测模块、输 出模块几部分组成一】。 s n o r t 启动首先进入主控模块,完成系统运行的初始化工作。包括读取并解析命令行参 数、配置文件和规则文件。配置文件中包含系统运行时需要加载的预处理插件和报警输出 插件。规则文件中包含检测插件中需要加载的规则。 系统初始化完成后进入p c 印抓包循环。网卡设置为混杂模式,s n o n 调用w i n p c a p ( 或 者l i b p c a p ) 库函数不断从网络抓取数据包。 解码模块完成对抓取的原始网络包的解码,并把解码后的内容保存在全局结构p a c k a 中,以便预处理模块和检测模块处理。s n o r 2 4 4 能够识别以太网,8 0 2 1 1 ,令牌环以及诸 , 如i p ,t c p ,u d p 等高层协议。 预处理模块主要对报文进行分片重组、流重组、协议解码和异常检测等工作。预处理 模块可以检测一些绕过检测模块的攻击,将发现的攻击行为传递到输出模块,完成报警提 示。同时预处理模块的加载可以降低检测模块的负载,提高检测模块的效率。 检测模块是蚰o r t 的核心,它将解码的数据包与规则文件中加载的规则进行比较匹配, 9 s n o r t 检测效率的研究 从而发现攻击行为。检测的内容包括规则头和规则选项,即数据包的大小、协议的类型、 源目的口和端口号、负载内容等。 输出模块负责将预处理和检测模块的结果报告给用户。它支持多种输出方式,如屏幕、 文件、数据库等。 l读入配置 数据包 多模式匹配 i 上 一 7 规则测试 i 加载插件 解码和预处理事件验证 i 。 上 上上 事件队列 _ 事件队列 i i l 读入规则 删警择斗 l 广 , i i 上 吖厂j : l 规则分类 j r , , ,、 i 7 。必报警) 上 内容匹配 l 规则编译 非内i 匹配f 。l i i l 、分析器 - 二数据库) 非内容匹配 i7 i 事件分析器 l- l 数据库 、一 3 2s n o r t 规则集 图3 1s n o r t 在i d s 模式下的工作流程“们 f i g 3 1w o r k i n gf l o wo fs n o r tu n d e ri d sm o d e s n o r t 规则是s n o n 入侵检测系统的重要组成部分。规则集是s n o r t 的攻击特征库,每条 规则都对应一条攻击特征,s n o r t 通过它来识别攻击行为。 3 2 1s n o r t 规则结构 典型的s n o r t 规则示例如下: a l e r tt c pa n ya n y - 1 9 2 1 6 8 0 1 2 41 1 1 ( m s g :”m o u n t e da c c e s s ”;c o n t e n t :”1 0 00 18 6a s i ”;) 示例中的规则由两部分构成,其中a l e r tt c pa n ya 1 1 y _ 1 9 2 1 6 8 0 1 2 41 1 1 称为规则头, 括号中的内容称为规则选项。 规则头可以看作是一个七元组,由规则行为、协议类型、源口地址和源端口号、方向 操作符、目的口地址和目的端口号构成。 规则行为是指当s n o r t 发现从网络中获取的数据包与事先定义好的规则相匹配时,下一 步所要进行的处理方式。目前s n o r t 有a l e r t 、l o g 、p a s s 、a c t i v a t e 、d y n a m i c 、d r o p 、r c j e c t 七 1 0 内蒙古大学硕士学位论文 种规则行为,最常见的是a l e r t 。 协议对应匹配该规则的数据包的协议类型,s n o r t 2 4 4 支持的协议有t c p 、u d p 、i c m p 和口。 。 i p 地址和端口号可以是一个确定的值,也可以是一个范围,如a n y 、1 2 0 2 等。 方向操作符指示数据包的流向。s n o r t 支持的方向操作符有“ 和“ 。 规则选项是规则中的核心,由关键字和参数组成。关键字包括c o n t e n t 、u r i c o n t e n t 、m s g 、 s i z e 、c l a s s t y p e 、p r i o r i t y 、唧等。c o n t e n t 和u r i c o n t e n t 是两个最重要的规则选项,分别表示 在数据包负载和u r i 请求中的特征串。该字符串可以一是段普通的文本,也可以是一串1 6 进制字符,前后用管道符“i 分隔。参数是关键字的说明。关键字和参数以“:”分割,关 键字之间以“; 分割。 3 2 2s n o r t 规则链表 s n o r t 系统初始化时将文本形式的规则文件读入内存,并以一定的结构存储。此结构称 为规则树。规则树由规则行为分为七类,然后按照协议分为四类,每种协议下的规则由规 则头( r u l e t r e e n o d e ,简称r t n ) 和规则选项( r u l e o p t i o n n o d e ,简称o t n ) 组成一条链 表。r t n 中除了保存规则头的信息外,还分别保存了下一个r t n ( 横向) 和下一个o t n 结点( 纵向) 的地址。o t n 中主要保存规则选项信息,此外它还保存了一组用于处理和该 o t n 有关的函数列表,以及下一个o t n 结点。规则树结构可以减少匹配的规则数量,提高 检测模块的处理速度。 下面七个全局变量分别指向规则行为链表的内存地址。 l i s t h e a d a l e r t ; * a l e r t 链表头幸 l i s t h e a d l o g ;产l o g 链表头宰 l i s t h e a dp a s s ;宰p a s s 链表头木 l i s t h e a da c t i v a t i o n ;严a c t i v a t i o n 链表头 l i s t h e a dd y n a m i c ; 严d y n a m i c 链表头木 l i s t h e a d d r o p ;产d r o p 链表头掌 l i s t h e a d s d r o p ;产s d r o p 链表头奉 l i s t h e a d r e j e c t ;严r e j e c t 链表头掌 下面的r u l e t r e e n o d e 类型的指针分别指向协议类型链表。 r u l e t r e e n o d e 宰i p l i s t ; r u l e t r e e n o d e 簟t c p l i s t ; s n o r t 检测效率的研究 r u l e t r e e n o d e 宰u d p l i s t ; r u l e t r e e n o d e 奉i c m p l i s t ; 3 3 本章小结 图3 2s n o r t 规则树n 2 1 f i g 3 2r u l et r e e so fs n o r t 本章分析了著名的开源入侵检测系统s n o r t 。首先简要介绍了s n o r t 系统的原理,然后 对s n o r t 中最为重要的规则作了详细的研究和分析,包括规则头、规则选项和规则链表的结 构。这些分析对后续修改和优化s n o r t 系统奠定了基础。 1 2 内蒙古人学硕士学位论文 第四章s n o r t 模式匹配算法的研究及改进 检测模块是s i 州系统的核心。s n 砥检测模块采用典型的模式匹配算法。模式匹配算 法的效率决定着系统的性能。 模式匹配是指在给定长度为n 的文本串t 中查找长度为m 的模式串的过程。若在t 中 能找到p 的出现,则称匹配成功;若没有找到p 的出现,则称匹配失败。对文本串的一次 扫描,只能处理一个模式串,称为单模匹配,相应的算法称为单模匹配算法。对文本串的 一次扫描,能够同时处理多个模式串的集合 p l ,p 2 ,p s ) ,称为多模匹配,相应算法称 为多模匹配算法。【1 3 】 4 1b m 算法 b o y 盯- m o o r e ( b m ) 算法是b o y e r 和m o r e 两人在1 9 7 7 年发表的论文中提出的一种新 的字符串快速匹配算法,迄今为止是应用最为广泛的单模匹配算法【1 4 】。 4 1 。1b m 算法原理 由于匹配比较过程中,不少的情形是前面的许多字符都匹配而最后的若干字符不匹配, 这时采用从左到右的方式扫描的话会浪费很多时间。因此,改用从右向左进行比较,开始 时仍是模式串的最左边字符p l 与文本串的最左边字符t l 对齐,但首先进行比较的是p m 与 t m 15 1 。当某次比较中出现不匹配时,算法采用坏字符( b c ) 规则和好后缀( g s ) 规则来计算模 式串右移的距离来实现跳跃式的遍历匹配,使文本和模式串滑过一段距离。b m 算法在最好 的情况下移动距离为模式串长度m 。 b m 算法对模式进行预处理时,得到一些启发式信息,并使用这些信息来计算模式p 向右移动的距离,用b c 和g s 规则记录,目的是为了减少移动次数,提高匹配的效率。下 面将详细介绍这两条规则。 ( 1 ) b c 规则描述 b c 规则是当发生失配时,移动模式串使得失配的文本字符与该字符在模式串中的最右 出现对齐。假设是p i 和t j 失配,考虑字符t j :如果t i 在模式串p 中未出现,那么可以将模 式串安全移动到字符t i 的右边位置;如果t j 在p 中有出现,那么可以将模式串右移使得t i 与模式串中其最右出现位置对齐。移动函数为: s n o r t 检测效率的研究 d 1 ( x ) :j 聊,x t ( 1 j 历) 即工在p 皇未专现;f 1 6 】 一 i 聊- m a x ki 最= x ,1 k o ,则将窗口安全右移s h i i t h 位并转步骤l ; 否则转到步骤3 。 步骤3 :计算从文本当前位置向左的m 个字符串长度为b 的子串的哈希值,称为 t e x tp r e f i x ,转到步骤4 。 步骤4 :查h a s h 表,找到h a s h h i 的指针,遍历模式链表,找到模式p ,并且当p 的前 缀p r e f i x p = t e x t _ p r e f i x 时,按照模式的实际长度检查文本的相应子串,转到步骤5 。 步骤5 :若检测到有匹配,则输出,并将文本右移一个字符,转到步骤1 ;若没有检查 到与文本匹配,则直接将文本移动一个字符,转到步骤1 。【2 l 】 4 2 2w m 算法分析 w m 算法的时间复杂度平均情况是o ( b * n m ) ,b 是字符块的长度,1 1 为所有模式串长 度的总和,m 是模式串的最短长度。 w m 算法的执行效率与模式串的多少无关,不会随着模式串的增多而出现执行时间降 低的情况。同时它结合了b m 算法的跳跃思想和哈希数值散列优势,是非常高效的多模匹 配算法。 1 7 s n o r t 检测效率的研究 4 3m w m 算法研究 m w m 算法是s n o r t 系统中默认使用的多模式匹配算法,可以支持较大数量模式串集合 的匹配。其基本思想是建立在w m 算法的基础上,结合运用了b m 算法的跳跃思想和哈希 散列处理技术对文本进行匹配。但与w m 算法不同的是,m w m 算法在哈希表和前缀表的 处理上略有改进【2 2 1 。 4 3 1m w m 算法原理 m w m 算法与w m 算法的相同之处为:匹配窗口为所有模式串的最小长度1 1 1 ;每次匹 配b 个字符构成的字符块;匹配从文本的第m 个字符开始,文本的扫描从左向右;对模式 的匹配是从右向左;当s h i f t h 0 时由s h i f t 表决定移动距离。 m w m 算法与w m 算法的不同之处为:如果这个字符块与某个模式串的后b 个字符相 同,即s h i f t h 0 ,表示文本串可能与某个模式串相匹配,此时则根据h a s h 表和哈希冲突 统计表表( n u m a r r a y ) 来确定文本串将与哪些模式串进行匹配。 m w m 算法中涉及的s h i f t 、h a s h 和n u m a r r a y 表在预处理过程中建立。具体的预处理 过程为: 第一步:计算最短模式串长度r n 。 算法中只考虑每个模式的前m 个字符,1 1 1 的取值决定着移动的最大距离。 第二步:将所有的模式串按字符串的首个字符、次个字符等的大小从小到大依次从0 开始给所有的模式串编号,作为其i d 号,并且将编号的模式集合排序,存放在一个结构数 组中,记为p a t a r r a y 。 排序的好处是在算法的后续工作中,根据模式串的i d 号直接定位到要找的模式【”】。 第三步:建立h a s h 表和n u m a r r a y 表。 在h a s h 表的构造方法上w m 算法与m w m 算法不同。w m 算法的h a s h 表计算方法是 考虑每一个模式的后b 个字符,而m w m 考虑的是前b 个字符。 m w m 算法计算每个模式串的前b 个字符的哈希值,记为h ,将该值作为该模式串的 哈希地址,即h a s h h = i ,其中i 为模式串编号。如果多个模式串具有相同的哈希值,即h 相同,那么统计哈希值同为h 的模式的个数,记为n g r o u p 。n g r o u p 存放在第一个哈希值为 该值的模式对应的位置里,即n u m a r r a y i - - n g r o u p 。 第四步:建立s h i f t 表。 内蒙古大学硕十学位论文 m w m 中的s h i f t 表和w m 中的s h i f t 表作用相同,建立思想也基本一样。 ( 1 ) 初始设置s h i f t 0 7 的值为m b + i 。 ( 2 ) 遍历所有的模式串,从左向右依次散列b 个字符构成的字符块的哈希值,记为h 。 此时只考虑模式串的前m 个字符。 ( 3 ) 考虑散列的字符块末字符出现的位置q 。比较m q 与s h i n h ,如果m q 比较小, 将s h i f t h 的值赋为m q 。 m w m 算法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 材料疲劳断裂影响因素研究重点基础知识点
- 食用油火灾应急处置预案(3篇)
- 火灾应急预案范文文库(3篇)
- 动态编程与递归解法试题及答案
- 网络管理员职业素养提升及试题答案
- 企业品牌建设与战略目标试题及答案
- 编程语言趋势及其对职业发展的影响试题及答案
- 2025年VB考试重要资料与试题及答案
- 网络管理员职业要求与考试试题答案
- 2025年软考增分技巧探讨试题及答案
- 骨科疑难病种清单(2021年版)
- 农村常用法律法规知识讲座课件(村干部培训)
- 电力工程电缆敷设记录表
- 调机品管理规定
- DB63∕T 1683-2018 青海省农牧区公共厕所工程建设标准
- 专题21 当代世界发展的特点与主要趋势含答案解析2023年山东历史新高考【3年真题+1年模考】
- 六年级下册数学课件--总复习《图形的运动》北师大版.--共20张PPT
- 加油站操作员职业技能鉴定试习题库(中级工版)
- 最新房地产开发预算表
- 弱电智能化物业人员人员培训记录
- 线性代数期末试题同济大学第五版附答案
评论
0/150
提交评论