背景:记录201909-202009期间对开源网络威胁检测引擎suricata的一些理解
Suricata
Suricata是一个免费和开源,成熟,快速且强大的网络威胁检测引擎。
Suricata引擎能够进行实时入侵检测(IDS),内联入侵防御(IPS),网络安全监视(NSM)和脱机pcap处理。
Suricata使用强大而广泛的规则和签名语言来检查网络流量,并具有强大的Lua脚本支持来检测复杂的威胁。
通过YAML和JSON之类的标准输入和输出格式,与现有SIEM,Splunk,Logstash / Elasticsearch,Kibana和其他数据库之类的工具的集成变得轻松。
Suricata快速社区驱动的开发专注于安全性,可用性和效率。
Suricata项目和代码由开放信息安全基金会(OISF)拥有并提供支持,该组织是一个非营利性基金会,致力于确保Suricata作为一个开源项目的发展和持续成功。
from: https://suricata-ids.org
开源IDS
Snort
Suricata
Bro (Zeek)
OSSEC
Samhain Labs
OpenDLP
如下文章对比了一些开源IDS项目的特性
from: https://cybersecurity.att.com/blogs/security-essentials/open-source-intrusion-detection-tools-a-quick-overview
对Suricata优势总结如下:
- 较为完善的多线程处理模型
- 支持多种流量获取方式易扩展
- 支持多种日志输出形式易扩展
- 支持单边流量解析
- 支持部分隧道协议的解析
- 支持部分常见应用协议的特征识别
- 支持部分常见应用协议的文件提取
- 兼容snort规则并有扩展
- 稳定性优秀、社区活跃
计划内要分析的Suricata特性
- 整体框架分析
- 线程模型分析
- 数据流程分析
- 流量获取框架分析
- 流管理分析
- TCP/UDP Session/Segment/Stream分析
- 协议解析框架分析
- 规则匹配框架分析(优先级低)
- 文件提取框架分析
- 日志输出框架分析
- 隧道协议实现分析