在《开源安全运维平台OSSIM最佳实践》一书中叙述到,事件关联是整个OSSIM关联分析的核心,对于OSSIM的事件关联需要海量处理能力,主要便于现在需要及时存储从设备采集到的日志,并能关联匹配和输出,进而通过Web UI展示。从实时性上看,关联分析的整个处理过程不能间断,这对系统的实时性要求较高,另外Ossim系统是基于规则的,Ossim内部具有多套高速规则分析引擎,以实现模式匹配和对关联分析结果调用。所以系统的关联引擎是一个典型数据处理系统,必须依靠强大的数据库做支撑,在开源OSSIM系统中就采用了基于MySQL5.6数据库的数据库,在商业版中采用了MonogDB。
普通日志存入数据库较容易,但如果是关联引擎将报警存入数据库的过程要复杂,到底它的压力在哪儿?例如一个关联规则需要在1秒钟内,通过SQL语句获取10条数据,那么关联引擎就需要在1秒钟内进行10次磁盘存取,这个要求就比普通日志存入数据库高,而OSSIM数据库中的表、字段、索引都为了这种事务处理进行特殊设置,具有一次写多次读的特性。对于复杂模式的匹配非常有用,例如,筛选出1分钟内SSH登录服务器,失败次数超过5次的源IP地址,关联分析引擎将定时进行SQL访问,找到某个符合要求的事件记录。
许多安全管理者抱怨,已经设置了防火墙、入侵检测、防病毒系统、网管软件,为什么网络安全管理仍很麻烦。当前网络安全管理者面临如下挑战:
1) 安全设备和网络应用产生的安全事件数量巨大,IDS误报严重。一台IDS系统,一天产生的安全事件数量成千上万,通常99%的安全事件属于误报,而少量真正存在威胁的安全事件淹没在误报信息中,难以识别。
2) 安全事件之间存在的横向和纵向方面(如不同空间来源、时间序列等)的关系未能得到综合分析,因此漏报严重,不能实现实时预测。一个攻击活动之后常常接着另一个攻击活动,前一个攻击活动为后者提供基本条件;一个攻击活动在多个安全设备上产生了安全事件;多个不同来源的安全事件其实是一次协作攻击,这些都缺乏有效的综合分析。
3) 安全管理者缺乏对整个网络安全态势的全局实时感知能力。
充分利用多种安全设备的检测能力,集中处理的致命弱点是待分析处理的数据量巨大,那些庞大冗余,独立分散,安全事件显然不能直接作为响应依据,同时网络安全防护也有实时性要求,上述问题的根本解决途径是网络安全事件关联处理,到底什么是关联分析呢,有几个基本的概念大家需要了解。
1) 安全事件:本书一开始就提到了安全事件,包括服务器安全日志,重要应用的告警以及日志。
2) 数据源(DateSource),数据源是安全事件的来源,这里包括防火墙、入侵检测系统,重要主机、路由交换设备的日志。
3) 数据关联:将多个数据源的数据进行联合(Association)、相关(Correlation)或组合(Combination)分析,以获得高质量的信息。它将不同空间设备的日志,不同时间序列存在的问题进过特定关联方法结合在一起,最终确定工具的分析方法。当然这些只是广义的安全事件关联方法,后面章节还会专门针对OSSIM讲解具体的规则。
4) 交叉关联:它是最常见的数据关联方式,可以将安全事件与网络拓扑、系统开放的服务、设备存在的漏洞进行关联匹配,以分析攻击成功的可能性。利用这种关联方法可以在OSSIM系统中关联规则检测到某些威胁,并实现自动响应(比如发出告警等)。
下面举几个异常实例:
完整性方面,文件完整监控工具发现系统中ls、ps、netstat、su等程序大小和所有者被改变,可判断受到攻击;系统方面,用户账号被修改及一些不能解释的异常登录行为,在不可能的地方出现了新的文件、目录或者丢失了文件、目录大小急速增大、骤然减小、MD5签名不匹配,这些迹象都说明明系统已遭受入侵。日志方面,系统日志缩减,日志中出现了不明条目、异常的中断消息都说明了系统遭受入侵。流量方面,若干节点大规模流量增大则可能遭受拒绝服务攻击。
为了达到安全事件关联分析的目的,就要有好的事件处理机制,比如前面讲的日志收集的归一化处理,还得有好的关联方法,而且不止一种关联方法,将多种实时关联方法结合到一起效果更佳。大量标准化处理的事件被送入关联引擎处理后,它们会经历事件分类处理、聚合、交叉关联、启发式关联等多种关联方法,系统会根据数据库中的安全事件进行统计分类,找出经常导致安全事件的发源地和经常被攻击的端口,在这些阶段都会产生事件告警,其安全事件关联过程模块,为了更加详细了解安全事件关联分析原理和实践,请参阅《开源安全运维平台-OSSIM最佳实践》。