Top
首页 > 正文

安全界“探案”神器:起底奇安信分布式关联分析引擎Sabre

它提供5类计算单元:日志过滤、日志连接、聚类统计、阈值比较和序列分析,可通过组合计算单元来实现自定义威胁事件发现规则。Sabre基于流处理框架分析引擎,支持对流数据进行实时关联分析。
发布时间:2020-05-28 11:29        来源:赛迪网        作者:

在网络安全中,溯源一个攻击事件的全貌,就像现实生活中的警察破案,以一般典型案例的侦查为例,其一般程序同样是首先初步收集与案件有关的各种线索,然后汇总后分析,最后确定侦查方向、划定侦查范围,直至破案。

探案的初期往往是千万线索或头绪中的抽丝剥茧。在大多数企业网络安全运营者的工作实际中,通过众多厂商的安全产品、设备发现威胁已成常态,然而带给他们众多困扰的不是不仅仅是发现威胁,他们更多情况就像企业里负责网络安全的"警察",要从众多设备告警中,通过分析研判,追踪溯源,找到威胁来源,采取措施保障业务系统损失最小化,网络环境更安全和稳定。然而,众多设备和系统每天产生大量告警,再加上参差不齐的误报率,使得网络安全运营者陷入无从下手的困境。

并且,网络攻击是复杂的、多阶段、持续时间分散、跨多节点的动态过程,独立的日志源无法看到攻击的全貌,而只能看到完整攻击的一个片段,不进行关联,就无法把大量的片段组合起来完成全景拼图。在实际使用场景中,就是用户经常淹没在多个设备频繁告警中,无法通过智能手段将这些告警集中并进行关联处理。

这与真实的警察破案难度不相上下。

你需要一面"线索墙":事件关联

事件关联是一类用于对数以百计的设备中产生的数以百万计的日志进行分析以发现难以捉摸的攻击模式的技术。我们在奇安信NGSOC产品中引入了分布式流式关联分析引擎Sabre,其目的利用关联分析技术来解决安全运营的难题。

这里的事件一般分为简单事件和复杂事件两种,简单事件一般指数据源产生的原始数据,复杂事件则指简单事件经分析后产生的高级事件。

举个例子:房间内部放置着若干个温度传感器,那么这些传感器会不停地产生一系列的事件,一般是类似"某时刻房间温度为xx度",很明显这类事件是简单事件,这类简单事件经过事件关联分析后会产生更为复杂的事件,例如"房间温度已经持续30分钟上升,接近火警警戒线",这种就是简单事件经过分析后生成复杂事件的典型例子。

当然,用于事件关联的技术多种多样,可以从两个典型维度(输出事件复杂程度和事件处理速度)区分以下四种技术的应用范围:

1. 传统商务智能技术(简写为BI技术),以人类速度(秒级)输出复杂事件(业务分析人员借助视图等工具从数据中分析并做出商业决策等)。

2. 复杂事件处理,CEP技术,用于实时或准实时分析简单事件以输出复杂事件的主要技术。

3. 关系型数据库技术,以人类速度(秒级)处理简单事件,由于数据库本身仅提供对原始数据的存储和查询,其输出也是简单事件。

4. 消息队列技术,主要用于消息路由,速度实时或准实时。

神探都需要水库级的脑洞:大数据场景下CEP关联分析要解决哪些问题?

综合考虑,Sabre选择了CEP,也就是复杂事件处理。那为什么是CEP呢?

打个比方,数据库技术就像是个"水库",先将数据存储,再在数据库中进行查询和处理,但这种数据库技术只能处理亿级数据,且查询速度在分钟级。不夸张地说,做一次数据查询,可以抽根烟再回来看结果。而CEP技术是把千亿级数据,直接发送到查询中,随着数据的流动实时获取、分析,实时提交处理结果,查询速度达到秒级,大大提升安全分析和响应的速度和效率。

在CEP之上,Sabre还重点解决了三个问题:

首先是计算框架的选择。基于计算框架做开发可以确保我们聚焦关注点在业务问题上。目前流式计算框架的选择余地不是太多,经过几年的竞争,多个计算框架已经退出,目前仅剩下两个主要的计算框架能够在这个领域继续竞争,Spark或Flink,我们选择了Flink,主要原因是其在国内的发展势头非常好,互联网公司用得也比较多。

其次是对业务逻辑的拆分,使其可以分布式。关联引擎的业务是比较复杂的,因为关联本身就是反分布式的,这使得传统的早期关联引擎都是单体模式,适合在单机上运行,即使是后来迁移到分布式,也只是采用规则分离的方法来局部达到可扩展性。现代的分布式可扩展架构一般采用完全的计算分布式,将计算分解为DAG图,然后根据图的特性来让某些节点并行化,Sabre就采用这种方法来使得逻辑上可分解可分布式。

第三是计算任务的生命周期。Sabre依赖于流式计算框架,流式计算框架会帮助完成计算任务的全生命周期管理,包括计算任务的创建,监控和回收,这可以有效减少业务引擎的代码量,使开发更聚焦于业务代码。

破案的关键: "探"

接下来,进入了破案的关键环节:"探",神探之所以神,除了有清奇的脑回路,还要有强大的破案工具——分布式关联分析引擎Sabre:

全量数据的接入——为了保证分析结果的准确性,尽可能多类型的数据是基本前提。支持接入各种类型和维度的数据,如多源异构日志、漏洞、资产信息、威胁情报以及自定义对象内容,并支持对输出结果进行回注分析。它提供5类计算单元:日志过滤、日志连接、聚类统计、阈值比较和序列分析,可通过组合计算单元来实现自定义威胁事件发现规则。提供丰富的语义,包含统计、基线、关联和序列等,以覆盖各类安全场景的威胁建模和发现。关联分析引擎的业务逻辑如下图所示:

建模更简单——在过去,从遇到问题、分析原理、寻找并确定解决方法到编程开发、测试上线是个长周期且耗时耗力的工程,而我们希望可以借助Sabre,通过类似VISIO界面的操作,进行规则配置,灵活易用。Sabre本身具备规则监测能力,可对配置的规则进行快速精准验证。Sabre中预置150+条规则,将专业的安全运营经验不断通过规则更新传递给用户。

集群更可靠——分析引擎的分布式扩展能力一直是关注的重点,在用户规模从小变大的过程中如何适应不断增长的数据分析诉求是设计的关键要素。Sabre基于流处理框架分析引擎,支持对流数据进行实时关联分析。

性能更强劲——Sabre具备横向分布式扩展能力,性能可从单台3W+EPS向扩展至数十台集群规模,每秒可以处理高达10万条安全事件,而且支持弹性业务扩展。因此,客户可以专注于安全建模精准发现潜在威胁,无需担心计算性能的瓶颈。

每日必读

专题访谈

合作站点