Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

丛磊作者

从SIEM&AI到SIEM@AI,AI构建下一代企业安全大脑

作者简介:

丛磊,白山合伙人兼工程副总裁

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 平台,这将改变目前安全产品依靠策略设定的固有模式,成为新一代企业安全大脑。

产业SIEM安全防范
1
相关数据
英特尔机构

英特尔(NASDAQ: INTC)是全球半导体行业的引领者,以计算和通信技术奠定全球创新基石,塑造以数据为中心的未来。我们通过精尖制造的专长,帮助保护、驱动和连接数十亿设备以及智能互联世界的基础设施 —— 从云、网络到边缘设备以及它们之间的一切,并帮助解决世界上最艰巨的问题和挑战。

http://www.intel.cn/
相关技术
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

半监督学习技术

半监督学习属于无监督学习(没有任何标记的训练数据)和监督学习(完全标记的训练数据)之间。许多机器学习研究人员发现,将未标记数据与少量标记数据结合使用可以显着提高学习准确性。对于学习问题的标记数据的获取通常需要熟练的人类代理(例如转录音频片段)或物理实验(例如,确定蛋白质的3D结构或确定在特定位置处是否存在油)。因此与标签处理相关的成本可能使得完全标注的训练集不可行,而获取未标记的数据相对便宜。在这种情况下,半监督学习可能具有很大的实用价值。半监督学习对机器学习也是理论上的兴趣,也是人类学习的典范。

相关分析技术

相关分析就是对总体中确实具有联系的标志进行分析,其主体是对总体中具有因果关系标志的分析。它是描述客观事物相互间关系的密切程度并用适当的统计指标表示出来的过程。在一段时期内出生率随经济水平上升而上升,这说明两指标间是正相关关系;而在另一时期,随着经济水平进一步发展,出现出生率下降的现象,两指标间就是负相关关系。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

剪枝技术

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

阿尔法围棋技术

阿尔法围棋是于2014年开始由英国伦敦Google DeepMind公司开发的人工智能围棋程序。AlphaGo是第一个打败人类职业棋手的计算机程序,也是第一个打败围棋世界冠军的计算机程序,可以说是历史上最强的棋手。 技术上来说,AlphaGo的算法结合了机器学习(machine learning)和树搜索(tree search)技术,并使用了大量的人类、电脑的对弈来进行训练。AlphaGo使用蒙特卡洛树搜索(MCTS:Monte-Carlo Tree Search),以价值网络(value network)和策略网络(policy network)为指导,其中价值网络用于预测游戏的胜利者,策略网络用于选择下一步行动。价值网络和策略网络都是使用深度神经网络技术实现的,神经网络的输入是经过预处理的围棋面板的描述(description of Go board)。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

异常检测技术

在数据挖掘中,异常检测(英语:anomaly detection)对不符合预期模式或数据集中其他项目的项目、事件或观测值的识别。 通常异常项目会转变成银行欺诈、结构缺陷、医疗问题、文本错误等类型的问题。 异常也被称为离群值、新奇、噪声、偏差和例外。

奇异值分解技术

类似于特征分解将矩阵分解成特征向量和特征值,奇异值分解(singular value decomposition, SVD)将矩阵分解为奇异向量(singular vector)和奇异值(singular value)。通过分解矩阵,我们可以发现矩阵表示成数组元素时不明显的函数性质。而相比较特征分解,奇异值分解有着更为广泛的应用,这是因为每个实数矩阵都有一个奇异值分解,但未必都有特征分解。例如,非方阵型矩阵没有特征分解,这时只能使用奇异值分解。

向量空间模型技术

向量空间模型是一个把文本文件表示为标识符(比如索引)向量的代数模型。它应用于信息过滤、信息检索、索引以及相关排序。

网络流技术

在图论中,网络流(英语:Network flow)是指在一个每条边都有容量(capacity)的有向图分配流,使一条边的流量不会超过它的容量。通常在运筹学中,有向图称为网络。顶点称为节点(node)而边称为弧(arc)。一道流必须匹配一个结点的进出的流量相同的限制,除非这是一个源点(source)──有较多向外的流,或是一个汇点(sink)──有较多向内的流。一个网络可以用来模拟道路系统的交通量、管中的液体、电路中的电流或类似一些东西在一个结点的网络中游动的任何事物。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

云计算技术

云计算(英语:cloud computing),是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

层次聚类技术

层次聚类通过对数据集在不同层次进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的聚合(agglomerative)策略,也可采用“自顶向下”的分拆(divisive)策略。“自底而上”的算法开始时把每一个原始数据看作一个单一的聚类簇,然后不断聚合小的聚类簇成为大的聚类。“自顶向下”的算法开始把所有数据看作一个聚类,通过不断分割大的聚类直到每一个单一的数据都被划分。

分类问题技术

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

降维技术

降维算法是将 p+1 个系数的问题简化为 M+1 个系数的问题,其中 M<p。算法执行包括计算变量的 M 个不同线性组合或投射(projection)。然后这 M 个投射作为预测器通过最小二乘法拟合一个线性回归模型。两个主要的方法是主成分回归(principal component regression)和偏最小二乘法(partial least squares)。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

word2vec技术

Word2vec,为一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。 训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。 Word2vec依赖skip-grams或连续词袋(CBOW)来建立神经词嵌入。Word2vec为托马斯·米科洛夫(Tomas Mikolov)在Google带领的研究团队创造。该算法渐渐被其他人所分析和解释。

主成分分析技术

在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

特征选择技术

在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择或变量子集选择。 它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。

隐含狄利克雷分布技术

隐含狄利克雷分布简称LDA(Latent Dirichlet allocation),是一种主题模型,它可以将文档集中每篇文档的主题按照概率分布的形式给出。同时它是一种无监督学习算法,在训练时不需要手工标注的训练集,需要的仅仅是文档集以及指定主题的数量k即可。此外LDA的另一个优点则是,对于每一个主题均可找出一些词语来描述它。LDA首先由Blei, David M.、吴恩达和Jordan, Michael I于2003年提出,目前在文本挖掘领域包括文本主题识别、文本分类以及文本相似度计算方面都有应用。

主动学习技术

主动学习是半监督机器学习的一个特例,其中学习算法能够交互式地查询用户(或其他信息源)以在新的数据点处获得期望的输出。 在统计学文献中,有时也称为最佳实验设计。

批次技术

模型训练的一次迭代(即一次梯度更新)中使用的样本集。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

暂无评论
暂无评论~