snort规则管理总体框架

简介

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

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

  1. 每条规则的最前方,如alert标识动做(这里讨论较广泛的条目)tcp

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

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

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

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

结构分析

规则头部管理

      snort的动做种类较少,所以snort中使用动做做为管理的顶层链表,顶层链表中每一个节点表明一个动做。同时该节点又是规则头部的头节点。
code

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

规则选项管理

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

规则选项

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

相关文章

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

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

相关文章
相关标签/搜索