[发明专利]用于恶意软件检测的对应用的通用拆包有效
申请号: | 201480008695.6 | 申请日: | 2014-03-03 |
公开(公告)号: | CN105009139B | 公开(公告)日: | 2018-02-06 |
发明(设计)人: | D·古普塔 | 申请(专利权)人: | 迈克菲股份有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 上海专利商标事务所有限公司31100 | 代理人: | 毛力 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 恶意 软件 检测 应用 通用 | ||
技术领域
本公开一般涉及用于拆包可执行二进制文件以使较少地依赖多个签名(例如,针对每一个打包方法的一个签名)来标识潜在的恶意软件被保持在病毒签名DAT文件中的系统和方法。更具体而言,但不作为限制,本公开涉及:在对经打包的可执行文件进行拆包时使用硬件辅助的虚拟化来确定其原始的入口点,并且在执行该原始的入口点之前,一旦可执行文件到达其完全扩展的形式就执行对其的正式扫描。
背景技术
当代的应用代码的递送通常涉及其通过打包(pack)过程进行的压缩。通过使用打包过程,二进制文件尺寸可以减小,并且多个文件可以被合并成一个文件。现代的打包过程创建“自解压(self-extracting)可执行文件”,可执行其来对经打包的代码的内容进行拆包(unpack)。也就是说,经打包的代码本身伴随着可执行代码段,当执行该可执行代码段时,其导致使经打包的代码膨胀或解压缩。相应地,运行自解压可执行文件会导致经打包的代码可执行文件被扩展在磁盘上、存储器中,或两者中。
当对文件打包以创建自解压可执行文件时,可以采用许多不同类型的压缩算法以及打包技术。这些技术中的某些是已知的并有文档记载的,而其他技术不是这样。对相同文件采用不同的技术来创建自解压可执行文件将产生不同的文件——由于不同的打包器(packer)以及不同的压缩算法所产生的不同结果,打包代码(packing code)和经打包的代码(packed code)两者都可能不同。此外,如果使用未知的或文档未记载的技术来将文件打包为自解压可执行文件,则可能甚至难以确定打包代码和经打包的代码之间的区别。
自解压可执行文件的这些特性常常被恶意软件开发者利用以对反病毒程序或恶意软件检测程序隐藏恶意软件。检测恶意软件的一种常见的方法是签名扫描。利用签名扫描,对文件进行扫描以发现已知或被怀疑与恶意软件相关联的位模式或签名。当文件中的位模式匹配已知恶意软件的签名时,则可将该文件标识为恶意软件或标识为包含恶意软件。然而,恶意可执行文件的签名可以被轻松地更改以力图误导可执行文件。当恶意软件被打包时,可能避开检测,因为经拆包的恶意软件的已知签名将不会匹配经打包的恶意软件文件的任何位模式。
为了尝试克服隐藏恶意软件的这些企图,反病毒程序和恶意软件检测程序可以采用多项技术。一项技术是在存储器中提取经打包的代码而不执行它,然后,尝试对经解压缩的二进制文件扫描恶意软件签名。可以通过仿真经打包代码的执行来提取该经打包的代码,或者如果打包算法是已知的,则由反病毒程序来执行提取。如果打包技术不是公知的或未经文档记载,则在反病毒程序的控制下来提取经打包的代码可能无法是可能的。此外,许多打包算法在检测到正在由调试器或通过执行仿真来执行拆包之后,使用反仿真和反调试技术来简单地终止拆包过程。对代码流的诸部分标记时间戳是可用于判断代码正在被仿真的标准方法。类似地,标识代码正在被调试可以通过查询操作系统来容易地确定。
即使自解压可执行文件被允许执行或被仿真,反病毒程序也可能在确定执行的拆包部分何时完成以及原始压缩的可执行文件何时开始执行时存在困难。在自解压可执行文件中,拆包代码和经打包的可执行文件是相同的二进制文件的部分,并且在存储器中确定这两者之间的区别可能是困难的。
克服隐藏恶意软件的企图的另一技术是一旦标识了经打包的恶意软件的新签名,就将包含恶意软件的已知的自解压可执行文件的签名添加到反病毒签名数据库中。此技术的弱点在于,可以通过稍微更改打包器代码或打包技术从而产生不同的自解压可执行文件并由此产生不同的签名来轻易地避开该技术。将导致打包技术中的这些变化的签名添加到反病毒签名数据库中会导致增加签名数据库的尺寸。这导致签名的数量以及维持签名文件的难度会相应地增大的问题。此外,由于可按不同的顺序,使用不同的打包算法来重复任意次数的打包过程,从而创建将标识并维持的更大数量的签名,因此可能进一步挫败这些努力。
附图说明
图1是示出现有技术中已知的可执行文件101和经压缩的自解压可执行文件102(可能具有更小的尺寸)的简化结构的框图100。
图2是示出能够被配置成促进一个或多个所公开的实施例的基础结构200的框图。
图3是示出具有可根据一个或多个所公开的实施例而配置的处理单元的计算机的框图。
图4是示出具有虚拟机监视器、访客操作系统和应用的计算机系统的软件栈的框图。
图5是示出根据一个或多个所公开的实施例的用于通用对可执行文件拆包直到不要求进一步的拆包的技术的流程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于迈克菲股份有限公司,未经迈克菲股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480008695.6/2.html,转载请声明来源钻瓜专利网。