10.2. 全局阈值

可以在规则本身中配置阈值,请参见 阈值关键字 .它们通常是由规则编写者根据其创建规则的智能以及对规则警报频率的判断来设置的。

10.2.1. 阈值配置

在规则阈值旁边,可以使用threshold.config在传感器上配置更多阈值。

10.2.1.1. threshold/event_filter

Syntax:

threshold gen_id <gid>, sig_id <sid>, type <threshold|limit|both>, \
  track <by_src|by_dst|by_rule|by_both>, count <N>, seconds <T>

10.2.1.2. rate_filter

速率筛选器允许在规则匹配时更改规则操作。

语法::

rate_filter: rate_filter gen_id <gid>, sig_id <sid>, track <tracker>, \
  count <c>, seconds <s>, new_action <action>, timeout <timeout>

例子::

rate_filter gen_id 1, sig_id 1000, track by_rule, count 100, seconds 60, \
  new_action alert, timeout 30

10.2.1.2.1. gen_id

生成器ID。通常为1,但如果规则使用 gid 关键字设置另一个值,它必须在 gen_id .

10.2.1.2.2. sig_id

由规则设置的规则/签名ID sid 关键字。

10.2.1.2.3. 轨道

跟踪规则匹配的位置。当使用“SRC/BY”DST时,跟踪是按IP地址进行的。主机表用于存储。当使用“规则”时,它是为规则全局完成的。选项,用于跟踪源和目标的每个IP对。在同一对被跟踪的相同地址之间向相反方向的数据包。

10.2.1.2.4. 计数

规则命中数 rate_filter 被激活。

10.2.1.2.5.

时间段 count 需要联系才能激活 rate_filter

10.2.1.2.6. new_action

应用于匹配流量的新操作 rate_filter 到位。

值::

<alert|drop|pass|reject>

注意:解析器支持“sdrop”和“log”,但不以其他方式实现。

10.2.1.2.7. 超时

以秒为单位的时间 rate_filter 将保持活动状态。

10.2.1.2.8. 例子

假设我们希望限制到SSH服务器的传入连接。规则 888 下面简单地警告到我们的ssh服务器的ssh端口的syn包。如果一个IP地址在一分钟内触发超过10个,则 rate_filter 设置为超时5分钟。

规则::

alert tcp any any -> $MY_SSH_SERVER 22 (msg:"Connection to SSH server"; \
  flow:to_server; flags:S,12; sid:888;)

速率筛选器:

rate_filter gen_id 1, sig_id 888, track by_src, count 10, seconds 60, \
  new_action drop, timeout 300

10.2.1.3. 抑制

禁止显示可用于禁止规则或主机/网络的警报。当规则匹配时执行的操作(如设置流位)仍将执行。

Syntax:

suppress gen_id <gid>, sig_id <sid>
suppress gen_id <gid>, sig_id <sid>, track <by_src|by_dst|by_either>, ip <ip|subnet|addressvar>

实例:

suppress gen_id 1, sig_id 2002087, track by_src, ip 209.132.180.67

这将确保签名2002087永远不会与SRC主机209.132.180.67匹配。

其他可能性/示例:

suppress gen_id 1, sig_id 2003614, track by_src, ip 217.110.97.128/25
suppress gen_id 1, sig_id 2003614, track by_src, ip [192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]
suppress gen_id 1, sig_id 2003614, track by_src, ip $HOME_NET
suppress gen_id 1, sig_id 2003614, track by_either, ip 217.110.97.128/25

在上面的最后一个示例中, by_either 跟踪意味着如果 source ipdestination ip 比赛 217.110.97.128/25 禁用sid 2003614规则。

10.2.2. 全局阈值与规则阈值

注:本节适用于1.3中的1.4+,不支持混合规则和全局阈值。

当规则具有阈值/检测筛选器集时,规则仍可能受全局阈值文件的影响。

只有在60秒内从主机发送/发送10封或更多电子邮件时,才会触发下面的规则。

alert tcp any any -> any 25 (msg:"ET POLICY Inbound Frequent Emails - Possible Spambot Inbound"; \
     flow:established; content:"mail from|3a|"; nocase;                                          \
     threshold: type threshold, track by_src, count 10, seconds 60;                              \
     reference:url,doc.emergingthreats.net/2002087; classtype:misc-activity; sid:2002087; rev:10;)

接下来,我们将看到全局设置如何影响此规则。

10.2.2.1. 抑制

禁止显示可以与具有阈值/检测过滤器的规则结合使用,没有例外。

suppress gen_id 1, sig_id 2002087, track by_src, ip 209.132.180.67
suppress gen_id 0, sig_id 0, track by_src, ip 209.132.180.67
suppress gen_id 1, sig_id 0, track by_src, ip 209.132.180.67

以上每项规则都将确保2002087在邮件来源为209.132.180.67时不会发出警报。它 will 对所有其他主机发出警报。

suppress gen_id 1, sig_id 2002087

这种抑制只会将规则转换为“noalert”,这意味着它在任何情况下都不会发出警报。如果规则设置了一个流位,这仍然会发生。

10.2.2.2. Threshold/event_filter

当应用于特定签名时,阈值和事件过滤器(从现在起的阈值)将覆盖签名设置。这对于签名中的默认值不适合您的环境时很有用。

threshold gen_id 1, sig_id 2002087, type both, track by_src, count 3, seconds 5
threshold gen_id 1, sig_id 2002087, type threshold, track by_src, count 10, seconds 60
threshold gen_id 1, sig_id 2002087, type limit, track by_src, count 1, seconds 15

每一项都将用新的阈值设置替换2002087的阈值设置。

注: 不支持覆盖所有gid或sid(使用gen_id 0或sig_id 0)。bug https://redmine.openinfosecfoundation.org/issues/425

10.2.2.3. Rate_filter

请参阅https://redmine.openinfosecfoundation.org/issues/425。