(计算机应用技术专业论文)入侵检测系统中模式匹配算法的研究.pdf_第1页
(计算机应用技术专业论文)入侵检测系统中模式匹配算法的研究.pdf_第2页
(计算机应用技术专业论文)入侵检测系统中模式匹配算法的研究.pdf_第3页
(计算机应用技术专业论文)入侵检测系统中模式匹配算法的研究.pdf_第4页
(计算机应用技术专业论文)入侵检测系统中模式匹配算法的研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)入侵检测系统中模式匹配算法的研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河南大学硕士研究生学位论文第1 页 摘要 互联网络的蓬勃发展给人们的工作生活带来极大的便利。然而,随着现代化网络 的普及,伴随而来的网络不安全因素也给信息安全带来了严峻挑战。传统的网络安全 技术虽然在维护系统安全方面有一定的作用,但是传统的网络安全技术主要都集中在 系统自身的加固和防护上,而防火墙自身的局限性使其只能防外不能防内,且防火墙 为静态的防护技术无法对入侵行为提供实时主动的防护。面对日益严重的网络安全问 题和越来越突出的安全需求,入侵检测作为防火墙技术的有益补充应运而生。 入侵检测作为采用主动防御以保护信息系统安全的重要手段,已成为近年来安全 领域的研究热点。用于入侵检测的软件或硬件系统称为入侵检测系统。入侵检测系统 按照数据分析模式来分,可以分为异常入侵检测和误用入侵检测。由于异常入侵检测 存在误报率较高的问题还没有得到很好解决,所以目前误用入侵检测系统在入侵检测 产品中占了绝大比重。 在当前网络速度飞速发展的情况下,如何提高入侵检测系统的检测速度是当前入 侵检测遇到的一个关键问题。对于当前基于模式匹配的误用入侵检测系统来说,入侵 检测的检测速度主要体现在模式匹配的速度。好的模式匹配算法是提高入侵检测速度 的关键所在。 本文以著名的开源入侵检测系统s n o r t 为研究平台,在研究s n o r t 系统架构基础 上,重点研究了s n o r t 检测引擎的主要数据结构、函数调用关系和入侵检测的算法的 入口。本文分析了三种经典的模式匹配算法和m w m 算法的工作原理。在分析m w m 算法的工作原理的基础上,指出了提高m w m 算法性能的关键点。 针对m w m 一次匹配过程,将分组策略应用于m w m 算法,根据s n o r t 规则的具 体情况,提出基于动态划分模式集合的分组m w m 算法m w m g d 。 针对m w m 二次匹配过程,提出了m w m 算法在二次匹配时,前面模式匹配启 发后面模式扫描的思想,并对此进行了理论证明。基于提出的改进思想,提出了一种 新的模式匹配算法m w m o p t 。 本文还分别在s n o r t 中对这两种算法做了实现,并用d a r p a1 9 9 9 入侵检测数据 集对这两种算法进行了测试。实验结果证明了这两种算法的正确性和有效性。其中, m w m o p t 算法对s n o r t 检测性能的提高尤为显著。 关键词:入侵检测;模式匹配;m w m 第1 i 页河南大学硕士研究生学位论文 a b s t r a c t t h er a p i dd e v e l o p m e n to fn e t w o r kb r i n g sp e o p l eal o to fc o n v e n i e n c e s h o w e v e r , w i t ht h ew i d e s p r e a du s eo fn e t w o r k ,t h es u b s e q u e n ts e c u r i t yp r o b l e m sa l s ob r i n g i n f o r m a t i o ns e c u r i t ys e r i o u sc h a l l e n g e s t h o u g ht r a d i t i o n a lt e c h n o l o g i e so fn e t w o r k s e c u r i t yh a v ep l a y e dt h e i rr o l e si nm a i n t a i n i n gs y s t e ms e c u r i t y , t h et e c h n o l o g i e sm a i n l y f o c u s0 1 1e n h a n c i n ga n dp r o t e c t i n gs y s t e mi t s e l f , a tt h es a m et i m e ,t h ed r a w b a c ko ff i r e w a l l m a k e st h a tf i r e w a l lc a no n l yp r o t e c ts y s t e mf r o mo u t s i d eb u ti n s i d e a sas t a t i cp r o t e c t i o n t e c h n o l o g y , f i r e w a l lc a n ta f f o r dr e a l t i m ea n da c t i v ep r o t e c t i o nf o ri n t r u s i o nb e h a v i o r s f a c i n gm o r ea n dm o r en e e d sf o rm o r ea n dm o r ei n c r e a s i n g l ys e r i o u sn e t w o r ks e c u r i t y p r o b l e m s ,i n t r u s i o nd e t e c t i o ni sb o r na sac o m p l e m e n tt o f i r e w a l l a sa ni m p o r t a n ta c t i v em e t h o dt op r o t e c ti n f o r m a t i o ns y s t e ms e c u r i t y , i n t r u s i o n d e t e c t i o nh a sb e e nt h er e s e a r c hf o c u si ns e c u r i t yf i e l dr e c e n t l y as o f t w a r eo rh a r d w a r e s y s t e mt od e t e c ti n t r u s i o ni sc a l l e da ni n t r u s i o nd e t e c t i o ns y s t e m ( i d s ) a c c o r d i n gt od a t a a n a l y s i sm o d e ,i d sc a nb ec l a s s i f i e di n t ot w oc a t e g o r i e s :a n o m a l yi d sa n dm i s u s e i d s s i n c et h eh i g e rf a l s ep o s i t i v er a t eo fa n o m a l yi d s ,m i s u s ei d sh a sal a r g ep o r t i o ni n i d sm a r k e tn o w a d a y s h o wt oi m p r o v et h ed e t e c t i o ns p e e di sak e yp r o b l e mf o rc u r r e n ti n t r u s i o nd e t e c t i o n s y s t e m si ns i t u a t i o no fr a p i dd e v e l o p m e n to fn e t w o r ks p e e d f o rp r e s e n tp a t t e r nm a t c h i n g m i s u s ei d s ,p a t t e r nm a t c h i n gs p e e d ( t h es p e e do fi d e n t i f y i n ga t t a c ki n f o r m a t i o ni na n i n t r u s i o nc h a r a c t e rli b r a r y ) i st h ek e yf a c t o rt od e t e c t i o ns p e e d t h i sp a p e rt a k e st h ew e l l - k n o w no p e ns o u r c ei n t r u s i o nd e t e c t i o ns y s t e ms n o r ta st h e r e s e a r c hp l a t f o r m ,b a s e do nt h es t u d yo fs n o r ts y s t e ma r c h i t e c t u r e ,a n de m p h a t i c a l l y s t u d i e st h em a i nd a t as t r u c t u r e ,f u n c t i o nc a l la n di n t r u s i o nd e t e c t i o na l g o r i t h me n t r a n c e o fs n o r td e t e c t i o ne n g i n e t h i sp a p e ra l s oa n a l y z e st h r e ec l a s s i c a lp a t t e r n - m a t c h i n g a l g o r i t h m sa n dm w ma l g o r i t h m b a s e do nt h ea n a l y s i st h ew o r k i n gp r i n c i p l eo fm w m , t h ek e yp o i n t st oi m p r o v et h ep e r f o r m a n c eo fm w m a l g o r i t h ma r ep o i n t e do u t f o rf as tm a t c h i n gp r o c e s s t h ep a p e ra p p l i e sg r o u p _ d i v i s i o ns t r a t e g yt om w m a c c o r d i n gt ot h er e a lc o n d i t i o no fs n o r tr u l e s e t ,t h ep a p e rp r o p o s e san e wa l g o r i t h m , m w m g da l g o r i t h m ,w h i c hi sb a s e do nd y n a m i cg r o u p _ i ) i v i s i o ns t r a t e g yf o rp a t t e r ns e t s 河南大学硕士研究生学位论文第| li 页 一一 : : f o rs e c o n d m a t c h i n gp r o c e s s ,t h ep 印e rp r o p o s e sah e u r i s t i c si d e a t h eh e u r i s t i c si d e a u s e st h ei n f o r m a t i o n a m o n gp r e v i o u sp a r e ma n ds u b s e q u e n tp a t t e r nt og u i d et h e s u b s e q u e n tm a t c h i n gp r o c e s s t h ep a p e ra l s og i v e st h et h e o r e t i c a lp r o o fo ft h i si d e a 。b a s e d o nt h ei d e a ,t h ep 印e rp r o p o s e san e w a l g o r i t h m ,m w m o p t t h ep a p e ra l s or e a l i z e st h et w on e w a l g o r i t h m si ns n o r ta n dt e s t st h e mw i t hd a r p a 19 9 9i n t r u s i o nd e t e c t i o ns e t s t h er e s u l t ss h o wt h a tt h et w on e w a l g o r i t h m sa r ec o l t c c ta n d e f f e c t i v e p e r f o r m a n c ei m p r o v e m e n tb r o u g h t b ymw m o p ta l g o r i t h mi s p a r t i c u l a r l y s i g n i f i c a n t k e yw o r d s :i n t r u s i o nd e t e c t i o n ;p a t t e r nm a t c h i n g ;m w m 关于学位论文独立完成和内容创新的声明 本人向河南大学提出硕士学位中请。本人郑重声明:所呈交的学位论文是 本人在导师的指导下独立完成的,对所研究的课题有新的见解。据我所知除 文中特别加以说明、标注和致谢的地方外,论文中不包括其他人已经发表或撰 写过的研究成果,也不包括其他人为获得任何教育、科研机构的学位或证书而 使用过的材料。与我一同工作的同事对本研究所做的任何贡献均已在论文中作 了明确的说明并袁示了谢意。 学位申请- ,j 【学住论文作者) 釜名2 :张一 一一 2 0 。7 够曩日 关于学位论文著作权使用授权书 本人经河南大学审核批准授子硕士学位。作为学位论文的作者,本人完全 了解并同意河南大学有关保留、使用学位论丈酌要求即河南大学有权向国家 图书馆、科研信息机构、数据收集机构和本校图书馆等提供学位论文( 纸质文 本和电子文本) 以供公众检索、查阅。瓠人授权河南大学出于宣扬、展览学校 学术发展和进行学术交流等目的可以采取影印j 缩印、扫描和拷贝等复制手 段保存、汇编学位论文( 纸质文本和电子文本) 。 ( 涉及保密内容的学位论文在解密后适用本授权书) 学位获得者( 学位论文作者) 签名: :幽 2 00 1 年( ,月 日 i 二l 学位论文指导教师签名: 主z 亘尘五 河南大学硕士研究生学位论文第1 页 1 1 网络安全现状 第1 章绪论 互联网络的蓬勃发展给人们的工作生活带来极大的便利。当前,通过网络收发邮 件、搜索信息、阅读新闻、收听音乐、进行即时通信,已经成为很多人的同常生活内 容之一。然而随着现代化网络的普及,伴随而来的网络不安全因素也给信息安全带来 了严峻挑战。 我国公安部2 0 0 5 年度全国信息网络安全状况暨计算机病毒疫情调查活动e l l 中, 共对1 2 万家信息网络使用单位的信息网络安全和计算机病毒疫情状况进行了调查。 调查领域涉及政府机关、电信广电、能源交通、金融证券、教育科研、商业和制造业 等。调查结果显示,从2 0 0 4 年5 月至2 0 0 5 年5 月,4 9 的被调查单位发生过信息网 络安全事件。在发生过安全事件的单位中,8 3 的单位感染了计算机病毒、蠕虫和木 马程序,3 6 的单位受到垃圾电子邮件干扰和影响,5 9 的单位发生网络端口扫描、 拒绝服务攻击和网页篡改等安全事件,且与2 0 0 4 年同比上升1 6 。 2 0 0 8 年1 月1 7 日,中国互联网络信息中,i , , ( c n n i c ) 发布的第2 1 次中国互联网 络发展状况统计报告【2 】显示:被调查网民电脑感染病毒的比率为9 0 8 ;账号个人 信息被盗、被改的比率为4 4 8 ;网上遭到黑客攻击的比率为2 6 7 ;被仿冒网站欺 骗的比率为2 3 9 。 自网络兴起以来,一些国际上著名的大型网站、银行、电信等重要的业务部门网 站、甚至涉及到政治军事的网站都曾因为网络安全问题付出了沉重的代价。 为了解决网络安全问题,传统的网络安全技术主要有【3 】:加密机制、数据签名机 制、访问控制机制、认证机制、防火墙等。加密机制通过对数据进行加密,可以防止 未授权方获取真实数据,是一种对抗被动攻击的一种行之有效的手段。数字签名机制 是在公钥加密系统的基础上建立起来的。签名者采用私钥对需签名的数据进行加密, 使用数据者采用相应的公钥对签名数据做解密运算进行数据验证。使用数字签名能够 确认签名者的身份和数据的完整性。访问控制机制主要用来确认合法用户对哪些系统 资源享有何种权限、可进行什么样的操作,防止非法用户使用合法用户的权限访问未 授权资源。数据完整性机制用于防止网络上传输的数据被非法篡改,使用户不被非法 数据欺骗。防火墙通过监测、限制、更改跨越防火墙的数据流,尽可能地对外部屏蔽 网络内部的信息、结构和运行状况,从而实现内部网络的安全保护。 第2 页河南大学硕士研究生学位论文 1 2 入侵检测技术的发展 传统的网络安全技术虽然在防御网络入侵方面有一定的作用,但是传统的网络安 全技术主要都集中在系统自身的加固和防护上,而防火墙自身的局限性使其只能防外 不能防内,且防火墙为静态的防护技术无法对入侵行为提供实时主动的防护。面对同 益严重的网络安全问题和越来越突出的安全需求,入侵检测作为一种积极主动的安全 防护技术应运而生。 19 8 0 年4 月,j a m e sp a n d e r s o n 的一份题为( ( c o m p u t e rs e c u r i t yt h r e a tm o n i t o r i n g a n ds u r v e i l l a n c e ) ) 的技术报告,首次将入侵检测引入到计算机安全领域 4 】。d e n n i n g 于1 9 8 6 年发表的论文“a ni n t r u s i o nd e t e c t i o nm o d e l ”被公认为是入侵检测领域的开 山之作【5 】。这篇论文最早提出了入侵检测模型的概念。该模型由六个组件构成:主体、 客体、审计记录、活动描述、异常记录、活动规则。它独立于特定的系统平台、应用 环境、系统弱点以及入侵检测类型,为构建入侵检测系统提供了一个通用的框架。1 9 9 0 年,加州大学的d a v i s 分校的t o d dh e b e r l i e n 开发的n s m 系统,第一次提出将网络 数据包作为信息源【6 】。从此入侵检测的研究分成了两大阵营:基于主机的和基于网络 的。1 9 9 2 年,加州大学圣巴巴拉分校的p o r r a s 和l l g u n 提出了状态转移分析的入侵检 测技术,并实现了原型系统u s t a t 7 】。1 9 9 4 年,普渡大学的e u g e n eh s p a f f o r d 等建 议采用自治代理提高i d s 的伸缩性、可维护性、效率和容错性,推出了适用于大规模 网络的分布式入侵检测系统a a f i d 引。1 9 9 9 年,w e n k el e e 提出了用于入侵检测的数 据挖掘框架1 9 。 现在国内外研究的入侵检测技术热点有:入侵检测中模式匹配的研究、数据挖掘 【1 0 1 在入侵检测的应用研究、神经网络【l l 】在入侵检测的应用研究、支持向量机 在入侵检测的应用研究、决策树【l6 】在入侵检测的应用研究等。 入侵检测技术根据数据分析模式可分为误用入侵检测和异常入侵检测。异常入侵 检测建立系统的正常行为轮廓,若实时获得的系统或用户的轮廓值与正常值的差异超 出指定的阈值,则进行入侵报警。误用入侵检测根据已知的攻击特征检测入侵,实时 获得的系统或用户的行为特征和攻击特征相匹配,则进行入侵报警。由于技术等原因, 误用入侵检测在入侵检测产品中占了绝大比重。根据2 0 0 5 年全国计算机信息系统安 全产品调查报告中指出,全国约有9 5 的入侵检测产品属于基于误用入侵检测模式进 行开发的。在误用入侵检测系统中,模式匹配技术由于其有分析速度快,准确率高等 优点,在实际中最为常用。 河南大学硕士研究生学位论文第3 页 在当前网络速度飞速发展的情况下,如何提高检测速度是入侵检测系统面临的一 个重要问题。而基于模式误用入侵检测系统入侵检测速度的提高又深深依赖于模式匹 配检测算法的改进。本论文的着眼点在模式匹配检测算法这一块。 1 3 入侵检测中的模式匹配算法 随着网络传输设备技术的提高,网络数据的传输速度增长迅速。虽然入侵检测系 统通常以并联方式接入网络的,但如果其检测速度跟不上网络数据的传输速度,那么 检测系统为保证入侵检测系统的正常运行会丢掉一些数据包,从而导致漏报影响系统 的准确性和有效性。如何提高入侵检测系统的检测速度是当前入侵检测遇到的一个关 键问题,而对于采用模式匹配的误用入侵检测系统来说,入侵检测的检测速度主要依 赖于模式匹配的速度。因此,选择合适的模式匹配算法是提高这种入侵检测系统速度 的关键所在。 模式匹配算法,按照每次匹配模式的个数,可以分为单模式匹配算法和多模式匹 配算法。 在单模式匹配算法方面,目前广泛使用的主要有k m p 算法【1 7 1 、b o y e rm o o r e 算法【1 8 】、 h o r s p o o l 算法、q u i c ks e a r c h 算法【l9 1 、b d m ( b a c k w a r dd a w gm a t c h i n g ) 算法和b o m ( b a c k w a r do r a c l em a t c h i n g ) 算法等。 b m 算法是单模式匹配算法的典型算法【l 引。现有的单模式匹配算法基本上是在 b m 算法的基础上改进而来,或者受到了b m 算法思想启发。b m 算法是由r s b o o y e r 和j s m o o r e 两个人在1 9 7 7 年设计实现的一个字符串匹配算法,是目前实际应用 中最为常用、效率较高的单模式匹配算法。它在窗口内部采用从右至左的比较方式, 并利用当前尝试中的已匹配的信息和匹配失败的字符,查找预处理好的好后缀转移表 ( g o o ds u 衔xs h i f tt a b l e ) 和坏字符转移表( b a dc h a r a c t e rs h i f tt a b l e ) ,选择其中值 较大的作为模式向右移动的距离。b m 算法依靠启发信息进行跳跃式的处理,过滤了 不必要的字符比较,提高了模式匹配的速度。 。多模式匹配算法有a c ( a h oc o m s i c k ) 算法【2 0 】、w m ( w u m a n b e r ) 算、法 2 1 1 、 c w ( c o m m e n t z w a z t e r ) 算法、d f s a 算法、f a n s u 算法、s b d m ( s e tb a c k w a r dd a w g m a t c h i n g ) 算法以及s b o m ( s e tb a c k w a r do r a c l em a t c h i n g ) 算法等。 a c 算法例和w m 算法【2 u 是多模式匹配的典型算法。现有的多模式匹配算法有2 个基本的研究方向,一个是基于自动机的方向,一个是基于b m 跳跃和过滤的方向, 第4 页河南大学硕士研究生学位论文 就是对应的a c 算法和w m 算法。 a c 算法【2 0 j 是由a v a h o 和m j c o r a s i c k 联合提出的,最初用在贝尔实验 室的图书检索系统里面,后来在入侵检测等领域得到了广泛应用。a c 算法在预处理 阶段通过模式集合构建一个有限状态模式匹配自动机d f a ( d e t e r m i n i s t i cf i n i t e a u t o m a t i o n ) 。其实质就是将多模式匹配问题转化成单模式匹配问题,然后将文本作为 自动机的参数输入进行匹配,对文本只需扫描一次。有限自动机由一系列的状态组成, 每个状态可以用一个数字来表示。自动机处理文本时按序读入文本中的每个字符,并 根据当前的状态进行跳转,假如跳转后的状态是终止状态,则输出匹配结果。自从 a c 算法采用有限状态自动机方法来解决多模匹配问题以来,a c 算法也成为其它多 模式匹配算法的思想基础,文献 2 1 卜【2 5 】等都是对a c 算法的改进。a c b m 2 6 】采用了 a c 算法和b m 算法相结合的思想。文献【2 7 】在a c 算法基础上提出了压缩空间基于 位图的算法。c o m m e n t s w a l t e r 算法,其思想类似于a c b m 算法,首先用模式集构 建一棵搜索树,然后再采用类似b m 算法的方法,在文本中用搜索树对模式进行跳跃 搜索。 在现有的多模式匹配算法中,一般认为w m 算法具有最高的效率。s u n w u 和 u d i m a n b e r l s 在w m 算法【2 1 】的基础上,实现了一个用于模糊匹配的工具a g r e p 【2 8 1 和一 个文本检索的工具l i m p s e 2 9 1 ,在实际的应用中都获得了良好的效率。w m 算法采用了 跳跃不可能匹配的字符和h a s h 散列的方法,加速模式匹配的进行。该方法需要对所 有模式进行预处理。构建s h i f t 、h a s h 和p r e f i x 这3 个表,便于后续处理。s h i f t 表用于在扫描文本的时候,根据读入字符串决定可以跳过的字符数,如果相应的跳跃 值为0 ,则说明可能产生匹配,就要用到h a s h 表和p r e f i x 表进一步判断,以决 定有哪些匹配候选模式,并验证究竟是哪个或者哪些候选模式完全匹配。文献【3 0 卜 3 5 】 都是围绕w m 算法做的改进。2 0 0 3 年张鑫等的“一种改进的w u m a n b e r 多关键词匹 配算法”【3 0 j 对跳跃的距离做了改进,2 0 0 6 年y a n gd o n g h o n g 的“a ni m p r o v e d w u m a n b e rm u l t i p l ep a n e r n sm a t c h i n g a l g o r i t h m ” 3 q 和代六玲等的“一种改进的多模 式匹配算法【3 2 】利用q s 算法的思想对w m 算法做了改进,s n o r t 的2 x 版本【3 6 】使用 前缀h a s h 对w m 算法做了改进等。 1 4 本文的主要工作及论文章节安排 本论文以著名的开源入侵检测系统s n o r t 为研究平台,为提高s n o r t 入侵检测系 河南大学硕士研究生学位论文第5 页 统的性能,开展如下几方面的工作: 1 在介绍s n o r t 系统架构基础上,系统分析了s n o r t 系统四大模块的工作原理和 流程。重点研究了s n o r t 检测引擎中的数据结构、函数调用关系和入侵检测算法的入 口。 2 详细分析了经典的模式匹配算法和m w m 算法。 3 针对最短模式对m w m 算法的影响,本章将分组策略应用于m w m 算法。根 据s n o r t 规则的具体情况,提出改进一次匹配过程的动态划分模式集合分组策略。基 于提出的动态划分模式集合分组策略,在s n o r t 实现了m w m 的改进算法m w m g d 算法。用麻省理工林肯实验室的“d a r p a1 9 9 9 入侵检测数据集对该算法进行了测 试。 4 针对s n o r t 中的m w m 算法的二次匹配提出了改进,并对改进思想进行了证 明。改进思想主要是基于:在对于文本t 要与多个按照字典排序的模式进行匹配时, 可以根据相邻模式相同前缀的长度,来启发多模式匹配的进行。基于提出的改进思想, 在s n o r t 实现了m w m 的改进算法m w m o p t 。用麻省理工林肯实验室的“d a r p a1 9 9 9 入侵检测数据集对m w m o p t 算法和s n o r t 现用的a c 、m w m 算法进行对比测试。 本论文主要分为6 部分。 第一部分,绪论。主要介绍了网络安全现状、入侵检测技术的产生与发展、入侵 检测中的模式匹配算法。 第二部分,s n o r t2 1 2 作原理。在介绍s n o r t 系统架构基础上,系统分析了s n o r t 系 统四大模块的工作原理和流程。重点研究了s n o r t 检测引擎中数据结构、函数调用关 系和入侵检测算法的入口。 第三部分,模式匹配算法的研究。分析了三种经典的模式匹配算法( b m 、a c 和w m 算法) 和m w m 算法。 第四部分,m w m g d 算法。本章将分组策略应用于m w m 算法,根据s n o r t 规 则的具体情况,提出改进一次匹配过程的基于动态划分模式集合分组策略的 m w m g d 算法并实验验证了其有效性。 第五部分,m w m o p t 算法。首先,提出了s n o r t 中的m w m 算法在二次匹配时, 前面模式匹配情况如何启发后面模式扫描情况的思想,并对此进行了理论证明。然后, 在s n o r t 中实现了m w m o p t 算法并实验验证了其有效性。 第六部分,总结和展望。 第6 页河南大学硕士研究生学位论文 第2 章s n o r t 系统架构 s n o r t 是一个开放源码的基于网络的轻量级的入侵检测系统。s n o r t 具有许多功能。 它有实时数据流量分析和同志i p 网络数据包的能力,能够进行协议分析,对内容搜 索匹配。它能够检测各种不同的攻击方式,对攻击进行实时警报。此外,s n o r t 还具 有很好的扩展性和可移植性。 2 1 基于s n o r t 研究的原因 基于s n o r t 3 6 1 研究入侵检测中模式匹配算法主要基于以下的原因: 1 s n o r t 是一个开放源代码的免费软件( f r e es o f t w a r e ) ,遵守g p l 的任何组织和 个人都可以自由使用。 2 s n o r t 具有良好的代码组织,各模块之间具有相互独立性,这可以使我们在研 究s n o r t 时专注于某一模块。 3 s n o r t 检测引擎中的检测算法包括了单模式匹配和多模式匹配的经典算法。 4 s n o r t 系统架构具有普遍性,对于s n o r t 的研究成果可以很容易的推广到其它 网络入侵检测系统中去。目前,许多商业运营的入侵检测系统都是在s n o r t 入侵检测 体系的基础上进行二次开发而来的。国内也开发了很多商用入侵检测系统,如启明星 辰公司的“天阗”入侵检测系统,绿盟科技的“冰之眼”入侵检测系统等。虽然市面 上入侵检测系统种类繁多,但是分析其本质,这些入侵检测系统都借鉴了s n o r t 的设 计思想。 2 2s n o r t 系统架构 s n o r t 的体系结构体现了追求性能、简单和扩展性的设计思想。s n o r t 系统架构主 要由数据包嗅探器、预处理器、检测引擎、输出报警四大模块【3 8 】构成,如图2 1 所 网络流量 i ,一7 、, 告警文 件数据 爿黼徽勰: r1 l艚p j , 库 预处理器检测引擎 lj 河南大学硕士研究生学位论文第7 页 示。 s n o r t 由数据包嗅探器取得数据包,而后用预处理插件做预处理然后遍历检测 引擎中的规则链表,如粜检测到有符合规则的数据包,则系统就会根据输出设置把该 信息记录到文件并报警。 2 2 1 数据包嗅探器 量一捌ipip ,c s 传输层p 协涛唐蒜灌磁隘羹g 鞣i 网络层协议信息l 艘儡碗茸觏翟圈曩i 瞄秘 数据链路层 以a :卅_ 议i r 协泌信息| | 托一辫自端舞蔼鞠瞄囊暖圜r 第8 页河南大学硕士研究生学位论文 介绍。 三、数据包的解码 数据包解码是根据协议进行解码的。当s n o a 获取数据包之后,调用函数 p r o c e s s p a c k e t 0 ,函数p r o c e s s p a c k e t 0 调用解码函数,将数据包的各种信息存储到 p a c k e t 结构的全局变量中,为下一步的预处理和检测引擎做准备。在解码部分有一个 重要的全局数据结构,p a c k e t 结构。p a c k e t 数据结构在s n o r t 整个工作过程中,记录 了捕获数据包的各种信息,用于检测。数据包解码通过网络数据传输时发送端需要根 据不同网络使用的协议将其封装进行发送的原理进行解码。 数据包解码函数通过全局变量g r i n d e r 在函数p r o c e s s p a c k e t 0 调用。g r i n d e r 在 函数s e t p k t p r o c e s s o r o q b 被设置为相应网络的解码函数指针值。 数据包解码涉及的函数主要有s e t p h p r o c e s s o r o ,d e c o d e e n c p k t 0 , d e c o d e e t h p k t 0 ,d e c o d e f d d i p k t ( ) ,d e c o d e a r p 0 ,d e c o d e l p 0 , d e c o d e l e e e 8 0 211p k t o ,d e c o d e p p p p k t 0 ,d e c o d e l c m p0 ,d e c o d e t c p ( ) 等。 函数s e t p k t p r o c e s s o r ( ) 根据数据链路层采用的不同协议,选取相应数据链路层协 议解码函数( 如d e c o d e e t h p k t ) ,数据链路层协议解码函数接着又调用网络层协议解 码函数( 如d e c o d e l p o ) ,接着传输层协议解码函数( 如d e c o d e t c p 0 ) ,最终将解码 的数据包信息填入p a c k e t 的相应字段。 2 2 2 预处理模块 s n o r t 中的预处理文件在检测引擎之前运行,主要进行数据包分片重组、数据流 重组、协议编码、协议异常等工作。 分片重组。当数据包在网络中传输时,由于不同网络允许通过的数据包大小不同, 数据包有时被分为若干个小的数据包在网络中传输,直到这些数据包到达接收方时才 进行重组。如果仅仅对捕获的数据包进行规则匹配,那么就可能使某些通过数据包重 组对系统进行的攻击躲避掉s n o r t 的检测。 流重组。s n o r t 能够对i p 包的内容进行匹配,但是对于t c p 攻击,如果攻击者 使用一个程序,每次发送只有一个字节的数据包,完全可以避开s n o r t 的模式匹配。 而被攻击的主机的t c p 栈会重组这些数据,将其发送给目标端口上监听的进程,从 而使攻击包逃过s n o r t 的监视。使用t c p 流插件,可以对t c p 包进行缓冲,然后进 行匹配,使s n o r t 具备对付上面攻击的能力。 河南大学硕士研究生学位论文第9 页 协议编码。协议编码是指有些协议是比较灵活的,如h t t p 等协议。它支持多种 编码,如a s c i i 码等,这就需要预处理模块进行处理,以便后续模块进行操作。同时, 还有可能发现一些特定攻击类型。 协议异常检测。基于异常行为统计检查功能,能够针对一些异常的网络行为( 如 端口扫描) 发出报警。 2 2 3 检测引擎模块 检测引擎模块是s n o r t 的核心模块,它主要由三部分完成。一是规则,二是规则 链表的构建,最后则是模式匹配。检测引擎模块的作用是检测数据包中是否包含着入 侵行为。检测引擎通过s n o r t 规则来达到目的。规则被读入到内部的数据结构或者链 表中,并与数据包对比。如果一个数据包与某一规则匹配,s n o r t 就会产生相应的动 作( 记录同志或告警等) ,反之数据包就会被丢弃。 2 2 4 输出模块 检测引擎检查后的s n o r t 数据需要以某种方式输出。如检测引擎中的某条规则被 匹配,则会触发一条报警,这条报警信息会通过网络、u n i x s o c k e t 、w i n d o w s p o p u s 或s n m p 协议的t r a p 命令送给日志文件。报警信息也可以记入s q l 数据库,如m y s q l 或o r a c l e 等。另外,还有各种专为s n o r t 开发的辅助工具,如各种各样基于w e b 的 报警信息显示插件。这些插件用p e r l 或p h p 开发,目的是为了更直观地显示报警信 息。报警信息以文本文件的形式保存或保存在m y s q l 或o r a c l e 等数据库中。与预处 理器和检测引擎模块一样,报警输出模块也使用插件实现多种输出功能,如把报警信 息送入数据库或通过s n m p 、w i n d o w s p o p u s 等网络协议传送。 2 3 检测引擎模块 检测引擎模块是s n o n 的核心模块。和一般的基于模式匹配的误用入侵检测系统 一样,s n o r t 也是由已定义好的入侵特征库和入侵特征库的匹配两个部分完成检测工 作的。它主要由三部分完成。一是规则,二是规则数据结构的构建,最后则是建立在 构建的规则数据结构上的模式匹配。 第1 0 页河南大学硕士研究生学位论文 2 3 1 规则 如同病毒,大多数入侵行为都具有某种特征,s n o r t 的规则集就是用这些特征构 建的入侵特征库。s n o r t 定义了几千条规则【3 9 1 ,每一条规则是一条入侵标识,它依据 这些规则进行入侵检测。s n o r t 的规则集默认位于r u l e s 文件下,运行时需要通过配置 s n o r t c o n f 文件来确定开肩哪些规则。每个版本的s n o r t 都配有相应的规则,但把s n o r t 运用到一个实际的入侵检测环境中时,需要对这些规则进行具体设置,还可以添加自 定义规则。 规则 ! ! 雪 一条s n o r t 规则从逻辑上可以分为两个部分:规则头部分和规则选项部分。 规则头臣二臣二匪 卫二卫 卫 卫口 规则头指明了规则动作、协议类型、源端地址、源端端口号、方向操作符、 目的端i p 地址、目的端端口号。规则动作表示,当规则与包对比并符合条件时,会 采取什么类型的动作。通常的动作是产生告警或记录日志或向其他规则发出请求。当 前的s n o r t 有8 种规则动作a c t i v a t i o n 、d y n a m i c 、d r o p 、a l e r t 、p a s s 、l o g 、s d r o p 和r e i e c t 。 协议部分用来在一个特定协议的包上应用规则。有了协议部分,可以过滤掉不是本条 规则对应协议的数据包。当前s n o r t 支持的协议有i p 、i c m p 、t c p 、u d p 。地址部分 定义源或目的地址。地址可以是一个主机,一些主机的地址或者网络地址。也可以用 这些部分将某些地址从网络中排除。在规则中有两个地址段,依赖于方向段决定地址 是源或者是目的,例如,方向段的值是“ 那么左边的地址就是源地址,右边的地 址是目的地址。如果协议是t c p ,端口部分用来确定规则所对应的包的源端口及目的 端口。方向部分用来确定哪一边的地址和端口是源,哪一边是目的。 规则选项规则选项关键字l :参数1 ,规则选项关键字2 :参数2 , 规则选项( r u l eo p t i o n ) 构成了s n o r t 入侵检测引擎的核心。在每条s n o r t 规则中, 选项之间使用分号进行分割。选项由规则选项关键字和其参数构成。规则选项关键字 和其参数之间使用冒号分割。规则选项中冒号前面的词叫做选项关键字( o p t i o n k e y w o r d s ) 。对每条规则来说规则选项是可选的,采用这些规则选项是为了更加详细 河南大学硕士研究生学位论文第11 页 地定义应该收集或者报警的数据包。只有匹配所有选项的数据包,s n o r t 才会执行其 规则行为。一条规则的选项之间是逻辑与的关系。 可用关键字【3 9 1 : m s g 在报警和包日志中打印一个消息 l o g t o 把包记录到用户指定的文件中而不是记录到标准输出 t t l 检查i p 头的t t l 值 t o s 检查i p 头的t o s 值 i d 检查i p 头的分段i d 值 i p o p t i o n 监视i p 选项域是否为指定值 f r a g b i t s 检查i p 头的分段位 d s i z e 检查包的净荷尺寸的值 f l a g s 检查t c pf l a g s 的值 s e q 检查t c p 顺序号的值 a c k 检查t c p 应答的值 i t y p e 检查i c m pt y p e 的值 i c o d e 检查i c m pc o d e 的值 i c m p 检查i c 的值_id m pe c h oi d i c m p检查顺序号的值_ s e q i c m pe c h o c o n t e n t 在包的净荷中搜索指定的样式 c o n t e n t 1 i s t 在包的净荷中搜索指定的样式集 o f f s e tc o n t e n t 选项的修饰符,设定开始搜索的位置 d e p t hc o n t e n t 选项的修饰符,设定搜索的最大深度 n o c a s e 指定对c o n t e n t 字符串大小写不敏感 s e s s i o n 记录指定会话的应用层信息的内容 r p c 监视特定应用进程调用的l 冲c 服务 r e s p 主动反应( 切断连接等) r e a c t 主动反应( 阻塞网站) r e f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论