搜索
查看: 2443|回复: 16
收起左侧

[技术原创] (翻译完成)Avira白皮书:NightVision(夜视)——使用机器学习对抗恶意软件

[复制链接]
霄栋
发表于 2018-6-15 01:25:29 | 显示全部楼层 |阅读模式
本帖最后由 霄栋 于 2018-6-17 23:01 编辑

简介
​       很大程度上,我们今天的线上资料定义了我们是谁。我们聊天,开会,购物,交易,并且在线分享个人照片与经历——几乎我们的一切所做作为都留下了数字足迹。线上资料是个人的私人和职业生活的通行证,通常包含大量的私人身份信息以及机密商业数据。随着我们日益扩展和丰富属于我们生活的虚拟数据,网络犯罪分子通过攻击我们个人和商业线上资料而牟利的机会也持续增加。我们预测,网络犯罪的步伐将无限加速,成为我们日常生活的首要犯罪威胁。

目录
  • 使用人工智能增强本地扫描引擎
  • Avira的恶意软件检测方法
  • NightVision,APC(Avira保护云)的组成部分
  • NightVision:Avira人工智能平台指南
  • 使用NightVision识别恶意软件
  • 聚类过程
  • 特征选择
  • 异常侦测
  • 分类器优化
  • 再训练NightVision的重要性
  • 网络安全中机器学习的未来是什么?

使用人工智能增强本地扫描引擎
​       使用联网设备的消费者与企业面临这样的现实:他们需要部署防御措施以防范日益复杂的犯罪活动形式。今天的第一道防线通常是笔记本电脑或移动设备上的反恶意软件扫描引擎。作为世界上最大的网络安全解决方案提供商之一,Avira保护了近1亿名个人用户,每天分析超过5000万个可疑文件,并且每天为消费者抵御超过30万个恶意文件——它们全部使用了本地扫描引擎和基于云的安全服务的组合。
​       尽管如此,由于网络犯罪的步伐加快,威胁研究者分析和创建识别恶意软件的保护规则的负担也随之增加。同样的,被推送到每个终端解决方案的更新的频率和大小也将增加,这需要开发新技术以确保本地引擎仍然易于管理。随着这些威胁的数量和性质的增加,网络安全提供商正在意识到需要确定和部署新的方法以成功抵御这些风险。然而,现代网络犯罪的天性决定了在某种程度上安全厂商始终是被动的——毕竟,一个威胁首先要被创建,然后才能被识别和缓解。因此,网络安全行业已不满足于本地恶意软件扫描引擎和启发式技术的能力,转而研究人工智能(AI)的应用,使它能够以人工不可能达到的速度进行大规模威胁分析。 我们在另一篇Avira白皮书中讨论了人工智能的不同方法(以及它与机器学习的关系),因此这里我们将进一步深入研究Avira如何将人工智能集成到其恶意软件检测和预防解决方案中。

Avira的恶意软件检测方法
​       Avira是少数几个使用其全球客户构建传感器网络的厂商之一,传感器网络能够实时识别世界各地出现的威胁。它包含了恶意软件扫描与本地机器学习,与Avira强大的云端安全服务共同工作,创建了“集群智能”——一个包含近1亿传感器的网络。
​       每天,5000万个未知或可疑文件被Avira恶意软件检测服务的用户直接上传到它的云端安全服务:APC。该服务位于德国并可被全球访问,它检测来自位于世界各地的Avira终端传感器提交的新威胁。这种新型智能的持续工作,使得该服务能够随着处理恶意软件作者释放的现有威胁和新型威胁的变种情报而持续进化。
​       APC拥有关于每个威胁如何操作、不同的恶意软件家族和编码模式如何相互联系、代码中微小的混淆如何唯一地改变恶意软件的行为与分类的复杂细节。这一类型的数据是我们使用的人工智能的子集——机器学习的“圣杯”(Holy Grail ,传说中耶稣最后晚餐所用之杯,指长期渴望之物——译者注),它构成了我们的NightVision人工智能平台的基础。
​       机器学习是人工智能的子范畴,它专注于开发能够在新数据下持续适应和改进的计算机程序。在网络安全的世界里,这一形式的人工智能补充了用于检测和识别恶意软件威胁的人工数据分析,在Avira白皮书《人工智能在网络安全中的应用》中,有关于它的更加详细的解释。
​       Avira并不依赖于单一方法解决该问题,而是使用一整套不同的机器学习技术,从线性模型如逻辑回归(Logistic Regression),到非线性模型如使用核函数的支持向量机( kernelized Support Vector Machines)、随机森林(Random Forests)以及对某些问题的最佳选择——深度学习(Deep Learning)技术,如卷积神经网络(Convolutional Neural Networks.)。这些技术被应用于不同的检测任务,包括恶意软件检测和钓鱼网站检测,取决于用户需求和底层平台的能力。
​       将我们在机器学习与人工智能领域的专业与在网络安全行业30年的经验结合,使得我们的方法如此成功。任何机器学习方法要工作,一个最基本的要求就是数据。在Avira,我们当然拥有数据,因为我们维护着随新情报而持续更新的包含数亿恶意文件的数据库。这并不与购买一个包含每个威胁的基本细节的数据库同样简单;它关乎收集和分析每个独立文件以获得对每个文件如何操作,不同的恶意软件家族和编码模式如何相互联系、代码中微小的混淆如何唯一地改变恶意软件的行为与分类的全面理解。人工智能网络安全解决方案只能和被输入到机器学习平台的数据一样好,而我们的数据规模巨大、内容丰富且复杂——这是我们机器学习引擎的动力。

NightVision,APC(Avira保护云)的组成部分
​       随着网络安全厂商使用日益复杂的技术改进他们的安全解决方案,网络罪犯正在寻求更好的方法混淆他们的恶意代码以规避最新的检测技术。恶意软件作者使用的最成功的技术之一是使他们的可执行文件隐藏它们的真实目的。如果一个恶意软件能够使安全解决方案确信它并非恶意文件,它可能保持未被识别——这意味着作者必须确保文件显示和合法文件一样多的属性。
​       在某些情况下,恶意软件作者也许能够成功地镜像大多数文件属性,在文件的分类上留下一个问号;或者他们可以对文件进行加密,这意味着扫描技术可能无法完全访问交付分类所需的不同文件属性。这便是Avira的方法与其它一些安全厂商有所不同的地方。在这种情况下,这些厂商的方法是将文件与表示其是恶意软件的可能性的得分反馈给终端。如果文件的评分表示其很可能是恶意软件,终端用户将被阻止执行该文件,但这也可能会产生误报。如果文件被识别为安全,终端用户可以执行它,但它也可能具有恶意加载。
​       取而代之的,Avira使用部署于APC上的复杂检测系统,通过一系列步骤识别文件的真实属性。我们使用强大的云端扫描引擎和NightVision,我们的人工智能系统。我们使用“自动转储”(autodumping)以移除混淆层——例如加密——以决定文件是否包含恶意软件。如果文件属性的不确定性仍然存在,我们就会使用分析沙盒技术,它能够模拟终端用户的客户端设备,将文件“引爆”于虚拟环境。这些系统代表了组成整个APC系统的一些元素。关键的问题是,如果检测到任何恶意行为,信息就会被反馈到NightVision系统中以便进一步训练,因此如果同样的行为在之后被发现,人工智能就能够将其标记为恶意。
​       偶尔APC中的自动检测系统可能无法得出关于一个文件是否为恶意软件的确定结论。在这种情况下,人工智能与人类专业知识将结合在一起。在Avira,一名恶意软件分析师将基于其行为对恶意文件进行彻底分析,并对其如何隐藏真实目的进行评估。分析人员将使用此信息创建一个附加文件属性——一个关键标志符,它将恶意软件从其合法的镜像文件中标记出来。他们之后可以将这个附加的文件属性输入NightVision中,使其再训练自身以发现新的信息,不仅仅在这个特定的文件中,而是在Avira庞大数据库中已经包含的超过2.5亿个文件中。

NightVision:Avira人工智能平台指南
​       NightVision是一个非常强大的云端人工智能技术平台。它部署于APC中,由我们超过30年的恶意软件分类数据的数据库支持,能够从超过8000个属性(或维度)对文件进行分析。NightVision在一个服务器集群上利用数以千计的CPU核心和许多TB级的内存进行训练。因为该平台并不依赖于一种方法,而是能够使用许多能为所需环境优化的不同技术,它能够在云端运行,但也构成我们的分布式传感器网络的一部分,形成了“集群智能”。其结果是一个带检测引擎的高效模型,提供极高的零日检测率和低于0.001%的极低误报率。

使用NightVision识别恶意软件
​       当我们的全球传感器网络——以及APC中的其它检测元素——将一个文件识别为潜在威胁,一些过程和算法将被使用以将文件分类为干净或恶意。NightVision使用的过程包括无监督和有监督的学习。NightVision使用无监督学习将所有文件分组为具有相似属性的群集,而不考虑文件类型;有监督学习之后使用决策面将群集划分为干净或恶意软件类型。

聚类过程
​       分析的第一步是在我们的恶意软件分类数据的数据库的支持下,通过8000个属性(或维度)非常快速地分析未知和可疑的文件。这些属性和维度涵盖了(文件的)所有基本信息,例如文件的段大小或源自结构的熵(混淆),比如恶意软件作者人为创建的对文件有意或无意的修改所造成的异常。基于Avira数十年的网络安全经验,通常这些是高度明确的属性。它们提供了关于一个特定恶意软件属于哪个家族的明显指示,有助于实现从一个独立未知文件到一个与数以千计的其它文件相关的可被快速归类的文件的跳跃。
       我们执行这一过程——称为聚类——对我们数据库中的所有文件——约20亿恶意和干净的样本创建了约20亿个点,在向量空间中被超过8000个属性所分类。请注意,我们特意应用了一种使用基于手工构建的特征提取的方法,因为这使我们得以整合我们在恶意软件分析中的深厚技术经验。这与在供应商缺乏数据,且尚未构建恶意软件数据库的情况下试图自动从文件中提取特征的其它技术形成了对比。
       因为聚类阶段处理的目标是确保文件被尽可能快地处理,在此NightVision并不关心文件是干净的或恶意的,它只是简单地根据相似性将文件划分为簇。为了将文件划分为簇,我们使用了一个标准技术——k-均值(k-means)的变种,它简单地根据它们的均值将向量空间划分为K组点。尽管如此,我们实施该算法的方法是十分不标准的。为了加速k均值簇的计算,我们使用了一个内部开发的技术来处理算法的细节,通过多达20个因子加速聚类过程。该方法最近被发表于该领域的顶级会议——国际机器学习会议(ICML),并且是当前最先进的k-均值聚类算法 [Bottesch et al, 2016]。

捕获1.PNG

       通过将具有相似属性的文件聚类,围绕其平均属性进行聚类处理,可以识别出文件景观中的不同“区域”。下一个目标是学习如何在这些区域中识别出恶意的或干净的文件。在此,NightVision处理器核心的巨大可扩展性被激活,现在我们并行地使用多个有监督的机器学习算法检查这些簇。

特征选择
​       mRMR(最小冗余,最大相关)算法被用来作为一个独立的过滤器以识别最重要的特征,并为环境优化模型和使性能最优化。它选择彼此“远离”(最小冗余)的与目标变量相关程度较大的特征,例如文件是干净的还是恶意的(最大相关)。分类良好特征的选择可以通过使用巧妙的合并方案进一步优化 [Bottesch & Palm, 2015]。

异常侦测
​       另一个不同的学习技术被用来发现数据中的异常。这使用了当前内部开发的尚未发布的技术。在这种情况下,异常被认为是向量空间的高度密集区域中与其标签不一致的点,它们对应潜在的被错误标记的样本,或恶意软件作者对有害数据的蓄意企图。无论如何,那些异常会被自动侦测、移除并发送给我们的恶意软件研究人员人工检查。这一技术的好处在于,我们可以同时解决两个关键问题:使我们的分类器更加健壮,与此同时侦测新型恶意软件威胁。这样,我们就可以将我们的机器学习技术与恶意软件研究经验结合起来,快速适应新型威胁。

分类器优化
       最后,分类器被训练于学习寻找决策边界,使我们能够区分干净和恶意的文件。这里我们有一个灵活的体系结构,可以应用多种分类器,包括逻辑回归、随机森林和使用核函数的支持向量机。分类器的选择以及前面步骤中选择的特征数控制了侦测率、模型大小以及侦测速度的权衡。在当前运行于APC中的NightVision中,我们使用随机森林算法为每个簇生成最终分类器,它根据文件属性的标准积累了许多决策树。每个独立的决策树可能不是特别稳定,但它们聚合而成的森林使分析具有高度的健壮性和准确性。最终的综合分类器是众多随机森林模型的组合,每个模型都提供了向量空间中相应区域的非线性分离。

捕获2.PNG
图示:决策边界的建立:如图,展示了寻找决策边界过程的简化表示。所使用的算法在数据中找到了一个结构,其中干净的文件和恶意文件分别聚合成组。这种结构可以用一个决策边界来表示(在上面的简化例子中,它恰好是一条直线,但通常它将是一个三维的“曲面”,甚至是更多维度的“超曲面”)。术语“决策”边界一词源于这样一个事实:后续NightVision可以回忆起这个表面,并使用它来决定文件是否位于边界恶意或干净的一方——NightVision学到了决策面中文件位置的根本概念,而不仅仅是深蓝是恶意的,浅蓝是干净的。

关于NightVision
        NightVision平台的基础是近8TB的内存和近1000个CPU核心,它位于德国,遵守世界上最严格的一些数据隐私法律。它目前是第三代技术,最初是由Avira在近十年前开发的。在这段时间里,无论它的规模还是架构都有了重大的发展。

再训练NightVision的重要性
​       如果人工智能被开发来执行通常由人类执行的任务,那么理所应当地,正如人类需要常规的训练和发展才能胜任工作,人工智能也是如此。基于机器学习的人工智能平台依赖于从数据中学习以再训练;因此,这些人工智能平台也只能和被输入给它们的数据一样好。在网络安全方面,人工智能需要可靠和大量的数据集以学习如何识别哪些文件是恶意的而哪些不是。
​       就NightVision而言,我们的全球性的分布式传感器网络确保了我们的数据集随着新兴威胁数据持续增强。投入数据集的数据越多,NightVision就越准确——因为它有更多的输入来学习。正如恶意软件作者通过寻找新的方法混淆恶意代码持续更新他们的逃逸方法,人工智能平台也需要再训练自身以识别这些新的模式和文件属性。
       我们的NightVision流水线的优点之一是持续适应新威胁的能力。为了实现这一点,我们具有一个并行的架构,其中两条训练路径并行运行。第一条训练路径是完全训练,它执行前述的所有流水线步骤。在当前我们的包含数以千计的CPU和TB级内存的计算机集群的配置下,该过程大约需要8小时。我们还并行地持续进行再训练以快速适应新威胁,如下所示。

捕获3.PNG
图示:NightVision执行两条训练路径

       一个文件可能因多种原因被标记以再训练:它可能在经验丰富的恶意软件研究人员检查后被手动重新分类,或者一个不同的检测引擎将文件标记为可疑。一旦如此,该文件就被发送至NightVision机器学习引擎。在计算了K-均值聚类模型之后,NightVision能够将样本分配至最近的簇。这避免了对整个分类器的再训练,而使我们能够将注意力集中于文件所在的特定区域。将文件分配至簇意味着由于区域的大小较小,聚类模型的重新计算发生地非常快。平均而言,这里的整个过程需要约15分钟,之后,我们更新分类器并准备为客户部署新的模型。这就是我们如何在恶意软件检测中实现如此优越的性能并达到如此稳定的高准确度。
       对每一个被提交的新文件,NightVision将在数毫秒内对文件性质进行预测,以避免任何被怀疑为恶意的文件被执行。数分钟内,NightVision将完成彻底的分析,为文件类型构建一个分类器,然后需要再训练自身以学习该分类器。NightVision每天多次自动执行该过程。它大概需要2到3分钟,且该技术在任何阶段都不会离线,以确保客户始终受到保护。
       再训练是完善人工智能平台的一个重要方面,当一个全新的文件属性被创建,最终需要在Avira超过2.5亿文件的数据库中进行一次完整的再学习以识别该属性。这个完整的再学习大约需要8小时,通常每周发生2到3次。同样地,在任何阶段系统都不会离线;一旦再学习完成,它将无缝切换到再训练的人工智能。

为什么快速再训练是必须的
       快速适应新威胁的能力十分重要,因为任何机器学习系统都存在将文件误分类的风险。如果发生这种情况——没有系统能够实际宣称自己是完美的——缓慢的再训练时间(例如,发生在纯深度学习方法中)导致用户在更长的时间内易受新恶意软件的攻击。快速的再训练允许每天多次推送更新,大大减少了存在于每天或每周再训练的系统的潜在漏洞。

网络安全中机器学习的未来是什么?
​       机器学习平台将会完全取代人类,独立承担恶意软件检测和预防的责任吗?
​       在Avira,我们相信分析师将永远被需要以组成保护程序的一部分,提供分析的补充层,并监督机器学习系统持续学习和适应。我们已经将机器学习平台部署于各式各样的设备类型中——从终端到云端系统,补充和增强其它分析方法。目前,我们所能100%确定的是,人工智能网络安全解决方案只会和输入到人工智能平台的数据一样好,这就是为什么我们如此注重我们持续进化的三十年的数据库。使用它来为NightVision提供燃料——作为整个APC的一部分——我们能够通过自动识别大多数提交的新型威胁来持续减轻我们研究团队的负担。不仅如此,由于人工智能处理数据的速度远胜人类,我们可以使用NightVision来确保无论威胁产生的速度如何增长,我们广大的客户群体都能够从新型威胁的快速响应中持续获益。
​       NightVision迅速缩短了由单个端点报告一个新的恶意文件和识别该威胁并向我们的整个用户群发布保护之间的时间。在过去,恶意软件有潜力在被成功分类和缓解之前攻击大量的用户;今天我们可以使用我们的人工智能平台将这一数量减至最少,确保我们的客户群体在威胁接近之前得到保护。
​       也许最积极的一点在于,作为一个人工智能平台而不是一个手动维护的人工数据库,NightVision持续与威胁景观以相同的步调发展。未知威胁出现地越多,被处理地越多,则NightVision被再训练地也越多;因而使我们能够确保在可预见的未来始终为客户提供对已知和未知威胁100%的保护。

由于个人原因,拖更良久,万分抱歉
译者水平有限,翻译难免存在不当之处,还请各位饭友及时批评指正,我会尽快修改。


评分

参与人数 5经验 +20 分享 +3 人气 +7 收起 理由
明月丶舞白衣 + 3 版区有你更精彩: )
freesoft00 + 1
屁颠屁颠 + 20 + 3 + 1 版区有你更精彩: )
191196846 + 1 版区有你更精彩: )
B100D1E55 + 1

查看全部评分

欧阳宣
发表于 2018-6-15 02:39:01 | 显示全部楼层
K-means, clustering, 都是牛逼东西。
191196846
发表于 2018-6-15 08:36:16 | 显示全部楼层
支持一下

无话可说
191196846
发表于 2018-7-6 15:15:25 | 显示全部楼层
本帖最后由 191196846 于 2018-7-6 15:18 编辑

顶一下!

感谢作者带来的文章
帮你投给优秀帖子
allance
发表于 2018-7-7 01:24:44 | 显示全部楼层
占个楼,看起来好像挺不错
ericdj
发表于 2018-7-7 08:55:54 | 显示全部楼层
分类用多个随机森林模型然后集成结果(ensemble learning)
流弊
LorVall
发表于 2018-7-7 09:19:36 | 显示全部楼层
看起来好像说得有理,挺不错
沙丁鱼VX
发表于 2018-7-7 09:49:06 | 显示全部楼层
现在的APC真心强悍,响应速度真心可怕
JTandGP2016
发表于 2018-7-7 15:54:09 | 显示全部楼层
好贴,赞一个。
cloud01
发表于 2018-7-9 16:50:59 | 显示全部楼层
其实最简单的是 软件行业制定一个软件开发标准 ,常用软件不允许带有   读取 用户隐私,加驱 、加服务、等高位动作
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛|优惠券| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 苏ICP备07004770号 ) GMT+8, 2018-7-18 10:48 , Processed in 0.132758 second(s), 24 queries .

快速回复 返回顶部 返回列表