尽管早期类型的网络***检测系统一直要追溯到20世纪80年代早期,但当Martin Roesch创建他的免费和开源IDS系统SNORT时,IDS的概念起飞了。由于其轻巧的设计和灵活的部署选项,Snort的用户群在接下来的几年中迅速增长。2001年,Martin Roesch创建了Sourcefire公司(2013年被思科收购),使用基于SNORT的商业IDS产品。SNORT的原始免费和开源版本仍然可用,目前广泛用于全球网络。与此同时,一些竞争对手在开源IDS领域取得了进展,其中最着名的是Suricata。下面来介绍一下SNORT和Suricata的主要区别,以及如何选择IDS产品?
规则
IDS解决方案仅适用可应用于受监控流量的可用规则。Snort一直有很多社区支持,产生了一个实质性的规则集,并定期更新。规则的语法非常简单,程序结构允许任何人将自定义规则部署到其IDS中或与社区共享。一些商业公司也制定了SNORT规则,可以按月或按年购买。如Talos的SO / VRT规则和CrowdStrikes的威胁情报服务。
Suricata可以使用与SNORT相同的规则。许多(但不是全部)VRT规则仍然有效。Suricata有自己的规则集,最初发布给付费订阅者,30到60天才后免费提供Emerging Threats。这些规则更多地利用了Suricata提供的附加功能,例如未知端口协议检测和自动文件检测以及文件提取。
应用检测
从Snorts诞生的早期开始,就已经提到Snort不是“应用程序感知的”。它只是查看符合其规则的流量,并在匹配时采取行动(报警、丢弃等)。预处理器通过将流量×××为可应用的规则格式来协助执行,例如执行解压缩和解码,但是Snort不需要理解是哪个应用程序生成的数据。
业务需求随着时间的推移而发生变化,为了适应市场,Snort 在2014年推出了2.9.1版本的OpenAppID。OpenAppID支持通过所谓的第7层检测器检测应用程序。虽然已知应用程序的存在并不总是直接的安全事件(例如Dropbox的使用),但它确实可以更好地理解网络中存在的内容。不仅可以找到以前未知的应用程序,而且还可以通过将AppID链接到传统的SNORT IDS / IPS规则来丢弃或警告其流量。
Suricata在这个领域的工作略有不同。它支持应用层检测规则,例如,可以根据协议识别非标准端口上的HTTP或SSH流量。然后,它还会将协议特定的日志设置应用于这些检测。
在这个领域并没有真正更好或更差的产品,它实际上取决于企业正在寻找什么。由于两者都是完全开源的,因此设置测试环境相对快速而且廉价。
多线程
Suricata的主要优点之一是它最近比Snort开发得更好。这意味着它拥有更多的功能,这些功能目前几乎是不容错过的。其中一个功能是支持多线程。多年来网络流量的增加大大提高了IDS设备的处理需求(以每秒数据包为单位),而Suricata一开始就支持多线程。但是,Snort不支持多线程。无论CPU包含多少个核心,Snort都只使用一个核心或线程。虽然有一个相当复杂的解决方法,就是运行多个SNORT单线程实例,全部进入同一个日志。但是,管理此过程(AutoFP)的额外开销和硬件的高成本意味着在生产环境中很少会去应用。SNORT3将支持多线程,但它仍处于Alpha阶段。不建议在生产环境中使用Alpha阶段产品。毫无疑问,多线程是考虑Suricata而不是Snort的强有力论据。
文件提取
Suricata支持文件提取。这是一个非常有用的功能,允许在触发包含选项“filestore”的规则后自动提取所选文件。例如,可以提取所有.pdf文件或所有单个像素.png文件,并将它们存储在预配置的文件夹中,以进行进一步的手动分析,VirusTotal查找甚至自动沙盒。
选择方案
虽然Snort和Suricata都是最受欢迎的开源***检测系统,但也有一些替代方案。前面提到的更新的SNORT3版本非常有前途,它支持多线程,服务识别和更直接的规则语言。它已经开发了很多年,Alpha阶段可以追溯到2014年,但目前生产版本还没有最终确定发布日期。
传统的IDS / IPS解决方案也有其他选择,但这些解决方案有时可能略有不同。比如Bro Network Security Monitor,更多的是一种异常检测系统。在Snort和Suricata使用传统IDS签名的情况下,Bro使用脚本来分析流量。Bro的一个显著优点是,这些脚本还允许在不同系统之间实现高度自动化的工作流,这种方法允许比旧的传递或删除操作更精细的决策,但它的配置非常复杂。
结论
还有几个其他的很好开源IDS选项,但是,由于它们的不同,并非所有解决方案都能适用于所有环境。应基于已经存在的其他可能重叠的安全产品、网络的流量类型、带宽和可用IT员工的技能组合来选择最佳的IDS产品。