基于机器学习的恶意行为自动化分析KonradRieck,PhilippTrinius,CarstenWillems,andThorstenHolzBDomne译摘要恶意程序是计算机系统中最主要的安全威胁,其变种的数量和多样性使得传统的安全防护不再可靠,互联网上数以万计的机器正受到恶意软件的侵害,这之中最常见的当属病毒、蠕虫和木马。同时,恶意程序采用的混淆和多态技术给文件层面的检测造成了很大阻碍,基于二进制的程序动态分析技术给描述和防御恶意威胁提供了一种新的手段。本文我们基于机器学习提出了一套恶意行为自动化分析的框架,此框架能根据相似的行为特征发现新的恶意程序类型(聚类),并将未知的恶意样本指派到已知的类型中(分类)。在聚类和分类的基础上,我们接着又提出了一种增量分析的方法,它使得借助行为检测处理每天新增的大量样本成为可能,在保证准确识别新变种的同时,增量分析法能很大程度缩短目前通用方法的运行时间。1介绍恶意程序是当今互联网中的一个主要威胁,从经典的计算机病毒到网络蠕虫,再到僵尸网络,无一例外的把连接到网络中的计算机系统作为攻击目标。此类威胁主要由黑色产业驱动,通过系统化的利用被入侵主机达到非法目的,比如传播垃圾邮件、获取机密数据等。遗憾的是传统的安全技术,比如防病毒扫描,在恶意程序不断增长的数量及多样性背景下变得不再那么可靠,导致互联网中成千上万的主机面临恶意软件的威胁。为了对抗网络中快速传播的恶意威胁,反恶意程序的开发者很大程度上需依靠自动化来分析新的变种,进而制定相应的防护措施。然而,自动化分析并非易事,因为恶意程序的编写者经常采用混淆技术,比如二进制加壳、加密,或者代码自修改等来增大分析难度,这些手段对反静态分析特别有效。但和静态分析不同,动态的二进制流分析能够有效的监控程序的恶意行为,这些行为通常不容易隐藏,而且往往表征对应的恶意目的。因此,大量的研究工作集中到开发特定工具来收集和监控恶意样本的行为。动态监控二进制流为研究恶意行为提供了可能,但这还不足以阻止恶意程序的传播。真正需要的是能够自动化的分析样本行为,只有这样新出现的恶意操作才有可能得到控制。针对基于机器学习的自动化分析近年来出现了以下两个概念:(a)对行为的聚类处理,目的在于发现具有相似行为的新类型;(b)对行为的分类处理,能够将恶意操作对应到已知的行为类别。早先的工作大都将这两个概念分开来研究,并通过不同的算法加以实现,以此来处理行为特征。1在本文中,我们认为新类型的发现(聚类)和已知类型的区分(分类)是能合而为一的,对于有效的恶意程序分析它们都是不可或缺的。因此我们提出的恶意行为自动化分析框架将融合聚类和分类的处理。总体来说,本文主要有以下贡献:-可计算的聚类和分类处理。我们将监控到的行为特征映射到一个向量空间,这样就能有效的应用到机器学习的相关方法。同时,为了使计算成千上万的向量成为可能,我们介绍了一种基于原型向量的近似技术,这对于聚类和分类处理都是适用的。-恶意样本的增量分析。通过结合聚类和分类处理,我们设计了一种增量法来进行行为分析,这使得处理每天新增的大量样本成为可能。通过迭代处理,增量分析法极大的降低了运行时间和内存占用,而且还保证了新类型的准确识别。-借助实际的恶意样本进行评估。通过比较评估,我们证明了此框架要远胜于目前主流的分析方法。从结果来看,增量分析法降低了94%的内存占用,并且在速度上至少提升了4倍,它能够在少于25分钟的时间内对33000份行为报告进行处理。虽然提出的分析框架并不能消除恶意程序的威胁,但它为反恶意程序产品的开发指出了一个新的方向,使其能够自动有效的识别新的恶意类型。文章其余部分的组织结构如下:第二节将介绍我们的分析框架,包括特征提取、机器学习技术以及恶意行为的增量分析。第三节将借助反病毒厂商提供的样本对框架进行评估。相关工作将在第四节讨论,第五节为本文的总结。2恶意行为自动化分析恶意程序通常拥有复杂的行为特征,包括最简单的系统资源修改到多样化的网络交互。然而,属于同一家族的变种大都具有相同的行为模型,比如使用特别的互斥变量名或者修改特殊的系统文...