FreeBuf|Suricata工控规则研究( 二 )
alert modbus any any -> any any (msg:"SURICATA Modbus Request flood detected"; flow:to_server;app-layer-event:modbus.flooded; classtype:protocol-command-decode; sid:2250009; rev:2;)
alert:默认顺序为:pass , drop , reject , alert , 跳过、丢弃、拒绝、警告四种类型的动作
Modbus:注明协议种类 , UDP/ICMP等
Any:源地址/目的地址(IP)
Any:源端口/目的端口
->:方向 , 单向流量;<>双向流量
Any:源地址/目的地址(IP)
Any:源端口/目的端口
msg:”SURICATA Modbus Request flood detected”:关键字msg提供对触发警报的有关签名/规则相关文本提示信息
flow:to_server:客户端到服务器
app-layer-event:modbus.flooded:具体攻击内容
classtype:protocol-command-decode:提供有关规则和警报分类的信息 , 由classification.config文件定义 。
sid:2250009:用于唯一性规则标识 , sid不能重复
rev:2:规则版本号 , 每次修改规则rev则递增1
工控规则编写:
Suricata现在主要是et/open 规则 , 这是系统自带的规则 , 目前开源免费的就是et/open、pt规则、sslbl规则 , 其余的需要授权码才能更新 。 推荐给大家一个补充规则的链接 , https://github.com/ptresearch/AttackDetection 的开源规则 , 里面包含了近几年常见cve漏洞的检测 , 大家可以酌情使用 。
其实自己规则编写也不难 , 上面介绍了规则每部分的含义 , 最好写的是包含content的规则 , 例如我们知道modbus的停启功能码是40,41 , 我们可以在规则里编写content: “|00 00 00 00 33 41 ff 00|”来匹配;如果是应用层的流量攻击 , 就可以写成 app-layer-event:dnp3.flooded/app-layer-event:modbus.invalid_length等 。 一般在工控规则中 , 最常见的应用层的检测和对功能码的检测 , 截取关键的功能码配合偏移位置(offset)和结束位置来匹配(depth),如下图所示:
我参考了之前大佬写的Suricata(Snort)工控方面的规则 , 如下图所示 , 这是关于西门子S7的规则 , 主要用来检测关于Nmap通过扫描102端口开启来寻找PLC的流量:
本文插图
里面还包含了对现有modbus、enip和dnp3规则补充 , 建议有兴趣的朋友可以去看下:
链接奉上:https://github.com/digitalbond/Quickdraw-Snort
模拟流量攻击**:**
分析和编写了Suricata的规则 , 下面就进行实际的流量测试 , 不过在测试之前 , 对suricata.yaml 配置文件还要做小小的修改 , 因为我是对Modbus PLC设备进行攻击的时候抓取流量包 , 然后保存下来放到Suricata里面回放 , 所以要将下图中的pcap-file改成yes:
本文插图
虽然规则里包含了Modbus的规则 , 但是默认是不开启的 , 所以我们在suricata.yaml里面找到Modbus这块 , 改成yes:
本文插图
【FreeBuf|Suricata工控规则研究】
接着我通过修改抓取到Modbus PLC之间的通信的Session id , 然后带上Session id对数据包进行长度和非法字符串的修改 , 再通过python脚本发送给PLC , 同时用wireshark来抓取 , 以此来获取我们需要的数据包 。 我把数据包放入服务器中后 , 通过执行suricata -r modbus.pcap , 对数据包进行回放 , 然后导出json格式的日志进行查看 , 如下图所示 , 显示alert并且显示唯一的SID号 , 可以去rules里面找到对应命中的是哪条规则:
推荐阅读
- FreeBuf|“黑球”攻击仍在行动:从检测杀软到安装挖矿
- FreeBuf|管中窥豹之工控设备解密
- FreeBuf|工控渗透框架:PLC密码检测
- 砍柴网|木链科技构建”三位一体安全体系“,护航工控安全
- 互联网|第四期携手立思辰——“工控安全风险解析”圆满举办
- 设备|什么是工控机?有哪些特点?
- XINHUIKE|什么是工控机?有哪些特点?
- FreeBuf|谷歌副总裁宣布退出Black Hat,称“黑帽”涉嫌种族歧视
- FreeBuf|安全研究:2019年流行的开源项目漏洞数量翻了一倍
- FreeBuf|DEDECMS伪随机漏洞分析