【引言】安全管理平台(SOC)的一项关键技术就是事件关联分析。借助实时的事件关联分析引擎,安全管理平台能够发掘出复杂的海量安全日志和事件背后隐藏的信息,引导安全管理人员发现外部入侵和内部违规行为。作为本系列的第五篇文章,将深入为大家剖析安全管理系统的关联分析引擎技术架构,并向读者展示关联分析的价值和前景。
1 为什么需要安全事件关联分析?
1.1 安全建设的新阶段
信息系统的安全建设已经从过去的局部优化阶段进入了整体优化的阶段。
当今的企业和组织在IT信息安全领域面临比以往更为复杂的局面。这既有来自于企业和组织外部的层出不穷的入侵和攻击,也有来自于企业和组织内部的违规和泄漏。为了不断应对新的安全挑战,企业和组织先后部署了防病毒系统、防火墙、入侵检测系统、漏洞扫描系统、UTM,等等。这种被动的安全建设过程就像是挖壕沟,为了抵御某一方面的安全威胁,客户不断地把壕沟加深,并开凿了一条又一条的壕沟。由于这些安全系统都仅仅防堵来自某个方面的安全威胁,于是形成了一个个安全防御孤岛,无法产生协同效应。另一方面,企业和组织日益迫切的信息系统审计和内控、以及不断增强的业务持续性需求,也对当前企业信息安全管理提出了严峻的挑战。这些内因外因合起来,都要求企业和组织建立一套横向贯穿孤立的安全防线的整体安全管理平台,实现对全网IT资源运行的监控、安全的监控、风险的监控,真正让企业管理者把握整体安全态势,实现有效地协同防御。
1.2 海量事件带来的新挑战
要构建一个统一的安全管理平台,首先就需要将来自企业和组织中复杂IT资源及其安全防御设施运行过程中不断产生的各类安全日志和事件进行统一收集、分析,构建一幅企业和组织的整体安全态势图。
对于一个典型的用户而言,经过较为系统的安全建设后,都会部署较多的安全产品。这些安全产品每天产生的事件量是巨大的,如下表所示:
显然,对于安全管理平台而言,收集和分析上述海量的安全事件是一个巨大的挑战,而能否做到这点将直接决定一个安全管理平台的成败。同时,安全管理平台决不能简单地将这些海量的信息直接展示给客户,否则,用户面对这些海量的安全事件将束手无策,管理运维效率将不升反降。此外,大量的安全事件汇聚到一起,根据其安全属性的相关性,可能隐含了新的更严重的安全事件,这种相关性是管理人员难以用肉眼观察出来的。安全管理平台的目标就是要收集这些海量事件,并通过有效的分析手段输出很少量的、真正值得管理员关注的安全事件。那么,如何才能有效地分析这些海量的异构安全事件?安全事件关联分析应运而生。
2 事件关联分析介绍
2.1 信息安全事件定义
什么叫做信息安全事件?根据ISO18044和ISO27001,信息安全事件是指被识别的一种系统、服务或网络状态的发生,表明一次可能的信息安全策略违反或某些防护措施失效,或者一种可能与安全相关但以前未知的情况。
在本文中,信息安全事件简称事件,尤指由IT 系统自动产生的各种事件。
2.2 事件关联分析定义
IT范畴内的事件关联分析(Event CorrelationAnalysis)最早来自网络管理领域,通过综合分析各种网络告警信息,用于寻找网络故障的根本原因。
定义1(来自Wiki百科):事件关联是指找出大量事件中存在的关系,并从这些大量事件中抽取出真正重要的少量事件。
伴随着网络安全的发展,尤其是受到传统IDS大量漏报、误报、错报安全事件的影响,出现了基于网络安全数据融合技术的分布式IDS。而伴随着前面所述的安全建设新阶段的到来,安全信息与事件管理系统(SIEM)和安全管理平台(SOC)也纷纷出现。在这些系统的设计中都逐步引入了事件关联分析的概念。
定义2:事件关联分析是指用户将海量的来自异构数据库源的安全事件进行相关性分析,定位真正的安全事故点的过程。
定义3(来自NISTSP800-92):事件关联是指在两个或更多个日志(事件)中找到它们之间的关系。
根据上述定义,事件关联分析包括两层含义:
1) 将大量的安全事件过滤、压缩、归并,提取出少量的、或者是概括性的重要安全事件,相当于“关联分析中的事件量变”;
2) 从大量的安全事件之中发掘隐藏的相关性,产生新的不在之前事件之中的安全事件,相当于“关联分析中的事件质变”。我们知道,外部入侵和内部违规行为从来都不是单一的行为,都是有时序或者逻辑上的联系的,黑客的攻击和内部的违规操作往往是分为若干步骤的,每个步骤都会在不同的设备和系统上留下蛛丝马迹,单看某个设备的日志可能无法发现问题,但是将所有这些信息合到一起,就可能发现其中的隐患,而这正是关联分析的目的所在。
2.3 事件关联分析在安全管理平台(SOC)中的位置
事件关联分析在安全管理平台(SOC)中位于核心位置,属于 SOC的核心技术点。
1) 事件关联分析实现海量安全事件的抽取、降噪,剥离无用信息,提升后续安全管理工作的效率,降低安全管理工作的复杂性;
2) 事件关联分析是风险分析的基础,关联分析的结果导出的关联事件可以提升为威胁,从而参与风险计算,并且实现风险计算自动化、定量化;
3) 事件关联分析是计算机安全事故(Incident)应急响应处理流程的关键步骤。
2.4 事件关联分析的关键特性
在安全管理平台(SOC)中,完整的事件关联分析包括了事件采集、事件归一化、事件关联分析引擎、预警响应、事件存储等几个部分。其中,最核心的就是事件关联分析引擎。
事件关联分析至少具有以下三个关键特性:
1) 海量事件处理能力:是指关联分析能够高效地采集海量的异构安全事件,并能够进行关联匹配和输出,还能够将安全事件进行可视化展示,以及将海量安全事件和告警信息进行及时地存储;
2) 实时性:是指关联分析的整个处理过程必须保持实时、不间断的工作;
3) 基于规则的:是指关联分析的核心引擎至少应该包括一套实时高速的规则引擎,实现模式匹配,这也是“关联分析中的事件质变”的要求。
3 实现事件关联分析引擎
事件关联分析引擎是关联分析的核心技术部件,如何实现事件关联分析引擎将直接决定关联分析的效果,以及一个安全管理平台(SOC)产品的成败。因此,文本将重点描述事件关联分析引擎的实现,对于事件采集和归一化,将令文论述。
关联分析引擎是一个典型的数据处理系统。因而,根据一般的经验,首先会想到的就是利用数据库系统来实现关联分析引擎。但是,关联分析引擎面对的数据不是一般的数据,这里的数据(事件)具有海量、实时和流的特征,因而,使用数据库系统的关联分析引擎无法达到实时高速的目标。
显然,对于安全管理平台而言,收集和分析上述海量的安全事件是一个巨大的挑战,而能否做到这点将直接决定一个安全管理平台的成败。同时,安全管理平台决不能简单地将这些海量的信息直接展示给客户,否则,用户面对这些海量的安全事件将束手无策,管理运维效率将不升反降。此外,大量的安全事件汇聚到一起,根据其安全属性的相关性,可能隐含了新的更严重的安全事件,这种相关性是管理人员难以用肉眼观察出来的。安全管理平台的目标就是要收集这些海量事件,并通过有效的分析手段输出很少量的、真正值得管理员关注的安全事件。那么,如何才能有效地分析这些海量的异构安全事件?安全事件关联分析应运而生。
2 事件关联分析介绍
2.1 信息安全事件定义
什么叫做信息安全事件?根据ISO18044和ISO27001,信息安全事件是指被识别的一种系统、服务或网络状态的发生,表明一次可能的信息安全策略违反或某些防护措施失效,或者一种可能与安全相关但以前未知的情况。
在本文中,信息安全事件简称事件,尤指由IT 系统自动产生的各种事件。
2.2 事件关联分析定义
IT范畴内的事件关联分析(Event CorrelationAnalysis)最早来自网络管理领域,通过综合分析各种网络告警信息,用于寻找网络故障的根本原因。
定义1(来自Wiki百科):事件关联是指找出大量事件中存在的关系,并从这些大量事件中抽取出真正重要的少量事件。
伴随着网络安全的发展,尤其是受到传统IDS大量漏报、误报、错报安全事件的影响,出现了基于网络安全数据融合技术的分布式IDS。而伴随着前面所述的安全建设新阶段的到来,安全信息与事件管理系统(SIEM)和安全管理平台(SOC)也纷纷出现。在这些系统的设计中都逐步引入了事件关联分析的概念。
定义2:事件关联分析是指用户将海量的来自异构数据库源的安全事件进行相关性分析,定位真正的安全事故点的过程。
定义3(来自NISTSP800-92):事件关联是指在两个或更多个日志(事件)中找到它们之间的关系。
根据上述定义,事件关联分析包括两层含义:
1) 将大量的安全事件过滤、压缩、归并,提取出少量的、或者是概括性的重要安全事件,相当于“关联分析中的事件量变”;
2) 从大量的安全事件之中发掘隐藏的相关性,产生新的不在之前事件之中的安全事件,相当于“关联分析中的事件质变”。我们知道,外部入侵和内部违规行为从来都不是单一的行为,都是有时序或者逻辑上的联系的,黑客的攻击和内部的违规操作往往是分为若干步骤的,每个步骤都会在不同的设备和系统上留下蛛丝马迹,单看某个设备的日志可能无法发现问题,但是将所有这些信息合到一起,就可能发现其中的隐患,而这正是关联分析的目的所在。
2.3 事件关联分析在安全管理平台(SOC)中的位置
事件关联分析在安全管理平台(SOC)中位于核心位置,属于 SOC的核心技术点。
1) 事件关联分析实现海量安全事件的抽取、降噪,剥离无用信息,提升后续安全管理工作的效率,降低安全管理工作的复杂性;
2) 事件关联分析是风险分析的基础,关联分析的结果导出的关联事件可以提升为威胁,从而参与风险计算,并且实现风险计算自动化、定量化;
3) 事件关联分析是计算机安全事故(Incident)应急响应处理流程的关键步骤。
2.4 事件关联分析的关键特性
在安全管理平台(SOC)中,完整的事件关联分析包括了事件采集、事件归一化、事件关联分析引擎、预警响应、事件存储等几个部分。其中,最核心的就是事件关联分析引擎。
事件关联分析至少具有以下三个关键特性:
1) 海量事件处理能力:是指关联分析能够高效地采集海量的异构安全事件,并能够进行关联匹配和输出,还能够将安全事件进行可视化展示,以及将海量安全事件和告警信息进行及时地存储;
2) 实时性:是指关联分析的整个处理过程必须保持实时、不间断的工作;
3) 基于规则的:是指关联分析的核心引擎至少应该包括一套实时高速的规则引擎,实现模式匹配,这也是“关联分析中的事件质变”的要求。
3 实现事件关联分析引擎
事件关联分析引擎是关联分析的核心技术部件,如何实现事件关联分析引擎将直接决定关联分析的效果,以及一个安全管理平台(SOC)产品的成败。因此,文本将重点描述事件关联分析引擎的实现,对于事件采集和归一化,将令文论述。
关联分析引擎是一个典型的数据处理系统。因而,根据一般的经验,首先会想到的就是利用数据库系统来实现关联分析引擎。但是,关联分析引擎面对的数据不是一般的数据,这里的数据(事件)具有海量、实时和流的特征,因而,使用数据库系统的关联分析引擎无法达到实时高速的目标。
如上图所示,借助数据库管理系统(例如关系型数据库),事件关联分析主要就是使用SQL语句来实现。由于数据库系统都是基于磁盘来存储数据的,包括它的各种性能优化都是基于磁盘访问来设计的,因而,借助数据库的关联分析引擎无论如何也难以保证分析性能。例如一个关联规则需要在1秒钟内通过SQL语句获取10个数据,那么关联分析引擎就需要在1秒内进行10次磁盘存取,难以符合高性能的要求。
有的内存数据库系统虽然可以在性能上有所提升,但是由于数据库的表、字段、索引等设施都是为了事务(Transaction)处理而设计的,难以高效的处理具有流性质的数据(事件)。必须指出的是,流数据具有一次写多次读(WORM)的特性。
更重要地,使用数据库来实现关联分析引擎无法真正实现模式匹配。考虑如下一个常见的模式匹配要求:“请找出在1分钟内登录服务器X失败达到3次以上的源IP”。如果利用数据库来实现,那么关联分析引擎将不得不每隔一个时间间隔去进行SQL访问,找到某个时刻符合要求的事件记录(如上图所示)。可见,在这种方式,难以满足实时不间断关联分析的要求。
也许设计者会考虑使用数据库的触发器。但是,数据库触发器也不是为了处理流数据而设计,无法为触发器设定复杂的关联规则条件。
因此,一个事件关联分析引擎必须采用新的技术——流数据处理技术来实现。
如上图所示,是一个基于流数据处理的关联分析引擎工作示意图。首先,这个关联分析引擎是在内存中进行的,关联分析引擎分析的事件流是在内存中,与事件入库持久化存储分离。其次,关联分析引擎是一个不间断工作的实时引擎。它不断地读取事件流,利用状态机(StateMachine)的技术进行模式匹配(Pattern Match),实现实时事件关联。
在这个技术原型架构之下,事件流相对于关联分析引擎就相当于一个“流数据库”(SteamingDatabase)。这个流数据库与传统的关系型数据库具有以下区别:
因此,基于数据库的关联分析引擎只能是一个被动工作的引擎、基于对数据的查询,是离散的,不连续的,难以保证效率和实时性。而基于流数据的关联分析引擎则是一个主动工作的引擎,基于事件查询和模式匹配,是连续的,能够保证效率和实时性。 对于安全管理平台(SOC)而言,在利用关联分析引擎进行实时事件分析的同时,也具备对事件进行历史分析的功能。因而,在安全管理平台中,数据库也是需要的,数据存储也是需要的,并且用于进行历史事件挖掘(Data Mining)、模式发现(PatternDiscovery)等。
除了要基于流数据处理技术,关联分析引擎还必须具备一套较为完备的模式匹配技术。模式匹配就是基于规则的状态机系统。
4 SOC2.0时代的事件关联分析及其应用
在SOC2.0时代,安全将更加紧密地与客户业务进行融合,不仅体现在风险与运维管理的思想和方法论上,更体现在安全管理平台的落地上。
在SOC2.0时代的初期,安全管理平台首先将成为一个面向业务的系统,即针对承载业务运行的IT支撑系统及其资源进行监测、分析和运维。在这个时期,安全管理平台的关联分析引擎更多地是对来自IT资源的工作日志和告警事件进行相关性分析,分析业务系统运行是否正常,是否面临恶意攻击,是否发生了信息泄漏。
在SOC2.0的第二个阶段,安全管理平台在实现IT安全管理的同时,将更多地成为一个IT安全合规管理平台。此时,安管平台的关联分析引擎将针对IT资源日志中与业务相关的信息,以及部分业务自身运行日志进行相关性分析,发现业务人员的操作异常或违规。例如,发现内部IT人员窃取公司的员工工资数据库信息,修改公司的客户记录,等等。
在SOC2.0的第三个阶段,安全管理平台将与业务深度融合,实现针对业务的安全管理,成为一个业务风险与合规管理平台。例如,借助此时的关联分析引擎去发现异常的银行交易,协助银行识别金融欺诈或者洗钱交易。
注意,SOC2.0的这三个发展阶段不是替代关系,而是覆盖关系,安全管理平台的外延将不断扩大,逐步与业务融合。
由上不难发现,事件关联分析将始终作为安全管理平台的核心技术,不断向前发展。而一个成熟的、高速的、实时关联分析引擎将构筑起安全管理平台的核心竞争力。
5 小结
本文详细阐述了安全管理平台(SOC)下的安全事件关联分析及其核心技术,以及关联分析引擎的作用、设计思想和基本技术架构。
按照SOC2.0的基本要求,事件关联分析引擎是整个安全管理架构的核心技术,具有举足轻重的作用,安全管理平台自动化、精确化、实时化水平的提升很大程度上有赖于事件关联分析引擎。
当然,对于安全管理平台而言,仅有关联分析引擎还是远远不够的,还需要其他各部分平台组件的配合,并且还需要不同角色的参与者的支持。安全管理平台要能够真正得以运用,除了需要平台及其引擎的开发者参与,还需要能够写出关联规则的领域知识专家,需要负责系统实施前期规划的业务领域专家、项目实施与运维团队。当然,一定还需要用户的参与。可见,安全管理平台是一个很大的用例(Use Case)。