suricata规则阈值设置

suricata对规则的阈值分为规则上的阈值和全局阈值,全局阈值覆盖规则上的阈值
但是按照使用的情况来说比较坑
1.规则上的阈值
格式:
threshold: type <threshold|limit|both>, track <by_src|by_dst>, count , seconds

type <threshold|limit|both>
threshold:在seconds秒内,达到count,就产生告警
limit:在seconds秒内最多只能报count次
both:在seconds秒内达到count次后产生一次告警,并且在seconds秒只会产生一次告警

track <by_src|by_dst>
坑的地方,下面讲

by_src:表示同一源
by_dst:表示同一目的

例如有规则:

alert tcp any any -> $MY_SSH_SERVER 22 (msg:"Connection to SSH server"; \
  threshold: type threshold, track by_src, count 10, seconds 60,flow:to_server; flags:S,12; sid:888;)

这条规则的意思是说当同一源在1分钟内有5次ssh,就会产生告警
但是当例如有:
192.168.1.12 ->192.168.1.5 ssh链接3次然后紧跟
192.168.1.12 ->192.168.1.6 ssh 链接2次
这会触发上述规则,但是在告警中的目的主机只有192.168.1.6,而没有192.168.1.5

2.全局阈值告警
有3种,可以写在threshold.conf文件中,然后在suricata.yaml文件中开启,全局阈值会覆盖规则阈值
(1)threshold/event_filter,这两个相同,和规则阈值一样

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

表示给sid:2002087这条规则填上(或者是覆盖)上阈值,如果sig_id 0,则表示对所有规则有效

threshold gen_id 1, sig_id 2002087, type both, track by_src, count 3, seconds 5

(2)rate_filter,改变规则中的action动作
规则中的动作有pass,drop,pass,reject,

rate_filter: rate_filter gen_id <gid>, sig_id <sid>, track <by_src|by_dst|by_rule|by_both>, \
  count <c>, seconds <s>, new_action <alert|drop|pass|reject>, timeout <timeout>

(3)suppress,过滤到匹配上的IP白名单

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
  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值