一种检测恶意软件的方法及装置与流程

文档序号:11545466阅读:252来源:国知局
一种检测恶意软件的方法及装置与流程

本发明涉及通信网络技术领域,尤其涉及一种检测恶意软件的方法及装置。



背景技术:

在开放式网络环境下,恶意软件越来越盛行,其中,在各种恶意软件中,勒索软件占据了很大比例。当终端感染勒索软件之后,勒索软件会加密终端中文件,从而导致用户无法使用被加密的文件。

目前,典型的检测和阻止勒索软件的方案是基于勒索软件的样本库。在这种方案中,杀毒软件厂商需对大量的勒索软件和其变种软件进行分析,并提取这些软件的样本特征,建立样本特征库。在勒索软件或其变种软件对用户的文件进行加密操作时,终端会将勒索软件或其变种软件的加密操作特征与样本特征库中的特征进行比对,若勒索软件或其变种软件的加密操作特征与样本特征库中的某一特征匹配,则终端能够确定进行加密操作的软件为勒索软件。

但是,一旦出现更新的勒索软件或者已有勒索软件发生变种,则由于样本特征库的更新滞后性(来不及将更新后的样本特征添加进内存中),导致勒索软件或其变种软件的加密操作特征在样本特征库中没有匹配的项,因此,终端无法确定进行加密操作的软件为勒索软件,进而无法对勒索软件进行有效的检测。



技术实现要素:

本发明实施例提供一种检测恶意软件的方法及装置,用于解决因样本特征库的更新滞后性,导致无法对勒索软件进行有效检测的问题。

为达到上述目的,本发明采用如下技术方案:

一种检测恶意软件的方法,包括:

计算目标目录下每个被目标软件操作后的诱饵文件的特征值,所述诱饵文件为用于检测恶意软件的文件;

将每个被所述目标软件操作后的诱饵文件的特征值组成目标特征值序列;

将所述目标特征值序列与原始特征值序列进行比较,所述原始特征值序列为每个未被操作的诱饵文件的特征值所组成的特征值序列;

若确定所述目标特征值序列与所述原始特征值序列一致,则确定所述目标软件为恶意软件。

一种检测恶意软件的装置,包括:

计算单元,用于计算目标目录下每个被目标软件操作后的诱饵文件的特征值,所述诱饵文件为用于检测恶意软件的文件;

组成单元,用于将每个被所述目标软件操作后的诱饵文件的特征值组成目标特征值序列;

比较单元,用于将所述目标特征值序列与原始特征值序列进行比较,所述原始特征值序列为每个未被操作的诱饵文件的特征值所组成的特征值序列;

确定单元,用于若确定所述目标特征值序列与所述原始特征值序列一致,则确定所述目标软件为恶意软件。

本发明实施例提供的检测恶意软件的方法及装置,在目标目录下设置有预设数量的诱饵文件,且存储有每个诱饵文件的特征值组成的原始特征值序列,这一序列反映了原始诱饵文件内容之间的相互关联,例如,诱饵文件中,按照预设顺序,第一个诱饵文件与第二个诱饵文件内容相同,第三个诱饵文件与第四个诱饵文件内容相同,但第三个诱饵文件内容与第一个诱饵文件内容不同,第五个诱饵文件内容与前四个诱饵文件内容均不同,则原始特征值序列能够表示为11223。当有软件对诱饵文件进行操作之后,终端计算每个被操作的诱饵文件的特征值,并将每个被操作的诱饵文件的特征值组成一个目标特征值序列,当目标特征值序列与原始特征值序列匹配时,说明被操作后的诱饵文件内容之间的关联没有改变,这一特性符合勒索软件的特性,因此,终端检测出勒索软件,与现有技术中勒索软件更新后,样本特征库中由于没有存储更新后的特征,而导致无法对勒索软件进行检测相比,本发明实施例提供的方案,计算被操作前后的诱饵文件序列的特征值序列,若被操作前后的诱饵文件序列的特征值序列一致,则能够成功检测出勒索软件的存在。可见,即使出现更新的勒索软件,由于被勒索软件操作之后,诱饵文件内容之间的相互关联是不变的,本发明实施例的方案仍能够利用诱饵文件内容之间的相互关联,对勒索软件进行有效的检测。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种终端的逻辑结构示意图;

图2为本发明实施例提供的一种检测恶意软件的方法的流程图;

图3为本发明实施例提供的另一种检测恶意软件的方法的流程图;

图4为本发明实施例提供的另一种检测恶意软件的方法的流程图;

图5为本发明实施例提供的另一种检测恶意软件的方法的流程图;

图6为本发明实施例提供的一种检测恶意软件的装置的逻辑结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

本发明实施例提供的检测恶意软件的方法,应用于终端中,该终端的逻辑结构示意图如图1所示,该终端包括:诱饵文件操作检查器(baitfileoperationchecker,以下简称bfoc)、可信进程检查器(trustedprocesschecker,以下简称tpc)、文件系统监视器(filesystemmonitor,以下简称fsm)以及目标软件。其中,fsm能够分别与目标软件、bfoc、tpc进行通信,bfoc能够与目标软件进行通信。

此外,在终端的各个目录下存储有相应的文件。对每个文件进行计算,均可分别获得各个文件的特征值,特征值能够唯一的标识各个文件的内容,当文件1和文件2的内容相同时,文件1和文件2的特征值相同。

其中,终端的目录包括目标目录,在目标目录下,存储有重要的文件,例如涉及商业机密的文件或者涉及用户隐私的文件。为了保证重要文件的安全性,在目标目录下还设置有多个诱饵文件,在恶意软件对诱饵文件进行操作之前,计算每个诱饵文件的特征值,并将计算结果组成原始特征值序列。

bfoc,用于分别计算操作前后诱饵文件的特征值。当有软件对诱饵文件进行操作之后,bfoc计算每个被操作的诱饵文件的特征值,将每个被操作的诱饵文件的特征值组成一个目标特征值序列,并将目标特征值序列与原始特征值序列进行比较。值得强调的是,在恶意软件对文件进行加密时,通常对一个目录下的文件采用同一个加密算法,因此,如果文件1和文件2在加密之前内容相同(文件1和文件2的特征值相同),则在恶意软件分别对文件1和文件2进行加密之后,文件1和文件2的内容仍然相同(特征值相同),因此,利用文件内容之间的关联,本发明实施例能够对恶意软件进行检测。所以,当目标特征值序列与原始特征值序列一致时,则bfoc检测到恶意软件,此时,bfoc将向fsm发送检测到恶意软件的信息,再由fsm对恶意软件的读写操作等进行拦截。

tpc,用于对目标软件进行鉴权,当目标软件不可信任时,tpc将向fsm发送信息,指示fsm向不可信任的软件仅发送诱饵文件的标识,从而不可信任的目标软件仅能够根据诱饵文件的标识对诱饵文件进行操作,使诱饵文件之外的用户文件不受目标软件操作的影响;当目标软件可信任时,tpc将向fsm发送信息,指示fsm向可信任软件发送除诱饵文件之外的文件的标识,从而可信任软件能够根据获得的除诱饵文件之外的文件标识对文件进行正常的操作。

fsm用于监视文件的读写等操作,还用于对恶意软件的读写操作进行拦截。值的注意的是,本发明实施例中,在用户终端的内核层和用户层各自设置有fsm。其中,用户层的fsm用于监视、拦截大部分恶意软件的加密等操作,内核层的fsm用于监视、拦截被用户层忽略的恶意软件的加密等操作。

结合图1所示的终端结构,为了解决因样本特征库的更新滞后性,勒索软件的加密操作特征在样本特征库中没有匹配的项,导致无法对勒索软件进行有效检测的问题,本发明实施例提供一种检测恶意软件的方法,如图2所示,该方法包括:

步骤201、计算目标目录下每个被目标软件操作后的诱饵文件的特征值。

其中,诱饵文件为用于检测恶意软件的文件。作为一种实现方式,当目标软件对目标目录下的诱饵文件进行操作之后,bfoc计算每个被操作的诱饵文件的特征值。例如,目标软件通过在终端的内存中读取诱饵文件的内容,将诱饵文件的内容进行加密重写,然后,bfoc使用特征值算法计算每个诱饵文件的特征值。在本发明实施例中,特征值算法可以为md5算法、sha-1算法等。

步骤202、将每个被目标软件操作后的诱饵文件的特征值组成目标特征值序列。

步骤203、将目标特征值序列与原始特征值序列进行比较。其中,原始特征值序列为每个未被操作的诱饵文件的特征值所组成的特征值序列。

如表1所示,在诱饵文件中,诱饵文件1与诱饵文件2内容相同,诱饵文件与诱饵文件2的内容都是“报名表1”,则诱饵文件1与诱饵文件2的特征值相同,假定计算后诱饵文件1与诱饵文件2的特征值均为1;诱饵文件3与诱饵文件4内容相同,但诱饵文件3的内容与诱饵文件1的内容不同,诱饵文件3的内容为“报名表2”,则诱饵文件3与诱饵文件4的特征值相同,假定计算后诱饵文件3与诱饵文件4的特征值均为2;诱饵文件5的内容与前四个诱饵文件的内容均不同,诱饵文件5的内容为“报名表3”,假定计算后诱饵文件5的特征值为3。则最终得到的原始特征值序列为11223,bfoc会将目标特征值序列与原始特征值序列11223进行比较。

表1

步骤204、若确定目标特征值序列与原始特征值序列一致,则确定目标软件为恶意软件。

继续参考步骤203中的举例,若bfoc确定目标特征值序列也为11223,则其能够确定对诱饵文件进行加密操作的目标软件为恶意软件。

本发明实施例提供的检测恶意软件的方法,在目标目录下设置有预设数量的诱饵文件,且存储有每个诱饵文件的特征值组成的原始特征值序列,这一序列反映了原始诱饵文件内容之间的相互关联,例如,诱饵文件中,按照预设顺序,第一个诱饵文件与第二个诱饵文件内容相同,第三个诱饵文件与第四个诱饵文件内容相同,但第三个诱饵文件内容与第一个诱饵文件内容不同,第五个诱饵文件内容与前四个诱饵文件内容均不同,则原始特征值序列能够表示为11223。当有软件对诱饵文件进行操作之后,终端计算每个被操作的诱饵文件的特征值,并将每个被操作的诱饵文件的特征值组成一个目标特征值序列,当目标特征值序列与原始特征值序列匹配时,说明被操作后的诱饵文件内容之间的关联没有改变,这一特性符合勒索软件的特性,因此,终端检测出勒索软件,与现有技术中勒索软件更新后,样本特征库中由于没有存储更新后的特征,而导致无法对勒索软件进行检测相比,本发明实施例提供的方案,计算被操作前后的诱饵文件序列的特征值序列,若被操作前后的诱饵文件序列的特征值序列一致,则能够成功检测出勒索软件的存在。可见,即使出现更新的勒索软件,由于被勒索软件操作之后,诱饵文件内容之间的相互关联是不变的,本发明实施例的方案仍能够利用诱饵文件内容之间的相互关联,对勒索软件进行有效的检测。

需要说明的是,在不可信软件对目标目录下的诱饵文件进行操作时,为了避免不可信软件对除诱饵文件之外的其他用户文件进行操作,需对不可信软件操作的权限作出限制,基于此,在本发明实施例提供的另一种实现方式中,如图3所示,在步骤201、计算目标目录下每个被目标软件操作后的诱饵文件的特征值之前,还需执行步骤301至步骤304。

步骤301、检测目标软件的查询目录操作。

其中,查询目录操作为用于查询目录下文件标识的操作。可以理解的是,目标软件在对某一目录下的文件进行操作之前,需通过查询该目录来获取该目录下文件的标识,例如获取该目录下文件的文件名称。在获取该目录下文件的标识之后,目标软件能够根据文件标识来对文件进行相应操作。

作为一种实现方式,fsm用于监视目标软件的查询目录操作。

步骤302、若确定被查询目录为目标目录,则对目标软件进行鉴权,若确定目标软件为不受信任的软件,则执行步骤303;若确定目标软件为可信软件,则执行步骤304。

其中,目标目录下放置有重要文件,例如,涉及商业机密的文件或者涉及用户隐私的文件。用户可以将所有重要文件放置在一个目标目录下,此外,为了进一步加强文件的安全性,用户也可以根据需求将终端中的多个目录设置为目标目录,并将重要文件分别放置在不同的目标目录下。

可以理解的是,在目标软件对文件进行操作之前,终端应该对目标软件进行鉴权,只有当目标软件为可信软件时,终端才允许目标软件对用户文件进行操作,当目标软件为不受信任的软件时,终端需对目标软件进行进一步验证,从而避免恶意软件对文件进行加密等操作。

作为一种实现方式,若fsm检测到目标软件正在查询目标目录下的文件标识,则fsm指示tpc对目标软件进行鉴权。

步骤303、按照预设顺序向目标软件发送目标目录下每个诱饵文件的标识。

若tpc确定目标软件为不受信任的软件,则tpc向fsm发送警告信息,fsm在接收警告信息之后,仅向目标软件发送每个诱饵文件的标识,因此,目标软件仅能够根据诱饵文件的标识对诱饵文件进行加密等操作,避免目标软件对除诱饵文件之外的其他重要文件进行操作。

步骤304、依次向目标软件发送目标目录下的用户文件的标识。

可以理解的是,当终端判断目标软件为可信软件之后,应该隐藏诱饵文件,从而让诱饵文件对于用户不可见或者不可操作,避免用户对诱饵文件的误操作。因此,当tpc确定目标软件为可信软件时,tpc向fsm发送目标目录查询请求,fsm在接收目标目录查询请求之后,仅向目标软件发送除诱饵文件之外的其他用户文件的标识,因此,目标软件能够对其他用户文件进行操作,也能避免对诱饵文件的误操作。

本发明实施例提供的检测恶意软件的方法,当确定目标软件为不受信任的软件时,向目标软件发送每个诱饵文件的标识,从而目标软件仅能够对诱饵文件进行操作,而不会对除诱饵文件之外的用户文件进行操作,因此,保证了除诱饵文件之外的其他用户文件的安全。

在本发明实施例的另一种实现方式中,对计算每个诱饵文件的特征值的方法进行了说明,如图4所示,步骤201、计算目标目录下每个被目标软件操作后的诱饵文件的特征值包括:

步骤401、每发送一次诱饵文件的标识,检测目标软件本次对诱饵文件的操作。

步骤402、每检测到一次目标软件对诱饵文件的操作,计算本次被操作后的诱饵文件的特征值,直至计算出目标目录下每个诱饵文件的特征值。

例如,当fsm向目标软件发送诱饵文件1的标识之后,目标软件根据诱饵文件1的标识对诱饵文件进行第一次加密,fsm会监视目标软件的第一次加密操作,并将第一次加密操作的信息发送至bfoc,再由bfoc计算加密后的诱饵文件1的特征值。在诱饵文件1的特征值计算完成之后,目标软件可以调用终端的系统函数findnextfile来查询下一个文件标识,则fsm向目标软件发送诱饵文件2的标识,从而目标软件对诱饵文件2进行加密,fsm会监视目标软件对诱饵文件2的加密操作,并将目标软件对诱饵文件2加密操作的信息发送至bfoc,由bfoc计算加密后的诱饵文件2的特征值,以此类推,直至bfoc计算出目标目录下的每个诱饵文件的特征值。

当5个诱饵文件被加密后的特征值全部计算完成,则bfoc将5个已加密的诱饵文件的特征值组成目标特征值序列,并将目标特征值序列与步骤203中的原始特征值序列11223进行比较,若目标特征值序列也为11223,则bfoc确定目标软件为恶意软件,并向fsm发送检测到恶意软件的信息,由fsm对恶意软件的读写操作进行拦截。

若目标特征值序列不是11223,则bfoc确定目标软件不是恶意软件,并指示fsm向目标软件返回除诱饵文件之外的用户文件的标识,从而目标软件能够根据获取的文件标识对文件进行相应的操作。

本发明实施例提供的检测恶意软件的方法,计算被目标软件操作后的诱饵文件的特征值,从而将目标目录下的每个被操作后的诱饵文件的特征值组成目标特征值序列,再将目标特征值序列与原始特征值序列进行比较,若目标特征值序列与原始特征值序列一致,则符合恶意软件的特征,能够检测出恶意软件。

在本发明实施例提供的另一种实现方式中,对提高检测恶意软件的精确度的方法进行了说明,如图5所示,步骤204、若确定目标特征值序列与原始特征值序列一致,则确定目标软件为恶意软件,还可以包括:

步骤501、将目标目录下的诱饵文件的目标附属特征与原始附属特征进行比较。

其中,目标附属特征包括每个被操作的诱饵文件所在的目录、每个被操作的诱饵文件的时间戳值,原始附属特征包括每个未被操作的诱饵文件所在的目录、每个未被操作的诱饵文件的时间戳值。时间戳值能够表征一个文件的时间信息,例如,一个文件在2016年1月1日12:00生成,则原始时间戳值为2016-01-01(12:00),该文件在2016年5月1日13:00被修改完成,则新的时间戳值2016-05-01(13:00)。

需要说明的是,即使在恶意软件发生更新的场景中,恶意软件的附属特征的变化却基本上是稳定的,因此,在本发明实施例中,在确定目标特征值序列与原始特征值序列一致之后,可以进一步检测恶意软件附属特征的变化,来提高检测的精确度。

步骤502、若确定每个诱饵文件被操作前后所在的目录一致,且每个诱饵文件被操作之后的时间戳值大于被操作前的时间戳值,则确定目标软件为恶意软件。

需要说明的是,在恶意软件对诱饵文件进行加密操作前后,诱饵文件所在的目录不会发生变化,例如,诱饵文件1在目录1下,则加密后的诱饵文件1仍然在目录1下。并且,加密操作的时间在原始诱饵文件创建之后,因此,加密后的诱饵文件的时间戳值大于原始诱饵文件的时间戳值。

本发明实施例提供的检测恶意软件的方法,在确定目标特征值序列与原始特征值序列的特征值一致之后,通过进一步检测恶意软件附属特征的变化,能够提高检测的精确度。

对应于上述的方法流程,为了解决因样本特征库的更新滞后性,导致无法对勒索软件进行有效检测的问题,本发明实施例提供了一种检测恶意软件的装置,如图6所示,该装置包括:计算单元601、组成单元602、比较单元603、确定单元604、检测单元605、鉴权单元606以及发送单元607。

计算单元601,用于计算目标目录下每个被目标软件操作后的诱饵文件的特征值,诱饵文件为用于检测恶意软件的文件;

组成单元602,用于将每个计算单元601计算的被目标软件操作后的诱饵文件的特征值组成目标特征值序列;

比较单元603,用于将目标特征值序列与原始特征值序列进行比较,原始特征值序列为每个未被操作的诱饵文件的特征值所组成的特征值序列;

确定单元604,用于若确定目标特征值序列与原始特征值序列一致,则确定目标软件为恶意软件。

在本发明实施例的另一种实现方式中,检测单元605,用于检测目标软件的查询目录操作,查询目录操作为用于查询目录下文件标识的操作;

鉴权单元606,用于若确定检测单元605检测的被查询目录为目标目录,则对目标软件进行鉴权;

发送单元607,用于若确定目标软件为不受信任的软件,则按照预设顺序向目标软件发送目标目录下每个诱饵文件的标识。

在本发明实施例提供的另一种实现方式中,检测单元605,还用于每发送一次诱饵文件的标识,检测目标软件本次对诱饵文件的操作;

计算单元601,还用于若检测单元605每检测到一次目标软件对诱饵文件的操作,计算本次被操作后的诱饵文件的特征值,直至计算出目标目录下每个诱饵文件的特征值。

在本发明实施例提供的另一种实现方式中,发送单元607,还用于若确定目标软件为可信软件,则依次向目标软件发送目标目录下的用户文件的标识。

在本发明实施例提供的另一种实现方式中,比较单元603,还用于将目标目录下的诱饵文件的目标附属特征与原始附属特征进行比较,目标附属特征包括每个被操作的诱饵文件所在的目录、每个被操作的诱饵文件的时间戳值,原始附属特征包括每个未被操作的诱饵文件所在的目录、每个未被操作的诱饵文件的时间戳值;

确定单元604,还用于若确定每个诱饵文件被操作前后所在的目录一致,且每个诱饵文件被操作之后的时间戳值大于被操作前的时间戳值,则确定目标软件为恶意软件。

本发明实施例提供的检测恶意软件的装置,在目标目录下设置有预设数量的诱饵文件,且存储有每个诱饵文件的特征值组成的原始特征值序列,这一序列反映了原始诱饵文件内容之间的相互关联,例如,诱饵文件中,按照预设顺序,第一个诱饵文件与第二个诱饵文件内容相同,第三个诱饵文件与第四个诱饵文件内容相同,但第三个诱饵文件内容与第一个诱饵文件内容不同,第五个诱饵文件内容与前四个诱饵文件内容均不同,则原始特征值序列能够表示为11223。当有软件对诱饵文件进行操作之后,终端计算每个被操作的诱饵文件的特征值,并将每个被操作的诱饵文件的特征值组成一个目标特征值序列,当目标特征值序列与原始特征值序列匹配时,说明被操作后的诱饵文件内容之间的关联没有改变,这一特性符合勒索软件的特性,因此,终端检测出勒索软件,与现有技术中勒索软件更新后,样本特征库中由于没有存储更新后的特征,而导致无法对勒索软件进行检测相比,本发明实施例提供的方案,计算被操作前后的诱饵文件序列的特征值序列,若被操作前后的诱饵文件序列的特征值序列一致,则能够成功检测出勒索软件的存在。可见,即使出现更新的勒索软件,由于被勒索软件操作之后,诱饵文件内容之间的相互关联是不变的,本发明实施例的方案仍能够利用诱饵文件内容之间的相互关联,对勒索软件进行有效的检测。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何在本发明揭露的技术范围内的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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