访问SMB共享的Suricata规则



我大约一周前开始与Suricata合作,到目前为止一切都非常顺利。然而,我现在正试图编写自己的规则,并试图想出一个简单的规则,每当任何IP地址试图访问我的SMB共享时,都会发出警报。

看看其他SMB规则是如何编写的,我发现这个

alert smb any any -> any any (msg:"SURICATA SMB internal parser error"; flow:to_client; app-layer-event:smb.internal_error; classtype:protocol-command-decode; sid:2225001; rev:1;)

按照这个模式,我的规则应该是这样的:

alert smb any any -> any any (msg:"Attempt to gain access to SMB Share"; flow:to_server; app-layer-event:smb.???; classtype:protocol-command-decode; sid:1234567; rev:1)

然而,我无法弄清楚(或找到任何关于)要设置哪个app_layer_event的信息。这里有人能帮忙吗?我们将不胜感激。

希望你已经找到了答案,但对于任何可能来这里寻找答案的人。。。

  • 我想说,规则签名中不需要app-layer-event字段。在SBM应用层检测协议抛出某些特定事件的情况下更是如此(参见[1])
  • 我们的文档缺少关于SMB关键字的部分(参见[2]),但我们的Suricata验证工具有一个关于smb.share使用示例的测试[3]
alert smb any any -> any any (smb.share; content:"|5C 5C|10.0.0.12|5C|smb2"; sid:2;)

该内容字符串表示smb.share: "\\10.0.0.12\smb2"。如果你查看其他Suricata Verify测试,你会发现smb.share内容的其他示例:

tests/smb2-05/test.yaml:22:        smb.share: "\\admin-pc\c$"
tests/smb2-05/test.yaml:87:        smb.share: "\\admin-pc\c$"
tests/smb2-07/test.yaml:69:        smb.share: "\\dc1\ADMIN$"
tests/smb3-01/test.yaml:27:        smb.share: "\\WS2016\encrypted"

要了解如何将这些示例转换为您在上述规则中看到的内容,可以查看文档中的Payload关键字,如content(参见[4])。

最后但并非最不重要的是,Suricata社区论坛更有可能为您提供及时的答案,因为我们不仅有活跃的社区成员,而且OISF团队成员通常也在身边:https://forum.suricata.io.

来源:

1:应用层事件关键字:https://suricata.readthedocs.io/en/latest/rules/app-layer.html#app-分层事件

2:打开将SMB检测关键字添加到Suricata文档的票证:https://redmine.openinfosecfoundation.org/issues/3030

3:Suricata中的SMB规则使用smb.share进行验证:https://github.com/OISF/suricata-verify/blob/master/tests/smb2-03-rule/filedata.rules

4:Suricata规则-有效负载关键字-内容:https://suricata.readthedocs.io/en/latest/rules/payload-keywords.html#content

最新更新