ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:23.43KB ,
资源ID:10632069      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10632069.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(块是Snort体系中两个重要的部分预处理器在Snort应用规则前处理.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

块是Snort体系中两个重要的部分预处理器在Snort应用规则前处理.docx

1、块是Snort体系中两个重要的部分预处理器在Snort应用规则前处理与处理器和输出模块是Snort体系中两个重要的部分,预处理器在Snort应用规则前处理接收到的数据。输出模块输出Snort探测机制所产生的数据。数据包通过Snort的流程图如图4-1所示。被捕获的数据包首先经过预处理器,然后,经过探测引擎根据规则处理。根据规则处理的结果,输出处理器处理日志或者告警。Snort允许你对预处理器和输出模块进行配置,这些工作可以通过修改snort.conf来完成。在本书中,输入插件和预处理器是同一概念,输出插件和输出模块也是同一概念。本章将对这些组件进行讨论。4.1预处理器当Snort接收到数据包的

2、时候,主探测引擎并不能对它们进行处理和应用规则,比如,数据包有可能是分片的,需要重新组装,预处理器就是做这样的工作,使数据能够被探测引擎处理,另外,一些预处理器还可以做一些其它工作,比如探测包中的一些明显错误。下面给你介绍预处理器如何工作。在安装过程中,你可以在编译的时候选择对各种预处理器的支持。各种预处理器的配置参数在snort.conf中调整,你可以在通过这个文件打开或者关闭某个预处理器。捕获的包要经过所有已经打开的预处理器,不能跳过,因此如果你如果打开了大量的预处理器,就会降低Snort的运行速度。在snort.conf中,你可以用preprocessor关键字打开预处理器,格式如下:p

3、reprocessor : parameters后面的参数通常是可选项。你也可以编写自己的预处理器,察看Snort源代码doc目录中的README.PLUGIN文件,你可以获得相关的资料,也可以在templates目录中查看源代码示例。4.1.1HTTP解码Snort可以对HTTP协议各种形式的编码进行解码,并从中找出已知的攻击特征。你可以将HTTP服务器的端口列表作为HTTP解码预处理器的参数。例如下面的命令可以对在80,8080和443端口的HTTP相关数据包进行解码,以便探测引擎处理:preprocessor http_decode: 80 8080 443尤其重要的是,如我们前面所提到

4、的,关于HTTP的攻击也常用各种变换形式,如果应用HTTP解码预处理器,就可以更有效的探测到这些企图。4.1.2端口扫描端口扫描是用来发现网络上主机开放的端口的方法。任何入侵者的第一个行动通常都是找出网络上在运行一些什么样的服务。一旦入侵者找到了这样的信息,就可以尝试针对相关服务弱点的攻击了。端口扫描预处理器的作用是监测端口扫描的活动,这种预处理器可以将端口扫描行为记录到指定的位置或者标准的日志。黑客们使用很多种扫描方式,你也可以查看nmap的文档来获得更多的信息。下面是在snort.conf中应用端口扫描预处理器的大体格式:preprocessor portscan: 这个预处理器有4个相关

5、的参数所监控的地址范围,采用CIDR规格。在一个时间段内访问的端口数目,例如这个参数取5表示在一个时间段内,如果超过5个端口被扫描,则产生告警。时间段,用来配合上个参数的门限时间范围,用秒表示。记录日志的文件路径。下面是个配置实例,用来监测针对网络192.168.1.0/24的端口扫描,并将日志记录到/var/log/snort/portscan.log文件中。preprocessor portscan: 192.168.1.0/24 5 10 /var/log/snort/portscan.log端口扫描活动是针对TCP和UDP端口的。端口扫描预处理器可以监测正常端口和隐秘端口的扫描。针对隐

6、秘端口的扫描,可以查看nmap的相关文档或网站。端口扫描的主要方法如下:TCP端口连接扫描。这种方式试图对某个端口进行标准的TCP连接,如果连接建立,则表示这个端口是打开的。SYN扫描。入侵者发送一个带有SYN标志的TCP包到某个端口,如果收到了带有SYN和ACK标志的回应,那么这个端口是打开的,如果收到了带有RST标志的包,这个端口就是关闭的。NULL端口扫描,FIN端口扫描,XMAS端口扫描,这是几个比较类似的扫描方式。入侵者发送一个TCP包出去,如果收到带有RST标志的包,表示端口是关闭的,如果什么包也没有收到,就有端口打开的可能性。还有一种预处理器,可以和这种预处理器一同工作,它叫做端

7、口扫描忽略预处理器,用来忽略针对某些主机的扫描行为,用法如下例所示:preprocessor portscan-ignorehosts: 192.168.1.10/32 192.168.1.13/324.1.3 frag2模块这个预处理器用来组装包的分片,老版本的Snort用defrag。应用frag2的时候,你可以配置组装分片的超时和内存上限。默认情况下是4M的内存和60秒的超时界限。如果在这个时间段内没有完成,就把包丢弃。下面的命令用默认参数打开frag2:preprocessor frag2下面的命令将frag2配置为2M的内存上限和30秒的超时。在一个高速的网络中,你应该用更多的内存上

8、限。4.1.4 stream4模块这个模块用来代替老版本的Stream模块,它有两个基本功能:Tcp数据流的组装状态监测为了使Stream4正常工作,你必须在snort.conf中配置两个预处理器,分别是“stream4”和“stream4_reassemble.”它们都有很多的参数,如果你不配置这些参数,系统就会采用默认值。Stream4预处理器的大体格式如下:preprocessor stream4: noinspect, keepstats, timeout , memcap , detect_scan, detect_state下面是关于各个参数的描述和默认值参数表述默认值Noinsp

9、ect关闭状态监测ACTIVEKeepstats将会话概要记录到session.log文件中INACTIVETimeout保持一个活动会话的超时30秒Memcap这个模块利用的最大内存8MBDetect_scan监测端口扫描活动INACTIVEDetect_state_problems监测TCP流相关的各种问题INACTIVE下面是stream4_reassemble预处理器的主要格式:preprocessor stream4_reassemble: clientonly,serveronly,noalerts,ports下面是这个预处理器的主要参数的描述参数表述Clientonly仅仅组装客

10、户端的数据流Severonly仅仅组装服务器端的数据流Noalerts在遇到逃避和嵌入式攻击时不告警Ports组装关于特定端口的数据流的端口列表,用空格分隔,all表示端口21,23,25,53,80,110,111,143和513。指定少数的端口可以节省CPU时间。4.1.5 spade模块SPADE是统计包异常探测引擎的缩写,你可以在要记住SPADE对系统的要求比较高,尤其是在高负荷的网络上,因此要小心使用。4.1.6 ARP欺骗ARP用来获得某个IP地址相关的MAC地址。ARP协议也被很多人用来攻击,探测和欺骗。ARP欺骗可以将到某个主机的通信重定向到别的地方。Arpspoof预处理器用

11、来探测ARP包中的异常,它可以做以下的事情:对于所有的ARP请求,如果源MAC地址与发送者的MAC地址不同,就产生告警。对于APR回应包,如果源MAC地址与发送者的MAC地址不同,或目的MAC地址与接收者的MAC地址不同,就会产生告警。对于单播ARP请求,若目的MAC不是广播地址(FF:FF:FF:FF:FF:FF),就产生告警。为了实现这个功能,你需要在snort.conf中加入这样一行:as “preprocessor arpspoof: -unicast”。你可以在Snort内部缓存中预先存放MAC-IP映射对,如果遇到不匹配,系统就会产生告警。下面的一行添加一个IP-MAC对,可以用来

12、探测ARP欺骗的企图。preprocessor arpspoof_detect_host: 192.168.1.13 34:45:fd:3e:a2:014.2输出模块输出模块用来控制Snort探测引擎的输出,你可以将输出的信息送到各种目标。比如:数据库SMB弹出窗口系统日志XML或者CSV文件。在snort.conf中配置输出模块的命令大体如下所示:output : arguments比如你希望将信息记录到名为snort的MySQL数据库,可以采用如下的配置:output database: log, mysql, user=rr password=rr dbname=snort host=l

13、ocalhost一旦你在配置输出模块加入上面着一行,所有的告警都送到MySQL数据库中,在日志文件中就不会出现了,也有一些方法可以将告警送到不同的目标。下面的例子是将SMB弹出窗口送到workstation.list文件中列举的主机上:output alert_smb: workstation.list有时候你可能需要将告警发到多种目标,那么用ruletype关键字自定义动作时一个好主意。例如,下面豫剧定义了一个动作,将告警同时发送到数据库和SMB弹出窗口。ruletype smb_db_alerttype alertoutput alert_smb: workstation.listoutp

14、ut database: log, mysql, user=rr password=rr dbname=snort host=localhost下面的规则应用了上面的自定义动作。smb_db_alert icmp any any - 192.168.1.0/24 any (fragbits: D; msg: Dont Fragment bit set;)4.2.1 alert_syslog输出模块几乎所有的UNIX系统中都有系统日志守护进程syslog,它的配置文件是/etc/syslog.conf。你可以查看syslogd和syslog.conf的手册来获得更多信息。Alert_syslog

15、模块使你能够将告警发送到系统日志钟。如果你需要的话,系统日志守护进程也可以将告警发送到其他的主机。下面是这个模块的配置格式:output alert_syslog: 其中,facility可以取得值包括: LOG_AUTH LOG_AUTHPRIV LOG_DAEMON LOG_LOCAL0 LOG_LOCAL1 LOG_LOCAL2 LOG_LOCAL3 LOG_LOCAL4 LOG_LOCAL5 LOG_LOCAL6 LOG_LOCAL7 LOG_USERpriority的取值包括: LOG_EMERG LOG_ALERT LOG_CRIT LOG_ERR LOG_WARNING LOG_

16、NOTICE LOG_INFO LOG_DEBUG这里LOG_EMERG是最高优先级的,而LOG_DEBUG是最低优先级的。Options的取值可以是: LOG_CONS LOG_NDELAY LOG_PERROR LOG_PID4.2.2 alert_full输出模块这个模块用来想文件记录详尽的告警信息。下面的配置让系统把日志记录到Snort日志目录的alert_detailed文件中:output alert_full: alert_detailed尽管这个模块可以使你得到详细的信息,但是也会导致系统资源的大量消耗,在一个高负载的网络环境中,可能导致系统来不及响应而使探测引擎忽略一些数据包

17、。4.2.3 alert_fast输出模块如前面所提到的,记录详细的信息可能导致系统资源的过度消耗,因此Snort提供快速记录简要信息的输出模块,每个信息只有一行,这个模块的配置如下所示:output alert_fast: alert_quick4.2.4 alert_smb模块这个模块用linux的SAMBA客户端smbclient程序向Windows工作站发送SMB告警,使用之前确定smbclient程序的路程在PATH环境变量中。下面是一个示例:output alert_smb: workstation.list每个工作站的SMB名称都要分行列在workstation.list文件中。

18、SMB名称就是Windows机器的计算机名称。客户端程序会自己解析这个名称。4.2.5 log_tcpdump模块这个模块用来将告警数据存放为tcpdump格式,这种方法便于高负荷网络中提高分析数据的速度。下面是配置格式:output log_tcpdump: 下面是一个示例:output log_tcpdump: /var/log/snort/snort_tcpdump.log4.2.6 XML输出模块Snort可以用SNML(Simple Network Modeling Language)来输出告警以便基于XML的解释器或浏览器阅读。通过这个插件,你可以将XML数据存放在本地机器上或者通

19、过HTTP及HTTP协议传送到Web服务器上。XML输出模块的基本用法如下:output xml: log | alert, parameter list你可以选择用XML记录告警或者日志,其他的参数如下表所示:参数描述File将数据储存到XML文件中Protocol将信息记录到其他机器上用的协议如HTTP,HTTPS。Host记录信息的远程主机Port记录信息的远程主机的端口CertHttps用到的证书Key客户端私钥Ca认证证书的服务器ServerX.509证书的CN4.2.6.1例子将日志记录到本地主机上的文件“xmlout”:output xml: log, file=xmlout文件

20、名字会添加时间和日期作为后缀,这样的目的是为多个Snort进程服务。将日志记录用HTTP协议到的xmlout文件上:output xml: alert, protocol=http host= file=xmlout将日志记录用HTTPS协议到的xmlout文件上:output xml: alert, protocol=https host= file=xmlout cert=conformix.crt key=conformix.pem ca=ca.crt server=Conformix_server将日志记录到监听5555端口的TCP服务器上:output xml: alert, pro

21、tocol=tcp host= port=5555典型的输出XML文件如下:eth0192.168.1.2ICMP Packet with TTL=1002002-07-23 17:48:31-046162636465666768696A6B6C6D6E6F70717273747576776162636465666768694.2.7记录到数据库Snort可以用数据库来记录日志和告警,你可以用Oracle或MySQL等多种类型的数据库,如下面的例子:output database: log, mysql, user=rr password=rr dbname=snort host=localh

22、ost下一章将详细讨论如何应用数据库,下面是数据库数据模块的格式:output database: , , 这里database_type指的是数据库类型,如mysql,parameter_list是一些相关参数,用空格分隔。其中很多参数是可选的。下面是参数的列表:参数描述Host运行数据库服务器的主机Port数据库服务器的端口号Dbname数据库的名称User数据库的用户名Password用户口令Sensor_nameSnort探测器的名称DetailFull或者fast模式,默认是fullEncoding记录数据的ASCII,hex或者base64的编码4.2.8CSV数据模块利用CSV模

23、块,可以将输出数据保存为CSV文件,可以将数据导入到其他的软件中,如Excel等等。启动CSV模块的语句模式如下:output csv: 文件默认被创建到/var/log/snort路径下面,选项用来定义文件中储存什么样的信息以及以什么样的顺序储存。例如,你用default作为格式选想那么告警的所有参数将被存储在文件中:output csv: csv_log default输出文件的格式如下:07/23-18:24:03.388106 ,ICMP Packet withTTL=100,ICMP,192.168.1.100,192.168.1.2,0:2:3F:33:C6:98,0:E0:29:

24、89:28:59,0x4A,100,0,51367,60,20,8,0,07/23-18:25:51.608106 ,GETmatched,TCP,192.168.1.2,1060,192.168.10.193,0:E0:29:89:28:59,0:6:25:5B:29:ED,0x189,*AP*,0x55BCF404,0x8CBF42DD,0x16D0,64,0,35580,379,20,07/23-18:25:52.008106 ,GETmatched,TCP,192.168.1.2,1061,192.168.10.193,0:E0:29:89:28:59,0:6:25:5B:29:ED,

25、0x1D0,*AP*,0x55628967,0x8D33FB74,0x16D0,64,0,63049,450,20,07/23-18:25:52.478106 ,GETmatched,TCP,192.168.1.2,1061,192.168.10.193,0:E0:29:89:28:59,0:6:25:5B:29:ED,0x1D0,*AP*,0x55628B01,0x8D33FC1B,0x1920,64,0,63051,450,20,07/23-18:25:52.708106 ,GETmatched,TCP,192.168.1.2,1061,192.168.10.193,0:E0:29:89:

26、28:59,0:6:25:5B:29:ED,0x1EF,*AP*,0x55628C9B,0x8D33FCC1,0x1D50,64,0,63053,481,20,每一行包括下面的字段:名称描述Timestamp时间戳包含时间和日期Msg规则中msg字段中的信息Porto协议Src源IP地址Dst目的IP地址Dstport目的端口Ethsrc源MAC地址Ethdst目的MAC地址Ethlen以太网帧长度Tcpflags如果协议为TCP的话,这里就记录标志位TcpseqTcp包的序列号TcpackTcp的应答号TcplenTCP包的长度TcpwindowTCP窗口的大小TtlIP头部的TTL值Tos

27、IP头部的服务类型值Id包的ID值Dgmlen数据报的长度IplenIP头部长度IcmptypeICMP头部的类型段IcmpidICMP头部的IDIcmpseqICMP序列号你可以用少量的选项,例如:output csv: csv_log timestamp,msg,src,dst纪录的日志如下:07/23-19:31:27.128106 ,GET matched,192.168.1.2,192.168.10.19307/23-19:31:27.278106 ,GET matched,192.168.1.2,192.168.10.1934.2.9统一纪录输出模块同意输出适合告诉纪录,你可以将日志和告警存放不同的文件中,下面是配置格式:output alert_unified: filename , limit output

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1