诗云碎片:机器学习在入侵检测中的应用初探首席安全官频道

1. 世界各地AI正不断发展.jpg

1. 世界各地AI正不断发展.jpg

很简单,首席安全官频道超越李白的两条路是:一、把超越他的那些诗写出来;二、把所有的诗都写出来!

使用你们远还未掌握的量子计算技术,就能在可以接受的时间内完成这样的计算。到那时,我就写出了所有的诗词,包括所有以前写过和以后可能写的。

直到宇宙毁灭,所出现的任何一个诗人,不管他们达到了怎样的高度,都不过是个抄袭者,他的作品肯定能在我那巨大的存贮器中检索出来。

以上片段摘自科幻作家刘慈欣于2003年发表的小说《诗云》。按照这篇小说的架构,地球被一个掌握着先进科学技术的 “神” 所控制。这个 “神” 偶然遇到了一位醉心古诗和艺术的地球人,随后通过读取古汉语数据库,进而搜集、了解人类文明。而为了证明自己技术上的绝对优势,这位“神”试图利用自己掌握的先进技术和整个太阳系物质量的强大储存能力,将汉字数据库中所有汉字计算后产出 “所有的诗”。因此,就出现了以上对话片段。

当然,这篇小说的技术实现以及脑洞和情怀并非本文的重点。这里要说的是,小说中提到的利用强大算法和数据库资源产出内容以及完成检索的过程,跟本文要探讨的机器学习(Machine Learning)其实有一些相似之处。

如今,机器学习作为带动很多技术革新的人工智能技术的一部分,已经被应用到很多领域。市值十亿美元的网络安全行业也开始应用机器学习来提升网络安全成效并节约成本效益。

分析公司 ABI Research 最近的一份报告估计,网络安全领域将大大加强在机器学习用于大数据、智能和分析方面的支出,到2021年,相关支出可能达到960亿美元(719亿英镑)。

机器学习概述

说起机器学习,人们自然而然会将它与人工智能和深度学习这两个词联系起来。简单来说,深度学习属于机器学习的范畴,而机器学习和深度学习都是人工智能在当今时代最新的实现方式和最先进的实践技术。

人工智能 机器学习 深度学习 .png

人工智能 机器学习 深度学习 .png

20世纪50年代,人工智能的概念开始出现;到20世纪80年代,人工智能的具体实现方式——机器学习开始流行;2010年左右,机器学习的具体分支——深度学习也开始独树一帜,蓬勃发展。

人工智能专家、斯坦福计算机科学专家 Andrew Ng 认为,机器学习是一种 “让计算机在没有明确编码的情况下也能运行的科技”。换句话说,机器学习是一系列可以将数据分类或发现数据类别的技术。在最基础的层面上,机器学习利用从示例数据中学到的算法,让工作人员可以对新的或者尚未验证的数据进行预测。机器学习可以说是 “边工作边学习”,这也是机器学习的得名由来。

根据数据类型的不同,对一个问题的建模的方式也不同。在机器学习或者人工智能领域,人们通常会优先考虑算法的学习方式。将算法按照学习方式分类是较常见的分类方法。

机器学习按算法可以分为监督学习、非监督学习、半监督学习和强化学习。

监督学习

监督学习从给定的“训练数据“中学习出一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的。监督学习常用于分类问题和回归问题。常见算法有逻辑回归(Logistic Regression)分析、反向传递神经网络(Back Propagation Neural Network)以及统计分类(Statistical Classification)。

举例来说:假设需要预测一个已经在售卖的房子是否会在六个月之内卖出去,我们会以其他六个月之内卖出去房屋尺寸、价格等销售数据为依据进行预测。

监督学习用于数据预测的过程很简单。首先在图上绘制每个房子的坐标(x,y)=(价格,尺寸),并将六个月内销售的房屋标为粉色圆点,其余的标为绿色星形,如图1所示。在训练阶段,需要告诉算法哪些房子是迅速卖出去的,哪些是卖的比较慢的。算法随后会学习到房屋的价格、尺寸以及房子是否在规定的时间内卖出去这三个因素之间的关系。在本例中,关系曲线如图1深蓝色曲线所示。

监督学习例图.png

监督学习例图.png

图1 监督学习例图

利用这些信息,我们能较为精准地预测某套房子是否能在六个月内卖出去。在图1中,新房子对应新的数据坐标点。如果坐标点在曲线左边,就表示房子可以在六个月内卖出(和粉色坐标点代表的房子情况一样);否则,就像曲线右边的绿色星标代表的房子情况一样,无法在六个月内卖出。

监督学习的另一个常见的应用是垃圾邮件检测。在系统训练期间,人工告知哪些电子邮件是垃圾邮件,哪些邮件不是垃圾邮件。此后,垃圾邮件检测系统将会了解垃圾邮件的“样子”并检测传入的电子邮件是否为垃圾邮件。

监督学习的基本理念是每组数据都有明确的标识:第一个例子中的房子要么是六个月内售出,要么是六个月内未出售。 第二个例子的电子邮件要么 “是垃圾邮件” 要么 “不是垃圾邮件”。

监督式机器学习并不完美,而且可能会出现分类错误 ,例如垃圾邮件被识别为非垃圾邮件或非垃圾邮件被识别为垃圾邮件。 然而,如果猜测正确(即识别为垃圾软件)的概率足够高,则分类误差就不至于成为大问题。人们可以容忍5%的垃圾邮件被识别为非垃圾邮件,但是不会轻易容忍5%的非垃圾邮件被识别为垃圾邮件且被自动删除。

非监督学习

非监督学习跟监督学习的工作模式相同。但是,非监督式学习用到的 “训练数据” 不带有人工标注的标签。在这种情况下,人工将原始的数据 “喂” 给算法,算法按照数据点的 “相似性” 自动进行粗略分类。这种学习模型是为了推断出数据的一些内在结构。

非监督学习例图.png

非监督学习例图.png

图2 非监督学习例图

基于数学概念,彼此接近的数据点被归为“相似”的数据。可以参照图2,推导出数据的相似性:蓝色块中的数据点较为集中,相互靠近,粉色块和绿色块中的点也呈现出这种特性。

非监督学习不仅限于对类似点进行分组,更侧重于发掘数据内部的结构和关系。 非监督学习的一大优点是在探索和学习中免于人工的偏见。因为不限于人工的标签和分类,机器可能会找到人类没有发现的数据结构和关系。

非监督学习的常见的应用场景包括关联规则的学习以及聚类(Cluster analysis)等。常见算法包括Aprior 算法以及 k-Means 算法。

半监督学习

在这种学习方式中,“喂” 给算法的数据部分被标识,部分没有被标识。这种学习模型可以用来进行预测,但是模型首先需要学习数据的内在结构以便合理的组织数据来进行预测。半监督学习的应用场景包括分类和回归,算法包括一些对常用监督式学习算法的延伸。这些算法首先尝试对未标识数据进行建模,在此基础上再对标识的数据进行预测。如图论推理算法(Graph Inference)或者拉普拉斯支持向量机(Laplacian SVM.)等。

强化学习

强化学习通过观察来学习自身应当做出怎样的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境反馈来做出判断。与监督模型不同,输入数据仅仅是为了检查模型的对错。在强化学习种,输入的数据直接反馈到模型,模型必须对此立刻作出调整。强化学习常见的应用场景包括动态系统以及机器人控制等。常见算法包括 Q-Learning 以及时间差学习(Temporal difference learning)。

实现过程

一般而言,机器学习的实现过程主要分为两个部分:训练和测试。一般需要经历以下步骤:

从训练数据中学习并确认类属性(特征)和类

确认用于分类的属性子集(例如:数据降维)

利用训练数据学习算法模型

利用训练模型将未知数据分类

常用领域

在企业数据应用的大环境中, 最常用的是监督学习和非监督学习模型。 在图像识别等领域,由于存在大量的非标识的数据和少量的可标识数据,更适合使用半监督学习模型。而强化学习更多的应用在机器人控制及其他需要进行系统控制的领域。

网络安全领域与人工智能

网络安全领域与人工智能

前不久,cbinsights 发布了一项报告,报告指出人工智能在网络安全领域的应用主要有九大类:

1. 反欺诈与身份管理(Anti Fraud & Identity Management)

2. 移动安全(Mobile Security)

3. 智能预测(Predictive Intelligence)

4. 行为分析与异常检测(Behavioral Analytics / Anomaly Detection)

5. 安全自动化(Automated Security)

6. 网络风险管理(Cyber-Risk Management)

7. App安全(App Security) 

8. 物联网安全(IoT) 

9. 网络欺诈(Deception Security)

其中,用到机器学习最多的还是入侵或威胁识别与检测、智能预测等。

入侵检测

按照国际标准描述的概念,入侵检测是指“通过对行为、安全日志或审计数据或其它网络上可以获得的信息进行操作,检测到对系统的闯入或闯入的企图”。 早期有个叫做 CIDF(Common Intrusion Detection Framework)的组织,描绘了一个入侵检测系统的通用模型:

早期 CIDF 描绘的入侵检测模型图

早期 CIDF 描绘的入侵检测模型图

早期 CIDF 描绘的入侵检测模型图 

事件产生器(Event generators),如上图 E 盒;

事件分析器(Event analyzers),如上图 A 盒;

事件数据库(Event databases),如上图 D 盒;

响应单元(Responseunits),如上图 R 盒;

E 盒通过传感器收集事件数据,并将信息传送给 A 盒,A 盒检测误用模式;D 盒存储来自 A、E 盒的数据,并为额外的分析提供信息;R 盒从 A、E 盒中提取数据,D 盒启动适当的响应。A、E、D 及 R 盒之间的通信都基于 GIDO(generalized Intrusion detection objects,通用入侵检测对象)和 CISL(common intrusion specification language,通用入侵规范语言)。如果想在不同种类的 A、E、D 及 R 盒之间实现互操作,需要对 GIDO 实现标准化并使用 CISL。

简单来说,入侵检测的过程可以说是将问题分类的过程,主要目的是将 “合法” 流量与 “恶意” 流量区分开来。目前有很多威胁检测和入侵检测的方法。一般来说,网络入侵检测系统(NIDS)按照检测方式可以分为误用入侵检测(misuse detection )和异常入侵检测(anomaly detection)。

误用入侵检测

是指利用已知恶意行为和知系统和应用软件的弱点攻击模式来检测入侵。这是比较简单的检测方式,利用关于 “坏” 行为的特定描述,通过特征标识(signatures)、黑名单以及其他入侵指标的学习完成训练过程。训练过程完成后,就能按照各种指标对新数据进行检测。如果没有击中任何标识,那么这个新数据就被判定为 “好” 数据。

传统的误用入侵检测技术主要有以下两种:

基于专家系统的攻击检测技术:根据安全专家对可疑行为的分析检验所形成的一套推理规则,并在此基础之上构成相应的专家系统。专家系统对历史数据的依赖性比基于统计技术的审计系统少,因此系统的适应性比较强,可以较灵活地适应广泛的安全策略和检测需求。

基于模型推理的攻击检测技术:能够为某些行为建立特定的模型,以能够监视具有特定行为特征的某些活动 根据假设的攻击脚本,这种系统就能检测出非法的用户行为 为准确判断,一般要为不同的攻击者和不同的系统建立特定的攻击脚本。

异常入侵检测

根据异常行为和使用计算机资源情况来检测入侵。异常入侵检测试图用定量方式描述可接受的行为特征,以区分非正常的、潜在的入侵性行为。这种检测方法更加细微化,认为攻击流量与 “好” 流量本质上就有所不同,而检测目标则是识别出一切异常流量。

相比之下,误用入侵检测能直接检测不利的或不可接受的行为,而异常入侵检测是检查出与正常行为相违背的行为。

传统的异常入侵检测技术有以下两种:

基于统计方法的攻击检测技术:对攻击进行实时检测的工作原理,是基于对用户历史行为的建模以及早期的证据或模型。审计系统实时地检测用户对系统的使用情况时,根据系统内部保持的用户行为的概率统计模型进行监测。当发现有可疑的用户行为时,系统保持跟踪并监测、记录该用户的行为;

基于神经网络的攻击检洲技术:神经网络可用于解决传统的统计分析技术所面临的多种问题,建立确切的统计分布、难于实现方法的普适性、算法实现比较昂贵、系统臃肿且难于剪裁等。它能对实时检测得到的信息进行有效的处理,并做出攻击可能性的判断。

异常入侵检测的细微特征体现在不会设置一系列关于好坏不同的精确描述,而是可以利用机器学习找到某种程度上 “突出” 的信息。从原则上来说,如果不要求关于检测目标的精确描述,机器学习的算法就会非常有助于异常检测。

目前机器学习在入侵检测中的应用情况

目前,大多数入侵检测系统都基于误用入侵检测。研究人员综合安全专家的经验知识和既有探索成果,以此为基础建立了特征标识列表。

沙箱也可以用于攻击检测。例如,以在孤立的环境中打开一个文件或运行一个程序,以便发现任何“奇怪”(不受欢迎)的行为。如果打开文件或运行程序没有触发任何异常行为,那么文件或程序就是安全的。但是,如果触发了异常行为,系统就会发出警报,并且不会对目标系统造成任何损坏。但需要注意的是,在上述情况下,系统都是在检测已知或人工可识别的攻击。 

一旦攻击者稍微修改一些已知的恶意软件,就会带来较大挑战,因为以上检测方法会失效。如果攻击者做出较大修改,改变了恶意软件的特征标识,利用标识进行检测的方法检测就不出任何异常内容。此时,机器学习就能派上用场了。

机器学习 .jpg

机器学习 .jpg

有财力有人力的大型企业以及特别容易受到攻击的行业(例如政府和国防、银行业以及整个计算机技术领域)是机器学习的积极拥趸。Splunk、Gurucul、Vectra、 趋势科技、赛门铁克、Invincea、CrowdStrike 以及 IBM 等都已经开始为机器学习买单了。

Cylance 这种安全初创企业中的翘楚,尝试通过利用机器学习算法并配合复杂的数学计算来推测攻击者的攻击目的和心态。为了实现这个目标,该公司给客户提供了能够预测和防范高级网络威胁的技术和服务。同样,SentinelOne 公司也用了预测执行建模技术来检测和保护网络设备的安全,并实时检测各种未知的网络威胁。

初创企业 Darktrace 则使用了先进的数学方法和机器学习技术来检测组织系统和网络中的异常行为,并根据异常信息来检测网络攻击。Darktrace 所采用的方法不仅可以帮助企业抵御外部攻击,而且还可以防止那些已经入侵了企业网络的国家级黑客以及网络犯罪团伙窃取自己的信息和知识产权。而 BehavioSec 这样的公司还提供了基于行为的生物识别系统,这种系统会根据终端用户的行为(例如监控键盘记录、鼠标行为和异常检测)创建出相应的数字指纹,然后根据数字指纹来保护 IT 组织和电子商务企业的安全。

赛门铁克的机器学习高级总监 Andrew Gardner 表示,将人类智慧、经验与计算机相结合将是机器学习 “自然变革” 的主要内容和趋势。

目前有一种有针对性的鱼叉式钓鱼攻击,主要通过电子邮件发送。这其实是一个棘手的问题,因为鱼叉式钓鱼攻击是以程序化的方式制定的,人工很难发现。邮件在特定的时间定位到了特定的人,不会大规模发送垃圾邮件,甚至发的钓鱼邮件内容也是定制化、独一无二的。

我们有分析师可以检查可疑电子邮件,但是如果没有机器学习,人工一次只能检测一到十封邮件。现在我们建立了将人力和电脑融合在一起的工具。机器学习模型可以学习如何寻找到目标并呈现给分析师。也就是说,就算模型无法完全检测出威胁,但是可以检测到用户所寻找的内容(机器学习可以在一大堆信息中较为精确地找到一些内容)。

他同时也表示 “机器学习带来的真正益处是规模化和自动化。以下棋作比喻:两个人下棋和两台电脑下棋之间的差别非常大。电脑下棋的速度可以非常快。”

总体而言,机器学习在入侵检测中的优势主要体现在两点:

首先,通过对于已有入侵数据的学习,机器学习模型能检测到未知或之前未检测到的攻击。而目前常用的方法需要在有精准描述的情况下才能检测到入侵目标,不能实现未知检测。

其次,机器学习可以用于应对新型攻击,因为机器学习可以从新数据中获取信息,而且可以实时、批量进行检索和预测。这其实是个很强势的优点,可以让系统即使在被入侵的环境中也能持续工作,而且修改算法时只需要最小程度的人工参与。

机器学习 2.jpg


机器学习 2.jpg


注意事项

鉴于机器学习可以检测入侵且能检测到新攻击,而且目前人工智能和网络安全领域都在飞速发展,前景大好,可以说,机器学习能成为网络安全和入侵检测的一项标准化工具。

但事实上,机器学习离标准入侵检测工具还有一段距离,主要原因有三点。

机器学习更适合发现相似性而非差异性

因此,机器学习有助于构建诸如亚马逊等网站的商品推荐系统。然而,入侵检测系统总是在恶意环境中运行。在安全厂商利用机器学习维护网络安全的同时,攻击者其实也在利用机器学习进行攻击。他们能获取企业和用户能获取的内容,反病毒、安全协议、IP 系统,里里外外研究个遍。同时也能利用机器学习 不断学习和分类的特性,训练机器学习模型将恶意元素识别为“好”的元素,将实际上不同(坏)的内容识别为相似(好)的内容。他们还可以购买一个反病毒系统,然后进行测试,直到最后算法能成功入侵这个反病毒系统,直到最终成品可以攻击大部分主机和系统。

因此,机器学习作为一种中立的技术,可以被安全专家用于维护网络安全,也可以被攻击者利用发起攻击。要想让机器学习更好地为入侵检测以及网络安全服务,安全专家必须精进技术,不断开拓更多用于训练的数据库,开发更高级,更复杂的算法。只有走在攻击者前面,才能有效抵御攻击。

机器学习的检测成果仍有待考究

异常检测不同于误用检测,在误用检测中,可以轻易地确定某个规则或特征标识被触发,从而确定为何某项特定事件被标记出来。但是,在使用了机器学习的异常检测过程中,系统只会告知某个数据点(例如网络包,URL,文件等) “看起来像”其他数据点。但是不一定会告知哪些值或哪些模型与已有数据存在相似之处。因此需要有一种方式来帮助分析人员有效地处理被标记的数据点。

如前文所述,机器学习执行异常检测的能力首先基于一种假设:某种攻击或入侵的流量不同于良性或正常的流量。然而,这也让研究人员面临着一个困难的问题:哪些是正常流量?如何定义这些正常流量?这都是不小的挑战,因为不同端口、协议、源、加密或未加密的payload的流量,以及不同的文件长度、会话等的流量都是多种多样、各不相同的。如果再加上虚拟化以及私有云的元素,问题就会变得更加复杂。而如果不能清除定义正常流量,就很难发现异常流量。

入侵检测系统的错误成本很高

虚假入侵警报很浪费时间,因为分析师必须遍历所有的输出流量来确定数据点是良性的。同时,如果没有检测到某个真正的入侵行为,则可能非常危险。

此外,用于机器学习模型训练阶段的数据也需要不断更新、扩大。

小结

有专家绘制了关于入侵检测的帕累托曲线,并论述了当机器学习与前入侵检测的情况。

入侵检测 帕累托曲线.png

入侵检测 帕累托曲线.png

入侵检测的规律也遵循帕累托法则:80% 的结果取决于 20% 的原因。这一法则对应到机器学习上,则表明了两点:

1. 目前,大多入侵检测的方法成效不错。见上图,我们目前正处于绿点的位置。也就是说,我们可以检测到目前大部分入侵行为。

 2. 但是,上图也意味着,如果想要检测出更多入侵行为,就需要使用更多的入侵检测工具和技术。

无论如何,随着人工智能飞速发展以及机器学习越来越广泛的应用,入侵检测中用到的机器学习算法只会越来越高端,越来越复杂。同时要明确的一点是,安全的核心是人,技术的支撑点也是人。人工智能在可以预见的未来,还是无法完全取代安全人员。

《诗云》的最后,万能的 “神” 也不禁感叹:

借助伟大的技术,我写出了诗词的巅峰之作,却不可能把它们从诗云中检测出来。

当然,主要还是因为“诗云”的数据库太大了,占据了整个太阳系的物质量,检索起来无穷无尽。这篇小说成稿于 2003 年,当时的技术自然没有今天先进。也许到今天,我们的畅想可以大胆一点:机器学习可以在不断的训练和学习中,最大程度地完成人工需要做的工作,成为入侵检测中最好的技术。

参考来源

https://www.kudelskisecurity.com/sites/default/files/files/publication_MachineLearning_EN.pdf

https://www.utdallas.edu/~muratk/courses/dmsec_files/oakland10-ml.pdf

https://www.cbinsights.com/blog/cybersecurity-artificial-intelligence-startups-market-map/ 

 

*本文作者:AngelaY,FreeBuf 官方报道,未经许可禁止转载。

2017-07-14 10:16 阅读:867