作者简介:
丛磊,白山合伙人兼工程副总裁
2016 年加入白山,主要负责云聚合产品的研发管理和云链产品体系构建等。
2006 年至 2015 年就职于新浪,原 SAE(SinaAppEngine)创始人,曾任总负责人兼首席架构师,2010 年起,带领新浪云计算团队从事云相关领域的技术研发工作。
现任工信部可信云服务认证评委。
摘要
SIEM 是企业安全的核心中枢,负责收集汇总所有的数据,并结合威胁情报对危险进行准确的判断和预警。但传统的 SIEM 过度依靠人工定制安全策略,不仅仅增加了人力成本,而且整个 SIEM 的识别准确率和使用效果也都大打折扣。而目前附带 AI 功能的 SIEM 系统也只是把 AI 当成算法插件作为集成,无法在没有安全人员介入的情况下独立的智能工作。
本文将从传统 SIEM 组件构成入手,介绍 AI 对于下一代 SIEM 的适用性和重要性,并重点阐述当前主流 SIEM&AI 平台和全新一代 SIEM@AI 平台的区别;随后将结合实际案例深入讨论 SIEM@AI 的两个核心技术原理:数据分析和数据关联;在最后的篇幅,文章会探讨 SIEM@AI 的发展和研究方向。
一、SIEM 简史
SIEM 是 Security Information Event Management 的缩写,又名安全信息事件管理平台,作为企业的安全大脑,它可以为企业提供安全数据的收集、整合、分析、关联、处置和展现等功能,是企业业务安全运营的核心和基础。
早在 10 年前,SIEM 的概念就已经被提出。SIEM 作为企业内部涉及安全的日志管理平台,提供日志的采集、存储、分析查询功能。经过十多年的发展,如今 SIEM 的产品形态已得到丰富拓展,包括支持多维数据源输入、威胁情报中心(Threat Intelligence)、策略脚本库(Playbook)等,同时外部威胁数据的共享和获取也使得 SIEM 系统不断被完善。
图 1:SIEM 市场规模预测(来自 Gartner 2017 年报告)
SIEM 在美国一直保持着较快发展,根据 Gartner 相关市场报告,SIEM 在全球(主要是美国)最近每年都保持着 10% 的增长速度,预计在 2020 年市场规模可达 200 亿人民币。然而在中国,SIEM 还处于比较初级的阶段,很多企业对自身安全问题并没有系统性的管理。2017 年整个中国市场只有 3.17 亿人民币的规模,这个数字相比中国经济对全球经济的占比是不相符的。不过可喜的是,SIEM 中国市场最近每年都保持着近 20% 的增长速度,说明越来越多的中国企业已经意识到了 SIEM 的重要性。
但并非所有企业都需要 SIEM,处于初期发展阶段的企业数据流和业务量单一,面临的安全威胁较少,安全设备和软件的需求也相对较小,依靠独立的安全产品即可满足基本需求。当企业发展到中大型规模时,业务线增多,内外网安全环境变得复杂,同时前期使用的安全产品也达到了一定数量,这时就有必要接入 SIEM 来实现统一的安全运营管理。
二、解构 SIEM 图 2:SIEM 整体架构图
SIEM 平台的主要架构由 5 个层次组成:
● 采集层:系统数据入口。SIEM 大多支持多种数据输入,这些数据从来源划分,包括终端用户设备、网络设备、服务器、存储设备等;从 OSI 模型划分,包括了数据链路层、网络层、传输层、应用层的网络流量;从系统角色划分,包括不同的业务系统、中间件系统、负载均衡系统等。这些数据或以推送的方式或以拉取的方式向 SIEM 平台输送,供 SIEM 进行后续的分析计算。
采集层使用的技术主要分为两类:「侵入式」和「无侵入式」。「侵入式」一般采用部署 Agent 程序,或者用户在自身代码逻辑中添加程序探针等方式采集数据;「无侵入式」一般则采用旁路镜像流量或者输入日志等方式采集数据。两种模式各有优缺点,「侵入式」有利于企业增加定制化功能,并结合 SIEM 平台的多维特性深入贴合业务,但弊端在于外挂式的 Agent 一旦不稳定,就会影响用户自身业务,甚至导致系统宕机,我自己就遇到过好几个客户向我抱怨自身的服务被厂商的嵌入 SDK 搞的不稳定。「无侵入式」则可以完全避免对业务系统的影响,一方面提升系统稳定性,另一方面保护系统数据安全。在技术成熟的情况下,对用户来说,「无入侵式」采集方式显然更加友好。
● 存储层:采集后的数据除了供给后面的计算分析外,还会进行存储。存储层有两个目的:一是对原始采集数据进行存储,二是对计算分析完成的结果进行存储。
存储可选择的技术栈一般包括数据管道(中间数据传输),热存储(存储常用数据查询、更新),冷存储(存储不常用的数据)。严格说,数据管道不算是存储,但在实际上为了防范后端数据丢失或堆积,一般也会将经过管道的数据进行临时存储,比如互联网公司最常用的 Kafka 队列就是将中间数据落地在磁盘上。
冷热分级存储的目的在于,保证热数据操作速度的同时,在一定程度上降低企业存储成本。对于冷存储而言,比性能更大的技术挑战是可靠性和可用性,支持多 IDC、甚至多 Zone 的大型分布式存储技术系统是企业首选;而对于热存储,更关注的是读写速度以及如何被计算单元使用,所以一般会选择带有 Sharding 能力的分布式存储。
● 计算层:SIEM 平台的核心。分析准不准、全不全、快不快都依赖这层的计算单元。目前主流的计算模式包括实时计算平台和离线计算平台。
海量数据的离线计算平台起源较早,早在 10 多年前就出现在 Google 的 MapReduce 系统中,MapReduce 底层先利用 GFS 将海量数据分片存储,解决了单点设备的 IO 吞吐瓶颈。每个计算节点再依赖调度器或执行 Map 任务或执行 Reduce 任务,不断将海量计算任务分解、归并,最终输出期望的计算结果。实时计算平台算是海量数据计算的后起之秀,包括了以 Storm 为代表的实时流处理和以 Spark steaming 为代表的微批次处理两种技术实现方式。
在实时性上,实时流处理模式的处理速度更快,但从实际的使用经验来看,这种模式也要求更高的技术运维经验。无论是实时计算平台还是离线计算平台,都要求支持任务的 Partition,这样可以在某些主机宕机的情况下,仍然保证计算顺利完成。
计算平台最核心的并不是计算框架,而是算法部分的计算逻辑。计算逻辑对流量、用户请求、系统交互信息等不同类型的数据进行计算。目前绝大部分 SIEM 平台的实现都是基于规则引擎,如 Drools,这就需要依赖使用者制定大量的规则,一旦使用者制定的规则有错误或者有遗漏,就会造成错判漏判。
● 输出层:计算层分析的结果最终传导至输出层。传统 SIEM 的输出方式有很多,包括展现层面、报表层面、报警通知层面、实时阻断层面等,企业可以根据不同业务部门的不同需求选择合适的输出方式。SIEM 的输出结果不仅仅和安全部门或业务部门有关,还可能涉及到其他业务单元,比如资产管理、组织管理等。
从事件处理的生命周期来看,处理方式可以分成自动方式和手动方式,自动方式可以对计算层分析出的安全威胁事件进行自动处理,包括通知、预警、上报甚至阻断,而对于不能自动处理的情况,就需要手动方式,这时可以借助工单系统进行后续处理跟踪,最终保证安全威胁被处理。
● 情报中心:情报中心为 SIEM 计算层提供额外的数据支撑,从而提高威胁和异常行为识别的准确率。情报中心的数据来源一般有三种渠道,第一种是来自公开输出的威胁情报,如 X-Force Exchange、ThreatBook、Shodan 等;第二种是来自自身搜集的威胁情报数据,如通过蜜罐采集、API 调取或者交换购买等方式取得有价值的威胁情报;第三种就是来自跟业务自身相关的辅助数据,如用户注册信息,企业资产信息、组织信息等等,这些信息看似和安全威胁关联不大,但是当多种数据联合分析时,就可以为最终的结果输出提供有效参考。
情报中心数据的内容包含多种形式,常用的如 IP 库、设备指纹库、黑卡库、漏洞库等。使用或依赖情报中心要注意情报的实时性,因为目前云化和共(zu)享(yong)经济的普及,很多资源并不是独占的,而是在一定时间后就被回收,并交由其他用途,这样的话如果情报更新不及时就会适得其反。
三、SIEM、态势感知和 SOC 安全运营中心
SIEM、态势感知和 SOC 安全运营中心有着紧密关系。其中态势感知范围很广,主要聚焦在感知过去、理解现在、预测未来三个层面,这和 SIEM 的采集并计算分析给出结果进而感知预测是高度吻合的。一些企业发布的态势感知系统其实就是简化的 SIEM 或者是 SIEM 的超集。SOC 安全运营中心则在 SIEM 的基础上突出了人的作用,强调了人和平台以及软件之间的联动,通过类似 Ticket 系统的任务追踪机制,配合 SIEM 提供的数据分析结果,用人对业务和资产进行全面的安全管理。
总之,SIEM 对于企业的整体安全分析是非常重要的,通过 SIEM 可以打通多种数据流的信息,形成对于安全威胁的事前、事中、事后处理,最终保证企业的整体资产及业务安全。
四、AI 遇上 SIEM
如果说 IT 技术有风口的话,那么 AI 无疑是最前沿并且最落地的,AI 整体发展分为三个阶段:
1. 识别阶段,解决 What 的问题,这是最基础的 AI 问题。目前的 AI 通过大量有监督学习,提取标注样本的表象或内在特征,形成一个或多个分类器,分类器对样本数据特征进行学习训练,最终对新的输入进行准确识别,从而解决什么是什么的问题。比如什么是小狗、什么是色情图片等。
典型的应用包括验证码识别、语音识别、垃圾邮件识别等。人们熟知的 AlphaGo 也是识别问题,深度学习通过对成千上万个已经标注好输赢的棋局进行训练,利用头几层的神经元网络,越过表象特征挖掘出人都很难理解的深层次特征,形成了对于棋局的「感应」能力,从而对某个棋局是更有利于黑方还是白方做出判断,再结合αβ search 或 MCTS 等算法,给出下一步走法的最优解。应该说识别是应用 AI 最成熟的领域。
2. 理解阶段,解决 Why 的问题,这是在识别的基础上进一步的 AI 问题。比如一段文字想表达的情感是什么?一个电影讲述的故事是什么?一段语音的问题是问什么等等。最典型的应用场景就是人机对话,其基础是理解人说的是什么,想表达什么意思。
理解问题最原始的解决办法就是构造各种语义模板,用来做情感标注,变相把理解问题转换成识别问题。但随着深度学习的普及,已经出现了很多新的技术以突破模板定义的限制进而试图真正理解内在含义。但是通过苹果手机 Siri 的例子就可以看出,目前的 AI 对于理解问题的能力还远远没有到成熟的阶段。
3. 反馈阶段,解决 How 的问题。How 本质是在识别的基础上,理解了对方的信息内容后,做出恰当的反馈。反馈是 AI 的最高境界,是实现真正人机互动的关键,有了反馈互动的能力,AI 就可以像真人一样在一些领域部分代替人类,甚至完全代替人类。但很明显,目前 AI 的发展阶段离这个目标还相距甚远。
从 AI 的三个发展阶段看,目前 AI 还主要处于「识别」和「理解」的初期,离真正的「代替人类」还有很长远的路要走,当下真正已经成熟使用的技术基本集中在「识别」问题。同时我们观察安全领域就会发现,安全领域里的问题恰恰就是非常典型的"识别"问题,通过 SIEM 里的各种输入数据进行分析,只需要识别这个事件或这个用户是否存在威胁即可,整个过程无关理解也无关反馈。
图 3:主流 SIEM 系统 AI 工具示例
应该看到,目前的新型 SIEM 已经集成了 AI 的能力,比如有的 SIEM 平台,集成了常用的 AI 算法,比如异常检测、线性预测,这些算法以插件的方式集成进平台,用户可以基于这些算法分析自身的数据。
五、从 SIEM&AI 到 SIEM@AI
目前主流 SIEM 平台的最大缺点是:他们仅仅是 SIEM&AI(以 AI 作为工具),把 AI 仅仅当成是 SIEM 平台的一个附属插件或工具,而没有把整个 SIEM 平台构建在 AI 技术上面。这样带来的影响是,企业使用 SIEM 时需要花费大量的时间、精力、人力去学习、配置和使用这些 AI 工具,另外,SIEM&AI 还要求企业具有一定的特征工程经验,而这对于很多企业而言是不现实的。我见过很多企业客户,当我问到他们使用 SIEM&AI 类产品的的 AI 部分的体验时,都是一脸茫然,仿佛花了大价钱买了高级玩具却没玩起来。
而企业真正需要的是:SIEM@AI(以 AI 作为平台),无需很多成本甚至完全无需学习成本,即可使用 AI 技术从海量的输入数据流信息中发掘威胁事件,并自动使用 AI 技术对不同业务、不同维度的数据进行智能关联,建立内在联系,并最终自动的对威胁事件进行处置处理。
六、AI 赋能数据分析
数据标注难题
如前所述,在安全领域,大部分问题都是「识别」问题,从数据分析的角度,可以将问题最终归为分类问题。通过建立算法模型,预测进行中的事件甚至还未到来的事件是否存在威胁,也就是把它们分成有威胁和无威胁两类。但是安全领域在使用 AI 时存在一个巨大的困难,即样本标注难。对于经典的图片识别问题,企业可以使用较低的人力成本批量制作标注样本,然后送入深度神经网络训练。但是安全问题则不同,从大量杂乱的信息数据中识别是否存在威胁、是何种威胁,需要专业的安全人员,甚至多个部门跨部门协作才能完成。
无监督学习化解标注难题
标注难问题可解吗?答案是肯定的,那就是利用无监督学习。无监督学习可以将正常事件聚在一起,同时也会将异常事件聚在一起,从而方便算法识别出异常威胁。而整个威胁识别的过程无需标注样本,也大大降低了人工参与的程度。
无监督学习是机器学习中一个非常重要的分支,不同于有监督学习需要依赖大量标注好的样本才能让分类器进行学习,无监督学习可以在没有任何标注样本的情况下由分类器自主学习。只不过目前市场上绝大多数产品都集中在有监督学习上,导致无监督被长期忽略了。
图 4:聚类示意图
白山 ATD(Advanced Threat Detection,深度威胁识别,新一代的 SIEM@AI 系统)产品大量使用了无监督学习技术来进行威胁事件识别,无监督学习的本质是将数据进行聚类,而根据聚类实现的过程不同又主要分为三种算法:
1. 距离聚类
2. 核密度聚类
3. 层次聚类
距离聚类
距离聚类是最常见的聚类算法,本质是 EM 算法,通过对于距离中心点的不断迭代修正,最终将所有事件进行归类,那么有威胁的事件自然会被归到一簇或者几簇,而正常的事件也会因为更相似的距离而归到一簇或者几簇。当然这是理想情况,在现实场景中实施算法还需要做很多的加工工作。距离聚类的最大困难一是距离计算方式的选择,二是聚类簇数量的选择。
距离计算选择主要包含两个方面:
如何规定事件边界:繁杂的海量数据输入中,一个事件的边界从哪里开始,到哪里结束,包含哪些数据。这需要按照不同的应用场景做不同的处理,常见的方式有按照时间段,也有按照事件切分点。
如何制定事件间距离:事件有很多不同的描述维度,对于最常见的维度——时间、地点而言,记录时间有可能是 UNIX 时间戳,记录地点有能是 GEO IP 或者 MAC 地址,那么如何把 UNIX 时间戳和 IP 地址放在一个向量空间模型里比较距离就是一个问题了。这里 ATD 采用的 Z-Score 算法进行距离映射,使得映射后的数据具有完全的正太分布特征。
簇的数量选择对于无监督学习的算法效果至关重要,一旦初始簇的数量选择不合适,就有可能导致聚类的结果完全错误。
图 5:聚类示意图
如上图,红色异常点是我们需要识别出来的,显然聚类簇数为 2 的效果比聚类簇数为 3 的效果要好,因为 3 将正常的事件点也分为了两类。ATD 使用一系列算法在聚类前预判准确的聚类簇数量,最好的情况下可以提升 200% 的聚类效果。
核密度聚类
核密度聚类不需要事先指定聚类的簇数,而是根据初始的密度值进行聚类选择,所有与核距离过远的事件都会被标记为离群点,这些离群点从安全角度看可能就是威胁事件。
密度聚类的前提是需要选择合适的初始密度值,如果选择不当将导致离群点错误,最终使威胁事件误判。另一方面,控制离群点的数量和纯度对最终的识别效果也很重要,因为在实际生产环境中,很有可能出现大量的离散点其实也是正常的事件。所以有时候也需要在第一次聚类后,调整事件的特征选择算法,针对离群点进行二次聚类。
层次聚类
层次聚类的原理是先将所有事件看成树的叶子节点,每个叶子节点自成一类,然后根据相互的距离,自下而上逐层合并,最终形成一个根。
层次聚类可以根据需要,按照最终聚类的簇数进行层层归并,最终聚成的小簇我们可以认为是某种离群点,即有可能是一些威胁事件。可以看出,层次聚类的核心仍然是距离计算模型的选择。
智能分析风险
利用无监督学习,可以在无需标注样本和无人工介入的前提下,发现很多异常的威胁风险。下图是一个被 ATD 系统识别出的实际例子:
图 6:ATD 无监督学习示例结果
这是一个 ATD 对企业电商业务无监督学习的实际案例,案例显示大部分用户的访问路径集中在登录页=》授权页=》订单页的访问趋势,通过无监督学习就可以将正常用户的行为聚在一起。反观刷单的恶意行为则会绕过授权页直接访问订单页,这样在无监督学习过程中就自然形成了离群点,这样我们就可以帮助企业识别出刷单的威胁风险。
七、AI 赋能数据关联
横向关联
AI 威胁数据分析,分成纵向的数据分析和横向的数据关联:
图 7:数据的纵向分析和横向关联
纵向分析指的是对于事件群体按照时间轴学习规律,以此进行对于已有的威胁识别和对于未来的态势感知。横向关联指对空间上不直接相关的不同事件群体,通过算法挖掘它们的深层次关联关系,最终形成更准确的威胁识别或者便于对威胁事件进行更全面的回溯。
对于大多数 SIEM 产品,只要附带 AI 工具功能的,便可以完成诸如异常点检查、趋势预测等任务(尽管他们当中绝大多数都是有监督学习,这也就意味着客户需要提供大量标注好的威胁事件和正常事件的样本),不过这些任务都是纵向分析,并不是横向关联。因此,对于新一代 SIEM@AI 系统来说,比起无监督学习进行纵向分析,更有挑战的任务是在表层不相关的海量数据中建立潜在关联,从而实现真正的深度威胁识别。
事件的相关运算
常见的事件关联场景基本上可以分为这两种:
A,某一作用域(如某一时间段内)的事件集合,挖掘事件之间的关联关系,如:
上图就是两个完全由不同系统统计输出的事件,我们需要用算法分析是否存在关联,这个过程实际可以转换为:按行分析相关性。
B,同一类型事件,挖掘构成的因素是否存在关联关系,如:
上图所示,全部「ERP 系统不能访问」的事件中,各个因素间是否存在关联,这个过程实际可以转换为:按列分析相关性。
由此可以看出,无论是不同事件的关联分析,还是同一类事件的内在因素关联,本质可以转换为矩阵的行相关或列相关。对于列相关,通过对于矩阵转置运算,也可以转换为行相关,即:
我们只需要分析 K1 和 K2 是否在某种程度存在相关。
对于这种关联分析,最常见的方式是用类似 KNN 算法中,通过计算两个事件元素的夹角来判断相关性:
θ=acos(K1⋅K2/(|K1||K2|))
当夹角越小时,表示两个事件越相关,而当夹角互相垂直(即正交)时,表示两个事件完全无关。
当然,我们还可以使用其他的方式计算相关性,比如 Jaccard 距离:
J(K1,K2)=|K1⋂K2|/|K1⋃K2|
当 J 值越大时,表示两个事件越相关,反之则越不相关。
夹角距离计算方式更适用数值型的事件向量,而 Jaccard 距离计算方式更适合枚举字符串类型的事件向量。当然事实上,我们可以把任何字符串类型的事件,通过 word2vec 或者 simhash 等算法方式转变为数值型事件向量,然后再进行夹角计算。
啤酒与尿布
说到数据关联,不得不提的经典故事就是「啤酒与尿布」了,沃尔玛在做数据关联分析时发现啤酒和尿布在购物单上是相关的,这是怎么回事?原来妻子经常会嘱咐丈夫下班以后要为孩子买尿布。而丈夫在买完尿布之后又要顺手买回自己爱喝的啤酒,因此啤酒和尿布的销售行为上具有相关性。
从数据关联算法复杂性的角度看,啤酒和尿布的关联属于比较简单也相对直接一些的关联,Apriori 算法就是解决这个问题的简单可实现的算法之一。Apriori 算法通过不断的筛选频繁项并且不断的产生新关联规则的方式,最终得到关联性最强的事件元素。
图 8:Apriori 算法示意图
深入 Apriori 算法的过程就会发现,其实 Apriori 整个计算过程和计算事件间的 Jaccard 距离十分类似,本质都是比较两个事件的相似因素后进行筛选。不过 Apriori 算法在实现上比两两比较效率更高,因为在其中有剪枝缩小范围的过程。
更隐晦的事件关联
其实,在 ATD 给客户服务的实际应用场景中,上文提到的「啤酒,尿布」还都算是比较简单的事件关联模型。更为复杂的是,如何发现从人的感知认识角度看并不是那么直接的关联关系。比如空气的雾霾指数和城市用电量的关系,从人的感知角度,这两个并不是特别的直接相关。但当我们在两个事件中引入一个桥梁,即室内人数占比,就会发现这样的概率关系:
P(用电量/雾霾)=>P(室内人数增加/雾霾)* P(用电量增加/室内人口增加),其中 P(A/B)表示 B 事件发生情况下发生 A 事件的概率
如果可以列举出雾霾导致的所有核心事件,就可以使用全概率公式推导出雾霾和用电量的关系(所以这里我并没有使用等号=而是使用了=>)。
从威胁识别的角度,通过这种中间的桥梁事件,同理也可以构建出两个看似不相关的事件之间的关系。比如在我们给某家电企业部署的 ATD 运行中,就发现了一次疑似的 CC 攻击实际是和后端某业务线数据库变更操作有关:
P(疑似 CC 攻击/业务线数据库变更)=>P(疑似 CC 攻击/接口访问飙升)* P(接口访问飙升/504 占比)* P(504 占比/请求阻塞)*P(请求阻塞/数据库阻塞)*P(数据库阻塞/数据库变更)
解决这种复杂隐晦的事件关联的前提是首先要把所有信息(不管认为是否相关)都收集进来(这也是文章开始阶段提到的 SIEM 的采集层需要解决的),尽可能多的采集各种数据,因为只有采集到数据才有可能建立关联。当海量的数据采集进来后,我们往往在做下一步相关分析时会发现一个难题,即:因为数据太多,导致分析的性能很低。如果威胁事件分析的不及时,很可能会影响后续的处理,所以整个分析过程的低延迟至关重要。
数据降维
如何保证处理速度呢?那就需要对数据进行降维分解,从而降低计算空间,这里面有两种做法:
1. 有监督降维
如果企业本身有大量标注数据,那就可以使用有监督降维,最经典的有监督降维就是 PCA(Principal Component Analysis,主成分分析),其原理是选择一种最优的数据投射方式,从高维空间投射到低维空间,并且保证投射后有较好的区分度。
2. 无监督降维
在没有大量标注数据的情况下就可以使用无监督降维,这也正是 ATD 所使用的数据降维方式。有很多种算法都可以进行无监督降维,ATD 最早使用的是 LDA(Latent Dirichlet Allocation)主题发现模型进行降维,通过 LDA 先将数据按照主题相关性聚类,降低每一类中数据的数量和维度,从而减少后续计算的复杂度。
这里,我想介绍另外一种数据降维的方式,也是我们目前正在尝试的——SVD(Singular Value Decomposition)分解。
图 9:对威胁事件进行 SVD 分解
上图所示,我们先对于一个海量的事件集进行了 SVD 分解,分解的结果是三个矩阵的乘积,然后通过对于中间Σ矩阵的元素进行筛选,就可以降低整个事件集群的复杂度,同时找到同一个隐含主题下的关联事件和关联因素。隐含主题的数量本质上就是事件矩阵的秩。
从更深的角度讲,无论是 LDA 还是 SVD,其实本质都是去寻找事件矩阵的秩,利用秩找到构成事件的最核心因素,比如对于一个入侵事件,可能的核心因素是用户的属性(内/外部用户、是否授权、相应职级等等)、入侵时间、侵入的业务类型,而其他的因素,诸如员工的年龄、当时的服务器负载等等其他因素有可能就会被算法自动识别为非关键因素而忽略掉。通过这种方式就可以在茫茫信息中发现关键因素,从而为后面的事件关联大大降低运算量。
总之,数据的横向关联是一个极富挑战性的任务,其中最重要的先决条件是通过 SIEM 的采集层收集足够的数据,其次是选择合适的算法对数据进行加工处理,最后是通过 AI 算法对数据进行关联分析。在 ATD 客户的实际使用中,我们成功地发现了外网的接口攻击和内网数据库变更之间的关系,也发现了某邮件系统的 Exchange 日志事件和内网 SSH 事件之间的关系。这种关联分析不仅仅对于已知威胁的回溯有帮助,也对未来的安全态势感知有重大意义。
八、关于未来方向的探究
从 SIEM&AI 模式到 SIEM@AI 模式,我们不再将 AI 看成是插件或者工具,而是将系统运行在一个完全由 AI 驱动的智能平台上。在这个平台上,我们无需标注数据,无需大量人工介入,也无需定制规则,而是通过以无监督学习为主导的机器学习算法自动对异常威胁事件进行识别,自动的为各个复杂事件建立内在关联,提高识别的准确率和召回率的同时,解放安全工程师的人力并提高其效率,最终实现对于企业外网、业务、内网的三层智能防御。
白山 ATD 产品就是一套全新的 SIEM@AI 系统,我们过去花费了大量时间和精力去研发基于无监督学习的 AI 算法来代替目前的传统企业安全产品,这种模式的有效性在企业实践中已经得到了验证。未来,ATD 还会在两个方向做进一步探索研究:
1. 通过主动学习引入人的参与
引入无监督学习的目的是不依赖标注的样本,因为在安全领域,标注样本的获取成本非常大,但是这并不代表可以完全不依靠人工。在可预见的时间范围内,有经验的安全专家对威胁风险的识别、对于算法的修正以及对于整个 AI 系统的鲁棒性维护都是非常重要的。但是,安全专家的时间精力毕竟有限,如何在准确全面识别安全威胁的前提下,降低安全专家的时间成本就显得十分关键。
对此,我们引入主动学习算法,它是一种特殊的半监督学习,依靠安全专家对少量的 AI 识别出的结果进行人工校验,从而不断对原有算法进行微调,直到最终收敛。主动学习里有两个因素非常重要,一是如何挑选供给人工校验的识别结果,二是对于识别结果的纠正如何反馈到算法模型中。通过主动学习,我们就可以构建不断学习、不断演变的 SIEM 系统,进而随着与人的磨合,系统会变得越来越智能,越来越准确。
2. 通过深度学习识别非直观威胁
有些威胁或者异常本身不具备直观表述性,甚至不能被向量化、离散化,最直接的例子就是加密流量。加密后的流量本身是人不可表述的,只是一层二进制输入流。还有些安全事件由于关联业务太多,很难用语言来表述为什么当初这个问题被判定为异常。对于这些问题,都可以尝试使用深度学习的算法来解决,不过深度学习要求有大量的标注样本,只有在这个前提下,才能保证算法的效果。这就要求企业在平时的 SIEM 系统运行中,就不断增加对于威胁事件判定的积累,当数据积累到一定程度后,就可以使用深度学习算法进行分析。
AI 作为安全领域的颠覆性技术,与 SIEM 的结合将构建一个完全基于 AI 的、充分智能的、低人工甚至无需人工介入的新一代 SIEM@AI 平台,这将改变目前安全产品依靠策略设定的固有模式,成为新一代企业安全大脑。