第5章第5章关 联 分 析
5.15.1概述计算机技术和Internet的迅猛发展,加速了全球信息化进程,互联网正在走进千家万户,在人们的日常工作和生产生活中扮演着不可或缺的角色。网络用户正在以指数级增长,网络的规模也越来越大,与此同时,针对网络的恶意攻击活动越来越多。如何有效地保证网络的正常运行已经成为十分紧迫的问题。为了防止恶意入侵给网络造成破坏,造成资源的丢失,网络管理人员非常迫切需要能够准确、及时地了解整个网络的当前状态及未来的安全趋势,及时发现攻击和危害行为,并进行应急响应,以便对网络的安全设置和资源配置制定出合理的应急策略,达到事前预防、纵深防御的目的,即需要对网络安全状态进行及时的评估和对未来发展态势进行预测,及时了解网络的状况。网络安全态势评估和预测越来越受到人们的关注,成为网络安全管理领域研究中的热点问题,而关联分析则是快速定位故障和入侵的一种有效手段。
关联分析又称关联挖掘,就是在关系数据或其他信息载体中,查找存在于对象集合之间的关联、相关性或因果结构,是一种在大型数据库中发现变量之间关系的方法。关联的含义是指将所有系统中的事件以统一格式综合到一起进行观察。
在网络安全领域中,关联分析是指对网络全局的安全事件数据进行自动、连续分析,根据用户定义的、可配置的规则识别网络威胁和复杂的攻击模式,从而确定事件真实性、进行事件分级并对事件进行有效响应。关联分析可以用来提高安全操作的可靠性,减少漏报警、误报警现象,以及在海量信息中提高分析的实时性,并为安全管理和应急响应提供技术手段。现有的安全事件的关联分析研究工作可分为如下几类。
1. 聚合分析
告警聚合分析过程的主要目的是减少告警数量,采用相似度关联算法以及聚类、分类等算法对原始告警进行处理,其功能包含两个方面: 一是把同一安全事件导致的多条告警融合为一条告警记录,大大减少告警数量;二是关联不同网络安全设备针对同一安全事件报告的重复告警。通过分析安全事件之间的关联关系,对同类和相似安全事件进行合并,从而减少安全事件的数量,去除重复和冗余信息。
2. 交叉关联
交叉关联(Cross Correlation)主要是结合背景知识(如网络拓扑信息、漏洞信息和主机配置信息等)提高告警的质量,主要用于攻击确认和风险评估。在“提高告警质量”方面,主要涉及IDS误告警的去除以及告警风险的评估。由于是分析安全事件和其他背景知识、漏洞信息之间的关联关系,所以称为交叉关联。日志审计与分析第5章关联分析3. 多步攻击关联
由于现在大部分攻击,尤其是危害巨大的攻击都是多步攻击,而安全事件通常都是一个单独的攻击行为,因此从众多安全事件中找到一个多步攻击对应的多个攻击步骤,并将它们关联起来也是安全事件关联分析研究领域的一个重要研究内容。多步攻击关联又可称为攻击场景构建,主要研究攻击步骤之间的关联关系。
4. 其他
安全事件关联分析的研究中还有一些问题,例如,体系结构、总体构架、时间一致性问题、数据格式等,可将这些分析方法综合归结为其他的关联分析方法类。
本章主要介绍关联性分析方面的知识,包括实时关联分析、事件关联方式。除此之外,还介绍与关联分析目的相关的告警方面的知识以及可视化的日志实时统计分析。5.25.2实时关联分析随着网络及其应用的发展,传统的集中分析日志的安全防护策略已无法实时解决新兴的实时威胁,如何准确而又快速地找到系统遭受的安全问题显得格外重要。对于有危害性的网络行为,应该及时主动采取相应的措施,以减少进一步的网络安全事件,避免网络系统遭受到进一步的威胁。例如,某个节点发出很多安全事件或者某个节点不断受到攻击,因此应该高度重视并检查该节点的情况。对有危害的网络行为的响应类似于传染病的防护(隔离或清除传染源、切断传播路径以及保护易感人群): 隔离或清除传染源,即隔离或清除有危害的网络行为源;切断传播途径,即切断攻击的传播通路,使之不能到达攻击目标;保护易感人群,即对网络节点进行升级、加固等,尽可能使之对攻击具有抵抗力。网络安全事件的实时性关联分析是解决这种现状的关键手段之一。除此之外,当前网络安全管理者还面临如下挑战。
(1) 安全设备和网络应用产生安全事件数量巨大,漏报警、误报警现象严重。一台IDS一天产生的安全事件数量成千上万,真正存在威胁的安全事件淹没在误报信息中,难以识别。大量冗余告警日志的存储严重影响了关联性分析的时效性。
(2) 安全事件之间存在的横向和纵向方面(如不同空间来源、时间序列等)的关系未得到综合分析,因此漏报严重。一个攻击活动之后常常接着另一个攻击活动,前一个攻击活动为后者提供基本条件;一个攻击活动在多个安全设备上产生了安全事件;多个不同来源的安全事件其实是一次协作攻击,这些都缺乏有效的综合分析。
(3) 安全管理者缺乏对整个网络安全态势的全局实时感知能力。
充分利用多种安全设备的检测能力生成大量的日志数据,这些数据集中处理的致命弱点是待分析的数据量巨大,那些庞大冗余或独立分散的安全事件显然不能直接作为响应依据。上述问题的根本解决途径是网络安全事件关联实时处理。传统的安全日志审计系统先将不同信息源日志融合完毕后存入数据库,再对数据库中的日志信息进行关联性分析,发掘出日志之间的关系,找到真正的外部入侵和内部违规。但是,传统的日志审计系统无法进行实时性分析,它必须等到不同信息源的日志存入数据库后方可进行分析,对网络系统日志的存储能力要求非常高,同时这也将大大降低发现安全隐患的时效性。
相比于传统的关联性分析,实时关联性分析可以在存储已处理日志的同时进行关联性分析。经过收集和处理后的日志信息,一方面将日志存入数据库,另一方面同步在内存中进行实时关联性分析。关联分析的实时性确保了日志被及时审计,同时能够快速发现并定位安全隐患。但是,从实时性上看,关联分析的整个过程不能间断,这对系统的实时性要求较高。除此之外,普通日志存入数据库较容易,但如果是关联引擎实时将报警存入数据库中,则比较复杂。例如,一个关联规则需要在1s内通过SQL语句获取10条数据,那么关联引擎就需要实时在1s内进行10次磁盘存取,这导致对磁盘读写频率以及吞吐率的要求较高,所以告警关联分析在确保实时性的同时,也要注意对数据库吞吐率的重视。网络安全中的关联反馈如图51所示。
图51网络安全中的关联反馈
5.35.3事件关联方式实时关联分析的核心是基于安全监测、告警和相应技术的事件关联分析引擎。在关联规则的驱动下,事件关联分析引擎能够进行多种方式的事件关联,包括递归关联、统计关联、时序关联、跨设备事件关联等。本节主要介绍这几种典型的事件关联方式。
5.3.1递归关联
递归在数学与计算机科学中的含义是指在函数定义中使用函数自身的方法。递归还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的,也可以理解为自我复制的过程。递归关联指的是以递归的方式进行关联性分析,即自身与自身发生关联。递归关联是同一类实体之间的一种关联。和普通关联一样,递归关联也可以分为3种表达形式: 一对一递归关联、一对多递归关联和多对多递归关联。
一对一递归关联是指对象之间是一对一的关系。例如,图52给出的一对一递归关联示例图表示的含义是两个人是一对一的关联关系,但是对象都出自于人类这一个大的集合中,相同对象之间产生了递归的关联,这个案例就是最简单的一对一关联关系。
一对多递归关联的含义是同一个类对象中存在一个实体对应关联多个实体。图53是一个典型的一对多递归关联的实例,一个消费者购买某件商品,如果该商品给消费者带来良好的用户体验,此消费者会将该商品推荐给身边同为消费者的其他人,这就是一个典型的一对多的递归关联案例。
多对多递归关联指的是实体中关联的关系是多对多,如图54所示。例如,在医院中,同一科室的医生面对不同的病人是多对多的关联关系,有时医生本人也因为自身身体的不适去就医,这就产生医生这一类中的递归关联关系。
图52一对一关联
图53一对多关联
图54多对多关联