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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

与处理器和输出模块是Snort体系中两个重要的部分,预处理器在Snort应用规则前处理接收到的数据。输出模块输出Snort探测机制所产生的数据。数据包通过Snort的流程图如图4-1所示。被捕获的数据包首先经过预处理器,然后,经过探测引擎根据规则处理。根据规则处理的结果,输出处理器处理日志或者告警。

Snort允许你对预处理器和输出模块进行配置,这些工作可以通过修改snort.conf来完成。在本书中,输入插件和预处理器是同一概念,输出插件和输出模块也是同一概念。本章将对这些组件进行讨论。

4.1预处理器

当Snort接收到数据包的时候,主探测引擎并不能对它们进行处理和应用规则,比如,数据包有可能是分片的,需要重新组装,预处理器就是做这样的工作,使数据能够被探测引擎处理,另外,一些预处理器还可以做一些其它工作,比如探测包中的一些明显错误。下面给你介绍预处理器如何工作。

在安装过程中,你可以在编译的时候选择对各种预处理器的支持。各种预处理器的配置参数在snort.conf中调整,你可以在通过这个文件打开或者关闭某个预处理器。

捕获的包要经过所有已经打开的预处理器,不能跳过,因此如果你如果打开了大量的预处理器,就会降低Snort的运行速度。

在snort.conf中,你可以用preprocessor关键字打开预处理器,格式如下:

preprocessor [: parameters]

后面的参数通常是可选项。

你也可以编写自己的预处理器,察看Snort源代码doc目录中的README.PLUGIN文件,你可以获得相关的资料,也可以在templates目录中查看源代码示例。

4.1.1HTTP解码

Snort可以对HTTP协议各种形式的编码进行解码,并从中找出已知的攻击特征。你可以将HTTP服务器的端口列表作为HTTP解码预处理器的参数。例如下面的命令可以对在80,8080和443端口的HTTP相关数据包进行解码,以便探测引擎处理:

preprocessor http_decode: 80 8080 443

尤其重要的是,如我们前面所提到的,关于HTTP的攻击也常用各种变换形式,如果应用HTTP 解码预处理器,就可以更有效的探测到这些企图。

4.1.2端口扫描

端口扫描是用来发现网络上主机开放的端口的方法。任何入侵者的第一个行动通常都是找出网络上在运行一些什么样的服务。一旦入侵者找到了这样的信息,就可以尝试针对相关服务弱点的攻击了。端口扫描预处理器的作用是监测端口扫描的活动,这种预处理器可以将端口扫描行为记录到指定的位置或者标准的日志。黑客们使用很多种扫描方式,你也可以查看nmap的文档来获得更多的信息。

下面是在snort.conf中应用端口扫描预处理器的大体格式:

preprocessor portscan:

相关文档
最新文档