6.10. 预筛选关键字¶
6.10.1. fast_pattern¶
多模式匹配器(MPM)中只使用签名的一个内容。如果有多个内容,那么Suricata使用“最强”的内容。这意味着长度、内容的变化程度以及它所查找的缓冲区的组合。一般来说,时间越长,变化越大越好。有关Suricata如何确定快速模式匹配的完整详细信息,请参阅 苏里塔快速模式确定解释 .
有时签名作者会得出结论,他希望Suricata使用其他内容,而不是默认的内容。
例如::
User-agent: Mozilla/5.0 Badness;
content:"User-Agent|3A|";
content:"Badness"; distance:0;
在本例中,您看到第一个内容比第二个内容更长,而且变化更大,因此您知道Suricata将使用此内容进行MPM。由于“用户代理”:将是一个非常频繁的匹配,“坏”在网络流量中出现的频率较低,您可以使用“快速”模式使Suricata使用第二个内容。
content:"User-Agent|3A|";
content:"Badness"; distance:0; fast_pattern;
关键字fast_pattern修改它前面的内容。

Fast模式还可以与前面提到的所有关键字和所有提到的HTTP修饰符组合在一起。
6.10.1.2. 快速模式:仅¶
有时签名只包含一个内容。在这种情况下,无需在MPM中找到匹配项后,SURICTA将进一步检查。如果只有一个内容,则整个签名匹配。苏里塔会自动注意到这一点。在某些签名中,这仍然用“fast_pattern:only;”表示。虽然Suricata不需要快速模式:但它确实支持快速模式。
6.10.1.3. 快速模式:“切碎”¶
如果你不想让MPM使用整个内容,你可以使用快速模式'chop'。
例如::
content: "aaaaaaaaabc"; fast_pattern:8,4;
这样,MPM只使用最后四个字符。
6.10.2. 预滤器¶
其他非MPM关键字的预筛选引擎可以通过使用“prefilter”关键字在特定规则中启用。
在以下规则中,TTL测试将用于预筛选,而不是单字节模式:
alert ip any any -> any any (ttl:123; prefilter; content:"a"; sid:1;)
有关如何配置预滤器引擎的详细信息,请参阅 预滤器发动机