Suricata 访问 SMB 共享的规则?

问题描述 投票:0回答:1

我大约一周前开始与 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 。有人可以帮忙吗?我们将不胜感激。

detection rules smb suricata
1个回答
1
投票

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

  • 我想说你不需要规则签名中的
    app-layer-event
    字段。更重要的是,以防 SMB 应用层检测协议引发某些特定事件(参见 [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
cf. [4]).

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

来源:

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

2:向 Suricata 文档添加 SMB 检测关键字的开放票证: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

© www.soinside.com 2019 - 2024. All rights reserved.