Suricata快速模式(fast_pattern)确定解释

如果在规则中明确设置了’fast_pattern’关键字,Suricata将使用它作为快速模式匹配。fast_pattern关键字只能按规则设置一次。如果未设置“fast_pattern”,Suricata会自动确定要用作快速模式匹配的内容。以下说明Suricata用于自动确定要使用的快速模式匹配的逻辑。(请注意,如果存在正(即非否定)内容匹配,则忽略否定内容匹配以进行快速模式确定。否则,考虑否定的内容匹配)

fast_pattern选择标准如下:

1.Suricata首先识别签名中使用的具有最高“优先级”的所有内容匹配。优先级基于匹配的缓冲区,通常“http_ *”缓冲区具有更高的优先级(较低的数字是较高的优先级)。有关哪些缓冲区具有优先级的详细信息,请参见 附录B.

2.在步骤1中识别的内容匹配(最高优先级内容匹配)内,最长(就字符/字节长度而言)内容匹配被用作快速模式匹配。

3.如果多个内容匹配具有相同的最高优先级并且有资格获得最长长度,则具有最高字符/字节多样性分数(“模式强度”)的那个匹配用作快速模式匹配。

4.如果多个内容匹配具有相同的最高优先级,符合最长长度和相同的最高模式强度,则最后注册的缓冲区(“list_id”)用作快速模式匹配。有关不同缓冲区/列表的注册顺序,请参阅附录B.

5.如果多个内容匹配具有相同的最高优先级,则有资格获得最长的长度,相同的最高模式强度,并且具有相同的list_id(即查看相同的缓冲区),然后是首先出现的(从左到右) )在规则中用作快速模式匹配。

值得注意的是,对于具有相同优先级,长度和模式强度的内容匹配,‘http_stat_msg’,'http_stat_code’和’http_method’优先于常规’内容’匹配。

fast_pattern:only

有时签名只包含一个内容。在这种情况下,没有必要Suricata将在MPM中找到匹配后进一步检查。如果只有一个内容,则整个签名匹配。Suricata会自动注意到这一点。在某些签名中,仍然用’fast_pattern:only;'表示。

附录

附录A - Suricata 1.3.4的缓冲区,list_id值和注册顺序.对于Suricata 1.1.x - 1.4.x基本相同.
suricata规则学习记录
附录B - Suricata 2.0.7的缓冲区,list_id值,优先级和注册顺序。对于Suricata 2.0.x, 基本相同。
suricata规则学习记录

相关文章: