1.简介
Suricata是一个免费、开源、成熟、快速、健壮的网络威胁检测引擎。Suricata引擎能够进行实时入侵检测(IDS)、内联入侵预防(IPS)、网络安全监控(NSM)和离线pcap处理。Suricata使用强大而广泛的规则和签名语言来检查网络流量,并提供强大的Lua脚本支持来检测复杂的威胁。使用标准的输入和输出格式(如YAML和JSON),使用现有的SIEMs、Splunk、Logstash/Elasticsearch、Kibana和其他数据库等工具进行集成将变得非常简单。Suricata项目和代码由开放信息安全基金会(OISF)拥有和支持,OISF是一个非盈利基金会,致力于确保Suricata作为一个开源项目的开发和持续成功。
2.特性
(1)IDS/IPS
Suricata实现了一个完整的签名语言来匹配已知的威胁、策略违反和恶意行为。Suricata还将检测它所检测的流量中的许多异常。Suricata能够使用专门的新兴威胁Suricata规则集(https://www.proofpoint.com/us/products/et-intelligence)和VRT规则集(https://snort.org/talos)。
(2)高性能
一个Suricata实例就可以检查数千兆的流量。该引擎是围绕多线程、现代、干净和高度可伸缩的代码库构建的。本地支持硬件加速(多个供应商)和通过PF_RING和AF_PACKET。
(3)协议自动检测
Suricata将自动检测任何端口上的协议,如HTTP协议,FTP协议,并应用适当的检测和日志记录逻辑。这大大有助于找到恶意软件和CnC通道。
(4)NSM:不仅仅是IDS
Suricata可以记录HTTP请求、记录和存储TLS证书、从流中提取文件并将它们存储到磁盘。完整的pcap捕获支持简单的分析。所有这些都使Suricata成为网络安全监视(NSM)生态系统的强大引擎。
a.TLS/SSL日志记录和分析:由于Suricata的TLS解析器,您不仅可以在规则集语言中对SSL/TLS交换信息的大多数方面进行匹配,还可以记录所有密钥交换并进行分析,这是确保您的网络不受信誉较差的证书颁发机构的侵害的好方法。
b.HTTP日志记录:当您的IDS已经看到HTTP活动时,为什么还要向网络中添加更多其他的硬件来记录HTTP活动? Suricata将记录端口上的所有HTTP连接,以便后续分析。
(5)LUA 脚本
高级分析和功能可用来检测规则集语法中无法检测的内容。
(6)行业标准输出
在2.0中,引入了“Eve”,即所有JSON事件和警报输出。这允许与Logstash和类似工具轻松集成。
(7)其他
此外,通过Unified2输出格式和Barnyard2工具,Suricata可以与BASE、Snorby、Sguil、SQueRT和其他所有工具一起使用。
3.所有特性(suricata完整功能列表)
(1)引擎
a、网络入侵检测系统(NIDS)引擎
b、网络入侵防御系统(NIPS)引擎
c、网络安全监控(NSM)引擎
d、离线分析PCAP文件
e、使用pcap记录器记录流量
f、Unix套接字模式
g,用于自动PCAP文件处理
h、与Linux Netfilter防火墙的高级集成
(2)操作系统支持
Linux、FreeBSD、OpenBSD、macOS/Mac OS X、Windows
(3)配置文件
a、YAML-人和机器可读
b、具有良好的注释和文档
c、支持包括其他配置文件
(4)TCP/IP引擎
a、可扩展的流引擎
b、完整的IPv6支持
c、隧道解码:Teredo、IP-IP、IP6-IP4、IP4-IP6、GRE
(5)TCP流引擎
a、跟踪会话
b、流重新组装
c、基于目标的流重新组装
(6)IP整理磁盘碎片引擎
基于目标的重新组装
(7)协议解析器
a、支持数据包解码:IPv4, IPv6, TCP, UDP, SCTP, ICMPv4, ICMPv6, GRE;Ethernet, PPP, PPPoE, Raw, SLL, VLAN, QINQ, MPLS, ERSPAN
b、应用层解码:HTTP, SSL, TLS, SMB, DCERPC, SMTP, FTP, SSH, DNS, Modbus, ENIP/CIP, DNP3, NFS, NTP, DHCP, TFTP, KRB5, IKEv2;
使用Rust语言开发的新协议,用于安全快速的解码
(8)HTTP 引擎
a、基于libhtp的有状态HTTP解析器
b、HTTP请求记录器
c、支持文件识别、提取和日志记录
d、支持每个服务器设置-限制,个性等
e、匹配(规范化)缓冲区的关键字:uri和原始uri、headers and raw headers、cookie、user-agent、request body and response body、method, status and status code、host、request and response lines、decompress flash files等等
(9)检测引擎
a、支持协议的关键字
b、支持每个vlan或捕获设备的多租户
c、xbits -流位扩展
d、PCRE支持:用于登录EVE的子字符串捕获
e、快速模式和预过滤器支持
f、规则分析
g、文件匹配:magic文件、文件大小、文件名和扩展名、文件MD5/SHA1/SHA256校验和——可扩展到数百万个校验和
h、可以选择的多种模式匹配算法
i、具有广泛的调优选项
j、实时规则重载-使用新的规则重新启动Suricata
k、延迟初始化规则
l、用于自定义检测逻辑的Lua脚本
m、支持Hyperscan集成
(10)输出
a、支持Eve日志,所有JSON警告和事件输出
b、用于生成自己的输出格式的Lua输出脚本
c、支持redis支持
e、HTTP请求日志
f、TLS握手日志
g、Unified2输出-兼容Barnyard2
h、快速警报日志
i、警告调试日志—用于规则编写器
j、使用pcap记录器记录流量
k、Prelude 支持
l、drop log - netfilter样式的日志,用于在IPS模式下丢弃数据包
m、syslog -警告syslog
n、stats-引擎统计在固定的时间间隔
o、文件日志,包括JSON格式的MD5校验和
p、提取的文件存储到磁盘,使用v2格式的重复数据删除
q、DNS请求/回复日志程序,包括TXT数据
r、基于信号的日志循环
s、流日志
(11)报警/事件过滤
a、每个规则警告过滤和阈值
b、全局警报过滤和阈值设置
c、每个主机/子网阈值和速率限制设置
(12)包收集
a、高性能捕获:
AF_PACKET:实验性的eBPF和XDP模式可用
PF_RING
NETMAP
b、标准捕获:
PCAP
NFLOG (netfilter集成)
c、IPS模式
基于Linux的Netfilter (nfqueue):不开放的支持
基于FreeBSD和NetBSD的ipfw
基于linux的AF_PACKET
NETMAP
d、捕获卡和专用设备:
Endace
Napatech
Tilera
(13)多线程
a、完全可配置线程——从单线程到几十个线程
b、 预先“runmodes”
c、可选cpu关联设置
d、使用细粒度锁定和原子操作获得最佳性能
e、可选锁分析
(14)IP声誉
a、加载大量基于主机的信誉数据
b、使用“iprep”关键字在规则语言中匹配声誉数据
c、支持live重装
d、支持CIDR 范围
(15)Tools
a、suricata -update 易于规则更新管理的更新
b、Suricata-Verify开发过程中对QA进行开发