Snort系统规则优化 Snort系统规则优化

Snort系统规则优化

  • 期刊名字:信息技术
  • 文件大小:119kb
  • 论文作者:朱伟
  • 作者单位:中南大学信息科学与工程学院
  • 更新时间:2020-09-29
  • 下载次数:
论文简介

信息技术2008年第8期Tnfomatin Fohasigy中图分类号:TP393.08文献标识码:A 文章编 号:1009 - 2552(2008)08 - 0116- 03Snort系统规则优化朱伟(中南大学信息科学与工程学院,长沙410083)摘要: Snort入侵检测系统的效率直接取决于用于检测规则的规则集质量。创建理想的規则集,是使Snort检测速度得到提高的关健。现讲述了Snort 规则优化的具体过程,优化时出现的问题及对问题的解决办法。关键词:人侵检测;规则优化;模式匹配Rule optimizer of Snort systemZHU Wei(College of Information Science and Engineering, Central University, Changsha 410083, China)Abstract: The fficiency of set inspection technologies is directly linked to the quality of the set that used forruleinspection of Snort. It is the rule optimizer' s key step to create a rule setthat is ideal for use in setinspection technology. This paper introduced the Snort rule optimizer technology, and question prob-blyappeared and the solution.Key words: model matching; intnusion detection system; nule optimizer0引言专家系统按键监视系统.模型推理、状态转换和模人侵检测系统( IDS: Intnusion Detection System)是式匹配等。自动进行人侵检测的监视和分析过程的硬件或软件异常检测系统试图发现- -些未知入侵行为,误产品。人侵检测系统作为一种主动的安全防护技用检测系统是标识一些已知的人侵行为。异常检测术,提供了对内部攻击外部攻击和误操作的实时保主要缺陷在于误警率高,尤其在用户数目众多或工护,在网络系统受到危害之前拦截和响应人侵。作行为经常改变的环境中;但对具体系统依赖性小。人侵检测系统根据信息源的不同分为两类:基误用检测由于依赖具体特征库进行判断,准确度要于主机的IDS和基于网络的IDS。基于主机的IDS高很多;但对具体系统依赖性大。数据源有:系统日志、应用程序日志等。基于网络的1 Snort 概述IDS数据源是网络上的数据包。人侵检测方法主要Snort 是-一个用C语言编写的符合GPL要求的采用两类:异常入侵检测和滥用人侵检测。开放源代码软件, Snort运行在Libpeap 库函数基础异常入侵检测是假定所有人侵行为都是与正常之上,支持多种软硬件平台。Snort 作为人侵检测系行为不同的。为实现该类检测,IDS建立正常活动统的代表,属于基于网络和误用检测的入侵检测软的“规范集”,当主体的活动违反其统计规律时,认为件系统。同时它也能作为网络数据包嗅探器和日志可能是“人侵”行为。主要方法有概率统计方法、预记录工具。它采用基于规则的网络搜索机制,对数测模式生成神经网络方法数据挖掘技术和状态机据包进行内容的模式匹配,从中发现入侵和探测行为。方法等。中国煤化工时在短时间内调整误用入侵检测是将符合已知入侵特征的行为视YHCNMHF类来说,Snort共有为人侵,它预先对已知的攻击方法进行分析,提取其特征,以规则形式存放, -且发现真实的信息与规则收稿日期: 2007- 10-22作者简介:朱伟(1977- ).男,2008年毕业于中南大学计算机应用专中的特征相匹配,则认为是攻击行为。主要方法有:业,硕士,研究方向为网络入侵检测。一116一.50类,2293条规则,其中包括对缓冲区溢出,端口扫通常,当处理规则集数目比较少的时候这个方描和CGI攻击等。当有了新的攻击手段时,只要简法相对有效。但是,当-个规则集中的规则数目大单加人新的规则就可以升级Snorto于10的时候,这个标准的处理方法效率会很低。因Snort有三种运行模式:数据包嗅探器数据包为规则集中的规则被线性检测,所以规则检测速度分析器和网络人侵检测系统。人侵检测模式是最常会减低,也就意味着每个规则的每个参数将被单独用的一种。其中基于规则的模式匹配是其检测的核测试。而且这种处理方法会使-一个包与多个规则集心机制,它的人侵检测流程分成两大步:第-步是规匹配,这样大大减低了检测速度。则的解析流程,包括从规则文件中读取规则和在内2.2 Snort2.0 规则处理存中组织规则;第二二步是使用这些规则进行匹配。针对snort2.0以前版本出现的问题,为了加快Snort 规则分成两部分:规则头与规则选项。规检测速度,Snor2.0提出了基于集合的检测方法,使则头包含规则的行为、协议源地址、目的地址子网每一个数据包匹配时仅有一个规则集与之匹配。规掩码源和目的端口。规则选项包括报警信息及用则检测流程都是一样的,不同于只是创建规则库方于确定是否触发规则响应而需要检查的数据包区域法。将所有具有相同内容的规则放在一起,确定能的位置信息。Snort 规则库采取二维链表结构,采用够唯一表示规则的参数,用它来划分从什么地方分数据结构RuleTreeNode ( RTN)和OpreeN-odes支(针对于规则链表),比如ICMP协议的类型域能(OIN)存储规则数据。够区别不同ICMP协议,那么建立规则时,根据ICMP2 Snort规则处理协议类型来划分,找到相同ICMP类型的规则头链基于规则的模式匹配是Snort检测的主要机制,表,再在该规则集中匹配所有规则选项。即对从网络上捕获的每-条数据报文,将其转换成对于这种方法,创建和选择规则集是核心,规则Snort可以理解的规则,然后和规则链表进行匹配。优化创建的规则集必须符合以下两个条件:如果匹配成功,就表示检测到至少-一个攻击,然后按(1)尽可能的创建最小的最有效的规则集。照指定的行为进行处理;反之就表示报文正常。(2)创建独立的规则集,即使得每个包且仅有唯检测速度直接取决于匹配过程的快慢。下面通一的规则集与之匹配。过分析Snort2.0以前版本的检测机制,探讨2.0版规则优化通过使用唯- -的Snort规则参数在初本的优化。始化的时候创建规则集。对于每个传输协议来说选2.1 Snort2.0 以前版本的规则处理择的参数是不同的,因为每个传输协议都有不同的Snort 所有规则被组织成二维规则链表,按照规标志。比如,用来区别不同TCP规则的参数是源端则模式分类存放在规则列表中,总体的检测过程就口和目的端口,而区别ICMP规则的是ICMP类型。是对规则链表的匹配扫描,查找数据包对应的规则。规则优化采用所有这些能唯一确定某- 规则的参 数首先根据规则类型找到对应的规则链表头List-来形成不同的规则集。这样不同类型的包,被归为Head,然后在相应的链表中,根据协议找相应的规则一个规则集。头链表,根据IP地址和端口号,在规则头链表中找对于异常的包,会出现匹配两个规则集的情况。到对应的规则头,接着匹配此规则头附带的规则选这种现象把它称为“特定规则冲突"。规则优化是多项列表。规则搜索引擎的第一个阶段,因为规则集的选择取Snortl. X版本的规则匹配就是纯粹的参数搜索,决子规则集的参数与包的参数的匹配。在这个意义即遍历整个规则集来判断-个包或数据流是否有匹上,规则优化确定能够与这个包匹配的规则,并且过配的规则。所有的规则按照以下四个参数来分类:滤出多规则搜索引擎需要处理的规则。(1)源IP地址。2.3 规则优化的实现(2)目的IP地址。对于不同的协议,确定规则集的参数是不同的。(3)源端口范围。通过对传输协议的分析,相应的参数如下:(4)目的端口范围。TCP/UDP源端口目的端口当检测包的时候,它检测每个规则集的四个参ICMPICMP类型数来确定是否检测这个规则集还是移动到下一一个规中国煤化工则集。如果一个包匹配这个规则集的四个参数,则MH这个规则集中的规则将按顺序被检测,每个规则的比咖心"比luliuur or以CNM H&的参數是源端口和参数也是顺序被测试。这个规则集中的所有规则测目的端口。端口分为两类:保留的和不保留的。大试完后,又同样的过程继续下一个规则集。部分两个主机之间的通信将使用一个保留端口(通-117一常是服务器端)与-一个非保留端口(大于1024 或通2.4特定规则与一般规则常是客户端)。这样规则优化可以保留端口作为参特定规则即存在特定参数的规则,如TCP规数。Snort通过确定保留端口定位于源端口还是目则、UDP规则、ICMP规则。一般规则除了内容没有的端口来选择规则集。如果保留端口定位于源端什么可以将这个规则与其他规则区别开。口,则意味着该包来自于服务器。反之,则说明数据但是在异常情况下,也会出现冲突的情况,即一包来自于客户端。个包匹配多个规则集,这种情况称为“特定规则冲了解TCP/UDP协议的应用有助于说明这一点。突"。特定规则集冲突发生在TCP与UDP上,因为HTTP/UDP是客户端与服务器之间的双方向通信,两个规则集适用的参数大于两个(源地址和目的地即Snort需要检测的包要么是从客户端发往服务器,址、源和目的端口)。如果捕获的数据包的源端口是要么是从服务器发送到客户端。所以规则优化将规特定端口,目的端口也是特定端口,则出现匹配两个则分组,按照保留端口是在源端口还是目的端口来规则集的情况,即既与源端口为特定端口的规则集划分。这样,客户端请求规则集与服务器响应规则匹配,又与目的端口为特定端口的规则集匹配。遇集就是两个独立的规则集。那么客户端发来的包被到这种情况,可以两个规则集都检测。不用匹配服务器响应规则集了。还有一种冲突- -般是因为人为的发-些恶意的例如,HTP客户端请求的数据包需要检测HT-或异常的包所致。这种情况发生时,会产生报警。TP客户请求规则,而不是HTT'P服务器响应规则。.解决冲突的方法的三种:双重检测、首发命中检所以- -个来自于HTP客户端(在TCP协议的目的测和随机检测。端口域为80)的包,源端口和目的端口都因为是保(1)双重检测( double inspection)留端口而被检测。对于客户端1HTTP数据流大部.这是最基本的处理不明确冲突的方法。因为两分源端口不是保留端口(因为在1024以上),但是目个规则集都用来检测包,两次检测就是将规则依次的端口是保留端口,因为它的目标是一个HTTP服检测,该方法保证可能发生的所有事件,但是对于务器,HTP服务器经常使用端口80或其他已指定DOS攻击却无能为力。的HT'P端口。所以在这种情况下,一个HTP客(2)首发命中检测(ist-hit inspetion)户端发来的包,具有目的端口为80源端口为一般端.该方法和两次检测有些类似,不同之处是,如果口的规则集将被选择。第一个被检测的规则集检测出有异常或恶意事件发2.3.2 ICMP 协议生,那么另一个规则集就不用被检测了。ICMP规则仅仅使用ICMP类型域来优化ICMP(3)随机检测(Stochastic inspection)规则集。没有类型域的规则被认为是-般ICMP规随机检测即为随机地选择-一个规则集。该方法则,被加入每一个独立的规则集中,包括一般规则防止了由于不确定冲突发生的DOS攻击的可能。.集。例如,一个类型代码为8的ICMP包( echo re-但是它不能保证所有的人侵事件都被发现。如攻击quest 包),类型代码8作为参数被检测。但是如果者利用由于源地址与目的地址造成的冲突,利用一类型代码不具体,则被- -般ICMP规则集检测。个规则集被检测而另一个不被检测的情况而逃避检2.3.3 IP 协议测,但是对于随机检测方法,攻击者就很难确定哪个所有的IP规则包括TCP, UDP或者ICMP;都属规则被检测而那个不被检测所以攻击者就不能保证于特定协议规则集,其他协议属于P规则集。即在能成功人侵。规则匹配时,如果根据协议类型找不到匹配的规则3结束语链表头,或没有找到匹配项,就搜索IP规则链表。规则优化目的是加快规则检测的速度,是Snort没有协议域的规则被认为是一般的IP 规则,加人到.检测引擎的主要部件。本文介绍了Snont的检测过每一个IP,TCP,UDP和ICMP规则集中。程,规则链表结构,规则优化的原理,优化产生的问总之,创建的规则集,是将具有相同特征的规则题及问题的解决办法。归为一个集合,如果有对数据包的匹配项,则肯定在参考文献:该集合中,这样不用依次检测其它的规则头链表,节1] Jack Koxziol Intrusion Detction with Snort[M].2005.省了冗余,大部分情况下对一个数据包只有一项与[2]中国煤化工支术[M].国防工业出版之匹配,大大提高了检测速度。实际上,规则优化使用传输协议信息来创建和[3]fYHC N M H G创析[M].清华大学出版社,2002.选择高效的规则集。但是在异常情况下,也会出现.责任编辑:张荥香冲突的情况,下面就这一-现象作一下介绍。一118一

论文截图
下一条:住宅优化设计
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。