关于Suricata规则书写的一些总结
起因
因为项目时间比较紧,加上前面摸🐟了呜呜,导致昨天得熬夜现学现编写Suricata规则,故写此篇文章对Suricata稍作总结;但毕竟学的时间以及看的论文较短,更多的是给初学者提供一个方法和学习途径,准确性的话呢...嘿嘿,有待商榷吧蛤蛤蛤!
参考材料:Suricata用户指南
参考CSDN:Suricata规则编写——HTTP关键字
学习方法
昨晚前半部分我是直接对着WireShark抓的包直接通过流追踪的方式找规律,也不是很懂应该怎样做,因而花了大量时间做规则却费力不讨好;正确的打开方式应该是,先前往参考材料里面的《Suricata用户指南》,把比较常用的报文格式(如TCP,UDP,HTTP,ICMP...)的Suricata规则书写关键词看完,边看边整理响应content的修饰词,这样以后做规则书写会轻松很多;
常用步骤如下:
1)用WireShark观察pcap内具体的流报文形式(如是GET、POST的HTTP呢?亦或是其他的请求?);
2)前往《Suricata用户指南》,先看一遍对应关键词常用的修饰符以及使用方法;
3)回到.rules内开始书写规则;
Suricata规则格式
alert "protocol" $EXTERNAL_NET "src_port" -> $HOME_NET ("des_port")
(msg: "漏洞名称, CVE , CVSS: 评分"); content:"特征"; nocase; reference: url,http://xxx.html; sid: "行号"; rev: 1; )
"protocol":协议
"src_port":源端口
"des_port":目的端口
HTTP修饰词整理
- http_method (GET)
- http_uri (/index.html)
- urilen (请求URL的大小)
- http.header (请求头部分,/HTTP1.1之后的“HOST”)
- http.cookie ()
- http.user_agent ("User-Agent: Mozilla/5.0")
- http.request_body ("type=playerStart&position=tidal")
- http.stat_code ("HTTP/1.0 302")
- http.stat_msg("HTTP/1.0 302 Found")
- http.response_line (检查整个响应行"HTTP/1.0 302 Found")
- http.response_body

浙公网安备 33010602011771号