病毒检测方法和装置制造方法

文档序号:6494313阅读:267来源:国知局
病毒检测方法和装置制造方法
【专利摘要】本发明实施例公开了一种病毒检测方法和装置。其中,一种病毒检测方法可包括:在第一虚拟机启动之前,读取第一虚拟机对应的虚拟磁盘镜像中的主引导扇区MBR存储的第一数据;在第一虚拟机启动之后,将可疑病毒样本导入到第一虚拟机中运行;在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则确定可疑病毒样本为病毒样本。本发明实施例提供的技术方案有利于提高对可能修改MBR的病毒的检测准确性。
【专利说明】病毒检测方法和装置
【技术领域】
[0001]本发明涉及计算机安全【技术领域】,具体涉及病毒检测方法和装置。
【背景技术】
[0002]随着计算机技术和网络技术的发展,病毒的种类越来越多,破坏性和隐蔽性很强的病毒长期存在。主引导记录(MBR,Master Boot Record),又称主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,MBR通常存储着硬盘本身的相关信息以及硬盘各个分区的大小及位置信息等,是数据信息的重要入口。有些病毒在传播感染过程中,可能会通过篡改MBR中存储数据来实现自启动的目的。
[0003]现有技术利用安装在计算机中的中的MBR检测软件检测该计算机的MBR是否被修改过。本发明的发明人研究和实践发现,现有技术至少存在以下技术问题,若病毒破坏了MBR导致该计算机无法启动,安装于该计算机中的检测软件也没有办法检测MBR存储的数据是否被修改,在这种情况下就难以准确锁定故障原因。

【发明内容】

[0004]本发明实施例提供病毒检测方法和装置,以期提高对可能修改MBR的病毒的检测准确性。
[0005]本发明实施例一方面提供一种病毒检测方法,可包括:
[0006]在第一虚拟机启动之前,读取所述第一虚拟机对应的虚拟磁盘镜像中的主引导扇区MBR存储的第一数据;
[0007]在所述第一虚拟机启动之后,将可疑病毒样本导入到所述第一虚拟机中运行;
[0008]在所述第一虚拟机运行时长超过第一设定时长之后,读取所述第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将读取到的所述第二数据和所述第一数据进行比较,若比较出所述第二数据和所述第一数据不同,则确定所述可疑病毒样本为病毒样本。
[0009]本发明实施例另一方面提供一种病毒检测装置,可包括:
[0010]第一读取单元,用于在第一虚拟机启动之前,读取所述第一虚拟机对应的虚拟磁盘镜像中的主引导扇区MBR存储的第一数据;
[0011]样本导入单兀,用于在所述第一虚拟机启动之后,将可疑病毒样本导入所述第一虚拟机中运行;
[0012]第二读取单元,用于在所述第一虚拟机运行时长超过第一设定时长之后,读取所述第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;
[0013]比较确定单元,用于将所述第二读取单元读取到的所述第二数据和所述第一读取单元读取到的所述第一数据进行比较,若比较出所述第二数据和所述第一数据不同,则确定所述可疑病毒样本为病毒样本。
[0014]由上可见,本发明实施例提供的病毒检测方案中,在第一虚拟机启动之前读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据;在第一虚拟机启动之后,将可疑病毒样本导入到第一虚拟机中运行;在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则确定可疑病毒样本为病毒样本。由于利用虚拟机作为测试可疑病毒样本的实验机,且分别获取可疑病毒样本导入第一虚拟机的前后的MBR存储数据,通过比较可疑病毒样本导入第一虚拟机的前后的MBR存储数据是否相同,来确定可疑病毒样本是否为病毒样本,如此,有利于最大限度的剔除病毒本身的干扰,进而有利于提高可能修改MBR的病毒的检测准确性和可控性。
【专利附图】

【附图说明】
[0015]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0016]图1是本发明实施例提供一种病毒检测方法的流程示意图;
[0017]图2是本发明实施例提供的一种计算机系统的示意图;
[0018]图3是本发明实施例提供另一种病毒检测方法的流程示意图;
[0019]图4是本发明实施例提供的一种病毒检测装置的示意图;
[0020]图5是本发明实施例提供的另一种计算机系统的示意图。
【具体实施方式】
[0021]本发明实施例提供病毒检测方法和装置,以期提高对可能修改MBR的病毒的检测准确性。
[0022]为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0023]以下分别进行详细说明。
[0024]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三” “第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0025]本发明病毒检测方法的一个实施例,一种病毒检测方法可包括:在第一虚拟机启动之前,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据;在第一虚拟机启动之后,将可疑病毒样本导入到第一虚拟机中运行;在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则确定上述可疑病毒样本为病毒样本。
[0026]参见图1,图1是本发明实施例提供的一种病毒检测方法的流程示意图。如图1所示,本发明实施例提供的一种病毒检测方法可包括以下内容:
[0027]101、在第一虚拟机启动之前,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据。
[0028]102、在第一虚拟机启动之后将可疑病毒样本(例如可疑的defo病毒样本)导入到第一虚拟机中运行。
[0029]103、在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。
[0030]在本发明的一些实施例中,可在第一虚拟机运行时长超过第一设定时长之后关闭第一虚拟机,读取关闭后的第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。当然,在第一虚拟机运行时长超过第一设定时长之后也可不关闭第一虚拟机,读取处于运行状态的第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。
[0031]在本发明的一些实施例中,第一设定时长的取值范围例如为10-1000分钟或其它更长或更短的取值。例如第一设定时长可为5分钟、15分钟、25分钟或100分钟、200分钟、500分钟或其它时长。
[0032]104、将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则可确定上述可疑病毒样本为病毒样本。
[0033]在本发明一些实施例中,可直接比较第二数据和第一数据是否相同,也可将第二数据和第一数据按相同处理方式进行处理,通过比较处理结果是否相同来确定第二数据和第一数据是否相同。例如,可计算得到第一数据对应的第一哈希值;计算得到第二数据对应的第二哈希值;将计算得到的第一哈希值和第二哈希值进行比较;若比较出第一哈希值和第二哈希值不同(其中,第一哈希值和第二哈希值不同也就表示第二数据和第一数据不同),则确定上述可疑病毒样本为病毒样本。
[0034]在本发明一些实施例中,若比较出第二数据和第一数据不同,可输出第二数据中与第一数据不同的部分,以便用户或分析程序根据第二数据中与第一数据不同的部分来分析病毒的运行机理或发作方式等等,以得出防范或控制该类病毒的策略。
[0035]在本发明一些实施例中,若比较出第二数据和第一数据相同,则可确定上述可疑病毒样本为非病毒样本。当然也可进一步核实检测结果的准确性,例如若比较出第二数据和第一数据相同,也可在第二虚拟机启动之前,读取第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第三数据;在第二虚拟机启动之后将上述可疑病毒样本导入到第二虚拟机中运行;在第二虚拟机运行时长超过第二设定时长之后,读取第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据;将读取到的第三数据和第四数据进行比较,若比较出第三数据和第四数据不同,则确定上述可疑病毒样本为病毒样本。当然亦可通过其它方式来进一步核实检测结果的准确性。 [0036]在本发明一些实施例中,第二设定时长的取值范围例如为10-1000分钟或其它更长或更短的取值。例如第二设定时长可为5分钟、15分钟、25分钟或100分钟、200分钟、500分钟或其它时长。其中,第二设定时长可等于或长于或短与第一设定时长。[0037]在本发明的一些实施例中,可在第二虚拟机运行时长超过第二设定时长之后关闭第二虚拟机,读取关闭后的第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据。当然,在第一虚拟机运行时长超过第二设定时长之后也可不关闭第二虚拟机,读取处于运行状态的第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据。
[0038]在本发明一些实施例中,可直接比较第四数据和第三数据是否相同,也可将第四数据和第三数据按相同处理方式进行处理,通过比较处理结果是否相同来确定第四数据和第三数据是否相同。例如,可计算得到第三数据对应的第三哈希值;计算得到第四数据对应的第四哈希值;将计算得到的第三哈希值和第四哈希值进行比较;若比较出第三哈希值和第四哈希值不同(其中,第三哈希值和第四哈希值不同也就表示第三数据和第四数据不同),则确定上述可疑病毒样本为病毒样本。
[0039]在本发明一些实施例中,若比较出第三数据和第四数据不同,可输出第四数据中与第三数据不同的部分,以便用户或分析程序根据第四数据中与第三数据不同的部分来分析病毒的运行机理或发作方式等等,以得出防范或控制该类病毒的策略。
[0040]需要说明的是,本实施例的上步骤的执行主体可以是第一虚拟机所属计算机系统中的宿主机(第一虚拟机可运行于该宿主机之上)、运行在该Host之上的检测程序或不同于第一虚拟机的其它虚拟机(该其它虚拟机亦可运行于该宿主机之上)。
[0041]由上可见,本发明实施例提供的病毒检测方案中,在第一虚拟机启动之前读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据;在第一虚拟机启动之后,将可疑病毒样本导入到第一虚拟机中运行;在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则确定可疑病毒样本为病毒样本。由于利用虚拟机作为测试可疑病毒样本的实验机,且分别获取可疑病毒样本导入第一虚拟机的前后的MBR存储数据,通过比较可疑病毒样本导入第一虚拟机的前后的MBR存储数据是否相同,来确定可疑病毒样本是否为病毒样本,如此,有利于最大限度的剔除病毒本身的干扰,进而有利于提高可能修改MBR的病毒的检测准确性和可控性。
[0042]为便于更好的理解和实施本发明实施例的上述方面,下面通过举例应用场景进行进一步介绍。
[0043]为了方便理解本实施例的举例方案,首先在此介绍本实施例描述中会引入的几个
要素;
[0044]虚拟机:通过虚拟机软件可以在一台物理计算机上模拟出一台或者多台虚拟的计算机,而这些虚拟机就像真正的计算机那样进行工作,虚拟机上可以安装操作系统和应用程序,虚拟机还可访问网络资源。对于在虚拟机中运行的应用程序而言,虚拟机就像是在真正的计算机中进行工作。
[0045]硬件层:虚拟化环境运行的硬件平台。其中硬件层可包括多种硬件,例如某计算节点的硬件层可包括中央处理器(CPU, Central Processing Unit)和内存等,还可以包括网卡、存储器等等高速/低速输入/输出设备,当然还可包括具有特定处理功能的其它器件。
[0046]宿主机(Host):作为管理层,用以完成硬件资源的管理、分配;为虚拟机呈现虚拟硬件平台;实现虚拟机的调度和隔离。其中,Host可能是虚拟机监控器(VMM, VirtualMachine Monitor);此外,有时VMM和I个特权虚拟机配合,两者结合组成Host。其中,虚拟硬件平台对其上运行的各个虚拟机提供各种硬件资源,如提供虚拟CPU、内存、虚拟磁盘、虚拟网卡等等。其中,该虚拟磁盘可对应Host的一个文件或者一个逻辑块设备。虚拟机则运行在Host为其准备的虚拟硬件平台上,Host上可运行一个或多个虚拟机。
[0047]参见图2,图2是本发明实施例提供的一种计算节点架构图,计算节点包括硬件层、运行在硬件层之上的宿主机(Host)、以及运行在该Host之上的多个虚拟机(例如包括第一虚拟机、第二虚拟机、第三虚拟机等)。
[0048]参见图3,图3是本发明实施例提供的一种病毒检测方法的流程示意图。如图3所示,本发明实施例提供的一种病毒检测方法可包括以下内容:
[0049]301、在第一虚拟机启动之前,Host读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据。
[0050]302、Host在第一虚拟机启动之后将可疑病毒样本导入到第一虚拟机中运行。
[0051]303、在第一虚拟机运行时长超过第一设定时长之后,Host读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。
[0052]在本发明的一些实施例中,Host可在第一虚拟机运行时长超过第一设定时长之后关闭第一虚拟机,读取关闭后的第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。当然,Host在第一虚拟机运行时长超过第一设定时长之后也可不关闭第一虚拟机,读取处于运行状态的第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。
[0053]在本发明的一些实施例中,第一设定时长的取值范围例如为10-1000分钟或其它更长或更短的取值。例如第一设定时长可为5分钟、15分钟、25分钟或100分钟、200分钟、500分钟或其它时长。
[0054]304、Host将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则可确定上述可疑病毒样本为病毒样本。
[0055]在本发明的一些实施例中,Host可直接比较第二数据和第一数据是否相同,Host也可将第二数据和第一数据按相同处理方式进行处理,通过比较处理结果是否相同来确定第二数据和第一数据是否相同。例如,Host可计算得到第一数据对应的第一哈希值;计算得到第二数据对应的第二哈希值;将计算得到的第一哈希值和第二哈希值进行比较;Host若比较出第一哈希值和第二哈希值不同(其中,第一哈希值和第二哈希值不同也就表示第二数据和第一数据不同),则确定上述可疑病毒样本为病毒样本。
[0056]在本发明一些实施例中,Host若比较出第二数据和第一数据不同,可输出第二数据中与第一数据不同的部分(可输出给分析程序),以便用户或分析程序根据第二数据中与第一数据不同的部分来分析病毒的运行机理或发作方式等等,以得出防范或控制该类病毒的策略。
[0057]在本发明一些实施例中,Host若比较出第二数据和第一数据相同,则可确定上述可疑病毒样本为非病毒样本。当然Host也可进一步核实检测结果的准确性,例如若比较出第二数据和第一数据相同,Host也可在第二虚拟机启动之前读取第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第三数据;在第二虚拟机启动之后将上述可疑病毒样本导入到第二虚拟机中运行;在第二虚拟机运行时长超过第二设定时长之后,读取第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据;将读取到的第三数据和第四数据进行比较,若比较出第三数据和第四数据不同,Host则确定上述可疑病毒样本为病毒样本。当然亦可通过其它方式来进一步核实检测结果的准确性。
[0058]在本发明一些实施例中,第二设定时长的取值范围例如为10-1000分钟或其它更长或更短的取值。例如第二设定时长可为5分钟、15分钟、25分钟或100分钟、200分钟、500分钟或其它时长。其中,第二设定时长可等于或长于或短与第一设定时长。
[0059]在本发明的一些实施例中,Host可在第二虚拟机运行时长超过第二设定时长之后关闭第二虚拟机,读取关闭后的第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据。当然,Host在第一虚拟机运行时长超过第二设定时长之后也可不关闭第二虚拟机,读取处于运行状态的第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据。
[0060]在本发明的一些实施例中,Host可直接比较第四数据和第三数据是否相同,Host也可将第四数据和第三数据按相同处理方式进行处理,通过比较处理结果是否相同来确定第四数据和第三数据是否相同。例如,Host可计算得到第三数据对应的第三哈希值;计算得到第四数据对应的第四哈希值;将计算得到的第三哈希值和第四哈希值进行比较;Host若比较出第三哈希值和第四哈希值不同(其中,第三哈希值和第四哈希值不同也就表示第三数据和第四数据不同),则确定上述可疑病毒样本为病毒样本。
[0061]在本发明一些实施例中,Host若比较出第三数据和第四数据不同,可输出第四数据中与第三数据不同的部分,以便用户或分析程序根据第四数据中与第三数据不同的部分来分析病毒的运行机理或发作方式等等,以得出防范或控制该类病毒的策略。 [0062]可以理解的是,由于Host独立于试验虚拟机(例如第一虚拟机和第二虚拟机),因此,即使病毒样本破坏了试验虚拟机的虚拟磁盘镜像中的MBR,使得试验虚拟机无法再次启动,或病毒样本释放了驱动文件并隐藏试验虚拟机的MBR存储信息,Host仍可检测出试验虚拟机的虚拟磁盘镜像中的MBR存储信息是否被篡改。
[0063]下面再举例一种由虚拟机执行病毒检测方案的场景。
[0064]例如,在第一虚拟机启动之前,第三虚拟机读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据;第三虚拟机在第一虚拟机启动之后将可疑病毒样本导入到第一虚拟机中运行;第三虚拟机在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则可确定上述可疑病毒样本为病毒样本。
[0065]在本发明的一些实施例中,第三虚拟机可在第一虚拟机运行时长超过第一设定时长之后关闭第一虚拟机,读取关闭后的第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。当然,第三虚拟机在第一虚拟机运行时长超过第一设定时长之后也可不关闭第一虚拟机,读取处于运行状态的第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。
[0066]在本发明的一些实施例中,第一设定时长的取值范围例如为10-1000分钟或其它更长或更短的取值。例如第一设定时长可为5分钟、15分钟、25分钟或100分钟、200分钟、500分钟或其它时长。
[0067]在本发明的一些实施例中,第三虚拟机可直接比较第二数据和第一数据是否相同,第三虚拟机也可将第二数据和第一数据按相同处理方式进行处理,通过比较处理结果是否相同来确定第二数据和第一数据是否相同。例如,第三虚拟机可计算得到第一数据对应的第一哈希值;计算得到第二数据对应的第二哈希值;将计算得到的第一哈希值和第二哈希值进行比较;第三虚拟机若比较出第一哈希值和第二哈希值不同(其中,第一哈希值和第二哈希值不同也就表示第二数据和第一数据不同),则确定上述可疑病毒样本为病毒样本。
[0068]在本发明的一些实施例中,第三虚拟机若比较出第二数据和第一数据不同,可输出第二数据中与第一数据不同的部分(可输出给分析程序),以便用户或分析程序根据第二数据中与第一数据不同的部分来分析病毒的运行机理或发作方式等等,以得出防范或控制该类病毒的策略。
[0069]可以理解,由于第三虚拟机独立于试验虚拟机(例如第一虚拟机和第二虚拟机),因此,即使病毒样本破坏了试验虚拟机的虚拟磁盘镜像中的MBR,使得试验虚拟机无法再次启动,或病毒样本释放了驱动文件并隐藏试验虚拟机的MBR存储信息,第三虚拟机仍可检测出试验虚拟机的虚拟磁盘镜像中的MBR存储信息是否被篡改。
[0070]由上可见,本实施例提供的病毒检测方案中,Host (或第三虚拟机)在第一虚拟机启动之前读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据;在第一虚拟机启动之后,将可疑病毒样本导入到第一虚拟机中运行;在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则确定可疑病毒样本为病毒样本。由于Host (或第三虚拟机)利用虚拟机作为测试可疑病毒样本的实验机,且分别获取可疑病毒样本导入第一虚拟机的前后的MBR存储数据,通过比较可疑病毒样本导入第一虚拟机的前后的MBR存储数据是否相同,来确定可疑病毒样本是否为病毒样本,如此,有利于最大限度的剔除病毒本身的干扰,进而有利于提高可能修改MBR的病毒的检测准确性和可控性。
[0071]为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相
关装置。
[0072]参见图4,本发明实施例还提供一种病毒检测装置400,可包括:
[0073]第一读取单元410、样本导入单元420、第二读取单元430和比较确定单元440。
[0074]其中,第一读取单元410,用于在第一虚拟机启动之前,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据;
[0075]样本导入单兀420,用于在第一虚拟机启动之后,将可疑病毒样本导入第一虚拟机中运行。
[0076]第二读取单元430,用于在第一虚拟机运行时长超过第一设定时长之后读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。
[0077]在本发明的一些实施例中,第一设定时长的取值范围例如为10-1000分钟或其它更长或更短的取值。例如第一设定时长可为5分钟、15分钟、25分钟或100分钟、200分钟、500分钟或其它时长。
[0078]比较确定单元440,用于将第二读取单元430读取到的第二数据和第一读取单元410读取到的第一数据进行比较,若比较出第二数据和第一数据不同,则确定上述可疑病毒样本为病毒样本。
[0079]在本发明的一些实施例中,第二读取单元430可具体用于,在第一虚拟机运行时长超过第一设定时长之后关闭第一虚拟机,读取关闭后的第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。
[0080]在本发明的一些实施例中,比较确定单元440可直接比较第二数据和第一数据是否相同,比较确定单元440也可将第二数据和第一数据按相同处理方式进行处理,通过比较按相同处理方式处理得到的处理结果是否相同,来确定第二数据和第一数据是否相同。举例来说,比较确定单元440可具体用于,计算得到第一数据对应的第一哈希值;计算得到第二数据对应的第二哈希值;将计算得到的第一哈希值和第二哈希值进行比较;若比较出第一哈希值和第二哈希值不同,则确定上述可疑病毒样本为病毒样本。
[0081]在本发明一些实施例中,病毒检测装置400还包括:
[0082]输出单元450,用于输出第二读取单元430读取到的第二数据中与第一读取单元410读取的第一数据不同的部分。以便于用户或分析程序根据第二数据中与第一数据不同的部分来分析病毒的运行机理或发作方式等等,以得出防范或控制该类病毒的策略。
[0083]在本发明一些实施例中,比较确定单元440若比较出第二数据和第一数据相同,则可确定上述可疑病毒样本为非病毒样本。当然也可进一步核实检测结果的准确性。
[0084]在本发明的另一些实施例中,第一读取单元410还可用于,若比较出第二数据和第一数据相同,可在第二虚拟机启动之前,读取第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第三数据。
[0085]样本导入单元420还可用于,在第二虚拟机启动之后将上述可疑病毒样本导入到第二虚拟机中运行。
[0086]第二读取单元430还可用于,在第二虚拟机运行时长超过第二设定时长之后读取第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据。
[0087]比较确定单元440,用于将第一读取单元410读取到的第三数据和第二读取单元430读取到的第四数据进行比较,若比较出第三数据和第四数据不同,则确定上述可疑病毒样本为病毒样本。当然,亦可通过其它方式来进一步核实检测结果的准确性。
[0088]在本发明一些实施例中,第二设定时长的取值范围例如为10-1000分钟或其它更长或更短的取值。例如第二设定时长可为5分钟、15分钟、25分钟或100分钟、200分钟、500分钟或其它时长。其中,第二设定时长可等于或长于或短与第一设定时长。
[0089]在本发明的一些实施例中,第二读取单元430可在第二虚拟机运行时长超过第二设定时长之后关闭第二虚拟机,读取关闭后的第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据。当然,在第一虚拟机运行时长超过第二设定时长之后也可不关闭第二虚拟机,第二读取单元430读取处于运行状态的第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据。
[0090]在本发明一些实施例中,比较确定单元440可直接比较第四数据和第三数据是否相同,也可将第四数据和第三数据按相同处理方式进行处理,通过比较处理结果是否相同来确定第四数据和第三数据是否相同。例如,比较确定单元440可计算得到第三数据对应的第三哈希值;计算得到第四数据对应的第四哈希值;将计算得到的第三哈希值和第四哈希值进行比较;若比较出第三哈希值和第四哈希值不同(其中,第三哈希值和第四哈希值不同也就表示第三数据和第四数据不同),则确定上述可疑病毒样本为病毒样本。
[0091] 在本发明一些实施例中,若比较确定单元440比较出第三数据和第四数据不同,输出单元450还可用于,输出第四数据中与第三数据不同的部分,以便用户或分析程序根据第四数据中与第三数据不同的部分来分析病毒的运行机理或发作方式等等,以得出防范或控制该类病毒的策略。
[0092]可以理解的是,由于病毒检测装置400独立于试验虚拟机(例如第一虚拟机和第二虚拟机),因此,即使病毒样本破坏了试验虚拟机的虚拟磁盘镜像中的MBR,使得试验虚拟机无法再次启动,或病毒样本释放了驱动文件并隐藏试验虚拟机的MBR存储信息,病毒检测装置400仍可检测出试验虚拟机的虚拟磁盘镜像中的MBR存储信息是否被篡改。
[0093]可以理解的是,本实施例的病毒检测装置400的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
[0094]由上可见,本实施例病毒检测装置400在第一虚拟机启动之前,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据;在第一虚拟机启动之后,将可疑病毒样本导入到第一虚拟机中运行;在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则确定可疑病毒样本为病毒样本。由于利用虚拟机作为测试可疑病毒样本的实验机,且分别获取可疑病毒样本导入第一虚拟机的前后的MBR存储数据,通过比较可疑病毒样本导入第一虚拟机的前后的MBR存储数据是否相同,来确定可疑病毒样本是否为病毒样本,如此,有利于最大限度的剔除病毒本身的干扰,进而有利于提高可能修改MBR的病毒的检测准确性和可控性。
[0095]参见图5,本发明实施例提供一种计算机系统500,可包括:
[0096]如图5所示,本实施例的算机系统500包括至少一个总线501、与总线501相连的至少一个处理器502以及与总线501相连的至少一个存储器503。
[0097]其中,处理器502通过总线501,调用存储器503中存储的代码以用于,在第一虚拟机启动之前,读取第一虚拟机对应的虚拟磁盘镜像(VMDX)中的MBR存储的第一数据;在第一虚拟机启动之后,将可疑病毒样本导入到第一虚拟机中运行;在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则确定上述可疑病毒样本为病毒样本。
[0098]在本发明的一些实施例中,处理器502可在第一虚拟机运行时长超过第一设定时长之后关闭第一虚拟机,读取关闭后的第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。当然,处理器502在第一虚拟机运行时长超过第一设定时长之后也可不关闭第一虚拟机,读取处于运行状态的第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。
[0099]在本发明的一些实施例中,第一设定时长的取值范围例如为10-1000分钟或其它更长或更短的取值。例如第一设定时长可为5分钟、15分钟、25分钟或100分钟、200分钟、500分钟或其它时长。
[0100]在本发明一些实施例中,处理器502可直接比较第二数据和第一数据是否相同,也可将第二数据和第一数据按相同处理方式进行处理,通过比较处理结果是否相同来确定第二数据和第一数据是否相同。例如,处理器502可计算得到第一数据对应的第一哈希值;计算得到第二数据对应的第二哈希值;将计算得到的第一哈希值和第二哈希值进行比较;若比较出第一哈希值和第二哈希值不同(其中,第一哈希值和第二哈希值不同也就表示第二数据和第一数据不同),则确定上述可疑病毒样本为病毒样本。
[0101]在本发明一些实施例中,若比较出第二数据和第一数据不同,处理器502可输出第二数据中与第一数据不同的部分,以便用户或分析程序根据第二数据中与第一数据不同的部分来分析病毒的运行机理或发作方式等等,以得出防范或控制该类病毒的策略。
[0102]在本发明一些实施例中,若比较出第二数据和第一数据相同,则处理器502可确定上述可疑病毒样本为非病毒样本。当然处理器502也可进一步核实检测结果的准确性,例如若比较出第二数据和第一数据相同,处理器502也可在第二虚拟机启动之前,读取第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第三数据;在第二虚拟机启动之后将上述可疑病毒样本导入到第二虚拟机中运行;在第二虚拟机运行时长超过第二设定时长之后,读取第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据;将读取到的第三数据和第四数据进行比较,若比较出第三数据和第四数据不同,则确定上述可疑病毒样本为病毒样本。当然亦可通过其它方式来进一步核实检测结果的准确性。
[0103]在本发明一些实施例中,第二设定时长的取值范围例如为10-1000分钟或其它更长或更短的取值。例如第二设定时长可为5分钟、15分钟、25分钟或100分钟、200分钟、500分钟或其它时长。其中,第二设定时长可等于或长于或短与第一设定时长。
[0104]在本发明的一些实施例中,处理器502可在第二虚拟机运行时长超过第二设定时长之后关闭第二虚拟机,读取关闭后的第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据。当然,处理器502在第一虚拟机运行时长超过第二设定时长之后也可不关闭第二虚拟机,读取处于运行状态的第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据。
[0105]在本发明一些实施例中,处理器502可直接比较第四数据和第三数据是否相同,也可将第四数据和第三数据按相同处理方式进行处理,通过比较处理结果是否相同来确定第四数据和第三数据是否相同。例如,处理器502可计算得到第三数据对应的第三哈希值;计算得到第四数据对应的第四哈希值;将计算得到的第三哈希值和第四哈希值进行比较;若比较出第三哈希值和第四哈希值不同(其中,第三哈希值和第四哈希值不同也就表示第三数据和第四数据不同),则确定上述可疑病毒样本为病毒样本。
[0106]在本发明一些实施例中,若比较出第三数据和第四数据不同,处理器502可输出第四数据中与第三数据不同的部分,以便用户或分析程序根据第四数据中与第三数据不同的部分来分析病毒的运行机理或发作方式等等,以得出防范或控制该类病毒的策略。
[0107]可以理解的是,本实施例的计算机系统500的各功能器件的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
[0108]由上可见,本发明实施例提供的病毒检测方案中,处理器在第一虚拟机启动之前读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据;在第一虚拟机启动之后,将可疑病毒样本导入到第一虚拟机中运行;在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则确定可疑病毒样本为病毒样本。由于利用虚拟机作为测试可疑病毒样本的实验机,且分别获取可疑病毒样本导入第一虚拟机的前后的MBR存储 数据,通过比较可疑病毒样本导入第一虚拟机的前后的MBR存储数据是否相同,来确定可疑病毒样本是否为病毒样本,如此,有利于最大限度的剔除病毒本身的干扰,进而有利于提高可能修改MBR的病毒的检测准确性和可控性。
[0109]本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的病毒检测方法的部分或全部步骤。
[0110]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0111]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0112]综上,本发明实施例提供的方案中,病毒检测装置在第一虚拟机启动之前,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第一数据;在第一虚拟机启动之后,将可疑病毒样本导入到第一虚拟机中运行;在第一虚拟机运行时长超过第一设定时长之后,读取第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将读取到的第二数据和第一数据进行比较,若比较出第二数据和第一数据不同,则确定可疑病毒样本为病毒样本。由于利用虚拟机作为测试可疑病毒样本的实验机,且分别获取可疑病毒样本导入第一虚拟机的前后的MBR存储数据,通过比较可疑病毒样本导入第一虚拟机的前后的MBR存储数据是否相同,来确定可疑病毒样本是否为病毒样本,如此,有利于最大限度的剔除病毒本身的干扰,进而有利于提高可能修改MBR的病毒的检测准确性和可控性。
[0113]进一步的,若比较出第二数据和第一数据不同,可输出第二数据中与第一数据不同的部分,以便用户或分析程序根据第四数据中与第三数据不同的部分来分析病毒的运行机理或发作方式等等,以得出防范或控制该类病毒的策略。
[0114]在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0115]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0116]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0117]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0118]以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种病毒检测方法,其特征在于,包括: 在第一虚拟机启动之前,读取所述第一虚拟机对应的虚拟磁盘镜像中的主引导扇区MBR存储的第一数据; 在所述第一虚拟机启动之后,将可疑病毒样本导入到所述第一虚拟机中运行; 在所述第一虚拟机运行时长超过第一设定时长之后,读取所述第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据;将读取到的所述第二数据和所述第一数据进行比较,若比较出所述第二数据和所述第一数据不同,则确定所述可疑病毒样本为病毒样本。
2.根据权利要求1所述的方法,其特征在于,所述在所述第一虚拟机运行时长超过第一设定时长之后,读取所述第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据,包括:在所述第一虚拟机运行时长超过第一设定时长之后关闭所述第一虚拟机,读取关闭后的所述第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。
3.根据权利要求1或2所述的方法,其特征在于, 所述将读取的所述第二数据和所述第一数据进行比较,若比较出所述第二数据和所述第一数据不同,则确定所述可疑病毒样本为病毒,包括: 计算得到所述第一数据对应的第一哈希值; 计算得到所述第二数据对应的第二哈希值; 将计算得到的所述第一哈希值和所述第二哈希值进行比较; 若比较出所述第一哈希值和所述第二哈希值不同,则确定所述可疑病毒样本为病毒样本。
4.根据权利要求1或2所述的方法,其特征在于, 所述方法还包括:输出所述第二数据中与所述第一数据不同的部分。
5.根据权利要求1或2所述的方法,其特征在于, 所述第一设定时长的取值范围为10-1000分钟。
6.根据权利要求1或2所述的方法,其特征在于, 所述方法还包括: 若比较出所述第二数据和所述第一数据相同,在第二虚拟机启动之前读取所述第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第三数据; 在所述第二虚拟机启动之后,将所述可疑病毒样本导入到所述第二虚拟机中运行; 在所述第二虚拟机运行时长超过第二设定时长之后,读取所述第二虚拟机对应的虚拟磁盘镜像中的MBR存储的第四数据;将读取到的所述第三数据和所述第四数据进行比较,若比较出所述第三数据和所述第四数据不同,则确定所述可疑病毒样本为病毒样本。
7.一种病毒检测装置,其特征在于,包括: 第一读取单元,用于在第一虚拟机启动之前,读取所述第一虚拟机对应的虚拟磁盘镜像中的主引导扇区MBR存储的第一数据; 样本导入单元,用于在所述第一虚拟机启动之后,将可疑病毒样本导入所述第一虚拟机中运行; 第二读取单元,用于在所述第一虚拟机运行时长超过第一设定时长之后,读取所述第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据; 比较确定单元,用于将所述第二读取单元读取到的所述第二数据和所述第一读取单元读取到的所述第一数据进行比较,若比较出所述第二数据和所述第一数据不同,则确定所述可疑病毒样本为病毒样本。
8.根据权利要求7所述的病毒检测装置,其特征在于, 所述第二读取单元具体用于,在所述第一虚拟机运行时长超过第一设定时长之后关闭所述第一虚拟机,读取关闭后的所述第一虚拟机对应的虚拟磁盘镜像中的MBR存储的第二数据。
9.根据权利要求7或8所述的病毒检测装置,其特征在于,所述比较确定单元具体用于,计算得到所述第一数据对应的第一哈希值;计算得到所述第二数据对应的第二哈希值;将计算得到的所述第一哈希值和所述第二哈希值进行比较;若比较出所述第一哈希值和所述第二哈希值不同,则确定所述可疑病毒样本为病毒样本。
10.根据权利要求7或8所述的病毒检测装置,其特征在于, 所述病毒检测装置还包括: 输出单元,用于输出所述第二读取单元读取的所述第二数据中与所述第一读取单元读取的所述第 一数据不同的部分。
【文档编号】G06F21/56GK103914650SQ201210591639
【公开日】2014年7月9日 申请日期:2012年12月31日 优先权日:2012年12月31日
【发明者】朱科锭 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1