病毒检测方法及装置制造方法【专利摘要】本发明公开一种病毒检测方法及装置,本发明实施例识别待检测文件的文件类型;根据所述文件类型,调用所述文件类型对应的虚拟机系统镜像文件和/或所述待检测文件对应的应用程序版本的增量快照;利用虚拟机软件加载所述虚拟机系统镜像文件和/或增量快照,生成虚拟机实例,并在虚拟机实例上运行所述待检测文件;检测所述虚拟机实例的运行状态,分析所述待检测文件是否包含病毒;本发明实施例具有在同一虚拟机系统镜像文件上,针对多版本应用程序均可进行病毒检测的有益效果。【专利说明】病毒检测方法及装置【
技术领域:
】[0001]本发明涉及计算机领域,还涉及虚拟化技术,尤其涉及一种病毒检测方法及装置。【
背景技术:
】[0002]随着计算机技术的不断发展,病毒已经不再局限于exe形式的可执行文件中,在html(HypertextMarkupLanguage,超文本标记语言)、pdf(PortableDocumentFormat,可移植文档格式)、swf(ShockwaveFlash,动画设计软件的文件格式)等格式的文档中都可能存在。由于病毒格式复杂且有一定的动态特性,因此对病毒的检测方式逐渐由传统的特征码技术转向虚拟执行技术。[0003]由于病毒的触发依赖于特定的软件版本,例如某些病毒只能作用于InternetExplorer6浏览器或特定的AdobeReader(pdf阅读器)版本,对该版本的软件打补丁或更新版本后,此类病毒就不再触发。同时,由于无法对客户端的操作系统版本和应用软件版本进行假设,因此为了分析病毒在不同软件版本中的运行行为,通常会在虚拟机中安装不同版本的应用软件,比如浏览器、AdobeReader等。但这种检测方式存在以下问题:相同软件的不同版本可能不能并存,且大量不同版本的软件也可能会互相干扰。【
发明内容】[0004]鉴于此,有必要提供一种病毒检测方法及装置,以解决同一虚拟机不能针对不同版本的应用软件进行病毒检测的问题。[0005]本发明实施例公开了一种病毒检测方法,包括以下步骤:[0006]识别待检测文件的文件类型;[0007]根据所述文件类型,调用所述文件类型对应的虚拟机系统镜像文件和/或所述待检测文件对应的应用程序版本的增量快照;[0008]利用虚拟机软件加载所述虚拟机系统镜像文件和/或增量快照,生成虚拟机实例,并在虚拟机实例上运行所述待检测文件;[0009]检测所述虚拟机实例的运行状态,分析所述待检测文件是否包含病毒。[0010]优选地,所述应用程序版本的增量快照包括所述应用程序至少一个版本对应的增量快照。[0011]优选地,所述利用虚拟机软件加载所述虚拟机系统镜像文件和增量快照,生成虚拟机实例,并在虚拟机实例上运行所述待检测文件,包括:[0012]在虚拟机软件上运行调用的所述虚拟机系统镜像文件;[0013]基于运行的所述虚拟机系统镜像文件,加载所述增量快照,生成包含所述增量快照映射的应用程序版本的虚拟机实例;[0014]利用所述虚拟机实例,打开所述待检测文件。[0015]优选地,所述识别待检测文件的文件类型,之前还包括:[0016]配置各操作系统分别对应的所述虚拟机系统镜像文件,根据配置的所述虚拟机系统镜像文件,利用虚拟机软件生成虚拟机实例,并在所述虚拟机系统镜像文件对应的虚拟机实例上安装预设版本的应用程序,生成增量快照并存储。[0017]优选地,所述分析所述待检测文件是否包含病毒,包括:[0018]分析所述待检测文件所包含的病毒的恶意行为,以及所述病毒发作所需的操作系统和/或所述病毒发作所需的应用程序版本。[0019]本发明实施例还公开一种病毒检测装置,包括:[0020]类型识别模块,用于识别待检测文件的文件类型;[0021]虚拟机镜像和增量快照调用模块,用于根据所述文件类型,调用所述文件类型对应的虚拟机系统镜像文件和/或所述待检测文件对应的应用程序版本的增量快照;[0022]虚拟运行模块,用于利用虚拟机软件加载所述虚拟机系统镜像文件和/或增量快照,生成虚拟机实例,并在虚拟机实例上运行所述待检测文件;[0023]病毒检测模块,用于检测所述虚拟机实例的运行状态,分析所述待检测文件是否包含病毒。[0024]优选地,所述应用程序版本的增量快照包括所述应用程序至少一个版本对应的增量快照。[0025]优选地,所述虚拟运行模块还用于:[0026]在虚拟机软件上运行调用的所述虚拟机系统镜像文件;[0027]基于运行的所述虚拟机系统镜像文件,加载所述增量快照,生成包含所述增量快照映射的应用程序版本的虚拟机实例;[0028]利用所述虚拟机实例,打开所述待检测文件。[0029]优选地,所述病毒检测装置还包括:[0030]增量快照配置模块,用于配置各操作系统分别对应的所述虚拟机系统镜像文件,根据配置的所述虚拟机系统镜像文件,利用虚拟机软件生成虚拟机实例,并在所述虚拟机系统镜像文件对应的虚拟机实例上安装预设版本的应用程序,生成增量快照并存储。[0031]优选地,所述病毒检测模块还用于:[0032]分析所述待检测文件所包含的病毒的恶意行为,以及所述病毒发作所需的操作系统和/或所述病毒发作所需的应用程序版本。[0033]本发明实施例识别待检测文件的文件类型;根据所述文件类型,调用所述文件类型对应的虚拟机系统镜像文件;同时,调用所述待检测文件对应的应用程序版本的增量快照;利用虚拟机软件加载所述虚拟机系统镜像文件和/或增量快照生成虚拟机实例,并在所述虚拟机实例上运行所述待检测文件;检测所述虚拟机实例的运行状态,分析所述待检测文件是否包含病毒;相较于现有技术中,通过在虚拟机中安装不同版本的应用软件对文件进行病毒检测的方法,本发明实施例具有在同一虚拟机系统镜像文件上,针对多版本应用程序均可进行病毒检测的有益效果;进一步地,由于针对同一虚拟机可以配置不同版本的应用程序增量快照,因此减小了磁盘存储空间,节约了存储成本,同时也提高了检测系统的扩展性能。【专利附图】【附图说明】[0034]图1是本发明病毒检测方法第一实施例流程示意图;[0035]图2是本发明病毒检测方法第二实施例流程示意图;[0036]图3是本发明病毒检测装置第一实施例功能模块示意图;[0037]图4是本发明病毒检测装置第二实施例功能模块示意图。[0038]本发明实施例目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。【具体实施方式】[0039]以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。[0040]图1是本发明病毒检测方法第一实施例流程示意图;如图1所示,本发明病毒检测方法包括以下步骤:[0041]步骤S01、识别待检测文件的文件类型;[0042]系统接收到用户发送的待检测文件,或者系统自行抓取到对应的数据需进行病毒检测时,系统识别待检测文件的文件类型;比如,识别该待检测文件是否为exe文件、是否为pdf文件等文件类型。[0043]步骤S02、根据所述文件类型,调用所述文件类型对应的虚拟机系统镜像文件和/或所述待检测文件对应的应用程序版本的增量快照;[0044]系统根据识别的待检测文件的文件类型,从数据库中调用该文件类型对应的已存储的虚拟机系统镜像文件;本发明实施例中,所述虚拟机系统镜像文件可以理解为一种存储有整个虚拟机状态(包括磁盘、内存等信息)的持久性副本文件,虚拟机系统镜像文件通常占用的存储空间较大,比如windowsXP系统镜像文件一般占用几个GB的存储空间。[0045]比如,系统识别出该待检测文件的文件类型为exe文件,则分析该exe文件的运行环境是32位还是64位运行环境,并根据结果调用运行环境对应的虚拟机系统镜像文件。当识别待检测文件的文件类型为exe文件或者其他类型的可执行程序对应的文件时,由于该待检测文件不需要借助其他第三方应用程序即可执行,因此系统无需获取该待检测文件对应的应用程序版本的增量快照,系统仅获取该待检测文件的文件类型所对应的虚拟机系统镜像文件即可,利用该虚拟机系统镜像文件提供的操作系统,即可执行该待检测文件。[0046]当系统识别出该待检测文件的文件类型需借助其他或者第三方应用程序才能够执行的文件时,系统获取该待检测文件的文件类型所对应的虚拟机系统镜像文件的同时,系统调用该待检测文件的应用程序版本的增量快照。[0047]本发明实施例中,所述其他或者第三方应用程序包括但不限于阅读器、浏览器、文档编辑器等应用程序。[0048]本发明实施例中,所述应用程序版本的增量快照可以理解为:基于单个虚拟机系统镜像文件的修改全部写入增量快照文件中,而不会影响原有的虚拟机系统镜像文件;且可以基于相同的虚拟机系统镜像文件创建多个时间点的增量快照,比如安装多个系统补丁时,可以制作增量快照用于各阶段的恢复。通常情况下,增量快照文件要远远小于虚拟机系统镜像文件,例如虚拟机软件QEMU的快照文件大小通常约IOMB?40MB之间,而虚拟机系统镜像文件占用的存储空间则高达数GB,因此本发明实施例利用增量快照也可以大大节省存储空间。[0049]在本发明的一优选实施例中,系统根据待检测文件的文件类型以及实际检测需要,可以一次性调用的待检测文件对应的应用程序版本的增量快照包括:所述应用程序至少一个版本对应的增量快照,和/或至少一个应用程序常用的所有版本对应的增量快照。比如,对于pdf文档,系统调用阅读器AdobeReader8.0和AdobeReader9.0分别对应的增量快照;比如对于word文档,系统可以调用word2003、word2007、word2013、WPS2003、WPS2007,WPS2010,WPS2013等应用程序对应的增量快照。[0050]步骤S03、利用虚拟机软件加载所述虚拟机系统镜像文件和/或增量快照,生成虚拟机实例,并在所述虚拟机实例上运行所述待检测文件;[0051]当系统根据待检测文件的文件类型比如exe可执行文件,仅调用了该文件类型对应的虚拟机系统镜像文件时,系统基于调用的虚拟机系统镜像文件提供的操作系统,在虚拟机上虚拟执行该待检测文件。本发明实施例中,所述虚拟执行可以理解为:通过模拟代码的执行环境以检测代码的行为。[0052]当系统根据待检测文件的文件类型,调用该文件类型对应的虚拟机系统镜像文件以及该待检测文件对应的应用程序版本的增量快照时,系统在虚拟机软件上加载所述虚拟机系统镜像文件和所述增量快照,生成包含所述增量快照对应的应用程序版本的虚拟机实例;利用所述虚拟机实例,系统打开所述待检测文件。[0053]本发明实施例所述的虚拟机系统镜像和增量快照格式均以虚拟机软件QEMU的文件格式qC0W2为例进行描述,本发明实施例病毒检测方法及装置对虚拟机软件、虚拟机系统镜像和增量快照的具体格式不做限定。[0054]比如,当待检测文件为word文档时,系统根据word文档的文件类型,调用虚拟机系统镜像文件为windows-XP.qcow2,同时调用该word文档对应的应用程序版本的增量快照word2003.qcow2、word2007.qcow2和word2013.qcow2;基于调用的windows-XP.qcow2对应的操作系统windows-XP,系统启动增量快照word2003.qcow2、word2007.qcow2和word2013.qcow2,生成包含所述增量快照word2003.qcow2、word2007.qcow2和word2013.qcow2映射的应用程序版本的虚拟机实例,如word2003、word2007和word2013这3个虚拟机实例;使用上述word2003、word2007和word2013这3个虚拟机实例,打开待检测的可疑的word文档。[0055]步骤S04、检测所述虚拟机实例的运行状态,分析所述待检测文件是否包含病毒。[0056]系统检测虚拟机实例的运行状态,根据虚拟机实例的运行状态,分析待检测文件是否包含病毒。比如,系统扫描虚拟机运行进程的内存空间是否存在溢出代码;若存在所述溢出代码,则识别所述待检测文件包含病毒。或者:系统检测虚拟机是否存在内存溢出现象;若存在内存溢出现象,则识别所述待检测文件包含病毒。或者:系统检测虚拟机是否存在修改关键系统文件或者关键注册表项的行为;若存在修改关键系统文件或者关键注册表项的行为,则识别所述待检测文件包含病毒。或者:系统检测虚拟机调用的关键函数的参数是否合法;若调用的所述关键函数的参数不合法,则识别所述待检测文件包含病毒,等等检测方式。上述检测方式可以独立使用,也可以结合使用。系统也可以综合虚拟机运行时的各种可以特征进行关联分析,比如采用内存污点分析技术检测到内存溢出问题后,系统再对可疑内存区域进行shellcode(溢出代码)扫描,从而进行关联分析。当然,系统分析待检测文件是否包含病毒并不仅仅局限于上述列举的分析方式,本发明实施例对其不进行一一穷举。[0057]在本发明的一优选实施例中,系统分析所述待检测文件所包含病毒时,系统也能够获取所述病毒的恶意行为,以及所述病毒发作所需的操作系统和/或所述病毒发作所需的应用程序版本。[0058]本发明实施例采取虚拟机增量快照技术进行病毒检测可达到如下有益效果:[0059](I)、漏判率低:采用多种软件版本的增量快照,可分析可疑文件在多种软件版本运行状况,对依赖于特定版本的病毒漏判率低;[0060](2)、存储占用少:增量快照远小于虚拟机系统镜像文件,且因为通过增量快照形式实现多版本并存,相对同一虚拟机安装不同软件版本,不会造成软件版本干扰,节省了存储空间;[0061](3)、扩展性好:如需要增加新的应用软件或系统补丁,只需要基于原有的虚拟机系统镜像安装新的应用软件或系统补丁后,作增量快照,并加入到虚拟机快照库中即可。由于能够快速实现对新软件版本的扩充,将有利于对病毒如Oday攻击的检测。[0062]图2是本发明病毒检测方法第二实施例流程示意图;本发明实施例与图1所述实施例的区别是,本发明实施例中,系统在对病毒样本进行检测之前,首先设置虚拟机系统镜像文件及对应的应用程序版本的增量快照,为后续进行病毒样本检测做好准备。[0063]基于图1所述实施例的描述,如图2所示,本发明病毒检测方法在步骤S01、识别待检测文件的文件类型,之前还包括:[0064]步骤S10、配置各操作系统分别对应的所述虚拟机系统镜像文件,根据配置的所述虚拟机系统镜像文件,利用虚拟机软件生成虚拟机实例,并在所述虚拟机系统镜像文件对应的虚拟机实例上安装预设版本的应用程序,生成增量快照并存储。[0065]本发明实施例仅对步骤SlO进行描述,有关本发明病毒检测方法所涉及的其他步骤请参照相关实施例的具体描述,在此不再赘述。[0066]如图2所示,本发明实施例中,系统首先配置各操作系统所分别对应的虚拟机系统镜像文件,比如配置windowsXP操作系统对应的虚拟机系统镜像文件为windows-XP.qcow2,配置windows7操作系统对应的虚拟机系统镜像文件为windows-7.qcow2等。系统配置的各操作系统对应的虚拟机系统镜像文件均为纯净版的虚拟机系统镜像文件,即该虚拟机系统镜像文件对应的操作系统除了系统运行所必须的应用程序外,不包括其他任何第三方应用程序。配置完虚拟机系统镜像文件后,启动虚拟机系统镜像文件,利用虚拟机软件生成虚拟机实例,并在启动的虚拟机系统镜像文件对应的虚拟机实例上安装对应的应用程序以及各应用程序的不同版本,生成该虚拟机系统镜像文件对应的应用程序版本的增量快照并存储,形成对应的虚拟机系统镜像文件库和增量快照库,供病毒检测时,系统根据待检测文件及待检测文件的文件类型,调用对应的虚拟机系统镜像文件和/或增量快照。[0067]以WindowsXP系统上生成AdobeReader版本的增量快照为例,来描述本发明实施例的实施过程。[0068]系统配置一个纯净版的操作系统虚拟机系统镜像文件windows-XP.qcow2,配置完成后,启动虚拟机系统镜像文件,基于启动的虚拟机系统镜像文件提供的运行环境,在该运行环境下安装AdobeReader8.0,同时为虚拟机生成AdobeReader8.0对应的增量快照,在生成增量快照的这一过程中,配置的所述虚拟机系统镜像文件不会有任何改动。系统存储生成的上述增量快照为adobe-reader-8.qcow2;同样的方法,系统安装AdobeReader9.0,生成AdobeReader9.0对应的增量快照,系统存储生成的上述增量快照为adobe-reader-9.qcow2。[0069]本发明实施例配置虚拟机系统镜像文件及应用程序版本对应的增量快照,为后续系统检测待检测文件提供了可调用的虚拟机系统镜像文件数据库及增量快照数据库。[0070]图3是本发明病毒检测装置第一实施例功能模块示意图;如图3所示,本发明病毒检测装置包括:类型识别模块01、虚拟机镜像和增量快照调用模块02、虚拟运行模块03和病毒检测模块04。[0071]类型识别模块01,用于识别待检测文件的文件类型;[0072]系统接收到用户发送的待检测文件,或者系统自行抓取到对应的数据需进行病毒检测时,类型识别模块01识别待检测文件的文件类型;比如,类型识别模块01识别该待检测文件是否为exe文件、是否为pdf文件等文件类型。[0073]虚拟机镜像和增量快照调用模块02,用于根据所述文件类型,调用所述文件类型对应的虚拟机系统镜像文件和/或所述待检测文件对应的应用程序版本的增量快照;[0074]虚拟机镜像和增量快照调用模块02根据类型识别模块01识别的待检测文件的文件类型,从数据库中调用该文件类型对应的已存储的虚拟机系统镜像文件;本发明实施例中,所述虚拟机系统镜像文件可以理解为一种存储有整个虚拟机状态(包括磁盘、内存等信息)的持久性副本文件,虚拟机系统镜像文件通常占用的存储空间较大,比如windowsXP系统镜像文件一般占用几个GB的存储空间。[0075]比如,类型识别模块01识别出该待检测文件的文件类型为exe文件,虚拟机镜像和增量快照调用模块02分析该exe文件的运行环境是32位还是64位运行环境,并根据结果调用运行环境对应的虚拟机系统镜像文件。当类型识别模块01识别待检测文件的文件类型为exe文件或者其他类型的可执行程序对应的文件时,由于该待检测文件不需要借助其他第三方应用程序即可执行,因此虚拟机镜像和增量快照调用模块02无需获取该待检测文件对应的应用程序版本的增量快照,虚拟机镜像和增量快照调用模块02仅获取该待检测文件的文件类型所对应的虚拟机系统镜像文件即可,利用该虚拟机系统镜像文件提供的操作系统,即可执行该待检测文件。[0076]当类型识别模块01识别出该待检测文件的文件类型需借助其他或者第三方应用程序才能够执行的文件时,虚拟机镜像和增量快照调用模块02获取该待检测文件的文件类型所对应的虚拟机系统镜像文件的同时,虚拟机镜像和增量快照调用模块02调用该待检测文件的应用程序版本的增量快照。[0077]本发明实施例中,所述其他或者第三方应用程序包括但不限于阅读器、浏览器、文档编辑器等应用程序。[0078]本发明实施例中,所述应用程序版本的增量快照可以理解为:基于单个虚拟机系统镜像文件的修改全部写入增量快照文件中,而不会影响原有的虚拟机系统镜像文件;且可以基于相同的虚拟机系统镜像文件创建多个时间点的增量快照,比如安装多个系统补丁时,可以制作增量快照用于各阶段的恢复。通常情况下,增量快照文件要远远小于虚拟机系统镜像文件,例如虚拟机软件QEMU的快照文件通常约IOMB?40MB之间,而虚拟机系统镜像文件占用的存储空间则高达数GB,因此本发明实施例利用增量快照也可以大大节省存储空间。[0079]在本发明的一优选实施例中,虚拟机镜像和增量快照调用模块02根据待检测文件的文件类型以及实际检测需要,可以一次性调用的待检测文件对应的应用程序版本的增量快照包括:所述应用程序至少一个版本对应的增量快照,和/或至少一个应用程序常用的所有版本对应的增量快照。比如,对于pdf文档,虚拟机镜像和增量快照调用模块02调用阅读器AdobeReader8.0和AdobeReader9.0分别对应的增量快照;比如对于word文档,虚拟机镜像和增量快照调用模块02可以调用word2003、word2007、word2013、WPS2003、WPS2007、WPS2010、WPS2013等应用程序对应的增量快照。[0080]虚拟运行模块03,用于利用虚拟机软件加载所述虚拟机系统镜像文件和/或增量快照生成虚拟机实例,并在所述虚拟机实例上运行所述待检测文件;[0081]当虚拟机镜像和增量快照调用模块02根据待检测文件的文件类型比如exe可执行文件,仅调用了该文件类型对应的虚拟机系统镜像文件时,虚拟运行模块03基于调用的虚拟机系统镜像文件提供的操作系统,在虚拟机上虚拟执行该待检测文件。本发明实施例中,所述虚拟执行可以理解为:通过模拟代码的执行环境以检测代码的行为。[0082]当虚拟机镜像和增量快照调用模块02根据待检测文件的文件类型,调用该文件类型对应的虚拟机系统镜像文件以及该待检测文件对应的应用程序版本的增量快照时,虚拟运行模块03在虚拟机软件上加载所述虚拟机系统镜像文件和所述增量快照,生成包含所述增量快照对应的应用程序版本的虚拟机实例;利用所述虚拟机实例,虚拟运行模块03打开所述待检测文件。[0083]本发明实施例所述的虚拟机系统镜像和增量快照格式均以虚拟机软件QEMU的文件格式qC0W2为例进行描述,本发明实施例病毒检测方法及装置对虚拟机软件、虚拟机系统镜像和增量快照的具体格式不做限定。[0084]比如,当类型识别模块01识别待检测文件为word文档时,虚拟机镜像和增量快照调用模块02根据word文档的文件类型,调用虚拟机系统镜像文件为windows-XP.qcow2,同时调用该word文档对应的应用程序版本的增量快照word2003.qcow2、word2007.qcow2和word2013.qcow2;基于调用的windows-XP.qcow2对应的操作系统windows-XP,虚拟运行模块03启动增量快照word2003.qcow2、word2007.qcow2和word2013.qcow2,生成包含所述增量快照word2003.qcow2、word2007.qcow2和word2013.qcow2映射的应用程序版本的虚拟机实例,如word2003、word2007和word2013这3个虚拟机实例;使用上述word2003、word2007和word2013这3个虚拟机实例,虚拟运行模块03打开待检测的可疑的word文档。[0085]病毒检测模块04,用于检测所述虚拟机实例的运行状态,分析所述待检测文件是否包含病毒。[0086]病毒检测模块04检测虚拟机实例的运行状态,根据虚拟机实例的运行状态,分析待检测文件是否包含病毒。比如,病毒检测模块04扫描虚拟机运行进程的内存空间是否存在溢出代码;若存在所述溢出代码,则识别所述待检测文件包含病毒。或者:病毒检测模块04检测虚拟机是否存在内存溢出现象;若存在内存溢出现象,则识别所述待检测文件包含病毒。或者:病毒检测模块04检测虚拟机是否存在修改关键系统文件或者关键注册表项的行为;若存在修改关键系统文件或者关键注册表项的行为,则识别所述待检测文件包含病毒。或者:病毒检测模块04检测虚拟机调用的关键函数的参数是否合法;若调用的所述关键函数的参数不合法,则识别所述待检测文件包含病毒,等等检测方式。上述检测方式可以独立使用,也可以结合使用。病毒检测模块04也可以综合虚拟机运行时的各种可以特征进行关联分析,比如采用内存污点分析技术检测到内存溢出问题后,病毒检测模块04再对可疑内存区域进行shellcode扫描,从而进行关联分析。当然,病毒检测模块04分析待检测文件是否包含病毒并不仅仅局限于上述列举的分析方式,本发明实施例对其不进行一一穷举。[0087]在本发明的一优选实施例中,病毒检测模块04分析所述待检测文件所包含病毒时,病毒检测模块04也能够获取所述病毒的恶意行为,以及所述病毒发作所需的操作系统和/或所述病毒发作所需的应用程序版本。[0088]本发明实施例采取虚拟机增量快照技术进行病毒检测可达到如下有益效果:[0089](I)、漏判率低:采用多种软件版本的增量快照,可分析可疑文件在多种软件版本运行状况,对依赖于特定版本的病毒漏判率低;[0090](2)、存储占用少:增量快照远小于虚拟机系统镜像文件,且因为通过增量快照形式实现多版本并存,相对同一虚拟机安装不同软件版本,不会造成软件版本干扰,节省了存储空间;[0091](3)、扩展性好:如需要增加新的应用软件或系统补丁,只需要基于原有的虚拟机系统镜像安装新的应用软件或系统补丁后,作增量快照,并加入到虚拟机快照库中即可。由于能够快速实现对新软件版本的扩充,将有利于对病毒如Oday攻击的检测。[0092]图4是本发明病毒检测装置第二实施例功能模块示意图。本发明实施例与图3所述实施例的区别是,本发明实施例中,病毒检测装置在对病毒样本进行检测之前,首先设置虚拟机系统镜像文件及对应的应用程序版本的增量快照,为后续进行病毒样本检测做好准备。[0093]基于图3所述实施例的描述,如图4所示,本发明病毒检测装置还包括:[0094]增量快照配置模块05,用于配置各操作系统分别对应的所述虚拟机系统镜像文件,根据配置的所述虚拟机系统镜像文件,利用虚拟机软件生成虚拟机实例,并在所述虚拟机系统镜像文件对应的虚拟机实例上安装预设版本的应用程序,生成增量快照并存储。[0095]本发明实施例仅对增量快照配置模块05进行描述,有关本发明病毒检测装置所涉及的其他模块请参照相关实施例的具体描述,在此不再赘述。[0096]如图4所示,本发明实施例中,增量快照配置模块05首先配置各操作系统所分别对应的虚拟机系统镜像文件,比如配置windowsXP操作系统对应的虚拟机系统镜像文件为windows-XP.qcow2,配置windows7操作系统对应的虚拟机系统镜像文件为windows-7.qC0W2等。增量快照配置模块05配置的各操作系统对应的虚拟机系统镜像文件均为纯净版的虚拟机系统镜像文件,即该虚拟机系统镜像文件对应的操作系统除了系统运行所必须的应用程序外,不包括其他任何第三方应用程序。配置完虚拟机系统镜像文件后,增量快照配置模块05启动虚拟机系统镜像文件,利用虚拟机软件生成虚拟机实例,并在启动的虚拟机系统镜像文件对应的虚拟机实例上安装对应的应用程序以及各应用程序的不同版本,生成该虚拟机系统镜像文件对应的应用程序版本的增量快照并存储,形成对应的虚拟机系统镜像文件库和增量快照库,供病毒检测时,虚拟机镜像和增量快照调用模块02根据待检测文件及待检测文件的文件类型,调用对应的虚拟机系统镜像文件和/或增量快照。[0097]以增量快照配置模块05在WindowsXP系统上生成AdobeReader版本的增量快照为例,来描述本发明实施例的实施过程。[0098]增量快照配置模块05配置一个纯净版的操作系统虚拟机系统镜像文件windows-XP.qcow2,配置完成后,增量快照配置模块05启动虚拟机系统镜像文件,基于启动的虚拟机系统镜像文件提供的运行环境,在该运行环境下安装AdobeReaders.0,同时增量快照配置模块05为虚拟机生成AdobeReader8.0对应的增量快照,在生成增量快照的这一过程中,增量快照配置模块05配置的所述虚拟机系统镜像文件不会有任何改动。增量快照配置模块05存储生成的上述增量快照为adobe-reader-8.qcow2;同样的方法,增量快照配置模块05安装AdobeReader9.0,生成AdobeReader9.0对应的增量快照,增量快照配置模块05存储生成的上述增量快照为adobe-reader-9.qcow2。[0099]本发明实施例配置虚拟机系统镜像文件及应用程序版本对应的增量快照,为后续系统检测待检测文件提供了可调用的虚拟机系统镜像文件数据库及增量快照数据库。[0100]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。[0101]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。[0102]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如R0M/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,月艮务器,或者网络设备等)执行本发明各个实施例所述的方法。[0103]以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的【
技术领域:
】,均同理包括在本发明的专利保护范围内。【权利要求】1.一种病毒检测方法,其特征在于,包括以下步骤:识别待检测文件的文件类型;根据所述文件类型,调用所述文件类型对应的虚拟机系统镜像文件和/或所述待检测文件对应的应用程序版本的增量快照;利用虚拟机软件加载所述虚拟机系统镜像文件和/或增量快照,生成虚拟机实例,并在所述虚拟机实例上运行所述待检测文件;检测所述虚拟机实例的运行状态,分析所述待检测文件是否包含病毒。2.如权利要求1所述的方法,其特征在于,所述应用程序版本的增量快照包括所述应用程序至少一个版本对应的增量快照。3.如权利要求1所述的方法,其特征在于,所述利用虚拟机软件加载所述虚拟机系统镜像文件和增量快照,生成虚拟机实例,并在所述虚拟机实例上运行所述待检测文件,包括:在虚拟机软件上运行调用的所述虚拟机系统镜像文件;基于运行的所述虚拟机系统镜像文件,加载所述增量快照,生成包含所述增量快照映射的应用程序版本的虚拟机实例;利用所述虚拟机实例,打开所述待检测文件。4.如权利要求1所述的方法,其特征在于,所述识别待检测文件的文件类型,之前还包括:`配置各操作系统分别对应的所述虚拟机系统镜像文件,根据配置的所述虚拟机系统镜像文件,利用虚拟机软件生成虚拟机实例,并在所述虚拟机系统镜像文件对应的虚拟机实例上安装预设版本的应用程序,生成增量快照并存储。5.如权利要求1-4任一项所述的方法,其特征在于,所述分析所述待检测文件是否包含病毒,包括:分析所述待检测文件所包含的病毒的恶意行为,以及所述病毒发作所需的操作系统和/或所述病毒发作所需的应用程序版本。6.一种病毒检测装置,其特征在于,包括:类型识别模块,用于识别待检测文件的文件类型;虚拟机镜像和增量快照调用模块,用于根据所述文件类型,调用所述文件类型对应的虚拟机系统镜像文件和/或所述待检测文件对应的应用程序版本的增量快照;虚拟运行模块,用于利用虚拟机软件加载所述虚拟机系统镜像文件和/或增量快照,生成虚拟机实例,并在所述虚拟机实例上运行所述待检测文件;病毒检测模块,用于检测所述虚拟机实例的运行状态,分析所述待检测文件是否包含病毒。7.如权利要求6所述的装置,其特征在于,所述应用程序版本的增量快照包括所述应用程序至少一个版本对应的增量快照。8.如权利要求6所述的装置,其特征在于,所述虚拟运行模块还用于:在虚拟机软件上运行调用的所述虚拟机系统镜像文件;基于运行的所述虚拟机系统镜像文件,加载所述增量快照,生成包含所述增量快照映射的应用程序版本的虚拟机实例;利用所述虚拟机实例,打开所述待检测文件。9.如权利要求6所述的装置,其特征在于,还包括:增量快照配置模块,用于配置各操作系统分别对应的所述虚拟机系统镜像文件,根据配置的所述虚拟机系统镜像文件,利用虚拟机软件生成虚拟机实例,并在所述虚拟机系统镜像文件对应的虚拟机实例上安装预设版本的应用程序,生成增量快照并存储。10.如权利要求6-9任一项所述的装置,其特征在于,所述病毒检测模块还用于:分析所述待检测文件所包含的病毒的恶意行为,以及所述病毒发作所需的操作系统和/或所述病毒发作所需的应用程序版本。【文档编号】G06F21/56GK103778373SQ201410012797【公开日】2014年5月7日申请日期:2014年1月10日优先权日:2014年1月10日【发明者】李龙申请人:深圳市深信服电子科技有限公司