没有合适的资源?快使用搜索试试~ 我知道了~
基于机器学习的恶意行为自动化分析.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 40 浏览量
2022-07-03
16:30:54
上传
评论
收藏 1.12MB PDF 举报
温馨提示
试读
18页
基于机器学习的恶意行为自动化分析.pdf基于机器学习的恶意行为自动化分析.pdf基于机器学习的恶意行为自动化分析.pdf基于机器学习的恶意行为自动化分析.pdf基于机器学习的恶意行为自动化分析.pdf基于机器学习的恶意行为自动化分析.pdf基于机器学习的恶意行为自动化分析.pdf基于机器学习的恶意行为自动化分析.pdf
资源推荐
资源详情
资源评论
基于机器学习的恶意行为自动化分析
Konrad Rieck, Philipp Trinius, Carsten Willems, and Thorsten Holz
BDomne
译
摘要
恶意程序是计算机系统中最主要的安全威胁,其变种的数量和多样性使得传统
的安全防护不再可靠,互联网上数以万计的机器正受到恶意软件的侵害,这之中最常
见的当属病毒、蠕虫和木马。同时,恶意程序采用的混淆和多态技术给文件层面的
检测造成了很大阻碍,基于二进制的程序动态分析技术给描述和防御恶意威胁提供
了一种新的手段。
本文我们基于机器学习提出了一套恶意行为自动化分析的框架,此框架能根据
相似的行为特征发现新的恶意程序类型(聚类),并将未知的恶意样本指派到已知的
类型中(分类)。在聚类和分类的基础上,我们接着又提出了一种增量分析的方法,
它使得借助行为检测处理每天新增的大量样本成为可能,在保证准确识别新变种的
同时,增量分析法能很大程度缩短目前通用方法的运行时间.
1 介绍
恶意程序是当今互联网中的一个主要威胁,从经典的计算机病毒到网络蠕虫,
再到僵尸网络,无一例外的把连接到网络中的计算机系统作为攻击目标.此类威胁主
要由黑色产业驱动,通过系统化的利用被入侵主机达到非法目的,比如传播垃圾邮
件、获取机密数据等。遗憾的是传统的安全技术,比如防病毒扫描,在恶意程序不断
增长的数量及多样性背景下变得不再那么可靠,导致互联网中成千上万的主机面临
恶意软件的威胁.
为了对抗网络中快速传播的恶意威胁,反恶意程序的开发者很大程度上需依靠
自动化来分析新的变种,进而制定相应的防护措施。然而,自动化分析并非易事,因
为恶意程序的编写者经常采用混淆技术,比如二进制加壳、加密,或者代码自修改等
来增大分析难度,这些手段对反静态分析特别有效.但和静态分析不同,动态的二进
制流分析能够有效的监控程序的恶意行为,这些行为通常不容易隐藏,而且往往表征
对应的恶意目的。因此,大量的研究工作集中到开发特定工具来收集和监控恶意样
本的行为。
动态监控二进制流为研究恶意行为提供了可能,但这还不足以阻止恶意程序的
传播。真正需要的是能够自动化的分析样本行为,只有这样新出现的恶意操作才有
1
可能得到控制。针对基于机器学习的自动化分析近年来出现了以下两个概念:(a)
对行为的聚类处理,目的在于发现具有相似行为的新类型;(b)对行为的分类处理,
能够将恶意操作对应到已知的行为类别。早先的工作大都将这两个概念分开来研究,
并通过不同的算法加以实现,以此来处理行为特征。
在本文中,我们认为新类型的发现(聚类)和已知类型的区分(分类)是能合而为
一的,对于有效的恶意程序分析它们都是不可或缺的.因此我们提出的恶意行为自动
化分析框架将融合聚类和分类的处理。总体来说,本文主要有以下贡献:
- 可计算的聚类和分类处理。我们将监控到的行为特征映射到一个向量空间,这样
就能有效的应用到机器学习的相关方法.同时,为了使计算成千上万的向量成为可
能,我们介绍了一种基于原型向量的近似技术,这对于聚类和分类处理都是适用的。
- 恶意样本的增量分析。通过结合聚类和分类处理,我们设计了一种增量法来进行
行为分析,这使得处理每天新增的大量样本成为可能。通过迭代处理,增量分析法
极大的降低了运行时间和内存占用,而且还保证了新类型的准确识别。
- 借助实际的恶意样本进行评估。通过比较评估,我们证明了此框架要远胜于目前
主流的分析方法。从结果来看,增量分析法降低了94%的内存占用,并且在速度上至
少提升了4倍,它能够在少于25分钟的时间内对33000份行为报告进行处理。
虽然提出的分析框架并不能消除恶意程序的威胁,但它为反恶意程序产品的开
发指出了一个新的方向,使其能够自动有效的识别新的恶意类型。
文章其余部分的组织结构如下:第二节将介绍我们的分析框架,包括特征提取、
机器学习技术以及恶意行为的增量分析.第三节将借助反病毒厂商提供的样本对框
架进行评估。相关工作将在第四节讨论,第五节为本文的总结.
2 恶意行为自动化分析
恶意程序通常拥有复杂的行为特征,包括最简单的系统资源修改到多样化的网
络交互.然而,属于同一家族的变种大都具有相同的行为模型,比如使用特别的互斥
变量名或者修改特殊的系统文件.我们的目标就是利用这些相同模型进行自动化分
析,并提出一套基于行为检测的包含聚类和分类处理的分析框架。我们的框架原理
图如图1所示,主要步骤可概括为:
1.首先我们将通过沙箱环境监控恶意样本的二进制流。基于具体的执行操作,换言
之即系统调用,每一个二进制文件将产生一系列的行为报告,其中的系统调用和参数
将保存在特定的表示法中以进行下一步的分析。(2.1节)
2
2.而后这些报告将被映射到一个高维的向量空间,每一维对应一种行为模型.借助向
量表示,相似的行为可通过几何特性来衡量,这样很自然的就会用到聚类和分类的
方法。(2.2节)
3.接着基于机器学习的聚类和分类方法将用来处理这些报告,进而识别成新的或已
知的恶意类型。为了实现高效的分析计算,我们借助原型向量将具有相同行为的报
告进行归类,这样在实际的分析中就能有效的用到近似分析法。(2。3节)
4。最后,考虑到每天的样本数量,在聚类和分类的交互迭代中采用了增量法来进行
行为的分析.那些匹配已知类型的样本将被对应的原型向量识别出来,接着再从那些
未知的行为报告中发掘新的恶意类型。(2。4节)
接下来的章节将一一讨论这些步骤和详细的技术背景。我们将给出具体的行为
监控实例,描述对应的向量表示,并详述聚类和分类处理以及增量法的应用。
图1:分析框架原理图。输入的行为报告将被归类到已知的恶意类型或新定义的类型,
并且由聚类处理得到的新原型向量也将作用于后续的分析。
2.1 监控恶意行为
在基于行为的恶意程序分析中,先决条件是能有效的进行行为监测且对应的表
示适合精确的计算处理。在本小节中,我们将介绍框架中用到的沙箱技术以及通过恶
意指令集来表示行为特征。
2。1.1 恶意程序与沙箱
为了监视二进制流,大部分方法用到了系统调用的拦截技术。和源码分析不同,
二进制分析基于程序的反汇编结果,在此过程中源文件是可以被完全忽略的,而二进
制流将被视作黑盒在受控环境中执行,其中所有的系统交互都会被拦截。因此,通过
hook系统调用,沙箱能够监测和修改程序运行时的调用参数以及得到的返回值。
当然,此类拦截的实现可分为多个层次,从简单的程序监控到深入进程的动态
插桩或静态补丁都是可行的.我们分析中用到的CWSandbox工具则借助inline hook
实现系统调用的拦截,通过修改每个系统调用的前几条指令,使其无条件跳转到hook
函数,在hook函数中会将系统调用和对应参数记录到日志文件而后转去执行真正的
调用函数.
2。1。2 恶意指令集
从沙箱Anubis、CWSandbox生成的报告可以看出,监控行为的表示方式主要基于
文本和XML格式。然而,这样的表示只适合人工分析和一般意义上的统计计算,对于
3
行为的自动化分析显然是不合适的。此类结构和富文本加大了应用机器学习处理报
告的难度,因为机器对于观测到的行为流是不能直接理解的。此外,复杂的文本表
示还会增加报告的大小,这对于分析算法的执行性能也是不利的。
为了应对此问题以及优化报告的处理,我们从处理器的指令集设计中获得灵感
进而提出了基于恶意指令集(MIST)的行为表示方式。和一般的格式不同,监控到的
恶意行为将转而由一系列的指令来描述,即每一条线程流或进程流的描述将依次附
加到统一的报告中。在这种格式下,一条指令将对应一个具体的系统调用,且参数
都由数字来标识,例如‘03 05’用来表示系统调用‘move_file’.对于多个参数的
情况,将采用不同的等级块来表示,对应到行为识别的不同等级,我们称之为MIST等
级.此外,像文件名和互斥变量名这些变长参数将由索引号表示,借助全局映射表可
将索引号和原始内容进行转换。
图2:MIST指令图解。CATEGORY表示对应的系统调用类别,OPERATION表示具体的系
统调用,ARGBLOCKN表示参数。
图2展示了MIST指令的基本结构。指令的第一级对应系统调用的类型和名称,例
如,‘03 05’对应‘filesystem’ (03)类型,名称为 ‘move_file’(05)。接下
来的各级包含不同的参数块,其识别顺序为自左向右,这样排列的主要目的是为了
消除“噪音”元素,比如将进程和线程的标识参数移到指令的末尾,而将目录名和
互斥变量名这些固定且易于区分的参数移到开头,这样基于行为的分析最多只要考
虑到指令的某一具体等级即可。此外,如果指令间只存在小幅的差别,比如使用了
随机文件名,那么这些类型的相似行为也是有可能被检测出来的。
作为例子,图3比较了CWSandbox早先的XML表示法和新的MIST表示法在生成报告
时的不同。图示的move_file操作带上了具体参数,虽然从格式来看它们差别较大,
但表示的却是相同的内容。容易看出,MIST指令的参数排列被重新处理过了,其中
文件路径名和扩展名包含在级别2中,而文件名则包含在级别3中。此外,借助数字
标识和索引,MIST指令表示比XML表示要精简的多。
图3:系统调用的特征表示。CWSandbox通过XML属性表示系统调用,而恶意指令集
(MIST)通过结构化的指令表示系统调用。
2.2 恶意行为的向量映射
前面提到的MIST特征表示能够较好的对行为进行描述,具体的动态二进制流将
由一系列指令组成的报告来表示.而诸如改变注册表键值或者修改系统文件之类典
型的恶意行为将会对应报告中的特定子序列,但是,这种表示仍不适合应用机器学习
来分析,因为学习算法通常处理的是向量中的实际数据。为了解决此问题,我们将介
4
剩余17页未读,继续阅读
资源评论
若♡
- 粉丝: 6125
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功