关于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
posted @ 2021-09-03 20:16  小火汁的传奇人生  阅读(603)  评论(0)    收藏  举报