无论您需要监控主机还是连接它们的网络来识别最新的威胁,都有一些很棒的开源入侵检测(IDS)工具可供使用。
一、开放源码IDS工具列表
Snort
Suricata
Bro (Zeek)
OSSEC
Samhain Labs
OpenDLP
二、IDS检测技术
威胁检测技术主要有两种:基于特征的检测和基于异常的检测。当您在决定是使用签名还是异常检测引擎时,这些检测技术非常重要,但是供应商已经意识到了它们各自的好处,有些供应商正在将它们都构建到自己的产品中。了解他们的长处和短处能让你了解他们如何互补。
1、基于签名的IDS工具
使用基于签名的IDS,即基于知识的IDS,可以搜索已知恶意流量的规则或模式。一旦发现与签名匹配,就会向管理员发送警报。这些警报可以发现已知的恶意软件、网络扫描活动和针对服务器的攻击等问题。
2、基于异常的 IDS工具
使用基于异常的IDS,即基于行为的IDS,生成流量的活动远比交付的负载重要得多。基于异常的IDS工具依赖于基线而不是签名。它将搜索不寻常的活动,偏离统计平均值的以前的活动或以前看到的活动。例如,如果一个用户总是从加利福尼亚登录到网络并访问工程文件,如果相同的用户从北京登录并查看HR文件,这是一个危险信号。
基于签名和基于异常的检测技术通常都是以相同的方式部署的,尽管您可以(和人们一样)根据外部收集的netflow数据或类似的流量信息创建基于异常的IDS。
3、优点和缺点
基于签名的检测很少出现误报,但只有已知的签名被标记,为新的和尚未确定的威胁留下了安全漏洞。基于异常的检测会出现更多的误报,但如果配置正确,它会捕获以前未知的威胁。
三、基于网络的IDS (NIDS)
基于网络的入侵检测系统(NIDS)通过检测一个网络段上的所有流量来检测恶意活动。使用NIDS,通过镜像流量端口开关和/或路由器,可以将通过网络的流量的副本传递给NIDS设备。
NIDS设备监视和警告流量模式或签名。当NIDS设备标记恶意事件时,将记录重要信息。需要监视这些数据,以便了解发生的事件。通过将这些信息与从其他系统和设备收集的事件相结合,您可以看到您的网络安全状态的完整画面。注意,这里的工具都不单独关联日志。这通常是安全信息和事件管理器(SIEM)的功能。
1、Snort
啊,那只爱包的小猪。许多人会记得1998年是Windows 98发布的一年,但也是Martin Roesch第一次发布Snort的一年。尽管Snort当时不是真正的IDS,但这是它的命运。从那时起,由于社区的贡献,它已经成为IDS事实上的标准。
值得注意的是,Snort没有真正的GUI或易于使用的管理控制台,尽管已经创建了许多其他开放源码工具(如BASE和Sguil)来提供帮助。这些工具提供了一个web前端,用于查询和分析来自Snort id的警报。
Snort总结
产品寿命长,没有消失的迹象
伟大的社区支持
大量的管理前端
经过彻底验证和测试
伟大的社区支持
根据Snort的网站,其功能包括:
1、模块化设计:
包处理的多线程
共享配置和属性表
使用简单的、可编写脚本的配置
插件框架,使关键组件可插拔(和200+插件)
用于无端口配置的自动检测服务
自动生成参考文档
可扩展内存概要
规则解析器和语法(支持规则中的粘性缓冲区)
2、文档:
规则集的更新
Snort常见问题解答
一个Snort备忘单
Snort的插件可用于AlienVault USM的任何地方。
2、Suricata
不运行Snort的惟一原因是什么?如果你用的是Suricata。尽管Suricata的体系结构与Snort不同,但它的行为与Snort相同,并且可以使用相同的签名。Suricata的伟大之处在于它还能在Snort之上提供其他功能。它确实如此,它可能值得一个专门的帖子。
web前端可以使用第三方开放源码工具来查询和分析来自Suricata id的警报。
Suricata总结:
多线程——Snort使用单个线程运行,这意味着它一次只能使用一个(核心)。Suricata可以运行多个线程,因此它可以利用所有可用的cpu/内核。关于这是否有利有很多争论,Snort说没有,一些基准测试说是的。
内置硬件加速-你知道你可以使用图形卡来检查网络流量吗?
文件提取-有人下载恶意软件?可以直接从Suricata获取并研究。
LuaJIT—是的,它有很多字母,但是它也是一个脚本引擎,可以与来自Suricata检查的信息包的信息一起使用。这使得复杂的匹配更加容易,您甚至可以通过将多个规则组合到一个脚本中来提高效率。
记录的不仅仅是包——Suricata可以获取和记录诸如TLS/SSL证书、HTTP请求、DNS请求等
伟大的社区支持
根据Suricata的网站,其特色包括:
高性能-多线程,可扩展的代码基础
多用途引擎- NIDS, NIPS, NSM,离线分析等。
跨平台支持- Linux, Windows, macOS, OpenBSD等。
现代的TCP/IP支持包括可扩展的流引擎、完整的IPv4/IPv6、TCP流和IP包碎片整理
协议解析器-包译码,应用层译码
HTTP引擎- HTTP解析器,请求日志,关键字匹配等。
用于无端口配置的自动检测服务
Lua脚本(LuaJIT)
应用程序层日志记录和分析,包括TLS/SSL证书、HTTP请求、DNS请求等
内置硬件加速(用于网络嗅探的GPU)
文件提取
文档:
Suricata用户指南
用户和开发人员文档
Suricata常见问题解答
四、Bro(最近改名为Zeek)
Bro在2018年底更名为Zeek,有时也被称为bro – ids或现在的Zeek- ids,与Snort和Suricata略有不同。在某种程度上,Bro既是签名又是基于异常的id。它的分析引擎将捕获的流量转换为一系列事件。一个事件可以是一个用户登录到FTP,一个网站的连接或几乎任何东西。系统的强大之处在于事件引擎和策略脚本解释器。这个策略引擎有自己的语言(Bro-Script),它可以执行一些非常强大和通用的任务。
如果您是一名分析师,并且您想知道“如何自动化我的部分工作?”那么这就是您一直在寻找的工具。想要下载在网上看到的文件,提交给恶意软件分析,如果发现问题通知你,然后黑名单的来源和关机用户的电脑下载它?想要跟踪用户在联系了信誉数据库中的IP后的使用模式吗?
如果你不是一个分析师,那么这个工具将有一个具有挑战性的学习曲线。由于它是作为一种研究工具开发的,所以它最初并不关注诸如gui、可用性和易于安装等问题。虽然它能做很多很酷的事情,但其中很多事情并不能立即付诸行动,而且可能很难解释。
没有本地GUI,但是有第三方开放源码工具可供web前端查询和分析来自Bro ids的警报。考虑ELK 。
Bro的总结
设置起来很复杂
检测其他IDS系统无法检测的活动模式
非常可扩展的体系结构
良好的社会支持
根据Bro的网站,功能包括:
全面的交通记录和分析
强大而灵活的事件驱动脚本语言(Bro脚本)
部署在unix风格的系统上,包括Linux、FreeBSD和MacOS
DNS / FTP / HTTP / IRC / SMTP / SSH / SSL /其他协议支持
完全被动流量分析与网络tap或监测端口
实时和离线分析
集群——支持大规模部署
全面的IPv6支持
IDS-style模式匹配
文件提取
可扩展的体系结构
分析人员可以将Bro用于自动化(文件提取、恶意软件分析、黑名单、跟踪使用模式、研究工作等)。
文档:
bro手册
bro文档
bro常见问题解答
五、基于主机的IDS (HIDS)
基于主机的入侵检测系统(HIDS)通过监视端点主机内部发生的活动来工作。HIDS应用程序(例如杀毒软件、间谍软件检测软件、防火墙)通常安装在网络内所有联网的计算机上,或安装在服务器等重要系统的子集上。这包括那些在公共云环境中的。
HIDS通过检查操作系统创建的日志、查找对关键系统文件的更改、跟踪已安装的软件,有时还检查主机的网络连接,来搜索不寻常或不法的活动。
第一个HIDS系统是基本的,通常只是在重复的基础上创建MD5文件散列,并利用称为文件完整性监视(FIM)的过程寻找差异。从那时起,HIDS变得更加复杂,并执行各种有用的安全功能,而且还将继续增长。这包括现代端点响应(EDR)功能。
如果您的组织有遵从性要求,例如PCI DSS、HIPAA或ISO 27001,那么您可能需要HIDS演示文件完整性监视(FIM)以及主动威胁监视。
1、OSSEC
在功能全面的开源HIDS工具领域中,只有OSSEC和其他一些工具。好消息是OSSEC非常擅长它所做的工作,并且具有相当的可扩展性。
OSSEC几乎可以在任何主要的操作系统上运行,包括基于客户机/服务器的管理和日志架构,这在HIDS系统中非常重要。由于本地的HIDS可能会在操作系统被破坏的同时被破坏,所以将安全性和取证信息离开主机并尽快存储在其他地方是非常重要的,以避免任何可能阻止检测的篡改或混淆。
OSSEC的客户机/服务器体系结构通过将警报和日志传递到集中的服务器,从而整合了这一策略,即使主机系统离线或受到威胁,也可以在集中的服务器上进行分析和通知。客户机/服务器体系结构的另一个优点是能够从单个服务器集中管理代理。由于部署的范围从一个到数千个安装,从中央服务器进行全局更改的能力对于管理员的健全是至关重要的。
在讨论OSSEC(和其他HIDS)时,常常会对在关键服务器上安装代理或软件感到焦虑。需要注意的是,OSSEC的安装非常简单(安装程序小于1MB),大部分分析实际上发生在服务器上,这意味着OSSEC在主机上消耗的CPU非常少。OSSEC还能够将操作系统日志发送到服务器进行分析和存储,这在没有本地和跨平台日志记录机制的Windows机器上尤其有用。
OSSEC简介:
几乎每个操作系统的代理
已编译的Windows代理
除了FIM还有很多功能
安装过程严格而简单
良好的社会支持
根据OSSEC的网站,它的特色包括:
文件完整性监视(FIM)
日志监视收集、分析和关联系统日志
Rootkit检测,它搜索类似于Rootkit的系统修改
活动响应可以在触发警报时调用自动响应操作
客户机/服务器体系结构
多平台支持(Linux、Solaris、Windows、MacOS等)
支持FIM的遵从性需求
实时且可配置的警报
与当前基础设施的集成
用于大规模策略管理的集中式服务器
代理和无代理监视
一个OSSEC的插件可以在AlienVault USM的任何地方使用。要了解更多,请阅读这里。
文档:
OSSEC文档
OSSEC常见问题解答
OSSEC Github
2、Samhain Labs
Samhain可能是HIDS中唯一一个能与OSSEC一较高下的开源软件。但在比较两者时,这是一个“相同但不同”的情况。Samhain具有相同的客户机/服务器架构,但不像OSSEC那样需要它。代理本身有多种输出方法,一种是中央日志存储库,但也包括Syslog、电子邮件和RDBMS等其他方法。甚至可以选择将Samhain作为单个主机上的独立应用程序使用。
另一个重要的区别是分析发生在哪里。与OSSEC不同,处理发生在客户端本身,这具有操作含义。从实用的角度来看,必须注意不要使繁忙的服务器超载并干扰操作。从安全的角度来看,在端点上放置大脑会让黑客禁用该工具,这样就不会发出警告。
Samhain总结:
难安装
Windows客户端需要Cygwin
伟大的FIM功能
更灵活的客户
好的社区支持
根据Samhain的网站,它的特色包括:
文件完整性监视(FIM)
日志文件监视和分析
Rootkit检测
端口监控
检测流氓SUID可执行文件和隐藏进程
多平台支持
集中记录和维护
客户机/服务器体系结构(主要是)
多种输出方法(如syslog, email RDBMS)
可作为单个主机上的独立应用程序使用
文件:
Samhain Docs
Samhain用户手册
Samhain的常见问题
六、文件完整性监控(只有FIM)
许多文件完整性监视(FIM)工具都是使用HIDS进行分类的,因为FIM涉及到威胁检测,所以让我们来讨论一下。FIM是一个验证操作系统和指定应用程序文件完整性的工具,它将当前版本与已知的有效版本进行比较,并在修改时通知管理员。这一点很重要,因为关键服务器上的更改通常意味着发生了破坏。如果您仍然想知道“什么是文件完整性监视,为什么我需要它?”,我们有一个完整的博客解释为什么。
一些FIM正在积极开发,而另一些则多年未更新。开源Tripwire和AFICK是两个可供选择的开源FIM产品。对于独立的基于unix的系统,请考虑检查rootkit查找文件完整性检查程序,如chkrootkit、rkhunter或Unhide。独特的rootkit查找机制使这些解决方案值得考虑。Windows也提供专有的解决方案。
AlienVault统一安全管理(USM)平台提供了内置的FIM功能,以驱动威胁检测技术,加速您的网络安全合规工作。要了解更多关于AlienVault USM如何使用FIM保护你的资产,请阅读这里。