基于行为特征相似性的恶意代码同源性分析方法

文档序号:8543962阅读:495来源:国知局
基于行为特征相似性的恶意代码同源性分析方法
【技术领域】
[0001] 本发明设及网络安全技术领域,具体设及一种基于行为特征相似性的恶意代码同 源性分析方法。
【背景技术】
[0002] 恶意代码是指运行在计算机上,使系统按照攻击者意愿执行任务的一组指令。随 着计算机网络的深度应用和恶意代码技术的不断发展,恶意代码带来的危害越来越大,已 成为威胁计算机系统安全的一个重要因素。恶意代码在未获得用户授权的前提下,在计算 机或其他终端上执行,达到干扰主机正常工作、破坏存储数据的完整性和窃取用户个人隐 私等恶意的目的,严重侵犯被攻击者的合法权益。
[0003] 近年来,随着2010年Google极光攻击和2011年的RSASecurlD窃取攻击等事件 的曝光,一个新兴的网络攻击手段正在引起越来越多的关注一高级持续性威胁(Advanced Persistent化reat)。相比传统攻击手法,APT攻击具有高级入侵手段和持续性攻击两个 特点,危害性极强,且传统的基于特征匹配的检测手段无法发现。
[0004] 由于APT攻击的特殊性,它一般是由组织(特别是政府)或者一些特定的团队 发起的,为了适应不同的攻击目标环境或实现不同的攻击目的,恶意代码的编写者会在一 个原始恶意代码样本的基础上,通过修改得到不同的恶意代码。在此情况下,该些新生成 的恶意代码使用的已经不再是传统恶意代码生存技术中的变形(Metamorphic)和多态 (Polymorphic)技术,但该些恶意代码之间通常存在着某种共同特征,例如相似的代码结 构,高度一致的代码片段或使用数据手法的相似性等等。该些来自同一编写者或编写团队 的、具有相似特征的恶意代码就是具有同源性的恶意代码。同源性分析技术是实现恶意代 码追踪溯源的一个重要手段。
[0005] 2011年,知名信息安全厂商卡己斯基在其分析报告中指出,在近两年相继发现的 震网和毒区两个ATP攻击病毒中包括一部分相同的代码,因此推定他们应该来自同一编写 者。由此国外针对同源性恶意代码的分析也迅速展开。该分析是建立在大量的人工分析工 作的基础上的,分析周期较长,分析效率不高。
[0006] 美国科技公司化arlesRiverAnal^ics通过综合利用生物演化、计算机程序逆 向工程和语言学等多项技术,开发了一套能够快速定位攻击来源的恶意代码分析系统。该 分析系统选择了静态分析中提取的指令序列、PE头分析中的头部信息、动态分析中的追踪 记录、代码执行过程中的行为序列的语义和函数特征等多种特征作为分析的基础,经过代 码演化算法分析最终输出一张代码演化图来表明输入的恶意代码样本之间的同源性关系。 该分析方法建立在著名的情报分析平台palantir之上的,不满足一般的应用条件。
[0007] 2013年1月,美国的曼迪昂特公司发布报告"APT1",在该报告中提出了一种利用 恶意代码特征追踪攻击源头的方法,该报告从软件的注释、代码的编写风格、恶意软件的中 针对的目标群体、使用的IP地址、维持联系的域名服务等多个方面对不同恶意软件进行了 同源性分析,并据此作为确定攻击源头的重要依据。该分析是在对目标长期的跟踪情况下 得出,分析周期较长。
[000引国内著名安全机构安天实验室也对震网和毒区进行了人工对比分析,他们指出两 个病毒在资源嵌入、加密、驱动存在相似的结构和手法,并且都使用了窃取的数字证书来躲 避反病毒检测,但该些手法是恶意代码的典型手法并不能证明两者同源。他们判定的依据 主要是:相似的代码片段、相似的数据结构和共同的错误。该分析方法需要借助分析人员的 逆向分析知识,且分析过程中花费的时间和人力资源的成本较高。
[0009] 2012年,刘星借鉴了生物信息学中的物种系统发生树构建方法,提出了基于恶意 代码函数调用图的恶意代码系统发生树构建方法。官强借鉴和利用了生物信息学中同源 和进化分析的序列比对和网络比对技术,提出了基于系统函数序列的恶意代码同源分析方 法,对一组恶意代码构建其家族演化树。该两种方法基于恶意代码静态特征对同源性自动 分析技术进行了深入的研究,但对于加壳恶意代码样本的分析具有一定的局限性。
[0010] 目前国内外针对恶意代码同源性的研究还不是很多,在已有的方法中,卡己斯基、 安天等安全公司都有关于恶意代码同源性的详细的分析报告,但该些成果都是在对捕获的 样本进行深入的人工分析之后取得的,分析所需的人力与时间投入较大。美国一家科技公 司也有一整套针对同源性的恶意代码分析软件,但相关文献只是介绍了其采用的技术框架 而缺少实现的技术细节的介绍。另外国防科技大学的官强等人在同源性分析中对恶意代码 特征的选取比较单一,且无法分析加壳的恶意代码,分析方法缺乏通用性。

【发明内容】

[0011] 针对目前恶意代码同源性分析研究大部分依赖于人工分析,在已有的自动化分析 方法中仅把恶意代码的特征码、控制流图等静态特征作为恶意代码分析的依据,无法分析 加壳的恶意代码样本,通用性较差的问题。本发明提出了基于行为特征相似性的恶意代码 同源性分析方法,对网络中收集的恶意代码进行同源性分析,并对后续攻击源头的追踪溯 源提供有力支撑。
[0012] API;全称ApplicationProgrammingInte;rface,是windows操作系统提供给用 户的实现系统特定功能的函数接口。
[0013] 本发明提出了一种基于行为特征相似性的恶意代码同源性分析方法,包括指令和 数据记录模块、特征提取模块和同源性判别模块。分析过程如下:
[0014] 首先,指令和数据记录模块W动态二进制插粧平台为基础,在一个受保护的虚拟 环境中执行恶意代码样本,通过插粧分析关键指令,记录程序在函数入口点、返回点、内存 读写点等关键位置上的数据,结合API参数格式解析库,得到库中定义的关键API的调用序 列和参数信息。
[0015] 然后,特征提取模块WAPI调用序列及其参数信息作为输入,结合行为规则库,在 构建API关联关系树的基础上提取行为特征。
[0016] 最后,同源性判别模块将两个恶意代码的行为特征作为输入,通过对行为特征相 似性比较来对恶意代码的同源性进行判别最终得到结果分析报告,并将不同样本的特征写 入恶意代码特征库中。
[0017] 所述指令和数据记录模块,W记录为主,对API函数之间的关联分析工作在后面 的特征提取模块中进行,从而减少恶意代码在插件环境下运行的系统开销,提高系统的分 析效率。通过对call指令进行插粧,获取函数调用前的信息,包括调用点地址(即call指 令地址)及函数的输入参数信息。同时对ret指令进行插粧,获取函数调用后的信息,包括 函数返回地址(即ret指令指向的目标地址)W及函数的输出信息。
[0018] 所述行为提取模块包括提取API序列、API关联算法和行为提取。
[0019] 提取API序列;恶意代码通过调用一组有序的API函数,改变系统中的某个或多个 对象W实现其功能。对大量的API调用进行总结和抽象,我们定义一个API为一个具有四 个属性的向量;首先是API的名称,一个确定的API对应一个唯一的函数名称,调用时可W 实现一个具体的功能;其次是API的对象,是API实现功能的目标客体;然后是与API函数 有关的数据,是对其实现功能的补充说明;最后是调用时间,在实际的代码运行过程中,调 用的多个API有执行的先后顺序。
[0020]API关联算法;根据在动态二进制插粧平台下执行恶意代码的记录可W获得一组API序列,行为特征提取的目标,就是从恶意代码执行的API序列中,抽取出对应的行为信 息。行为特征提取的过程总体上可W分为两步
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1