Snort的配置与使用

上传人:cl****1 文档编号:568891694 上传时间:2024-07-27 格式:PPT 页数:115 大小:789KB
返回 下载 相关 举报
Snort的配置与使用_第1页
第1页 / 共115页
Snort的配置与使用_第2页
第2页 / 共115页
Snort的配置与使用_第3页
第3页 / 共115页
Snort的配置与使用_第4页
第4页 / 共115页
Snort的配置与使用_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《Snort的配置与使用》由会员分享,可在线阅读,更多相关《Snort的配置与使用(115页珍藏版)》请在金锄头文库上搜索。

1、第六章 Snort的配置与使用入侵检测技术本章内容nSnort的安装与配置nSnort的总体结构分析nSnort的使用nSnort的规则n使用Snort构建入侵检测系统实例6.1 SNORT6.1 SNORT的安装与配置的安装与配置3一、Snort简介nsnort 是一个用C语言编写的开放源代码的软件nSnort是一个跨平台的,轻量级的网络入侵软件,基于libpcap的数据包嗅探器和日志记录工具nSnort采用基于规则的网络信息搜索机制,对数据包进行内容的模式匹配,从中发现入侵和探测行为。nMartin Roesch Snort TeamnSnort 2.9.7.6n1. Snort的组成数据

2、包解码器检测引擎日志和报警子系统n2. Snort的工作模式(3种)嗅探器数据包记录器网络入侵检测系统n4. Snort的工作模式(3种)嗅探器嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。n./snort vn./snort vdn./snort vde数据包记录器数据包记录器模式把数据包记录到硬盘上。n./snort dev l ./log网络入侵检测系统网络入侵检测模式是最复杂的,而且是可配置的。用户可以让Snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。 n./snot dev l ./log c snort.conf二、Snort软件

3、的下载n下载snorthttp:/www.snort.org入侵检测的核心部分n下载winpcap或者libpcaphttp:/winpcap.polito.it/ http:/www.tcpdump.org网络数据包截取驱动程序,用于从网卡中抓取数据包n辅助软件:Acid(Analysis Console for Intrusion Databases )n基于PHP的入侵检测数据库分析控制台ADOdb(ADOdb Database Abstraction Library)nAdodb库为PHP提供了统一的数据库连接函数ApachenWindows版本的Apache Web 服务器Jpgra

4、phnPHP所用图形库MysqlnWindows版本的Mysql数据库,n用于存储snrot的日志,报警,权限等信息PHPnWindows中PHP脚本的支持环境三、 Windows环境下Snort的安装nACID+snort的入侵检测系统1. 搭建apache+PHP的运行环境2. 安装snort和Winpcap3. 安装MySQL4. 安装ADOdb5. 安装Jpgraph6. 安装和配置ACID7. 配置和启动snort几点说明n1. 在snort中有一脚本create_mysql,用于建立所有必要的表。 C:mysqlbinmysql u root p (Mysql)create dat

5、abase snort; (Mysql)quit(c:mysqlbin)Mysql D snort u root p )grant usage on *.* to acidloacalhost identified by “acidPwd”; (mysql)grant select,insert,update,delete,create,alter on snort.* to acidlocalhost; n需要了解的Mysql命令:显示数据库列表:nshow databases;显示库中的数据表:nuse mysql;nshow tables;建库与删库: ncreate database

6、库名;ndrop database 库名;n激活和配置ACID解压缩acid至apache安装目录的htdocsacid目录下 修改htdocsacid下的acid_conf.php文件 nDBlib_path = C:phpadodb;n$DBtype=”mysql”;n$alert_dbname = snort;n$alert_host = localhost;n$alert_port = 3306;n$alert_user = acid;n$alert_password = acidpwd;n n/* Archive DB connection parameters */n$archiv

7、e_dbname = snort_archive;n$archive_host = localhost;n$archive_port = 3306;n$archive_user = acid;n$archive_password = acidpwd;n$ChartLib_path=”C:phpjpgraphsrc”;http:/127.0.0.1:50080/acid/acid_db_setup.php n配置并启动snort打开C:snortetcsnort.conf文件,将文件中的下列语句:include classification.configinclude reference.con

8、fign修改为绝对路径:include C:snortetcclassfication.configinclude C:snortetcreference. confign在该文件的最后加入下面语句:n目的:将日志记录到数据库中output database: alert,mysql,host=localhost user=snort password=snortpwd dbname=snort encoding=hex detail=fulln进入命令行方式,输入下面的命令:C:snortbinsnort c “C:snortetcsnort.conf” l “C:snortlog” d e

9、 XX参数:用于在数据链接层记录rawpacket数据;d参数:记录应用层的数据;e参数:显示记录第二层报文头数据;c参数:用以指定snort的配置文件的路径;i参数:指定监视的网络适配器的编号。n上面的命令将启动snort,如果snort正常运行,系统最后将显示如下图所示四、Snort的配置n配置snort.conf文件设置网络相关变量;配置预处理器;配置输出插件;定制snort规则集。n设置网络相关变量Snort.conf中的主要环境变量有:nvar HOME_NET any 本地网络nvar EXTERNAL_NET any 外地网络nvar DNS_SERVER $HOME_NETnv

10、ar HTTP_SERVER $HOME_NETnvar SQL_SERVER $HOME_NETnvar TELNET_SERVER $HOME_NETnvar SNMP_SERVER $HOME_NETvar HTTP_PORTS 80var ORACLE_PORTS 1521var RULE_PATH ./rules 本地规则路径n配置预处理器是在基于规则的模式匹配之前运行的模块,通常为规则匹配进行一些前期的处理。如:IP分片重组(frag2)、TCP流重组(stream4) 、各种应用层解码等。根据需要配置,通常采用默认值.n配置输出插件主要在报文匹配某条规则需要输出时,调用相应的输出

11、插件。根据snort.conf说明进行相应配置。例:noutput database :log, mysql, user=westfox dbname=detector host=localhost password password=t123 port=1234noutput database: alert, mysql, host=localhost user=snort password=snorttest dbname=snort encoding=hex detail=fulln定制snort规则集#include ninclude $RULE_PATH/local.rules6.2

12、 Snort的总体结构分析nSnort的模块结构n插件机制nSnort的总体流程n入侵检测流程Snort分析32一、Snort总体结构分析 Snort的模块组成及其相互关系 二、Snort的插件机制n优点增强可扩展性简化编码工作使代码功能内聚,模块行强,程序相对易读n插件模块包括预处理插件、处理插件和输出插件3种,它们通常对应规则中的一个或几个关键字,规则匹配中遇到这些关键字时就会激活相应的插件,以完成相应的功能。 n1预处理插件 它们的源文件名都是以spp_开头的,在规则匹配(误用检测)之前运行,完成的功能主要分为以下几类。n 模拟TCP/IP堆栈功能的插件:如IP碎片重组、TCP流重组插件

13、。n 各种解码插件:如HTTP解码插件、Unicode解码插件、RPC解码插件、Telnet协商插件等。n规则匹配无法进行攻击检测时所用的检测插件:如端口扫描插件、Spade异常入侵检测插件、Bo检测插件、Arp欺骗检测插件等。 n2处理插件它们的源文件名都以sp_开头,在规则匹配阶段的ParseRuleOptions中被调用,辅助完成基于规则的匹配检测过程。每个规则处理函数通常对应规则选项中的一个关键字,实现对这个关键字的解释或辅助解释。这些插件的主要功能如下。n 协议各字段的检查,如TCPFlag,IcmpType,IcmpCode,Ttl,IpId,TcpAck,TcpSeq,Dsize

14、,IpOption,Rpc,IcmpId,IcmpSeq,IpTos,FragBits,TcpWin,IpProto和 IpSame等。n一些辅助功能,如Respond,Priority,PatternMatch,Session,React,Reference等,这些插件分别完成响应(关闭连接)、严重级别、模式匹配(内容)、会话记录、攻击响应(高级的响应机制)、攻击参考信息等功能。n3输出插件它们的源文件名都以spo_开头,这些插件分为日志和警告两种类型放入两个列表中,在规则匹配过程中和匹配结束之后调用,以便记录日志和警告。n以一个HTTP解码预处理器插件为例来解释插件的内部结构:每个插件都有

15、一个安装函数,名称为SetupXXX(),如Spp_http_decode.c:SetupHttpDecode()。 在解释规则文件时,如果检测到相应的关键字,系统就会使用规则文件中这些关键字后的字符串作为参数来调用相应的初始化函数。在检测过程中,一旦规则匹配成功,就会触发处理函数的执行,预处理器就会在预处理过程中对数据报调用相应处理函数进行处理。三、Snort的总体流程四、入侵检测流程n规则解析流程n规则匹配流程入侵检测流程规则解析流程 Snort规则内存表示逻辑图 入侵检测流程规则匹配流程Snort规则匹配检测流程 12346.3 Snort的使用nSnort的命令行n高性能的配置方式一、

16、Snort的命令行nSnort命令参数及作用c:snortoptionsn主要snort参数介绍-A n设置的模式是full、fast,还是none;full模式是记录标准的alert模式到alert文件中;fast模式只写入时间戳、messages、IPs、ports到文件中,none模式关闭报警。-an显示ARP包。-bn把LOG的信息包记录为TCPDUMP格式,所有信息包都被记录为二进制形式,这个选项对于fast记录模式比较好,因为它不需要花费包的信息转化为文本的时间。Snort在100Mbps网络中使用“b”比较好。-c n使用配置文件,这个规则文件是告诉系统什么样的信息要LOG,或者

17、要报警,或者通过。-Cn在信息包信息使用ASCII码来显示,而不是hexdump。-dn解码应用层-Dn把Snort以守护进程的方法来运行,默认情况下alert记录发送到/var/log/snort.alert文件中去。-en显示第二层(数据链路层)的包头信息。-F n从文件中读BPF过滤器(filters),这里的filters是标准的BPF格式过滤器。-h n设置网络地址,如一个C类IP地址192.168.0.1,使用这个选项,可限制数据进出的方向。-i n使用网络接口参数。-ln :LOG信息包记录到目录中去。-M :n发送WinPopup信息到包含文件中存在的工作站列表中去,这选项需要

18、Samba的支持,wkstn文件很简单,每一行只要添加包含在SMB中的主机名即可(注意不需要两个斜杠)。-n 指定在处理个数据包后退出。-N:n关闭Log记录,但ALERT功能仍旧正常。-on改变所采用的记录文件,如正常情况下采用AlertPassLog,而采用此选项是这样的顺序:PassAlertLog,其中Pass是那些允许通过的规则而不记录和报警,ALERT是不允许通过的规则,LOG指LOG记录。-pn关闭杂乱模式嗅探方式,一般用来更安全的调试网络。-r n读取tcpdump方式产生的文件,这个方法用来得到一个Shadow(ShadowIDS产生)文件,因为这些文件不能用一般的EDIT来

19、编辑查看。-s LOG:n报警的记录到syslog中去,在LINUX机器上,这些警告信息会出现在/var/log/secure,在其它平台上将出现在/var/log/message中。-S n设置变量值,这可以用来在命令行定义Snortrules文件中的变量,如要在Snortrules文件中定义变量HOME_NET,可以在命令行中给它预定义值。-vn使用为verbose模式,把信息包打印在console中,这个选项使用后会使速度很慢,这样结果在记录多的是时候会出现丢包现象。-Vn显示SNORT版本并退出。-?n显示帮助信息。-W n Lists available interfaces. (W

20、in32 only)以上这些参数大多可组合进行使用。nSnort入侵检测实例1.实现快速嗅探在命令行输出检测到的IP/TCP/UDP/ICMP数据。如果想要把数据的包头信息在命令行显示,可以使用:c:snort-v-i2命令行中会打印出如下的数据: =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+06/09-15:01:13.846531172.22.140.117:61440_210.77.169.249:61440UDPTTL:64TOS:0x0ID:50650IpLen:20DgmLen:64Len:36 =+=+=+=+=+=+=+=+=+=+=+=+=+=

21、+=+=+=+=+=+如果打开-d开关,将显示HEX和ASCII形式的应用数据(OSI模型的第七层),命令如下:c:snort-vd-i2命令行中会打印出如下的数据: =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+05/2516:25:22.228564172.17.253.203:137_172.17.253.255:137UDPTTL:128TOS:0x0ID:34222IpLen:20DgmLen:78Len:50B4 52 01 10 00 01 00 00 00 00 00 00 20 44 46 45.R.DFE44 45 43 44 47 45 43

22、 44 41 44 48 44 4A 44 49 44 DECDGECDADHDJDID43 45 46 44 44 44 45 44 42 45 42 41 41 00 00 20 CEFDDDEDBEBAA. 00 01.=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+2.实现记录数据包先建立一个LOG目录,再使用下面的命令:nc:snortbin-snort-de-l c:snortlog-i2n注意这里少了-v选项,这意味着Snort将不在屏幕上显示输出信息。命令的前部分使Snort进入探测模式,它在c:snortlog目录下为每个用户发起的连接创建文件。每

23、个文件中包含的是以ASCII格式显示的流量信息。同时,在该目录下,会自动生成日志文件n前面的配置创建了基于文本的文件,其中包含流量的解码。利用下面的命令:nc:snortbin-snort-l c:snortlog-b-i2这时命令行会进入数据包记录界面,同时在c:snortlog目录下会生成一个名如snort.log.1244770040的日志文件,所有的网络流量将以二进制的形式记录下来,并且以PCAP的格式写入到该日志文件中。n这样做的优点:(1)允许利用开放源码或者商业的探测器程序进行浏览,例如,Wireshark等。(2)允许重放Snort或者探测程序。(3)速度快,基本上Snort可

24、以得到所有的流量并写入到文件。n现在,如果想重新读入刚刚创建的PCAP格式的文件,并且让Snort像前面那个例子那样解码,该怎么办呢?n下面的命令可以把文件重新读入到Snort,用于解码:c:snortbin_snort-de-r snort.log.1244532070另外也可以应用BPF过滤程序对日志文件进行过滤:c:snortbin - snort-de-F c:filter -r snort.log.1244532070二、高性能的配置方式n在一个高数据流量(如大于100Mb/s)的网络环境下运行snort,就需考虑如何配置snort才能使它高效率地运行,这就要求使用更快的输出功能,产

25、生更少的警告,可使用:-b,-A fast, -s等选项。6.4 Snort的规则n规则结构n规则的语法n攻击手段对应规则举例n规则的设计一、规则的结构nsnort的每条规则都可以分成逻辑上的两个部分:规则头规则选项 n规则头包括:规则行为(rules action)、协议(protocol)、源/目的IP地址、子网掩码以及源/目的端口。 n规则选项包含报警信息和异常包的信息(特征码,signature),使用这些特征码来决定是否采取规则规定的行动。alert tcp any any - 192.168.1.0/24 111(content:”|00 01 86 a5|”;msg:”mount

26、d access”;)规则头规则头规则选项规则选项规则操作规则操作 协议协议 源源IP 源端口源端口 方向操作符方向操作符 目的目的IP 目的端口目的端口 规则含义:规则含义:任何使用任何使用TCP协议连接网络协议连接网络192.168.1.0/24中任何主机的中任何主机的111端端口的数据包中,如果出现了二进制数据口的数据包中,如果出现了二进制数据00 01 86 a5,便发出警,便发出警告信息告信息mountd accessn1.规则头(1)规则的动作nalert:使用选定的报警方法产生报警信息,并且记录数据包nlog:记录数据包npass:忽略数据包nactivate:报警并激活另一条d

27、ynamic规则ndynamic:保持空闲状态,直到被activete规则激活,作为一条log规则n自定义动作(ruletype)(2)协议n每条规则的第二项就是协议项。当前,snort能够分析的协议是:IP、TCP、UDP和ICMP (3)IP地址n关键词any可以用来定义任意的IP地址 n地址只能使用数字/CIDR的形式 n/24表示一个C类网络;/16表示一个B类网络;而/32表示一台特定的主机地址192.168.1.0/24表示从192.168.1.1到192.168.1.255 在规则中,可以使用使用否定操作符(!)对IP地址进行操作 nalert tcp !192.168.1.0/

28、24 any - 192.168.1.0/24 111IP地址表示:所有IP源地址不是内部网络的地址,而目的地址是内部网络地址 nIP地址列表的格式 IP地址1/CIDR,IP地址/CIDR,. 每个IP地址之间不能有空格 alert tcp !192.168.1.0/24,10.1.1.1.0/24 any -192.168.1.0/24,10.1.1.0/24 111(4)端口号any、静态端口号 、端口范围(:),以及使用非操作定义例:n1:1023n:1024(5)方向操作符n -n(6)activate和dynamic规则nactivates:nactivated_by:n2. 规则

29、选项规则选项构成了snort入侵检测引擎的核心 在每条snort规则中,选项之间使用分号进行分割。规则选项关键词和其参数之间使用冒号分割 Snort规则选项nmsg:在报警和日志中打印的消息 msg:; 例:alert tcp $EXTERNAL any - $INTERNAL 79(msg:”Finger”)nlogto:把日志记录到一个用户指定的文件,而不是输出到标准的输出文件 使用这个选项,对处理来自nmap扫描、HTTP CGI扫描的数据非常方便。注意如果使用二进制日志模式,这个选项会失效。logto:; nttl:测试IP包头的TTL域的值ttl:; 支持 和=操作符ntos:测试I

30、P包头的TOS域的值tos:; 例;alert tcp $EXTERNAL any - $CISCO any (msg:”Cisco TOS Example”;tos:!”0”;)nid:测试IP分组标志符(fragment ID)域是否是一个特定的值 id: ; nipoption:查看IP选项(IP option)域rr:路由记录 ,eof:End of list ,nop:无操作 ,ts:时间戳 ,sec:IP安全选项 ,lsrr:宽松源路由 ,ssrr:严格源路由 ,satid:流标识符 ipopts: ; nfragbits:测试IP包头的分片位R:保留位D:DF位M:MF位 + A

31、LL标志,指定的位加上任何其它的位为真 * ANY标志,指定的任何位为真! NOT标志,指定的位不为真 - 不包含指定位例: alert tcp !$HOME_NET any - $HOME_NET any (fragbits:R+;msg:Reserverd IP bit set!;) ndsize:测试数据包数据段的大小这个规则选项用来测试数据包负载的大小 如果知道某个服务有一个特定大小的缓冲区,就能够设置这个选项来捕获制造缓冲区溢出的企图 dsize: | nflags:测试TCP标志(flag)是否是某个值F:FIN(TCP标志字节最左边一位)S:SYNR:RSTP:PSHA:ACKU

32、:URG2:保留位21:保留位1 例: alert any any - 192.168.1.0/24 any (flags:SF;msg:Possible SYN FIN scan;) nseq:测试TCP包的序列号是否是某个值seq:nack:测试TCP包的确认域是否为某个值只有一个实际的用途:检测NMAP TCP ping扫描。 扫描程序nmap进行TCP ping扫描时,把TCP包头的确认号(4个字节)设置为0,然后向目标主机发出TCP ACK包,确定目标主机是否正在运行 alert any any - 192.168.1.0/24 any (flags:A;ack:0;msg:nmap

33、 TCP ping;) nitype:测试ICMP数据包的类型(type)域拒绝服务和淹没攻击的数据包有时使用无效的ICMP类型,可以使用这个规则选项对无效的ICMP类型进行检测,也就是说,这个规则选项中的值可以不是正常的数值 itype: nicode:测试ICMP数据包的编码(code)域icode规则选项和itype非常相似,也是使用数字进行设置 icode:nicmp_id:测试ICMP回送包的标志符(ICMP ECHO ID)是否为某个值icmp_id:nicmp_seq:检测ICMP回送包的序列号的值因为一些隐秘通道程序在通讯时使用静态的ICMP域。icmp_seq: nconte

34、nt:在数据包的数据段中搜索模式进行比较的数据中可以包含二进制数据:|00 01 86 a5|/bin/sh;content:;alert tcp any any - 192.168.1.0/24 143(content:“|90c8 c0ff ffff|/bin/sh”; msg:IMAP buffer overflow); “|” 。管道符号noffset:调整content选项,设置开始搜索的偏移量 ndepth:调整content选项,设置搜索最大深度alert tcp any any - 192.168.1.0/24 80 (content:cgi-bin/phf; offset:3

35、; depth:22; msg:CGI-PHF access;)nnocase:大小写不敏感匹配内容字符串nocase;alert tcp any any - 192.168.1.0/24 21 (content:USER root; nocase; msg:FTP root login attempt;) nsession:对一个指定的会话记录其应用层信息观察用户在telnet、rlogin、ftp,甚至WEB会话过程中输入了什么,就可以使用这个规则选项 session规则选项有两个参数关键词:printable、all。 log tcp any any 192.168.1.0/24 23

36、(session: printable;)ncontent-list:在数据包的数据段中搜索模式清单使用content-list关键词可以指定更多的正文字符串,突破了content规则选项只能指定单一字符串的限制。 每个要搜索的字符串占一行。这个规则选项是使用react关键词的基础 content-list:; #adult sites porn adults hard core # . nreact:激活反应措施(阻塞WEB站点)基本的反应就是阻塞用户要访问的站点,例如色情站点 block:关闭连接并发出注意信息warn:发出警告信息 msg:定义要包含在警告信息中的文本proxy::使用

37、代理服务器端口发送警告信息 可选参数使用逗号分开,react关键词应该放在所有选项的最后 react: alert tcp any any 192.168.1.0/24 80 (content-list:“adults”; msg:“Not for children!”; react:block,msg;) nrpc:观察RPC服务对特定应用程序的调用 规则选项rpc可以使snort观察RPC请求,并且自动对应用程序、过程、程序版本进行解码。只有这三个变量都匹配时,才算成功。统配符*可以用来代替过程和版本号 alert tcp any any - 192.168.1.0/24 111 (rpc

38、: 100000,*,3;msg:RPC getport (TCP);) nresp:激活反应措施(断开连接等)对于匹配某个规则的数据包,可以通过resp关键词使snort的灵活反应机制生效。使用FlexResp插件,snort能够主动断开恶意连接rst_snd:向发送方套接字发送TCP-RST数据包rst_rcv:向接受方套接字发送TCP-RST数据包rst_all:在两个方向上发送TCP-TST数据包icmp_net:向发送方发送ICMP_NET_UNREACH数据包icmp_host:向发送方发送ICMP_HOST_UNREACH数据包icmp_port:向发送方发送ICMP_PORT_

39、UNREACH数据包icmp_all:向发送方发送以上各种类型的ICMP数据包多个参数可以结合使用,各个参数之间使用逗号隔开。alert tcp any any - 192.168.1.0/24 1524 (flags:S;resp:rst_all;msg:Root shell backdoor attempt;) alert udp any any - 192.1.168.1.0/ 31 (resp:icmp_port,icmp_host;msg:Hackers Paradise access attempt;) n uricontent: 在特定的URL字段域内搜索特定模式;nflow :

40、 指定网络TCP数据流的方向,例如从服务器发出或是客户端发出;flow:nto_servernto_clientn.其他Snort规则选项reference: 外部参考idsid: snort的规则idrev: 规则的修正号classtype: 规则的分类号priority: 规则的优先级tag: 高级记录动作ip_proto: ip头的协议值sameip: 源地址和目标地址相同stateless: 无状态连接regex: 通配符模式匹配二、规则的语法规则分类存放在规则文件中规则文件是文本文件“类名.rules”, 在snort.conf文件类激活。规则要在一行内写完注释行使用#开头n规则中使

41、用变量名的定义 n变量的定义格式:var 例:nvar MY_NET 192.168.1.0/24nalert tcp any any -$MY_NET any(flags:S;msg:”SYN Packet”)说明:n1) $name 或$(name) :用name的内容替换变量namen2) $(name:-default):如果name没有定义就使用default的内容替换变量n4) $(name:?message):使用变量name的内容替换变量,如果不成功就打印错误信息message并退出。例:nvar MY_NET $(MY_NET:-192.168.1.0/24)nlog tcp

42、 any any - $(MY_NET:?MY_NET is undefined!) 23 ninclude n例:include $RULE_PATH/local.rules#include $RULE_PATH/ftp.rules三、攻击手段对应规则举例n实例1:IIS发布之初,附带的例子网页存在漏洞特点:n保存在Web根目录下的/site/iisamples目录下。nalert tcp $EXTERNAL_NET any -$HTTP_SERVER 80(msg:”WEB_IIS site/iisamples access”;flag:A+; uricontent:”/site/iisa

43、mples”;nocase;classtype:attemped-recon;sid:1046;rev:1;)n实例2:红色代码的一个变种CodeRed。特点n利用MS Index Server(.ida/.idq)ISAPI扩展远程溢出漏洞(MS01-033)nalert tcp $EXTERNAL any-$INTERNAL 80 (msg:”IDS552/web-iis_IIS ISAPI Overflow ids”;dsize:239;flags:A+;uricontent:”.ida?”;classtype:system-or-info-attempt;reference:arach

44、nids,552;)规则的更新n经常访问snort的官方网站,更新它所发布的规则。www.snort.orgn加入snort的邮件列表http:/ chunked的编码规则,这条规则如下:alert tcp $EXTERNAL_NET any - $HTTP_SERVER $HTTP_PORTS(msg:”WEB_IIS .hrt chunked encoding”; uricontent:”.htr”; classtype: web-application-attack; rev:1)alert tcp $EXTERNAL_NET any - 192.168.1.1 $HTTP_PORTS(

45、msg:”WEB_IIS .hrt chunked encoding”; uricontent:”.htr”; classtype: web-application-attack; rev:2)alert tcp $EXTERNAL_NET any - 192.168.1.1 $HTTP_PORTS(msg:”WEB_IIS .hrt chunked encoding”; flow:to_server,establish; uricontent:”.htr”; classtype: web-application-attack; rev:3)POST /EEYE.htr HTTP/1.1 Ho

46、st:Transfer-Encoding:chunked20XXXXXXXXXXXXXXXXXXXXXXXXEEYE2002 0 EnterEnter alert tcp $EXTERNAL_NET any - 192.168.1.1 $HTTP_PORTS(msg:”WEB_IIS .hrt chunked encoding”; flow:to_server,establish; uricontent:”.htr”; content:”Transfer-Encoding:”; content:”chunked”; classtype: web-application-attack; rev:

47、4)alert tcp $EXTERNAL_NET any - 192.168.1.1 $HTTP_PORTS(msg:”WEB_IIS .hrt chunked encoding”; flow:to_server,establish; uricontent:”.htr”; content:”Transfer-Encoding:”; content:”chunkd”; nocase; classtype: web-application-attack; rev:5)一些规则使用的例子n(1)记录所有登录到一个特定主机的数据包:log tcp any any - 192.168.1.1/32 2

48、3n(2)在第一条的基础上记录了双向的流量:log tcp any any 192.168.1.1/32 23n(3)这一条规则记录了所有到达你的本地主机的icmp数据包:log icmp any any - 192.168.1.0/24 anyn(4)这条规则允许双向的从你的机子到其他站点的http包:pass tcp any 80 192.168.1.0/24 anyn(5)这条告警规则显示了本地主机对其他主机的111端口的访问,并在log中显示端口影射调用(portmapper call)信息:alert tcp 192.168.1.0/24 any - any 111 (msg:Por

49、tmapper call;)n(6)记录其他任意地址的小于1024端口访问本地小于1024端口的流量:log tcp any :1024 - 192.168.1.0/24 :1024n(7)这条规则将会发现SYN FIN扫描:alert tcp any any - 192.168.1.0/24 any (msg:SYN-FIN scan!; flags: SF;)n(8)这条规则将会发现空TCP扫描:alert tcp any any - 192.168.1.0/24 any (msg:Null scan!; flags: 0;)n(9)这条规则将会发现Queso fingerprint扫描:

50、alert tcp any any - 192.168.1.0/24 any (msg:Queso fingerprint;flags: S12;)n(10)这条规则将进行基于内容的查找以发现溢出攻击:alert tcp any any - 192.168.1.0/24 143 (msg:IMAP Buffer overflow!; content:|90E8 C0FF FFFF|/bin/sh;)n(11)这条规则将会发现PHF攻击:alert tcp any any - 192.168.1.0/24 80 (msg:PHF attempt; content:/cgi-bin/phf;)n(

51、12)这条规则将会发现Traceroute包:alert udp any any - 192.168.1.0/24 any (msg:Traceroute; ttl:1;)n(13)这条规则将会发现其他主机对本地发出的icmp包:alert udp any any - 192.168.1.0/24 any (msg:Traceroute; ttl:1;)n(14)这条规则发现nmap的TCP的ping扫描:alert tcp any any - 192.168.1.0/24 any (flags: A; ack: 0; msg:NMAP TCP ping!;)n(15)这条规则将会发现源路由的

52、数据包(源路由攻击):alert tcp any any - any any (ipopts: lsrr; msg: Source Routed packet!;) 本章小结n本章主要对snort的进行了介绍,snort有三种工作模式,其作为网络入侵检测系统的工作模式的使用是我们需要掌握的。其次,应理解snort规则的编写,这样有助于网络管理员利用snort来加强自身网络环境的监控。The End,Thanks!n数据包捕获和解析子系统对各种协议上的数据包进行解析、预处理,以便提交给检测引擎进行规则匹配。解码器运行在各种协议之上,从数据链路层到传输层,最后到应用层。网络数据采集和解析机制是整个

53、NIDS实现的基础,其中最关键的是要保证高速和低的丢包率,这不仅仅取决于软件的效率还同硬件的处理能力相关。对于解析机制来说,能够处理数据包的类型的多样性也同样非常重要,目前,snort可以处理以太网,令牌环以及SLIP等多种链路类型的包。 n检测引擎Snort用一个二维链表存储他的规则。其中一维称为规则头,另一维称为规则选项。采用递归的方法进行规则匹配满足一个规则时,触发相应的操作用户可以根据自己需要添加所需的规则模块n日志和报警子系统可以在运行snort的时候以命令行的方式进行选择。三种日志形式n文本形式,tcpdump的二进制形式,关闭日志五种报警形式n发系统日志文件,以两种不同格式记录报警文本(完全,快速)n发送winpopup信息,关闭The End,Thanks!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号