Snort
说起开源入侵检测系统,Snort几乎是绕不开的元老。1998年由Marty Roesch用C语言开发,基于libpcap实现,定位为轻量级的NIDS(网络入侵检测系统)。这么多年下来,它不仅是社区中最活跃的项目之一,还衍生出了大量第三方管理和日志分析工具,生态相当成熟。它的官方网站是 snort.org。
Prelude IDS
从设计思路上看,Prelude IDS从一开始就瞄准了大型网络环境的需求。它包含网络探测器、日志分析器和集中的告警查看分析工具,而且探测器部分基本上可以看作是Snort的升级版——完全兼容Snort的规则集。这意味着如果你已经熟悉Snort,迁移成本很低。官方地址:prelude-ids.org。
Firestorm
Firestorm主打高性能,同样是一个NIDS系统。目前它只实现了探测器部分,但完全兼容Snort规则集。未来规划中包括分析、报告、远程控制台和实时传感器配置等功能。它采用可插拔架构,灵活度很高,甚至可以把告警直接记录到Prelude IDS的管理器中。开发者声称性能比Snort强不少。官网:scaramanga.co.uk/firestorm。
NetSTAT
NetSTAT基于状态迁移分析技术(STAT),用特有的STATL语言来描述攻击行为。检测过程是这样的:攻击描述文本通过STATL解释工具转换成C++代码,再编译进检测引擎来实现检测。目前官方已经发布了STATL语言解释转换工具和少量示例探测器模块(只覆盖了很少的检测场景)。想用好它,编程功底得过硬——但好处是,能实现非常复杂的检测逻辑。官方地址:cs.ucsb.edu/~rsg/STAT。
Bro
Bro由Vern Paxson实现,1998年对外发布,采用BSD许可协议。它的设计目标很明确:在百兆网络环境下实现实时告警,同时做到机制与策略分离、高可扩展性,本质上是一个实时网络入侵检测及监控审计系统。如今已经更名为Zeek,但核心思路一脉相承。项目主页:bro.org。
Suricata
Suricata是一个支持IDS、IPS和网络安全管理(NSM)的综合性系统。它的架构和Snort类似,签名规则方面可以直接使用Snort的VRT规则集以及Emerging Threats规则集。因为诞生的时间更晚,Suricata在设计上吸纳了更多现代特性,有潜力在性能和功能上赶超Snort。官网:suricata-ids.org。
OSSEC
OSSEC是一个开源的主机入侵检测系统(HIDS),与前面几个侧重网络的工具不同,它关注的是主机层面的安全。功能覆盖日志分析、文件完整性检查、策略监控、rootkit检测、实时告警以及自动响应等。从实际部署来看,它特别适合需要细粒度主机监控的场景。项目地址:ossec.github.io。
