恶意程序的对抗方法及装置、存储介质、计算机设备与流程

文档序号:24484368发布日期:2021-03-30 21:07阅读:106来源:国知局
恶意程序的对抗方法及装置、存储介质、计算机设备与流程

本申请涉及计算机安全技术领域,尤其是涉及到一种恶意程序的对抗方法及装置、存储介质、计算机设备。



背景技术:

随着计算机技术的不断发展,现在,无论是在日常生活中还是在工作中,计算机都已经成为人们不可或缺的伙伴,为人们的工作和生活带来了很多的便利,但是在这之中有一个不和谐的因素,那就是计算机病毒。针对由计算机病毒带来的计算机安全方面的问题,现在几乎任何企业或个人都会使用杀毒软件,但是现在的杀毒软件大多是基于病毒库中包括的病毒特征进行病毒查杀,即若计算机中的某个程序命中了病毒库中的病毒特征,则判定该程序为病毒程序,很显然,若出现新型病毒或变种病毒,利用病毒库将难以应对。

因此,目前利用虚拟机获取待杀毒文件的执行特征实现病毒查杀成为了杀毒领域的新兴方案,但是一般来说,为了保证杀毒效率,针对每个待杀毒文件,都会设置一定的执行时间阈值,文件在虚拟机中执行超过该阈值后特征将无法被获取,换句话说,虚拟机只会对文件执行过程中一段时间内的特征进行提取。然而,目前研究人员发现很多病毒开发者利用这一逻辑做了对抗,故意延长文件的执行时间,使虚拟机无法获取到执行时间阈值之外的执行特征,导致待杀毒文件的执行特征获取不全,无法实现有效杀毒。

如何对抗上述类型的病毒文件有效获取文件的完整执行特征,是杀毒领域亟待解决的问题。



技术实现要素:

有鉴于此,本申请提供了一种恶意程序的对抗方法及装置、存储介质、计算机设备。

根据本申请的一个方面,提供了一种恶意程序的对抗方法,包括:

利用虚拟机加载目标程序,其中,所述目标程序包括垃圾指令以及所述垃圾指令对应的垃圾指令标记;

按照所述垃圾指令标记寻找所述目标程序的垃圾指令,并对所述垃圾指令打补丁,清除所述目标程序的垃圾指令;

在所述虚拟机中执行清除垃圾指令后的目标程序。

具体地,所述垃圾指令为与所述目标程序执行目的无关且删除后不影响执行结果的指令。

具体地,所述利用虚拟机加载目标程序之前,所述方法还包括:

利用垃圾指令扫描引擎对所述目标程序进行扫描,对所述目标程序的垃圾指令作出所述垃圾指令标记,其中,所述垃圾指令扫描引擎根据预先建立的垃圾指令特征库对所述目标程序进行特征扫描。

具体地,所述利用垃圾指令扫描引擎对所述目标程序进行扫描之前,所述方法还包括:

通过垃圾指令专家系统对样本程序进行垃圾指令特征识别,并依据识别出的垃圾指令特征建立所述垃圾指令特征库。

具体地,所述在所述虚拟机中执行清除垃圾指令后的目标程序之后,所述方法还包括:

记录所述清除垃圾指令后的目标程序执行时所调用的所述虚拟机中的桩函数;

根据所述目标程序对所述桩函数的调用顺序,确定所述目标程序的执行序列。

具体地,所述方法还包括:

解析所述目标程序的执行序列,得到所述目标程序的执行特征;

将所述目标程序的执行特征与预设执行特征库中包含的恶意执行特征和/或安全执行特征进行比对,对所述目标程序进行病毒分析。

根据本申请的另一方面,提供了一种恶意程序的对抗装置,包括:

程序加载模块,用于利用虚拟机加载目标程序,其中,所述目标程序包括垃圾指令以及所述垃圾指令对应的垃圾指令标记;

垃圾指令清除模块,用于按照所述垃圾指令标记寻找所述目标程序的垃圾指令,并对所述垃圾指令打补丁,清除所述目标程序的垃圾指令;

程序执行模块,用于在所述虚拟机中执行清除垃圾指令后的目标程序。

具体地,所述垃圾指令为与所述目标程序执行目的无关且删除后不影响执行结果的指令。

具体地,所述装置还包括:

标记模块,用于利用虚拟机加载目标程序之前,利用垃圾指令扫描引擎对所述目标程序进行扫描,对所述目标程序的垃圾指令作出所述垃圾指令标记,其中,所述垃圾指令扫描引擎根据预先建立的垃圾指令特征库对所述目标程序进行特征扫描。

具体地,所述装置还包括:

特征库建立模块,用于利用垃圾指令扫描引擎对所述目标程序进行扫描之前,通过垃圾指令专家系统对样本程序进行垃圾指令特征识别,并依据识别出的垃圾指令特征建立所述垃圾指令特征库。

具体地,所述装置还包括:

桩函数记录模块,用于在所述虚拟机中执行清除垃圾指令后的目标程序之后,记录所述清除垃圾指令后的目标程序执行时所调用的所述虚拟机中的桩函数;

执行序列确定模块,用于根据所述目标程序对所述桩函数的调用顺序,确定所述目标程序的执行序列。

具体地,所述装置还包括:

执行特征解析模块,用于解析所述目标程序的执行序列,得到所述目标程序的执行特征;

病毒分析模块,用于将所述目标程序的执行特征与预设执行特征库中包含的恶意执行特征和/或安全执行特征进行比对,对所述目标程序进行病毒分析。

依据本申请又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述恶意程序的对抗方法。

依据本申请再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述恶意程序的对抗方法。

借由上述技术方案,本申请提供的一种恶意程序的对抗方法及装置、存储介质、计算机设备,清除目标程序中的垃圾指令,使得虚拟机在执行目标程序时,可以减少程序执行等待时间,加快目标程序的执行速度。本申请无需调整虚拟机的程序执行最大时间阈值,通过清除垃圾指令方式,在不影响执行结果的情况下,减少目标程序执行的无用步骤,加快程序的执行速度,使其暴露更多的执行特征,能够有效对抗以恶意延长程序执行等待时间为手段的病毒程序,进而提高了病毒检测的效率和准确率。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1示出了本申请实施例提供的一种恶意程序的对抗方法的流程示意图;

图2示出了本申请实施例提供的另一种恶意程序的对抗方法的流程示意图;

图3示出了本申请实施例提供的一种恶意程序的对抗装置的结构示意图;

图4示出了本申请实施例提供的另一种恶意程序的对抗装置的结构示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

在本实施例中提供了一种恶意程序的对抗方法,如图1所示,该方法包括:

步骤101,利用虚拟机加载目标程序,其中,目标程序包括垃圾指令以及垃圾指令对应的垃圾指令标记;

步骤102,按照垃圾指令标记寻找目标程序的垃圾指令,并对垃圾指令打补丁,清除目标程序的垃圾指令;

步骤103,在虚拟机中执行清除垃圾指令后的目标程序。

在步骤101至步骤103中,利用虚拟机获取目标程序的执行特征进行病毒检测时,为了提高效率,通常一个程序会事先约定一个执行时间阈值,仅对执行时间阈值之内的执行特征进行提取,而病毒开发者针对这种逻辑,为了使虚拟机难以获取到病毒程序的关键执行特征,就可以通过在某程序的基础上添加上大量的垃圾指令,而延长程序的执行总时长,而虚拟机对每段程序的执行最大时间是一定的,对于包含大量垃圾指令的程序,很难获取到有效的执行特征,难以实现对病毒的有效检测,因此本申请实施例中虚拟机加载目标程序时,如果目标程序中包含垃圾指令标记,应根据垃圾指令标记对目标程序中的垃圾指令进行查找,找到目标程序中的垃圾指令区域后,对该区域进行打补丁,从而将垃圾指令从目标程序中清除,使目标程序中只保留下来与执行目的有关的内容,清除掉与执行目的无关的内容,并且确保清除后的目标程序不影响原目标程序的执行结果,最后在虚拟机中执行清除垃圾指令后的目标程序,通过删除掉垃圾指令,避免目标程序在执行过程中因包含垃圾指令延长执行时间,加快了目标程序的执行速度,使其暴露更多的执行特征,以便获取到更完整的目标程序的执行特征,有助于提高对目标程序是否包含病毒的判断的准确性,并且,本申请实施例无需调整执行时间阈值,在保证运行时间不变的前提下能够获取更完整的执行特征,提高了执行特征获取效率。

通过应用本实施例的技术方案,清除目标程序中的垃圾指令,使得虚拟机在执行目标程序时,可以减少程序执行等待时间,加快目标程序的执行速度。本申请无需调整虚拟机的程序执行最大时间阈值,通过清除垃圾指令方式,在不影响执行结果的情况下,减少目标程序执行的无用步骤,加快程序的执行速度,使其暴露更多的执行特征,能够有效对抗以恶意延长程序执行等待时间为手段的病毒程序,进而提高了病毒检测的效率和准确率。

进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种恶意程序的对抗方法,如图2所示,该方法包括:

步骤201,通过垃圾指令专家系统对样本程序进行垃圾指令特征识别,并依据识别出的垃圾指令特征建立垃圾指令特征库。

在上述实施例中,通过病毒分析人员或病毒分析智能系统对大量样本程序进行分析,提取出其中的垃圾指令特征,从而建立垃圾指令特征库。

步骤202,利用垃圾指令扫描引擎对目标程序进行扫描,对目标程序的垃圾指令作出垃圾指令标记,其中,垃圾指令扫描引擎根据预先建立的垃圾指令特征库对目标程序进行特征扫描。

在上述实施例中,垃圾指令扫描引擎的垃圾指令特征库中预存了一些垃圾指令特征,如果目标程序的特征命中了该垃圾指令扫描引擎中预存的垃圾指令特征,则可以对命中垃圾指令特征的区域打上垃圾指令标记,从而在虚拟机加载目标程序时,可以通过读取垃圾指令标记查找到对应的垃圾指令区域,进而进行清除。

步骤203,利用虚拟机加载目标程序,其中,目标程序包括垃圾指令以及垃圾指令对应的垃圾指令标记;

步骤204,按照垃圾指令标记寻找目标程序的垃圾指令,并对垃圾指令打补丁,清除目标程序的垃圾指令;

步骤205,在虚拟机中执行清除垃圾指令后的目标程序。

具体地,垃圾指令为与目标程序执行目的无关且删除后不影响执行结果的指令。

在步骤203至步骤205中,虚拟机加载目标程序时,如果目标程序中包含垃圾指令标记,应根据垃圾指令标记对目标程序中的垃圾指令进行查找,找到目标程序中的垃圾指令区域后,对该区域进行打补丁,从而将垃圾指令从目标程序中清除,使目标程序中只保留下来与执行目的有关的内容,清除掉与执行目的无关的内容,并且确保清除后的目标程序不影响原目标程序的执行结果,最后在虚拟机中执行清除垃圾指令后的目标程序,通过删除掉垃圾指令,避免目标程序在执行过程中因包含垃圾指令延长执行时间,加快了目标程序的执行速度,使其暴露更多的执行特征,以便获取到更完整的目标程序的执行特征,有助于提高对目标程序是否包含病毒的判断的准确性,并且,本申请实施例无需调整执行时间阈值,在保证运行时间不变的前提下能够获取更完整的执行特征,提高了执行特征获取效率。

步骤206,记录清除垃圾指令后的目标程序执行时所调用的虚拟机中的桩函数;

步骤207,根据目标程序对桩函数的调用顺序,确定目标程序的执行序列。

步骤208,解析目标程序的执行序列,得到目标程序的执行特征;

步骤209,将目标程序的执行特征与预设执行特征库中包含的恶意执行特征和/或安全执行特征进行比对,对目标程序进行病毒分析。

在步骤206至步骤209中,目标程序在虚拟机中执行时,通过获取目标程序的执行特征,从而根据预设执行特征库对目标程序的执行特征进行匹配,进而确定目标程序是否包含病毒。其中,首先,在目标程序的执行过程中对目标程序的调用桩函数进行记录;其次,针对记录的目标程序所调用的桩函数,分析该目标程序的执行特征,解析执行特征的过程相当于将调用桩函数的序列“翻译”成相应的特征,例如将一系列的桩函数执行代码翻译成流程说明的形式,用目标程序的执行特征作为病毒检测的依据;最后,通过目标程序的执行特征分析该程序是否为病毒程序,以实现基于虚拟机的病毒检测。

在本申请实施例的步骤209中,可以包含以下几种病毒检测的实现方式:

实现方式a:

步骤a1,获取预设执行特征名单,其中,预设执行特征名单包括预设执行特征黑名单;

步骤a2,查询目标程序的执行特征是否属于预设执行特征黑名单中包含的恶意执行特征;

步骤a3,若目标程序的执行特征属于恶意执行特征,则确定目标程序包含病毒。

步骤a4,若目标程序的执行特征不属于恶意执行特征,则查询目标程序的执行特征是否属于预设执行特征白名单中包含的安全执行特征;

步骤a5,若目标程序的执行特征属于安全执行特征,则确定目标程序不含病毒。

步骤a6,若目标程序的执行特征不属于安全执行特征,则将目标程序标记为可疑程序,并将可疑程序对应的执行特征上报至病毒管理系统,以利用病毒管理系统分析可疑程序是否包含病毒。

在实施方式a中,利用预设执行特征名单对目标程序是否带毒进行判定,预设执行特征名单包括黑名单和白名单,黑名单中预先存储了病毒程序对应的恶意执行特征,白名单中预先存储了安全程序对应的安全执行特征。从而根据目标程序的执行特征是否能够命中黑名单或白名单判定该目标程序是否为带毒程序,若命中黑名单,则为带毒程序,若命中白名单,则为安全程序,而若目标程序的执行特征即没有命中黑名单也没有命中白名单,则判断该程序为可疑程序,并将可疑程序上报至病毒管理系统进一步对该程序进行判定,病毒管理系统具体可以为专家系统。

实现方式b:

步骤b1,根据目标程序的执行特征以及预设执行特征报毒经验值,计算目标程序的报毒检测值,其中,目标程序的报毒检测值为目标程序的执行特征对应的预设执行特征报毒经验值之和;

步骤b2,按照目标程序的报毒检测值与预设病毒经验值的关系,确定目标程序是否包含病毒。

下面对上述实施例进行举例说明,假设目标程序的执行特征包括a、b、c、d,预设执行特征报毒经验值分别为0、1、2、3,那么该目标程序的报毒检测值为0+1+2+3=6,预设病毒经验值为[5,+∞),该目标程序的报毒检测值在病毒经验值区间内,可以判断该程序包含病毒。其中,预设病毒经验值是根据对大量病毒样本以及安全样本进行分析而得出的,预设病毒经验值作为一个分隔,将病毒样本的报毒经验值和安全样本的报毒经验值做出最大区分。

在此基础上,还可以进一步判定目标程序是否安全程序或可疑程序,具体来说,还可以限定安全程序的预设经验值和/或可疑程序的预设经验值,具体步骤b2可以为:按照目标程序的报毒检测值与预设病毒经验值、预设安全经验值以及预设可疑经验值的关系,对目标程序进行安全检测。

在步骤b2中,根据目标程序的报毒检测值所处的经验值区间,判定目标程序是病毒程序、安全程序还是可疑程序。

另外,如果为可疑程序还可以上报病毒管理系统,从而利用病毒管理系统来判断目标程序是否带毒,并根据病毒管理系统的判断结果,对各个预设经验值进行适应性的调整,以提高病毒检测的准确率和效率。

另外,本申请实施例还可以对虚拟机中的桩函数的参数进行调整,以对抗通过延长病毒程序的执行等待时间的方式来恶意延长病毒程序的执行时间,使得虚拟机无法在一定的执行时间阈值内获取到有效的执行特征。具体地,在步骤205之前,还可以包括:

步骤1,获取需要调整的桩函数,其中,桩函数与执行时间相关;

步骤2,按照预设参数调整规则,设置虚拟机中的桩函数的参数,以使目标程序在虚拟机中调用桩函数时减少等待时间。

在上述实施例中,为了应对存在恶意延长执行时间的病毒程序,先要获取到与延长执行时间操作相关的虚拟机中的桩函数,即需要调整的桩函数,例如桩函数sleep,若目标程序在真实系统中调用sleep函数,会让当前线程等待一段时间,如果虚拟机完全按照真实系统进行模拟,那么目标程序在虚拟机中调用sleep函数时,也会让当前线程等待一段时间,而利用虚拟机获取目标程序的执行特征时,为了提高效率,通常一个程序会事先约定一个执行时间阈值,仅对执行时间阈值之内的执行特征进行提取,而病毒开发者针对这种逻辑,为了使虚拟机难以获取到病毒程序的执行特征,就可以通过编译病毒程序使病毒程序在调用sleep函数后让当前线程等待较长时间,例如执行时间阈值为2秒,命令病毒程序调用sleep函数后等待5秒,那么虚拟机就难以获取到病毒程序的有效执行特征,因此,在获取到需要调整的桩函数后,可以将桩函数中的参数进行调整,不按照真实系统进行模拟而是给这些与执行时间相关的桩函数赋予新的参数,使得目标程序在虚拟机中调用桩函数时,能够减少空闲时间,使线程的等待时间缩短,加快目标程序的执行速度,使其暴露更多的执行特征,以便获取到更完整的目标程序的执行特征,有助于提高对目标程序是否包含病毒的判断的准确性,并且,本申请实施例无需调整执行时间阈值,在保证运行时间不变的前提下能够获取更完整的执行特征,提高了执行特征获取效率。

在步骤1之前,应先确定哪些桩函数是需要调整的桩函数,具体地,获取并执行样本程序;对样本程序产生的执行记录中执行等待的行为进行提取,将与执行等待的行为相关的桩函数作为需要调整的桩函数。其中,需要调整的桩函数至少包括与获取系统时间行为相关的桩函数和/或线程等待桩函数。

需要说明的是,执行样本程序的虚拟机与需要调整桩函数参数的虚拟机可以为同一台虚拟机也可以为不同的虚拟机。

另外,除了通过从样本程序的执行记录中提取出与获取系统时间行为相关的桩函数以及线程等待桩函数作为需要调整的桩函数外,还可以对样本程序进行特征扫描,分析样本程序可能调用的与获取系统时间行为相关的桩函数以及线程等待桩函数,或者对虚拟机所模拟的真实系统中的每个函数进行分析,从而提取出与获取系统时间行为相关的桩函数以及线程等待桩函数。

具体地,若需要调整的桩函数包括与获取系统时间行为相关的桩函数,则将虚拟机中的桩函数的参数设置为与目标程序对应的目标系统时间变量,以使目标程序调用与获取系统时间行为相关的桩函数时直接获取到目标系统时间。

在上述实施例中,对于与获取系统时间行为相关的桩函数,可以将桩函数设定为特定变量,在目标程序调用该桩函数时,通过变量获取该目标程序对应的能够触发继续执行条件的目标系统时间,使得目标程序在调用该桩函数时,不去获取系统的真实时间,而是使其直接能够获取到目标系统时间,从而使得目标程序无需任何等待就可以继续执行,加快进程执行速度。

具体地,若需要调整的桩函数包括线程等待桩函数,则将虚拟机中的线程等待桩函数的参数设置为空,以使目标程序调用线程等待桩函数时不需要等待直接继续执行。

在上述实施例中,对于线程等待桩函数来说,可以直接将桩函数的等待时间设置为空,当目标程序在调用该桩函数时,相当于执行了一个空函数,无需任何等待即可继续执行,从而使得目标程序无需任何等待就可以继续执行,加快进程执行速度,或者线程等待桩函数设置为一个很短的时间也可以起到加快进程执行速度的效果。

进一步的,作为图1方法的具体实现,本申请实施例提供了一种恶意程序的对抗装置,如图3所示,该装置包括:程序加载模块31、垃圾指令清除模块32、程序执行模块33。

程序加载模块31,用于利用虚拟机加载目标程序,其中,目标程序包括垃圾指令以及垃圾指令对应的垃圾指令标记;

垃圾指令清除模块32,用于按照垃圾指令标记寻找目标程序的垃圾指令,并对垃圾指令打补丁,清除目标程序的垃圾指令;

程序执行模块33,用于在虚拟机中执行清除垃圾指令后的目标程序。

在具体的应用场景中,如图4所示,垃圾指令为与目标程序执行目的无关且删除后不影响执行结果的指令。

在具体的应用场景中,如图4所示,该装置还包括:标记模块34。

标记模块34,用于利用虚拟机加载目标程序之前,利用垃圾指令扫描引擎对目标程序进行扫描,对目标程序的垃圾指令作出垃圾指令标记,其中,垃圾指令扫描引擎根据预先建立的垃圾指令特征库对目标程序进行特征扫描。

在具体的应用场景中,如图4所示,该装置还包括:特征库建立模块35。

特征库建立模块35,用于利用垃圾指令扫描引擎对目标程序进行扫描之前,通过垃圾指令专家系统对样本程序进行垃圾指令特征识别,并依据识别出的垃圾指令特征建立垃圾指令特征库。

在具体的应用场景中,如图4所示,该装置还包括:桩函数记录模块36、执行序列确定模块37。

桩函数记录模块36,用于在虚拟机中执行清除垃圾指令后的目标程序之后,记录清除垃圾指令后的目标程序执行时所调用的虚拟机中的桩函数;

执行序列确定模块37,用于根据目标程序对桩函数的调用顺序,确定目标程序的执行序列。

在具体的应用场景中,如图4所示,该装置还包括:执行特征解析模块38、病毒分析模块39。

执行特征解析模块38,用于解析目标程序的执行序列,得到目标程序的执行特征;

病毒分析模块39,用于将目标程序的执行特征与预设执行特征库中包含的恶意执行特征和/或安全执行特征进行比对,对目标程序进行病毒分析。

在本申请实施例的病毒分析模块39,可以用于执行以下几种病毒检测的实现方式的步骤:

实现方式a:

步骤a1,获取预设执行特征名单,其中,预设执行特征名单包括预设执行特征黑名单;

步骤a2,查询目标程序的执行特征是否属于预设执行特征黑名单中包含的恶意执行特征;

步骤a3,若目标程序的执行特征属于恶意执行特征,则确定目标程序包含病毒。

步骤a4,若目标程序的执行特征不属于恶意执行特征,则查询目标程序的执行特征是否属于预设执行特征白名单中包含的安全执行特征;

步骤a5,若目标程序的执行特征属于安全执行特征,则确定目标程序不含病毒。

步骤a6,若目标程序的执行特征不属于安全执行特征,则将目标程序标记为可疑程序,并将可疑程序对应的执行特征上报至病毒管理系统,以利用病毒管理系统分析可疑程序是否包含病毒。

在实施方式a中,利用预设执行特征名单对目标程序是否带毒进行判定,预设执行特征名单包括黑名单和白名单,黑名单中预先存储了病毒程序对应的恶意执行特征,白名单中预先存储了安全程序对应的安全执行特征。从而根据目标程序的执行特征是否能够命中黑名单或白名单判定该目标程序是否为带毒程序,若命中黑名单,则为带毒程序,若命中白名单,则为安全程序,而若目标程序的执行特征即没有命中黑名单也没有命中白名单,则判断该程序为可疑程序,并将可疑程序上报至病毒管理系统进一步对该程序进行判定,病毒管理系统具体可以为专家系统。

实现方式b:

步骤b1,根据目标程序的执行特征以及预设执行特征报毒经验值,计算目标程序的报毒检测值,其中,目标程序的报毒检测值为目标程序的执行特征对应的预设执行特征报毒经验值之和;

步骤b2,按照目标程序的报毒检测值与预设病毒经验值的关系,确定目标程序是否包含病毒。

下面对上述实施例进行举例说明,假设目标程序的执行特征包括a、b、c、d,预设执行特征报毒经验值分别为0、1、2、3,那么该目标程序的报毒检测值为0+1+2+3=6,预设病毒经验值为[5,+∞),该目标程序的报毒检测值在病毒经验值区间内,可以判断该程序包含病毒。其中,预设病毒经验值是根据对大量病毒样本以及安全样本进行分析而得出的,预设病毒经验值作为一个分隔,将病毒样本的报毒经验值和安全样本的报毒经验值做出最大区分。

在此基础上,还可以进一步判定目标程序是否安全程序或可疑程序,具体来说,还可以限定安全程序的预设经验值和/或可疑程序的预设经验值,具体步骤b2可以为:按照目标程序的报毒检测值与预设病毒经验值、预设安全经验值以及预设可疑经验值的关系,对目标程序进行安全检测。

在步骤b2中,根据目标程序的报毒检测值所处的经验值区间,判定目标程序是病毒程序、安全程序还是可疑程序。

另外,如果为可疑程序还可以上报病毒管理系统,从而利用病毒管理系统来判断目标程序是否带毒,并根据病毒管理系统的判断结果,对各个预设经验值进行适应性的调整,以提高病毒检测的准确率和效率。

另外,本申请实施例还可以对虚拟机中的桩函数的参数进行调整,以对抗通过延长病毒程序的执行等待时间的方式来恶意延长病毒程序的执行时间,使得虚拟机无法在一定的执行时间阈值内获取到有效的执行特征。具体地,该装置还可以用于实现:

步骤1,获取需要调整的桩函数,其中,桩函数与执行时间相关;

步骤2,按照预设参数调整规则,设置虚拟机中的桩函数的参数,以使目标程序在虚拟机中调用桩函数时减少等待时间。

在上述实施例中,为了应对存在恶意延长执行时间的病毒程序,先要获取到与延长执行时间操作相关的虚拟机中的桩函数,即需要调整的桩函数,例如桩函数sleep,若目标程序在真实系统中调用sleep函数,会让当前线程等待一段时间,如果虚拟机完全按照真实系统进行模拟,那么目标程序在虚拟机中调用sleep函数时,也会让当前线程等待一段时间,而利用虚拟机获取目标程序的执行特征时,为了提高效率,通常一个程序会事先约定一个执行时间阈值,仅对执行时间阈值之内的执行特征进行提取,而病毒开发者针对这种逻辑,为了使虚拟机难以获取到病毒程序的执行特征,就可以通过编译病毒程序使病毒程序在调用sleep函数后让当前线程等待较长时间,例如执行时间阈值为2秒,命令病毒程序调用sleep函数后等待5秒,那么虚拟机就难以获取到病毒程序的有效执行特征,因此,在获取到需要调整的桩函数后,可以将桩函数中的参数进行调整,不按照真实系统进行模拟而是给这些与执行时间相关的桩函数赋予新的参数,使得目标程序在虚拟机中调用桩函数时,能够减少空闲时间,使线程的等待时间缩短,加快目标程序的执行速度,使其暴露更多的执行特征,以便获取到更完整的目标程序的执行特征,有助于提高对目标程序是否包含病毒的判断的准确性,并且,本申请实施例无需调整执行时间阈值,在保证运行时间不变的前提下能够获取更完整的执行特征,提高了执行特征获取效率。

在步骤1之前,应先确定哪些桩函数是需要调整的桩函数,具体地,获取并执行样本程序;对样本程序产生的执行记录中执行等待的行为进行提取,将与执行等待的行为相关的桩函数作为需要调整的桩函数。其中,需要调整的桩函数至少包括与获取系统时间行为相关的桩函数和/或线程等待桩函数。

需要说明的是,执行样本程序的虚拟机与需要调整桩函数参数的虚拟机可以为同一台虚拟机也可以为不同的虚拟机。

另外,除了通过从样本程序的执行记录中提取出与获取系统时间行为相关的桩函数以及线程等待桩函数作为需要调整的桩函数外,还可以对样本程序进行特征扫描,分析样本程序可能调用的与获取系统时间行为相关的桩函数以及线程等待桩函数,或者对虚拟机所模拟的真实系统中的每个函数进行分析,从而提取出与获取系统时间行为相关的桩函数以及线程等待桩函数。

具体地,若需要调整的桩函数包括与获取系统时间行为相关的桩函数,则将虚拟机中的桩函数的参数设置为与目标程序对应的目标系统时间变量,以使目标程序调用与获取系统时间行为相关的桩函数时直接获取到目标系统时间。

在上述实施例中,对于与获取系统时间行为相关的桩函数,可以将桩函数设定为特定变量,在目标程序调用该桩函数时,通过变量获取该目标程序对应的能够触发继续执行条件的目标系统时间,使得目标程序在调用该桩函数时,不去获取系统的真实时间,而是使其直接能够获取到目标系统时间,从而使得目标程序无需任何等待就可以继续执行,加快进程执行速度。

具体地,若需要调整的桩函数包括线程等待桩函数,则将虚拟机中的线程等待桩函数的参数设置为空,以使目标程序调用线程等待桩函数时不需要等待直接继续执行。

在上述实施例中,对于线程等待桩函数来说,可以直接将桩函数的等待时间设置为空,当目标程序在调用该桩函数时,相当于执行了一个空函数,无需任何等待即可继续执行,从而使得目标程序无需任何等待就可以继续执行,加快进程执行速度,或者线程等待桩函数设置为一个很短的时间也可以起到加快进程执行速度的效果。

需要说明的是,本申请实施例提供的一种恶意程序的对抗装置所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。

基于上述如图1和图2所示方法,相应的,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的恶意程序的对抗方法。

基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

基于上述如图1、图2所示的方法,以及图3、图4所示的虚拟装置实施例,为了实现上述目的,本申请实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的恶意程序的对抗方法。

可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(radiofrequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、wi-fi接口)等。

本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。

存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现清除目标程序中的垃圾指令,使得虚拟机在执行目标程序时,可以减少程序执行等待时间,加快目标程序的执行速度。本申请无需调整虚拟机的程序执行最大时间阈值,通过清除垃圾指令方式,在不影响执行结果的情况下,减少目标程序执行的无用步骤,加快程序的执行速度,使其暴露更多的执行特征,能够有效对抗以恶意延长程序执行等待时间为手段的病毒程序,进而提高了病毒检测的效率和准确率。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本申请所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本申请的几个具体实施场景,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1