Snort规则的分析 Snort规则的分析

Snort规则的分析

  • 期刊名字:三峡大学学报
  • 文件大小:333kb
  • 论文作者:丁志芳,李晓秋,王清贤,李梅林
  • 作者单位:信息工程大学信息工程学院
  • 更新时间:2020-09-25
  • 下载次数:
论文简介

第24卷第5期二峡大学学报(自然科学版)VoL21 No.52002年10月J of China Thrce Gorges Univ. (Natural Sciences)(ct. 2002Snort规则的分析丁志芳李晓秋王清贤李梅林(信息工程大学信息工程学院,郑州450002)摘要:入侵检测系统是计算机网络安全系统的一个重要组成部分,目前国内外有许多实验室和公司在从事入侵检测系统的研究和开发,并已完成一些原型系统和商业产品.Snort是国外的一个开放源代码的入侵检测系统,文章系统分析Snort规则的组成,详细介绍了各个部分的含义,并对不同版本之间的差别进行了总结。这对于进行入侵检测系统研究,建立自己的攻击特征库都有很大的帮助.关键词: Snort;规则; 入侵检测; 网络 安全中图分类号: TP393. 08文献标识码: A文章编号:1007-7081(2002 )05-041904Analysis of Snort RulesDing Zhifang Li Xiaoqiu Wang Qingxian Li Meilin( Information Engineeing Univ. ,Zhengzhou, 450002 ,China)Abstract Intrusion detection system(IDS) is very important for network security. At prcscnt, IDS is beingstudied and developed by tany la boratories and companies.' There are some protot ypes and commercial prod-ucts. Srnorl is an II)S with open source code. This paper systematically analyzes the composition and seman-tics of Snort rules, which may be of great help for crcating signature database.Keywords Snort; rules; intrusion detection; net work securitySnort是由Sourcefire公司Martin. Roesch等人号内的内容是规则选项.在规则选项中,位于“:"之前开发的.个开放源代码的入侵检测系统, 由于它的词称为选项关键字。规则选项并不是对每一个规速度快、性能好、使用方便、容易管理和配置等优则而言都是必需的部分,它们只是用来更好地定义所点,使Snort成为世界上用户最多的产品之一。尤要进行的某种处理(记录、报警、忽略等)的数据包类其足Snort使用一个简便的规则描述语言,这个规型,只有当规则中的每一个元素都为真时,才能触发则描述语言不仅灵活而且功能强大. Snort 1.8. 以对应的规则动作.前的版本要求-条Snort规则写在一行,在现在的版本中,一条规则可以写在多行,每行的行尾用反1规则头斜线续接.Snort规则分成两部分:规则头和规则选项。规1.1 规则行为则头包含规则的行为、协议、源地址、目的地址、子网Snort采用了灵活的插件形式米组织规则库,即掩码、源和目的端口信息。规则选项包含报警信息以按照人侵行为的种类分为相应的插件,用户可以根据及用于确定是否触发规则响应动作而需要检查的数需要选取对应的插件进行检测,每一类插件中包括据包区域位置信息.了数10条的检测规则,分别代表同一类型的不同人例如:alert tep any any -> 192. 168. 1. 0/2411I ( content:“100 01 86 a5 |”; msg:“mountd ac-中国煤化工为.规则行为是当cess" ;)在这个例子中,左括号前面是规则头.圆括发现-MYHCNMHG定的属性时,Snorl收稿日期:2002 05 10作者简介;丁志芳(1963-),讲师.420三峡大学学报(自然科学版)2002年10月将做什么。在Snort1.8.3版本中,规则有5种缺省还有一个否定操作符“!”用于IP地址,这种操作符告的行为:报警(alert)、记日志(log).忽略(pass)、启动诉Snort系统除了所指定地址之外的任意地址.(activate).动态(dynamic).而在Snortl. 6版本中,以上规则数据包源地址来源于外部网,而日标地只有前3种行为。址是在内部网的Tcp数据包.Alert选择 -个报警的方法,然后记日志。也可以规定IP地址表.在一个方括号里用一个Log 记录该数据包。逗号将两个IP地址和CIIR块分开,目前,IP地址Pass忽略该数据包.表不包含两个地址段之间的地址空间.Activate报警并开始其他的动态规则.如:alert tep ! [192. 168. 1.0/24,10. 1. 1. 0/24Dynamic保 留空闲.直到有活动规则激活。然]any->后作为一个日志规则行动.[192. 168. 1.0/24, 10.1.1.0/24] 111 (content:用户也能定义自己的规则类型,然后将这种规则“100 01 86 a5l"; msg:“extennal mounid access";)类型与一个或多个输出插件联系起来作为Snort 规1.4 端口号则的行为.表示端口号的方式有4种方式: Any是一个通下面的例子是建它一个规则类型,这个规则类型配符,意味着任何端lI;静态端口(Static por!)是用一将记录tepdump日志.个单独的端口号表示;端口否定(Portnegation)是用Ruletype suspicious一个否定操作符“!”表示,否定操作符“!”能够应用于除了Any以外的其他几种端口形式.端口的范围lype log output(Port range)是用一个范围操作符“:”表示,范围操作log_ tcpdump: suspicious. log符“:”的使用可以有多种形式.如: log tcp any :1024 -> 192. 168. 1. 0/24下面的例子是建立一个规则类型,这个规则类型500:将记录syslog日志和-个MySQl.数据库.记录源端口小于等于1024.而目标端口大于等Ruletype redalert于500的Tep数据包.log tcp any any -> 192. 168. 1. 0/24 ! 6000:type alert outpul6010alert_ syslog: LOG_ AUTHLOG_ ALERT记录源端口任何端口,而目标端口大于6000小oulpul database: log, nysql,于等于6010的Tep数据包.user = snort dbname = snort host = localhost1.5 方向操作符方向操作符“->”指示数据流量的方向,位于1.2协议方向操作符左边的IP地址和端口号表示来自源主机,在Snort规则中的下.个域是协议.Snort当前的数据包流量,位于方向操作符右边的IP地址和端只分析了4种协议(TCP,UDP, ICMP和IP)的可口号则指示目的主机.还有双向操作符“<>”,这个疑行为。未来的版本可能支持更多的协议,如:ARP,双向操作符告诉Snort操作符两边的一对IP地址和IGRP, GRE, OSPF, RIP, IPX 等等。端口号既是源主机的也是目的主机的。这对于分析1.3 IP地址或记录源和目的双方流量是十分合适的,象Telnet规则头的下一部分是处理给出的IP地址和端I1或POP3会话。信息,关键字Any用来定义任意的地址. Snort不支持对规则文件中的IP地址进行主机名查询.地址由2规则选项数字IP地址和CIDR块组成. CIDR块表示网络掩码.一个CIDR块掩码/24表示是一个C类网,/16规则选项作为检测时的重要标准组成了Snorl表示是一个B类网,/32表示是一个特殊的主机地人侵中国煤化工点既灵活而且功能强址。如: 192.168.1.0/24将意昧地址块是从大.|YHCNMHG同行为制定相应的检192.168.1.1到196.168.1.255.使用这个形式指定地测选项内容,它不仅检测范围广,并且定义了检测到址信息的规则将在这个地址区问内检查对应数据包攻击时该做出什么响应.所有的Snort 规则选项之的地址.CI)R川少量字符来表示巨大的地址空问.间用分号“;”分隔,规则选项关键字与它的参数问用第24卷第5期丁志芳等Snorr规则的分析421胃号“:”分隔. Snort1.8.3中有35个规则选项关键并以字节代码的形式表示. content有3个辅助关键字:字,而Snort1.6中只有21种规则选项关键字.下面.offset设定模式搜索的起始偏移量.谈谈Snortl.6规则选项关键字,其中有3个关键字.depth从它的搜索区域开始,设置内容模式匹是作为对检测到攻击时的反应:配的最大深度.msg在警 报和数据包日志显示一条消息.. nocase在内容匹配时,不区分大小写..logto 将数据包记录到一个用户指定的文件flags检测各种TCP的标志符。在Snort中有名,而不用标准输出文件名.9个标志符。它们是F(FIN)、S(SYN)、R(RST)、P. resp 激活的响应选项(如切断连接等) .(PSH)、A( ACK)、U(URG)、2(Reserved bit 2)、1.resp实现对满足特定规则网络流量的响应动(Reserved bit 1) .0(No TCP Flag Set).还有3个逻作,它能够主动关闭非法的连接。对于该模式,下面辑操作符用来为给出的标志指定匹配的标准,即是一些合法的参数.“十”匹配所有的标志,“*”匹配任何的标志;“!”没有rst_ _snd 向发送方发送TCP一RST数据包.标志。主要用于非法端口扫描或者其他非法探测主rst_ rev向接受方发送 TCP-RST数据包.机操作系统类型等.rst_ _all向收发双方发送TCP_ _RST数据包.seq检测试TCP序列号的值。检测主机发送的icmp_ .net向 发送方发送.序列号集是否是固定的集合,人侵者可以利用该值ICMP_ NET .UNREACH数据包.冒充合法用户向被入侵者发送数据,伪装正常的通信icmp_ host向 发送方发送。以窃取信息或者其他非法活动.ICMP_ HOST UNREACH数据包 .ack检测TCP确认字段的值.NMAPTCPicmp_ port向发送方发送.PING攻山会设置该项的值为0,从而判断可能正在ICMP_ PORT_UNREACH数据包.用NMAP进行非法扫描.icmp_all向发送方发送上述所有的ICMP数据itype检测ICMP类型字段的值.除了正常的类包型值外,该选项还可以设定超出正常范围的类型值,这个选项参数可以结合起来传送多个响应信息用于检测非法的ICMP类型值,因为这些非法值有时到目的主机,多个参数之间用逗号分隔.可用于拒绝服务攻击和过载攻击。如:alert tcp any ay -> 192. 168. 1. 0/24 1524icode检测ICMP数据包的代码值、它可以用来(flags: S; resp: rst_ all; msg:“Root shell backdoor检测可疑的网络流量.attempt";)session记录指定会话的应用层信息,记录在alert udp any any -> 192. 168. 1. 0/24 31 (re-TCP会话中的会话数据.sp: icmp_ port,icmp_ host; Tmnsg: “Hacker's Paradiseicmp. .id测试- -个ICMP ECHO数据包的ID字access attermpt" ;)段值.另外-些规则选项关键字都是针对协议中的不同icmp. _seq测试.“个ICMP ECH0包的ICMP序字段设置的,针对不同的攻击行为检测不同的内容:列号的值..tl 测试IP数据包的'TTL(time to live)字段ipoption如IP选项出现在一个数据包里,该选的值.该选项只有在精确匹配时才为真。它主要用项将搜索某一个特定选项,象源路由器等。该选项于对Traceroutes 试探活动的检测.的有效参数有:id 检测IP数据包分组的ID字段是否等于指rr -记录路由(Record route)定值,用于检测黑客的固定攻击,例如设置该字段为eol -列表尾(End of list)31337在某些入侵手法中非常普遍.nop -空操作(No op)dsize测试数据包负载的大小是否等于指定的ts -时间戳(Time Stamp)值.它可以设定为任意值,可以用大于“>”和小于sec - P安全诜项(IP securily option)“<”号来指示大小范围.来监控可能的缓冲区溢出.中国煤化工ree rouing). content 在数据包中搜索指定的模式。这是最MHC N M H Gurce routing)重要的一个选项,用于在数据包的数据段中搜索指定sarid -流标示( Stream identifier)的内容并触发响应动作,可以搜索包含混合的文本和受限和非受限的源路不能同时出现在一个规则二进制数据,二进制数据位于一对管道符号“1"之间中.422三峡大学学报(自然科学版)2002年10月.rpe-监控RPC服务中特定应川/进程调用的调之内对超过P个端口发送UDP数据包.端口扫描可用情况,查看RPC请求,并自动解析程序、过程、和以是对任一IP地址的多个端I,也可以是对多个IP程序版本号信息,当所有的3个变量都匹配时,该选地址的同--端口.Snortl.6版本可以处理单对单和项才表示成功.选项调用的格式是“程序,过程.版本单对多方式的端口扫描.而现在的版本可以处理分布.号”过程和版本号可用通配符“*”表示,式的端口扫描(多对一或多对多).端口扫描也包括如:alerI tep any any -> 192. 168. 1. 0/24 111单独的“隐蔽扫描”数据包,比如NULL, FIN,SYN-(rpe: 100000, # ,3; msg:“RPC getport (TCP)";) .FIN,XMAS等.该模块的参数有:alert udp any any 一> 192. 168. 1. 0/21 111networktomonitor-端口扫描检测针对网络/(rpc: 100083, *,* ; msg;“RPC ttdb";)CIDR地址块.numberofports-检测时闾间隔内的最大端口3预处理数目.detection period一端口检测的时闾间隔(以秒预处理程序从Snort版本1.5开始引人,它的引计).入大大扩展了Snort系统功能,使程序员和用户可以logdir/ filename用于存放警报信息的目录/很容易地加人模块化的插件。其代码在检测引擎运文件名,警报同时写入标准的警告文件中.行前被调用,但在数据包解码完毕之后才进行调用.格式:portscan: < network to mnonitor> < number为检测做铺垫,从而提高检测的准确性和速度.of ports> 预处理使用preprocessor关键字安装和配置.3.4 Portscan Ignorehosts在Snort规则文件中预处理命令的格式是:portscan-- ignorehosts主要是告诉portscan 忽prcprocessor < name>: < options>略针对某些主机地址的端口扫描活动.它的参数是3.1 Minfrag被忽略的IP或CIDR块.minfrag预处理检查分组数据包的大小是否低于格式: portscan- ignorehosts: 某一设定的阀值,数据包分组通常是由源和目的地如: preprocessor portscan 一ignorehosts: 192.址之间的路由器米进行的。一般来讲,商业网络设备168. 1.5/32 192. 168. 3.0/24Snort还有一些输出模不会将数据包的分组大小设置于512字节,因此我块和高级规则概念,在此不-.一叙述.们能使用这个事实监控小的数据包分组,这种小的分组数据一般说明某些试图在分组里隐藏他们的数4结语据.其格式为:minfrag: Snort是一个开放源代码的网络人侵检测系统.3.2 HTTP Decode它可以运行在多种操作系统平台.上●例如UNIX和HTTP Decode用于处理IITTP URI.地址字符Windows.上.规则语言简单实用并提供插件的功能串,并将串中的数据转化为可读的ASCII字申.这样支持,用户可以根据自己的需要及时调整检测策略,做的目的是为了检测到躲避Web URL扫描的行为添加自己的检测规则和处理函数、这对于规则库的和攻击,这些入侵行为常常会通过地址字符串中某些及时更新有着极为现实的意义。系统分析snort 规异常字符的设置,米躲避对HTTP通信可疑行为的则对于人侵检测系统的研究和建立人侵检测的规则内容分析检查,这种预处理模型采用标准端口号作库都有重大的意义.为它的参数(典型的80和8080).格式:http_ .decode: [ - unicode][ -参考文献:cginull]3.3 Portscan Detector[1][M].陈明奇泽。北京:Portscan向标准日志设备中记录从一个源IP地中国煤化工址所发出的端口扫描活动的开始和结束。如果指定.[2]MHC N M H G测分析员手册[M2.余了一个日志文件,在记录扫描类型的同时也记录目的青霓.王晓程,周钢等泽, 北京:人民邮电出版社,IP地址和端口号.端口扫描定义为在时间T秒之内2000.对超过P个端口的TCP连接请求,或者在时间T秒[责任编辑周文凯]

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