detection - 访问 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-verify 工具有一个使用示例的测试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-verify 中的 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
推荐阅读
- postgresql - Postgresql:选择表名作为内容存储在另一个表中的表
- google-custom-search - 使用谷歌自定义搜索引擎下载图片
- html - 基于行宽而不是项目宽度的 CSS 网格中心(对齐)项目
- r - R foreach 函数在并行执行时失败
- vue.js - 如何在运行时用 Element-UI 按钮替换 VueJS 中的某些选定文本?
- c++ - 如何使用openCv找到矩阵的奇异值之和
- netlogo - 蛇游戏:如何根据吃的食物量增加蛇身的长度?
- recursion - SalesPath - 计算最便宜的路径
- arrays - forEach 如何将多数据保存到 MondoDB
- jquery - 输入字段为空时禁用添加按钮