FreeBuf|Suricata工控规则研究


Suricata是一款免费开源的网络威胁检测工具 。 主要用于实时入侵检测(IDS) , 嵌入式入侵防御(IPS)和网络安全监控(NSM)等 。 因工作需要 , 我也准备来盘一下 , 准备部署检测一下工控这块的流量 , 同时也添加一些工控规则来提高检测效率 。
Suricata介绍:虽然Suricata作为一款免费开源的安全工具 , 但是它得到了众多企业的认可 , 很多都在部署和使用它 。 这代表Suricata是成熟的 , 功能完善 , 实用性强的安全工具 。 Suricata是一款高性能网络入侵检测防御引擎 。 该引擎基于多线程 , 充分利用多核优势 。 它支持多种协议 , 如:ip4、ipv6、tcp、udp、http、smtp、pop3、imap、ftp等 。 可动态加载预设规则 , 支持多种文件格式统计数据输出 , 如pcap、json、unified2等 , 非常便于与Barnyard2等工具集成 。
suricata所有版本:https://openinfosecfoundation.org/download/
FreeBuf|Suricata工控规则研究
本文插图

Suricata架构:有三种运行模式 , 分别为single , workers , autofp 。 官方推荐性能最佳的运行模式为workers模式 。 single模式:只有一个包处理线程 , 一般在开发模式下使用 。
workers模式:多个包处理线程 , 每个线程包含完整的处理逻辑 。
autofp模式:有多个包捕获线程 , 多个包处理线程 。 一般适用于nfqueue场景 , 从多个queue中消费流量来处理 。
报文检测系统通常包含四大部分 , 报文获取、报文解码、报文检测、日志记录;Suricata不同的功能安装模块划分 , 一个模块的输出是另一个模块的输入 , Suricata通过线程将模块串联起来 , 如下图所示:
FreeBuf|Suricata工控规则研究
本文插图

Suricata部署**:**安装步骤 , 以Ubuntu1804版本为例 , 可以使用官方的PPA进行安装:
sudoadd-apt-repository ppa:oisf/suricata-stable sudo apt update sudo apt1、更新规则:
suricata-update2、测试suricata正常运行:
suricata-T3、启动运行:
suricata-i ens33 -c /etc/suricata/suricata.yaml配置解读:
cd 到suricata配置文件目录:cd /etc/suricata/, 我们会查看到如下4个配置文件 classification.config/reference.config/suricata.yaml/threshold.config 和一个rules文件夹 。
suricata.yaml:是Suricata默认的配置文件 , 以硬编码的形式写在源代码中,里面定义了几乎关于Suricata的所有运行内容 , 包括运行模式、抓包的数量和大小、签名和规则的属性和日志告警输出等等 。
classification.config:定义了各种流量攻击类型和优先级 , 类似拒绝服务攻击和web应用攻击等 , 如下图所示:
FreeBuf|Suricata工控规则研究
本文插图

reference.config:记录一些安全网站 , 漏洞平台的网址 , 或者是自己可以自定义的url , 是参考的意思 , 用来联系外部的恶意攻击检测网站中关于此类攻击的页面 。
threshold.config:threshold(阈值)关键字可用于控制规则的警报频率 , 可用于在规则生成警报之前为其设置最小阈值.
rules文件夹:存放不同种类的规则 , 规则用来判定流量攻击类型 , 并定义攻击类型和告警种类 , 可以存放自带的规则 , 也可以自己按规则语法编写 , 如下图所示:
FreeBuf|Suricata工控规则研究
本文插图

规则详解**:**
接下来我们主要讲Suricata的规则 , 这是检测工具的灵魂 , 同样的产品 , 别人的好用 , 拦截率准确率高 , 误报率低 , 那就是人家规则写得好 。 Suricata的规则书写参考snort规则(suricata完全兼容snort规则) , 下面我就来简单介绍下规则的每段含义 , 因为主要是讲工控规则 , 所以我取一条工控规则来说 , 规则如下:


推荐阅读