时间:2022-06-13 作者:奇安信集团
作为世界上规模最大、影响最广、竞技水平最高的冬季综合性体育赛事,冬奥会的吸引力似乎已不再局限于冰雪运动员及爱好者。随着数字化技术的日益普及,无论是组织严密的黑客团伙还是民间网络犯罪分子,都试图寻求对奥运会进行网络攻击。
比如在平昌冬奥会在开幕式当天,包括冬奥会网站、电视服务在内均遭到黑客攻击,导致部分业务中断。
面对网络攻击的压力,在北京冬奥会,奇安信首创了冬奥会系统安全体系,实现了网络安全的“零事故”。而在零事故的背后,其中一项关键性技术就是奇安信集团自研的大数据实时关联分析技术-Sabre(赛博威)引擎,它支撑起对冬奥26个场馆、上千亿条日志的实时监控与安全分析,累计监测数亿次网络攻击,跟踪和研判上百起涉奥威胁事件。
冬奥是一个实时关联分析技术的非常典型的应用场景,具备完整要素。
1
多源异构数据的采集
毋庸置疑的是,安全运营是落实网络安全防护的最重要手段之一,而安全运营的核心是安全分析,安全分析的核心目标是找出异常事件,并判断这些异常事件是不是由网络攻击造成的。
在这里,事件是IT系统中某一活动产生的一组数据,体现的是一个对象,它是由特定的属性和对应的属性值组成。比如一个防火墙事件可能包括源IP、包括目的IP、目的端口等信息,而这些数据都被以日志的形式记录了下来。
所以想要找出异常事件,安全分析的第一步,就是把日志数据都采集起来,并以事件流的方式输入到安全分析引擎中。
“冬奥期间的日志数据来自于18类、共计1000+数据源。”奇安信实时安全分析引擎负责人覃永靖介绍,冬奥期间,所有IT系统和网络设备的日志都要汇聚在实时数据平台,不仅仅包括奇安信部署的自有防火墙、SD-WAN、天擎等55款813台各类安全设备,还包括终端、服务器、网络设备、应用系统、业务系统等所有各类IT资产。
这些数据源分布在各个场馆、网络中心、数据中心以及云上系统,它们所产生的日志会被源源不断地送到实时安全分析引擎中进行关联分析。
这其中就产生了三个要特别注意的问题。
第一是尽可能采集所有安全相关日志,不遗漏相关数据。全量日志数据是不发生漏报的最基本条件。网络攻击尤其是APT攻击的发现往往取决于看到细节的能力,部分数据漏掉后就很容易产生“漏网之鱼”。比如一次突然的异地登录或者一个未知域名的访问,这些都有可能是已经被入侵的信号。如果采集的数据不全,这些信号就可能会被错过了。
第二是需要将采集的数据尽可能快的发送到安全分析平台,日志在源源不断的生产,后面分析引擎处于一刻不停的自动分析过程中,采集到的数据需要确保一定的时间线,即前后的时间差需要在一个窗口之内,时间相差太大的日志会影响分析的资源和结果产生影响,因此在整条数据流水线上需要保证一定的实时性。
第三是要能够对各类不同的安全日志进行标准化采集、传输解析和处理。数据源不只有奇安信自有的安全设备,还有多个不同供应商的各类应用,这其中不只有网络安全厂商,还包括网络设备提供商、云计算提供商、应用软件提供商甚至包括大大小小的开源组件等等,所以对于多源异构数据的支持也非常重要。这个过程叫做归一化,不同类型但相同含义的字段需要统一类型和名称,为后面的实时安全分析做好准备。
2
实时安全分析
日志收集起来后,仅仅是“已阅”是不行的,实时分析引擎的核心应该是“判”。
安全分析方法主要包括两种:
◆第一种是延迟计算,即数据收集和安全分析分离;
◆第二种是实时计算,也就是数据收集和安全分析同步进行。
显而易见的是,冬奥冬残奥期间,在平均每天能够产生超过37亿条日志、峰值可以达到近10万条每秒的冬奥网络环境下,实时计算更加合适。
否则安全事故没准已经发生了,计算还没开始,这还谈何零事故。
奇安信的实时安全分析引擎分为三层。
◆底层是大数据集群,主要用于日志数据的采集、存储和预处理。大数据集群为实时安全分析提供了强大的算力支持,否则面对如此海量的多源异构数据就该“罢工”了。
◆中间层主要进行安全分析,它基于目前最流行的开源实时计算框架Flink构建,负责利用各种技术手段,同时结合威胁情报、漏洞情报、资产等知识数据,对日志进行安全分析。
◆最上层则是应用层,负责与用户进行交互,输出分析结果和向安全分析引擎传输用户指令。
众所周知,安全分析的关键要素就是时间,即要求能在最短的时间内发现网络攻击行为、响应安全事件,并且在发现新型攻击行为之后,能够第一时间上线针对性的安全检测方法。
显然,快速完成安全分析是零事故的另一个关键保证,它能够将网络攻击控制在最小范围内。
好在Flink最重要的特点是允许以数据并行和流水线方式执行任意流数据程序,并且具备高吞吐低延迟的能力。这就意味着,在充足算力的支持下,即便冬奥期间的日志量再大一些,奇安信安全分析引擎依然能够平稳运行,保证日志分析的速度和准确度。
但安全分析的目的是要找出异常事件,因此用户需要快速实现威胁建模,并在特定模型下将计算结果与外部输入的检测规则、威胁情报、漏洞情报等知识库进行匹配。
所以,安全分析引擎不仅仅要求极快的计算速度,还要使用起来非常便捷,这样才能最大化提升安全分析的效率。
对于后者,原生Flink框架的支持力度是远远不够的。
“所以我们提供了一种针对安全分析场景进行特定优化的安全分析语言。”覃永靖说,它满足了以下几个特点:
第一,简单易用,学习成本低,易上手,能够满足一个没有研发背景的人,也能经过简单学习之后就能上手使用。
第二,支持丰富的数据类型,这些数据不仅要包含文件读写、网络访问等基础数据类型,还要包含大量的安全数据比如IP,各类时间、资产、漏洞、威胁情报、地理位置等,用户可以不做任何定制就能直接对这些数据进行关联分析,因为这些数据能够为安全分析提供大量的直接证据。比如恶意软件感染发生的时间,感染的主机类型、数量、与外部发生通信的IP地址、使用的漏洞、攻击载荷等等。
第三,提供丰富的语义,尤其对安全分析语义进行增强和定制以及扩展。安全分析的场景是复杂、多变的,没有丰富的语义很难满足所有安全分析的需求。但即便是这样,不同的网络环境依然会面临无对应语义的情况,这就需要有经验的分析师进行个性化扩展。攻击手法的变化非常频繁,对于安全分析来说,总会遇到一些安全语义无法判断和解释的行为,尤其是冬奥场景,这对于国内安全厂商来说都是头一回,很难保证不出现什么意料之外的局面。
3
行为分析与复杂事件关联
如果分析结果能够与已知的规则、威胁情报进行匹配,比如URL、IP地址、文件MD5等,那自然是网络安全问题无疑,但还有一些时候并不是这样。
举个典型的例子,比如内网某主机的流量经常会明显高于其他同类型主机。
这当然有可能是该主机已经被攻陷,被植入了一些特殊的木马导致流量异常增高。攻击者使用了全新的特种木马和基础设施,导致终端安全软件并没有检测出来。
但如果是仅凭流量偏高这个条件,分析人员很难判定它是异常,因为分析工具并没有一个基线标准能够进行比对,有可能就是有一些特殊业务或者特殊时间段,导致流量偏高。
针对这种事件,行为分析是一个非常有用的安全分析方法,它通过学习待分析对象的历史数据生成安全基线,来检测异常行为。比如今天这个主机的流量不仅比同类型其他主机高,也比历史平均水平和流量峰值高出许多,那基本可以判定是异常行为,需要进一步检查。
从中能够看出,安全基线是判定异常行为的核心。
安全基线分为三类:
◆第一类是统计类安全基线,包含常见的时长、大小、频率、空间、范围等多种形式;
◆第二是序列类,比如指数平滑类和周期类安全基线,具备明显的时间先后顺序或者周期规律;
◆第三是机器学习类的安全基线。
(基线详情可参考此文《当你不知道孰是孰非的时候,总有一个引擎在默默制定判断标准》)
在冬奥场景中,基线检测的应用范围会更加广泛。作为一个全新搭建起来的复杂信息系统,不论是人还是安全设备,都会感到非常“陌生”。因此,历史数据的学习,对于检测异常行为而言十分必要。
除了行为分析以外,关联分析也是必不可少的一项手段,它主要适用于两个场景:
第一,单一事件无明显异常,但多个相关事件进行关联则表现出明显异常;
其二,单一数据源无法反映攻击全貌,需要综合终端、流量、服务器等多个数据源进行全局关联分析,还原完整攻击链条。
再举两个例子。日志显示,多个高危端口短时间内被多次扫描并尝试登录;内网某服务器发现非法访问行为。
这些事件可能独立发生,也可能会同时发生,之间可能有关联也可能没有关联。如果结合前文中的例子,那么完整的事件就有可能是攻击者攻陷了某内网终端,并利用该终端通过高危端口访问某服务器。
这就是关联分析的重要意义。
“关联分析是一个常用的安全分析方法,比如当发现某个安全事件后需要将攻击者信息进行全局关联,来发现是否还有其它攻击行为。”覃永靖说,这就像拼图游戏,缺少一块是永远拼不完整的。
4
性能优化与状态监控
需要注意的是,对于冬奥这种全球瞩目的大型体育赛事,对于业务的连续性要求是近乎严苛的。大到全球的电视转播,小到一个记分牌或者计时牌,都不能中断。
这也就是说,网络安全事故是决不能出现的,但同时也绝对不能出现“网络攻击没把网络搞瘫,‘安检’却把它搞瘫了”的现象。
这就需要对性能和资源使用进行优化,防止占用过多硬件资源。
对于实时分析引擎而言,每条检测规则可抽象为一个逻辑子图,用于表达检测流程,就像下图这样:
然而一个安全检测集通常包含上千条规则,如果同时运行这么多规则,必定会消耗大量的资源,因此需要在全局层面进行优化,将分散的子图转换为一个执行图,以此大幅降低计算复杂度,大致过程如下图:
另外一个需要重点优化的就是外部数据的匹配。在冬奥期间,奇安信累计投入生产了超过25000条高质量的威胁情报,如果再加上10000+台终端信息、漏洞情报信息以及各种黑名单、白名单,这个数据量是相当大的。如果每次事件都进行一一匹配,就相当于挨个“打招呼”,不仅需要大量时间,还会造成性能损耗。因此分析引擎需要支持一些数据匹配和存储的优化计数,包含精确、范围和模糊匹配的方法,来提升匹配速度。
比如威胁情报、资产、漏洞、各种白黑名单等,对于超大规模数据表的匹配会带来一些很大的挑战,比如大规模串正则匹配问题等,比如超大规模串正则匹配引擎(100w+),hash匹配、大规模IP匹配计数,包含精确、范围和模糊匹配,以及大规模知识库存储和匹配的优化方法。
万事俱备,然而当引擎真正运转起来之后,作为使用者,还得关心它运行的好不好,如果某些组件资源占用过多,就得对其采取下线、隔离或者限制资源使用等措施了,防止影响其他规则甚至业务的正常运行。
当然,有时候也不能过快了。
实时分析引擎的下游业务可能是一些处理能力比较慢的流程,这时候就需流量控制,防止较快的处理流程向较慢的处理流程输入过多的数据而引起资源过度消耗和卡顿。流量控制需要支持主动流量控制、被动流量控制以及时间窗口相关的流量控制,通过用户配置或自动处理来解决前后处理性能不一引起的数据丢失和系统不稳定问题。
粗算起来,冬奥期间经过实时分析引擎的日志数量就超过了1000亿条,产生的告警数量也是极为庞大的。这样的爆肝能力搭载在奇安信NGSOC上,难怪会让奇安信冬奥重保奇安信冬奥保障总架构师尹智清直呼“爱了爱了”。
不过,保证冬奥零事故也不是就靠一个实时分析引擎就能完成的,而是人+工具+流程+数据的交互结合,并且不断完善的动态体系。
而奇安信冬奥期间实时安全分析所累积的经验,也将为整个中国乃至全球的网络安全服务。
95015服务热线
微信公众号