调整 Snort 规则:社区 SIP TCP/IP 消息泛洪定向到 SIP 代理

调整 Snort 规则:社区 SIP TCP/IP 消息泛洪定向到 SIP 代理

这是 Snort 中的一个常见问题,但我不确定为什么会触发该规则。

下面的规则来自 Debian 存储库。显然,该规则设计为在端口 5060 上有超过 300 次点击时触发,并且如果这种情况持续发生,则每 60 秒仅发出一次警报。

/etc/snort/rules/community-sip.rules(添加了空格,删除了其他规则):

...
alert ip any any -> any 5060 (
  msg:"COMMUNITY SIP TCP/IP message flooding directed to SIP proxy";
  threshold: type both, track by_src, count 300, seconds 60;
  classtype:attempted-dos;
  sid:100000160;
  rev:2;
)
...

http://manual.snort.org/node35.html

但该规则似乎触发了与端口 5060 完全无关的内容。例如,这是一个警报:

例如,

[**] [1:100000160:2] COMMUNITY SIP TCP/IP message flooding directed to SIP proxy [**]
[Classification: Attempted Denial of Service] [Priority: 2] 
08/06-12:19:07.399163 1.2.3.4:61253 -> 5.6.7.8:22
TCP TTL:55 TOS:0x10 ID:59727 IpLen:20 DgmLen:52 DF
***A**** Seq: 0xE2B759E9  Ack: 0xB01D0B90  Win: 0xFFFF  TcpLen: 32
TCP Options (3) => NOP NOP TS: 129954676 287277196 

一些谷歌搜索显示人们说“这是一个糟糕的规则”,但我不明白为什么。

答案1

我想我明白了。在 snort.org 的文档中,我找不到有关“警报 IP”和端口号的信息。

下面说明这是编写 Snort 规则时常见的错误:

http://leonward.wordpress.com/2009/06/07/dumbpig-automated-checking-for-snort-rulesets/

我通过复制规则、指定 TCP 和 UDP 并更改规则 SID 来修复此问题。我对 community-sip.rules 文件中的多个规则重复了此操作。

例如,

alert tcp any any -> any 5060 (msg:"COMMUNITY SIP TCP/IP message flooding directed to SIP proxy"; threshold: type both, track by_src, count 300, seconds 60; classtype:attempted-dos; sid:900000160; rev:2;)
alert udp any any -> any 5060 (msg:"COMMUNITY SIP TCP/IP message flooding directed to SIP proxy"; threshold: type both, track by_src, count 300, seconds 60; classtype:attempted-dos; sid:910000160; rev:2;)

现在警报很安静。当我测试某些测试规则(计数较低)时,它们会正确触发。

相关内容