snort规则管理整体框架

简介

    通过前面多篇文章的总结以snort读取规则文件搭建结构为切入点; 对snort提取规则中的数据搭,建后续处理结构的结构的过程进行了分析,这里总结前面的经验以图示的方式说明snort规则管理的总体结构。

规则格式如下所示,这是在snort配置手册里选取的规则条目。

  1. 每条规则的最前方,如alert标识动作(这里讨论较普遍的条目)

  2. 每条规则包含规则选项和规则头部,即 规则 = 规则头 + 规则选项

  3.  在 '(' ')'中的部分称为规则选项,规则选项中的条目采用键值对的方式表述,规则选项中的键值对较多但值的表示方式都较为简单。

  4. 除规则选项以外的部分称为规则头部,规则头包含动作, 源地址,源端口, 报文方向, 目地地址,目地端口,规则头部的属性较少,但地址和端口的值的表示方式较为复杂。 

alert tcp any any -> any 21 (msg:"Telnet NOP"; content:"|FF F1|"; rawbytes; sid: 2)

结构分析

规则头部管理

      snort的动作种类较少,因此snort中使用动作作为管理的顶层链表,顶层链表中每个节点代表一个动作。同时该节点又是规则头部的头节点。

        这里将snort中的规则头部简称RTN,如图所示,规则头部的动作相同的单元都放在对应动作的管理链表中。

snort规则管理整体框架_第1张图片

规则选项管理

    如下图所示,我们将规则选项简称为OTN;每个RTN持有RuleFpList和OTN链表,前者是使用RTN中属性触发进行二次处理的回调函数,后者是规则选项集合。

snort规则管理整体框架_第2张图片

规则选项

    如下图所示,每个规则选项又持有OptFpList链表,该链表中存放的主要是对匹配规则选项处理时的一些通用回调函数,其是由解析规则选项的键值对时选择性的初始化并放入OTN中的.

snort规则管理整体框架_第3张图片

相关文章

  1. http://my.oschina.net/u/572632/blog/289961

  2. http://my.oschina.net/u/572632/blog/289894

你可能感兴趣的:(snort,规则管理)