首页 / 专利库 / 电脑安全 / 计算机病毒 / 计算机病毒的检测方法、装置、存储介质和计算机设备

计算机病毒的检测方法、装置、存储介质和计算机设备

阅读:539发布:2020-05-08

专利汇可以提供计算机病毒的检测方法、装置、存储介质和计算机设备专利检索,专利查询,专利分析的服务。并且本 申请 涉及一种 计算机病毒 的检测方法、装置、存储介质和计算机设备,所述方法包括:获取待检测文件;将所述待检测文件运行于 模拟器 所提供的系统环境中,生成由行为标识组成的第一行为序列;所述行为标识用于表示待检测文件在运行时所执行的行为;从病毒库获取行为特征码;所述行为特征码是由行为标识样本构成,所述行为标识样本是携带计算机病毒的病毒文件样本在所述系统环境中运行生成;当所选取的行为特征码与生成的第一行为序列相匹配时,则确定所述待检测文件携带计算机病毒。本申请提供的方案可以避免因计算机病毒以 变形 方式隐藏在文件中而无法检测出来的问题,提高病毒检测的准确性。,下面是计算机病毒的检测方法、装置、存储介质和计算机设备专利的具体信息内容。

1.一种计算机病毒的检测方法,包括:
获取待检测文件;
将所述待检测文件运行于模拟器所提供的系统环境中,生成由行为标识组成的第一行为序列;所述行为标识用于表示待检测文件在运行时所执行的行为;
从病毒库获取行为特征码;所述行为特征码是由行为标识样本构成,所述行为标识样本是携带计算机病毒的病毒文件样本在所述系统环境中运行生成;
当所选取的行为特征码与生成的第一行为序列相匹配时,则确定所述待检测文件携带计算机病毒。
2.根据权利要求1所述的方法,其特征在于,所述将所述待检测文件运行于模拟器所提供的系统环境中,生成由行为标识组成的第一行为序列包括:
通过模拟器所提供的系统环境运行所述待检测文件;
获取所述待检测文件在所述系统环境中运行时所产生的第一行为日志;
从第一行为日志提取所述待检测文件在运行时所执行行为的行为标识;
将提取的行为标识进行组合得到第一行为序列。
3.根据权利要求2所述的方法,其特征在于,所述将提取的行为标识进行组合得到第一行为序列包括:
从所述第一行为日志中获取所述待检测文件在运行时所执行行为的触发时间,以及所述行为在执行完成时的结束时间;
按照所述触发时间、或所述结束时间、或由所述触发时间和所述结束时间所得的执行时长,对提取的行为标识进行组合得到第一行为序列。
4.根据权利要求1所述的方法,其特征在于,所述获取待检测文件之前,所述方法还包括:
获取携带计算机病毒的病毒文件样本;
将所述携带计算机病毒的病毒文件样本运行于由模拟器所提供的系统环境中,生成由行为标识样本组成的行为特征码;
将所述行为特征码作为用于检测计算机病毒的标签保存于所述病毒库中。
5.根据权利要求4所述的方法,其特征在于,所述将所述携带计算机病毒的病毒文件样本运行于由模拟器所提供的系统环境中,生成由行为标识样本组成的行为特征码包括:
通过模拟器所提供的系统环境运行所述携带计算机病毒的病毒文件样本;
获取所述病毒文件样本在所述系统环境中运行时所产生的第二行为日志;
从第二行为日志提取所述病毒文件样本在运行时所执行行为的行为标识;
将提取的行为标识进行组合得到第二行为序列;
从所述第二行为序列中选取行为标识片段,并将选取的行为标识片段确定为行为特征码。
6.根据权利要求5所述的方法,其特征在于,所述从所述第二行为序列中选取行为标识片段,并将选取的行为标识片段确定为行为特征码包括:
确定行为标识片段的长度值和划分所述第二行为序列时逐步移动的步长;
在所述第二行为序列中,按照所述步长逐步确定划分起点,并依照所述划分起点逐步划分出具有所述长度值的多个行为标识片段;
确定各行为标识片段所对应的第一分值;所述第一分值用于表示行为标识片段与计算机病毒之间的关联性;
将所述第一分值中最大的分值所对应的行为标识片段确定为行为特征码。
7.根据权利要求6所述的方法,其特征在于,所述将所述第一分值中最大的分值所对应的行为标识片段确定为行为特征码包括:
将各行为标识片段所对应的第一分值按照分值大小进行降序排列;
当排列后的各第一分值中最大的分值有多个时,则
在所述多个最大的分值中选取排列在前的分值所对应的行为标识片段确定为行为特征码;或者,
将所述多个最大的分值所对应的各行为标识片段确定为行为特征码。
8.根据权利要求6所述的方法,其特征在于,所述确定各行为标识片段所对应的第一分值包括:
从预设的数据列表中,查找与各所述行为标识片段中相邻的行为标识相匹配的行为标识组;
获取所述行为标识组对应的第二分值;所述第二分值用于表示所述行为标识组与计算机病毒之间的关联性;
分别对各行为标识片段中的行为标识组对应第二分值进行累加,得到累加值;
将所述累加值确定为对应各行为标识片段的第一分值。
9.根据权利要求8所述的方法,其特征在于,所述行为标识组是将两个行为标识按照排列组合的方式所得到的二元组;所述方法还包括:
确定所述行为标识组在各病毒文件样本所对应的行为序列出现的概率,以及在各安全文件样本所对应的行为序列出现的概率;
将所述行为标识组在各病毒文件样本所对应的行为序列出现的概率与所述行为标识组在各安全文件样本所对应的行为序列出现的概率之间的比值,确定为所述行为标识组对应的第二分值。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述当所选取的行为特征码与生成的第一行为序列相匹配时,则确定所述待检测文件携带计算机病毒包括:
确定与所所选取的行为特征码对应的目标病毒类型;
在所述第一行为序列中查找与所选取的行为特征码匹配的行为标识片段;
当查找到匹配的行为标识片段时,则确定所选取的行为特征码与生成的第一行为序列相匹配;
确定所述待检测文件携带有所述目标病毒类型的计算机病毒。
11.一种计算机病毒的检测装置,其特征在于,所述装置包括:
待检测文件获取模,用于获取待检测文件;
行为序列生成模块,用于将所述待检测文件运行于模拟器所提供的系统环境中,生成由行为标识组成的第一行为序列;所述行为标识用于表示待检测文件在运行时所执行的行为;
特征码获取模块,用于从病毒库获取行为特征码;所述行为特征码是由行为标识样本构成,所述行为标识样本是携带计算机病毒的病毒文件样本在所述系统环境中运行生成;
病毒确定模块,用于当所选取的行为特征码与生成的第一行为序列相匹配时,则确定所述待检测文件携带计算机病毒。
12.根据权利要求11所述的装置,其特征在于,所述行为序列生成模块还用于:
通过模拟器所提供的系统环境运行所述待检测文件;
获取所述待检测文件在所述系统环境中运行时所产生的第一行为日志;
从第一行为日志提取所述待检测文件在运行时所执行行为的行为标识;
将提取的行为标识进行组合得到第一行为序列。
13.根据权利要求12所述的装置,其特征在于,所述行为序列生成模块还用于:
从所述第一行为日志中获取所述待检测文件在运行时所执行行为的触发时间,以及所述行为在执行完成时的结束时间;
按照所述触发时间、或所述结束时间、或由所述触发时间和所述结束时间所得的执行时长,对提取的行为标识进行组合得到第一行为序列。
14.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。
15.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。

说明书全文

计算机病毒的检测方法、装置、存储介质和计算机设备

技术领域

[0001] 本申请涉及计算机技术领域,特别是涉及一种计算机病毒的检测方法、装置、存储介质和计算机设备。

背景技术

[0002] 计算机病毒是编制者在计算机程序中插入的破坏计算机功能或数据的代码,由于计算机病毒具有较强的传染性,使得计算机随时都有面临被计算机病毒感染的威胁,最终可能会导致计算机系统瘫痪或信息泄露等问题。
[0003] 在传统的病毒检测方案中,主要方法是:从计算机病毒文件样本中抽取一个连续的片段作为特征码保存于病毒库,当对待检测文件进行病毒检测时,在病毒库中对待检测文件进行特征码匹配搜索,如果待检测文件命中病毒库中的特征码,则认为待检测文件为病毒。
[0004] 然而,当计算机病毒以变形的方式存在时,如果采用传统的病毒检测方案对待检测文件的代码进行匹配搜索,可能无法检测出以变形方式隐藏在文件中的恶意代码,从而降低了病毒检测的准确性。发明内容
[0005] 基于此,有必要针对因计算机病毒以变形方式隐藏在文件中而降低病毒检测的准确性的技术问题,提供一种计算机病毒的检测方法、装置、存储介质和计算机设备。
[0006] 一种计算机病毒的检测方法,包括:
[0007] 获取待检测文件;
[0008] 将所述待检测文件运行于模拟器所提供的系统环境中,生成由行为标识组成的第一行为序列;所述行为标识用于表示待检测文件在运行时所执行的行为;
[0009] 从病毒库获取行为特征码;所述行为特征码是由行为标识样本构成,所述行为标识样本是携带计算机病毒的病毒文件样本在所述系统环境中运行生成;
[0010] 当所选取的行为特征码与生成的第一行为序列相匹配时,则确定所述待检测文件携带计算机病毒。
[0011] 一种计算机病毒的检测装置,所述装置包括:
[0012] 待检测文件获取模,用于获取待检测文件;
[0013] 行为序列生成模块,用于将所述待检测文件运行于模拟器所提供的系统环境中,生成由行为标识组成的第一行为序列;所述行为标识用于表示待检测文件在运行时所执行的行为;
[0014] 特征码获取模块,用于从病毒库获取行为特征码;所述行为特征码是由行为标识样本构成,所述行为标识样本是携带计算机病毒的病毒文件样本在所述系统环境中运行生成;
[0015] 病毒确定模块,用于当所选取的行为特征码与生成的第一行为序列相匹配时,则确定所述待检测文件携带计算机病毒。
[0016] 一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述计算机病毒的检测方法的步骤。
[0017] 一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述计算机病毒的检测方法的步骤。
[0018] 上述计算机病毒的检测方法、装置、存储介质和计算机设备,将待检测文件运行于模拟器所提供的系统环境中,可以很方便地获得用于表示待检测文件在运行时所执行行为的行为序列。由于病毒库中的行为特征码是根据携带计算机病毒的病毒文件样本在系统环境中运行所形成的,具有泛化能,因此只要待检测文件携带有计算机病毒,就可以依据从病毒库中的行为特征码检测出待检测文件携带有计算机病毒,使得以变形方式隐藏在文件中的恶意代码能够有效地被检测出来,提高了病毒检测的准确性。附图说明
[0019] 图1为一个实施例中计算机病毒的检测方法的应用环境图;
[0020] 图2为一个实施例中计算机病毒的检测方法的流程示意图;
[0021] 图3为一个实施例中根据待检测文件获得第一行为序列步骤的流程示意图;
[0022] 图4为一个实施例中根据病毒文件样本获得行为特征码步骤的流程示意图;
[0023] 图5为一个实施例中通过模拟器所提供的系统环境运行病毒文件样本生成行为日志,根据行为日志获得行为特征码步骤的流程示意图;
[0024] 图6为一个实施例中划分第二行为序列得到标识片段,选取分值最大的标识片段作为行为特征码步骤的流程示意图;
[0025] 图7为一个实施例中根据第二分值确定第一分值步骤的流程示意图;
[0026] 图8为另一个实施例中计算机病毒的检测方法的流程示意图;
[0027] 图9为一个实施例中计算机病毒的检测装置的结构框图
[0028] 图10为另一个实施例中计算机病毒的检测装置的结构框图;
[0029] 图11为另一个实施例中计算机病毒的检测装置的结构框图;
[0030] 图12为一个实施例中行为序列提取模块获得行为序列的流程示意图;
[0031] 图13为一个实施例中病毒库生成模块构计算二元组的分值的流程示意图;
[0032] 图14为一个实施例中病毒库生成模块构建病毒库的流程示意图;
[0033] 图15为一个实施例中检测流程控制模块检测计算机病毒的流程示意图;
[0034] 图16为一个实施例中计算机设备的结构框图。

具体实施方式

[0035] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0036] 图1为一个实施例中计算机病毒的检测方法的应用环境图。参照图1,该计算机病毒的检测方法应用于计算机病毒的检测系统。该计算机病毒的检测系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0037] 如图2所示,在一个实施例中,提供了一种计算机病毒的检测方法。该计算机病毒的检测方法可以应用于上述图1中的终端110,也可以应用于服务器120。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图2,该计算机病毒的检测方法具体包括如下步骤:
[0038] S202,获取待检测文件。
[0039] 其中,待检测文件可以是可执行文件,该可执行文件可以包括:后缀名为APK的压缩文件、以及该压缩文件中的META-INF文件、res文件、AndroidManifest.xml(程序全局配置)文件、classes.dex(Dalvik字节码)文件和resources.arsc(编译后的二进制资源文件)等Android(安卓)文件。此外,该可执行文件可以包括:EXE格式文件、COM格式文件、BAT格式文件、DEB格式文件、IPA格式文件和PXL格式文件等等。
[0040] 在一个实施例中,终端从第三方应用平台下载可执行文件,将下载的可执行文件作为待检测文件;或者,终端从存储器中获取待检测文件。其中,这里的待检测文件可能携带有计算机病毒。
[0041] 其中,计算机病毒包括但不限于:系统病毒、蠕虫病毒、木病毒、黑客病毒、脚本病毒、宏病毒、后病毒、病毒种植程序病毒、破坏性程序病毒和绑机病毒等类型的病毒。
[0042] S204,将待检测文件运行于模拟器所提供的系统环境中,生成由行为标识组成的第一行为序列;该行为标识用于表示待检测文件在运行时所执行的行为。
[0043] 其中,模拟器可以是以下任一种:Windows模拟器、Android模拟器、IOS模拟器以及其它用于模拟移动操作系统的模拟器。对应的,Windows模拟器所提供的系统环境为Windows环境,Android模拟器所提供的系统环境为Android环境、IOS模拟器所提供的系统环境为IOS环境。
[0044] 在一个实施例中,终端在接收到输入的启动指令时,启动并运行用于运行待检测文件的模拟器,运行中的模拟器可以为待检测文件提供所需的系统环境。当模拟器在终端启动并运行后,模拟器可以自动触发计算机病毒的检测事件,终端接收到待检测文件的运行指令时,将待检测文件运行于模拟器所提供的系统环境中,并实时检测待检测文件在模拟器中运行时所执行的行为,生成各个所执行行为的行为ID(Identification,标识),将所生成的行为标识进行组合得到行为序列。
[0045] 其中,上述的行为标识可以是数字、或字母、或字母与数字的组合等。上述的行为可以是打电话、发短信、广告弹窗、启动摄像头、开启GPS(Global Positioning System,全球定位系统)、开启DBS(BeiDou Navigation Satellite System,北斗卫星导航系统)、开启Wi-Fi以及获取位置信息等行为。
[0046] 例如,当Android模拟器启动并稳定运行后,终端将待检测文件运行于模拟器所提供的系统环境中,待检测文件在运行过程中触发对应的功能行为,生成对应功能行为的行为标识,如行为标识19、行为标识58、行为标识82、行为标识134、行为标识17、行为标识58、行为标识15和行为标识16,然后将所生成的行为标识进行组合得到对应的行为序列(19,58,82,134,17,58,15,16)。
[0047] 在一个实施例中,当检测待检测文件在模拟器中运行时,终端除了生成各个所执行行为的行为序列之外,还会记录所执行行为的触发时间和执行完成时的结束时间。
[0048] 在一个实施例中,当模拟器在终端启动并运行后,终端按照输入的设置指令,在系统环境的功能执行处设置日志记录功能;其中,设置的日志记录功能用于在待检测文件运行的过程中生成对应的行为日志,当运行到一定时间、或接收到暂停运行指令时,模拟器将生成的行为日志进行输出。行为日志中包含有所执行行为的行为标识、触发时间和执行完成时的结束时间。
[0049] S206,从病毒库获取行为特征码;行为特征码是由行为标识样本构成,行为标识样本是携带计算机病毒的病毒文件样本在系统环境中运行生成。
[0050] 其中,病毒库中保存有多个行为特征码,不同的行为特征码可以对应相同或不同的计算机病毒类型,此外,一个行为特征码可以对应一种计算机病毒类型,也可以对应多种计算机病毒类型。行为特征码可以是由多个行为标识所组成,如可以由六个行为标识(58,82,134,17,58,15)组成。不同的行为特征码对应有相应大小的分值,该分值用于表示行为标识片段与计算机病毒之间的关联性,行为标识片段为行为序列中的、且与行为特征码匹配的一段行为标识,分值越大表示与行为特征码匹配的行为标识片段在由病毒文件中所产生的行为序列中出现的概率越大。
[0051] 在一个实施例中,对于行为特征码的保存,终端可以是将所有计算机病毒类型所对应的行为特征码保存于一个病毒列表中,并且在病毒列表中设置计算机病毒类型的字段,以便在确定待检测文件为携带计算机病毒的文件时确定该计算机病毒的类型;或者,终端也可以将不同计算机类型所对应的行为特征码分不同病毒列表进行保存。
[0052] 在一个实施例中,终端从病毒库中按照存储编号依次获取行为特征码,或者从病毒库中随机获取行为特征码,或者在病毒库中按照对应分值的大小获取行为特征码。其中,随机获取行为特征码时,对于已经获取过的行为特征码将不再下一次获取的范围。
[0053] 在一个实施例中,对于行为特征码的生成,在S202之前,行为特征码的生成方法可以包括:当模拟器在终端稳定运行后,依次将各种携带有计算机病毒的病毒文件样本运行于模拟器所提供的系统环境,然后生成对应的行为日志。终端将分别将各行为日志中的行为标识进行组合,得到与各病毒文件样本对应的行为序列,然后按照一定的片段长度和步长将行为序列进行切分,每个行为序列可以得到多个行为标识片段。终端计算每个行为标识片段的分值,将分值最大的行为标识片段作为对应病毒文件样本的行为特征码,并保存于病毒库中。
[0054] 在一个实施例中,终端计算每个行为标识片段的分值的步骤,具体可以包括:从各行为标识片段中获取相邻的两个行为标识,在预设的数据列表中查找与所获取的相邻的两个行为标识相对应的行为标识组,行为标识组对应有分值,从而得到各相邻的两个行为标识所对应的分值,将得到的分值进行相加并可得到各行为标识片段的分值。需要说明的是,行为标识片段的长度大于行为标识组的长度。
[0055] 在一个实施例中,在S202之前,该方法可以包括:当模拟器在终端稳定运行后,依次将各安全文件样本运行于模拟器所提供的系统环境,然后生成对应的行为日志。终端将分别将各行为日志中的行为标识进行组合,得到与各安全文件样本对应的行为序列。
[0056] 其中,行为标识组对应的分值是根据第一概率和第二概率所得;第一概率是行为标识组在各病毒文件样本所对应的行为序列出现的概率;第二概率是行为标识组在各安全文件样本所对应的行为序列出现的概率。
[0057] 例如,假设有256种行为,有100种病毒文件样本和100种安全文件样本,对应的,有与100种病毒文件样本对应的100个不同的行为序列S1,以及有与100种安全文件样本对应的100个不同的行为序列S2;若行为标识组由ID1和ID2组成,ID1和ID2分别表示相邻两个行为所对应的行为标识。
[0058] 那么,终端首先计算ID1=1、ID2=1在多少个行为序列S1中出现了,若在70个行为序列S1中出现了,那么在病毒文件样本中出现的概率为p(1,1)=70%;然后,终端计算ID1=1、ID2=1在多少行为序列S2中出现了,若在30个行为序列中出现了,那么在病毒文件样本中出现的概率p'(1,1)=30%。对应的,由ID1=1、ID2=1所组成的行为标识组的分值为p(1,1)/p'(1,1)=7/3。
[0059] 其中,ID1=1、ID2=1表示相邻两种行为均为第一种行为。
[0060] S208,当所选取的行为特征码与生成的第一行为序列相匹配时,则确定待检测文件携带计算机病毒。
[0061] 在一个实施例中,终端按照选取的行为特征码,在生成的第一行为序列进行遍历查找,当查找到与所选取的行为特征码相匹配的行为标识片段时,则确定所选取的行为特征码与生成的第一行为序列相匹配,当查找不到与所选取的行为特征码相匹配的行为标识片段时,则确定所选取的行为特征码与生成的第一行为序列不匹配。
[0062] 在一个实施例中,当所选取的行为特征码与生成的第一行为序列不匹配时,终端则在病毒库中重新获取行为特征码,继续执行S208的步骤,直至确定所选取的行为特征码与生成的第一行为序列相匹配,或病毒库中的行为特征获取完为止。
[0063] 在一个实施例中,在检测待检测文件是否携带计算机病毒时,还可以检测该待检测文件携带了什么类型的计算机病毒。具体地,确定与所所选取的行为特征码对应的目标病毒类型;在第一行为序列中查找与所选取的行为特征码匹配的行为标识片段;当查找到匹配的行为标识片段时,则确定所选取的行为特征码与生成的第一行为序列相匹配;确定待检测文件携带有目标病毒类型的计算机病毒。
[0064] 在一个实施例中,当所有行为特征码保存于同一个病毒列表时,终端从病毒库中获取到行为特征码时,在病毒列表的病毒类型字段中查找与该行为特征码对应的目标病毒类型。或者,当不同计算机病毒类型的行为特征码保存于不同病毒列表时,终端从病毒库中获取到行为特征码时,根据病毒列表所对应的计算机病毒类型确定目标病毒类型。
[0065] 作为一个示例,对于待检测Android文件的计算机病毒检测,可以包括以下内容:
[0066] (1)首先,获取Android病毒文件样本和安全文件样本,统计得到行为标识二元组的分值,其中二元组是指两相邻行为标识ID1和ID2的组合。
[0067] 假设总共有256种行为,统计二元组分值的方式可以是:1)准备一批Android病毒文件样本和安全文件样本,分别在Android模拟器所模拟的系统环境中运行,得到Android病毒文件样本的行为序列和安全文件样本的行为序列;2)统计二元组在Android病毒文件样本的行为序列中出现的概率(以下简称病毒概率)和在安全文件样本的行为序列中出现的概率(以下简称安全概率);对于病毒概率,统计每一个二元组在多少个Android病毒文件样本的行为序列中出现了,然后除以Android病毒文件的个数,即可得到病毒概率p(m,n);同理可统计安全概率p'(m,n);3)二元组的分值Frac(m,n)=p(m,n)/p'(m,n),如下表1所示。
[0068] 表1二元组的分值统计表
[0069]
[0070] (2)对每一个Android病毒文件样本,在获得对应的行为序列后,在所获得的行为序列中提取行为特征码,将所有Android病毒文件样本Android病毒文件样本的行为特征码进行保存,得到对应的病毒库。
[0071] (3)若对待检测文件进行计算机病毒的检测时,获取对应的待检测文件,将待检测文件运行在Android模拟器所模拟的系统环境中,得到待检测文件的行为序列。
[0072] (4)遍历病毒库中的行为特征码,然后查询病毒库中的行为特征码是否在待检测文件的行为序列中。
[0073] (5)如果查询病毒库中的行为特征码在待检测文件的行为序列中,则判定该待检测文件携带有计算机病毒。
[0074] 上述实施例中,将待检测文件运行于模拟器所提供的系统环境中,可以很方便地获得用于表示待检测文件在运行时所执行行为的行为序列。由于病毒库中的行为特征码是根据携带计算机病毒的病毒文件样本在系统环境中运行所形成的,具有泛化能力,因此只要待检测文件携带有计算机病毒,就可以依据从病毒库中的行为特征码检测出待检测文件携带有计算机病毒,使得以变形方式隐藏在文件中的恶意代码能够有效地被检测出来,提高了病毒检测的准确性。
[0075] 在一个实施例中,如图3所示,S204具体可以包括:
[0076] S302,通过模拟器所提供的系统环境运行待检测文件。
[0077] 在一个实施例中,终端在启动并运行模拟器后,模拟器将会模拟出能够运行待检测文件的系统环境,然后在模拟出来的系统环境运行待检测文件。
[0078] 例如,终端通过Android模拟器所模拟出Android操作系统,通过模拟出来的Android操作系统来运行待检测文件。
[0079] 在一个实施例中,终端在接收到输入的启动指令时,启动并运行用于运行待检测文件的模拟器,运行中的模拟器可以为待检测文件提供所需的系统环境。当模拟器在终端启动并运行后,模拟器可以自动触发计算机病毒的检测事件,终端接收到待检测文件的运行指令时,将待检测文件运行于模拟器所提供的系统环境中,并实时检测待检测文件在模拟器中运行时所执行的行为。
[0080] 其中,上述的行为标识可以是数字、或字母、或字母与数字的组合等。上述的行为可以是打电话、发短信、广告弹窗、启动摄像头、开启GPS(Global Positioning System,全球定位系统)、开启DBS(BeiDou Navigation Satellite System,北斗卫星导航系统)、开启Wi-Fi以及获取位置信息等行为。
[0081] S304,获取待检测文件在系统环境中运行时所产生的第一行为日志。
[0082] 其中,第一行为日志中包含有多个字段,如:待检测文件在运行时所执行行为的行为标识、触发时间和行为在执行完成时的结束时间。
[0083] 在一个实施例中,待检测文件在模拟器所提供的系统环境中运行时触发多种功能行为的执行,模拟器实时检测待检测文件在运行时所执行的行为,根据所执行的行为生成行为日志。当待检测文件在系统环境中运行一定时间后,或检测到关于待检测文件的暂停运行或退出运行的指令时,模拟器输出该行为日志,该行为日志的内容如下所示:
[0084] 行为ID=19,触发时间t1,结束时间t'1;
[0085] 行为ID=58,触发时间t2,结束时间t'2;
[0086] 行为ID=82,触发时间t3,结束时间t'3;
[0087] 行为ID=134,触发时间t4,结束时间t'4;
[0088] 行为ID=17,触发时间t5,结束时间t'5;
[0089] 行为ID=58,触发时间t6,结束时间t'6;
[0090] 行为ID=15,触发时间t7,结束时间t'7;
[0091] 行为ID=16,触发时间t8,结束时间t'8。
[0092] S306,从第一行为日志提取待检测文件在运行时所执行行为的行为标识。
[0093] 在一个实施例中,终端按照行为标识字段,从第一行为日志提取待检测文件在运行时所执行行为的行为标识。例如,按照上述的行为日志,可以提取出行为标识为19,58,82,134,17,58,15,16。
[0094] S308,将提取的行为标识进行组合得到第一行为序列。
[0095] 在一个实施例中,行为标识的组合可以按照触发时间、或结束时间、或执行时长来组合。因此,S308具体可以包括:从第一行为日志中获取待检测文件在运行时所执行行为的触发时间,以及行为在执行完成时的结束时间;按照触发时间、或结束时间、或由触发时间和结束时间所得的执行时长,对提取的行为标识进行组合得到第一行为序列。
[0096] 例如,假设t1是第一秒,t2是第二秒,依次类推t8是第八秒,那么,终端按照触发时间的先后顺序对行为标识进行排序,将排序后的行为标识进行组合得到第一行为序列(19,58,82,134,17,58,15,16)。又例如,假设行为ID=19、行为ID=58、行为ID=82、行为ID=
134、行为ID=17、行为ID=58、行为ID=15和行为ID=16所对应行为的执行时长分别为t″
1、t″2……t″8,若t″1<t″2<......<t″8时,则可以按照执行时长从小到大进行排列,然后将排列后的行为标识组合成第一行为序列(19,58,82,134,17,58,15,16)。
[0097] 上述实施例中,将待检测文件运行于模拟器所提供的系统环境中,可以很方便地获得待检测文件在运行时的行为日志。从行为日志中提取行为标识,按照行为的触发时间、或结束时间、或执行时长对提取出来的行为标识进行组合,得到用于检测待检测文件是否携带计算机病毒的行为序列,由于所得到的行为序列是根据待检测文件在系统环境中运行所形成的,具有泛化能力,因此只要待检测文件携带有计算机病毒就可以被检测出来,提高了病毒检测的准确性。
[0098] 在一个实施例中,如图4所示,在S202之前,该方法还包括:
[0099] S402,获取携带计算机病毒的病毒文件样本。
[0100] 其中,病毒文件样本与待检测文件类似,也是可执行文件,病毒文件样本可以包括:后缀名为APK的压缩文件、以及该压缩文件中的META-INF文件、res文件、AndroidManifest.xml文件、classes.dex文件和resources.arsc等Android文件。此外,该病毒文件样本还可以包括:EXE格式文件、COM格式文件、BAT格式文件、DEB格式文件、IPA格式文件和PXL格式文件等等。
[0101] 在一个实施例中,终端从第三方计算机病毒库下载携带有计算机病毒的病毒文件样本;或者,终端从本地计算机病毒库中获取携带有计算机病毒的病毒文件样本。
[0102] 其中,计算机病毒包括但不限于:系统病毒、蠕虫病毒、木马病毒、黑客病毒、脚本病毒、宏病毒、后门病毒、病毒种植程序病毒、破坏性程序病毒和捆绑机病毒等类型的病毒。
[0103] S404,将携带计算机病毒的病毒文件样本运行于由模拟器所提供的系统环境中,生成由行为标识样本组成的行为特征码。
[0104] 在一个实施例中,当模拟器在终端启动并运行后,终端通过模拟器可以分别将所获取的携带计算机病毒的病毒文件样本运行在模拟器所提供的系统环境中,并实时病毒文件样本在模拟器中运行时所执行的行为,生成各个所执行行为的行为标识,将所生成的行为标识进行组合得到行为序列。
[0105] 其中,根据病毒文件样本所得的行为标识可以是:数字、或字母、或字母与数字的组合等。上述的行为可以是打电话、发短信、广告弹窗、启动摄像头、开启GPS、开启DBS、开启Wi-Fi以及获取位置信息等行为。
[0106] 例如,当Android模拟器启动并稳定运行后,终端将病毒文件样本运行于模拟器所提供的系统环境中,病毒文件样本在运行过程中触发对应的功能行为,生成对应功能行为的行为标识,如行为标识20、行为标识60、行为标识82、行为标识134、行为标识17、行为标识58、行为标识15和行为标识16,然后将所生成的行为标识进行组合得到对应的行为序列(20,60,82,134,17,58,15,16)。
[0107] 在一个实施例中,当检测病毒文件样本在模拟器中运行时,终端除了生成各个所执行行为的行为序列之外,还会记录所执行行为的触发时间和执行完成时的结束时间。
[0108] 在一个实施例中,在模拟器所提供系统环境的功能执行处设置日志记录功能。当病毒文件样本在模拟器所提供系统环境中运行到一定时间、或接收到暂停运行或退出运行的指令时,模拟器将生成行为日志并进行输出。该行为日志中包含有所执行行为的行为标识、触发时间和执行完成时的结束时间。
[0109] S406,将行为特征码作为用于检测计算机病毒的标签保存于病毒库中。
[0110] 在一个实施例中,S406具体可以包括:终端将所有计算机病毒类型所对应的行为特征码作为用于检测计算机病毒的标签,保存于一个病毒列表中,并且在病毒列表中设置计算机病毒类型的字段,以便在确定待检测文件为携带计算机病毒的文件时确定该计算机病毒的类型。或者,终端也可以将不同计算机类型所对应的行为特征码作为用于检测计算机病毒的标签,分不同病毒列表进行保存。
[0111] 上述实施例中,由于病毒库中的行为特征码是根据携带计算机病毒的病毒文件样本在系统环境中运行所形成的,具有泛化能力,因此将行为特征码作为用于检测计算机病毒的标签保存于病毒库中,只要待检测文件携带有计算机病毒,就可以依据从病毒库中的行为特征码检测出待检测文件携带有计算机病毒,使得以变形方式隐藏在文件中的恶意代码能够有效地被检测出来,有利于提高病毒检测的准确性。
[0112] 在一个实施例中,如图5所示,S404具体可以包括:
[0113] S502,通过模拟器所提供的系统环境运行携带计算机病毒的病毒文件样本。
[0114] 在一个实施例中,终端在启动并运行模拟器后,模拟器将会模拟出能够运行病毒文件样本的系统环境,然后在模拟出来的系统环境运行病毒文件样本。
[0115] 例如,终端通过Android模拟器所模拟出Android操作系统,通过模拟出来的Android操作系统来运行病毒文件样本。
[0116] 在一个实施例中,终端在接收到输入的启动指令时,启动并运行用于运行病毒文件样本的模拟器,运行中的模拟器可以为病毒文件样本提供所需的系统环境。当模拟器在终端启动并运行后,模拟器可以自动触发计算机病毒的检测事件,终端接收到病毒文件样本的运行指令时,将病毒文件样本运行于模拟器所提供的系统环境中,并实时检测病毒文件样本在模拟器中运行时所执行的行为。
[0117] 其中,上述的行为标识可以是数字、或字母、或字母与数字的组合等。上述的行为可以是打电话、发短信、广告弹窗、启动摄像头、开启GPS(Global Positioning System,全球定位系统)、开启DBS(BeiDou Navigation Satellite System,北斗卫星导航系统)、开启Wi-Fi以及获取位置信息等行为。
[0118] S504,获取病毒文件样本在系统环境中运行时所产生的第二行为日志。
[0119] 其中,第二行为日志中包含有多个字段,如:病毒文件样本在运行时所执行行为的行为标识、触发时间和行为在执行完成时的结束时间。
[0120] 在一个实施例中,病毒文件样本在模拟器所提供的系统环境中运行时触发多种功能行为的执行,模拟器实时检测病毒文件样本在运行时所执行的行为,根据所执行的行为生成行为日志。当病毒文件样本在系统环境中运行一定时间后,或检测到关于病毒文件样本的暂停运行或退出运行的指令时,模拟器输出该行为日志,该行为日志的内容如下所示:
[0121] 行为ID=20,触发时间t1,结束时间t'1;
[0122] 行为ID=60,触发时间t2,结束时间t'2;
[0123] 行为ID=82,触发时间t3,结束时间t'3;
[0124] 行为ID=134,触发时间t4,结束时间t'4;
[0125] 行为ID=17,触发时间t5,结束时间t'5;
[0126] 行为ID=58,触发时间t6,结束时间t'6;
[0127] 行为ID=15,触发时间t7,结束时间t'7;
[0128] 行为ID=16,触发时间t8,结束时间t'8。
[0129] S506,从第二行为日志提取病毒文件样本在运行时所执行行为的行为标识。
[0130] 在一个实施例中,终端按照行为标识字段,从第一行为日志提取病毒文件样本在运行时所执行行为的行为标识。例如,按照上述的行为日志,可以提取出行为标识为20,60,82,134,17,58,15,16。
[0131] S508,将提取的行为标识进行组合得到第二行为序列。
[0132] 在一个实施例中,行为标识的组合可以按照触发时间、或结束时间、或执行时长来组合。因此,S508具体可以包括:终端从第二行为日志中获取病毒文件样本在运行时所执行行为的触发时间,以及行为在执行完成时的结束时间;按照触发时间、或结束时间、或由触发时间和结束时间所得的执行时长,对提取的行为标识进行组合得到第二行为序列。
[0133] 例如,假设t1是第一秒,t2是第二秒,依次类推t8是第八秒,那么,终端按照触发时间的先后顺序对行为标识进行排序,将排序后的行为标识进行组合得到第二行为序列(20,60,82,134,17,58,15,16)。又例如,假设行为ID=20、行为ID=60、行为ID=82、行为ID=
134、行为ID=17、行为ID=58、行为ID=15和行为ID=16所对应行为的执行时长分别为t″
1、t″2……t″8,若t″1<t″2<......<t″8时,则可以按照执行时长从小到大进行排列,然后将排列后的行为标识组合成第二行为序列(20,60,82,134,17,58,15,16)。
[0134] S510,从第二行为序列中选取行为标识片段,并将选取的行为标识片段确定为行为特征码。
[0135] 在一个实施例中,S510具体可以包括:终端第二行为序列中按照一定的片段长度和步长将第二行为序列进行切分,每个第二行为序列切分后可以得到多个行为标识片段。终端计算每个行为标识片段的分值,将分值最大的行为标识片段作为对应病毒文件样本的行为特征码。若分值最大的行为标识片段有多个,可以随机选取一个作为行为特征码;或者也可以选取排列在前的行为标识片段作为行为特征码;或者也可以将分值最大的所有行为标识片段都作为行为特征码。
[0136] 上述实施例中,通过模拟器所提供的系统环境运行携带计算机病毒的病毒文件样本,可以很方便地获得关于病毒文件样本的第二行为日志。从第二行为日志提取行为标识进行组合得到第二行为序列,并将从第二行为序列中选取的行为标识片段作为行为特征码,由于该行为特征码是根据携带计算机病毒的病毒文件样本在系统环境中运行所形成的,具有泛化能力,可以匹配出以变形方式存在的计算机病毒,有利于提高病毒检测的准确性。
[0137] 在一个实施例中,如图6所示,S510具体可以包括:
[0138] S602,确定行为标识片段的长度值和划分第二行为序列时逐步移动的步长。
[0139] 其中,行为标识片段的长度值可以大于划分第二行为序列时逐步移动的步长。例如,行为标识片段的长度值X=6,划分第二行为序列时逐步移动的步长L=1。
[0140] S604,在第二行为序列中,按照步长逐步确定划分起点,并依照划分起点逐步划分出具有长度值的多个行为标识片段。
[0141] 在一个实施例中,终端在划分行为标识片段时,以第二行为序列的第一个行为标识为起点,按照确定的长度值划分出一个行为标识片段。然后,终端按照确定的步长进行移动,然后又按照确定的长度值划分出一个行为标识片段,依次类推,将第二行为序列划分出多个行为标识片段。
[0142] 例如,第二行为序列为(20,60,82,134,17,58,15,16),行为标识片段的长度值X=6,划分第二行为序列时逐步移动的步长L=1,则第一次划分所得的行为标识片段为(20,
60,82,134,17,58),第二次划分所得的行为标识片段为(60,82,134,17,58,15),第三次划分所得的行为标识片段为(82,134,17,58,15,16),从而得到三个行为标识片段。
[0143] S606,确定各行为标识片段所对应的第一分值;第一分值用于表示行为标识片段与计算机病毒之间的关联性。
[0144] 其中,第一分值是行为标识片段在病毒文件样本的行为序列中出现的概率与在安全文件样本中出现的概率之间的比值,可以用来衡量行为标识片段与计算机病毒之间的关联性,分值越大表示这种组合的行为标识片段与计算机的关联性强,也即携带有计算机病毒的文件在运行时所得到的行为序列中包含该种行为标识片段的概率较大。同理,分值越小表示这种组合的行为标识片段与计算机的关联性弱,也即携带有计算机病毒的文件在运行时所得到的行为序列中包含该种行为标识片段的概率小。
[0145] S608,将第一分值中最大的分值所对应的行为标识片段确定为行为特征码。
[0146] 其中,最大的分值可以是一个或多个,对应的,第一分值中最大的分值所对应的行为标识片段可以有一个或多个。
[0147] 在一个实施例中,当最大的分值只有一个时,终端直接将第一分值中最大的分值所对应的行为标识片段确定为行为特征码。当最大的分值有多个时,终端可以从最大的分值所对应的行为标识片段中随机选取一个确定为行为特征码,或直接将多个最大的分值所对应的各行为标识片段确定为行为特征码。
[0148] 在一个实施例中,S608具体可以包括:终端将各行为标识片段所对应的第一分值按照分值大小进行降序排列;当排列后的各第一分值中最大的分值有多个时,则在多个最大的分值中选取排列在前的分值所对应的行为标识片段确定为行为特征码;或者,将多个最大的分值所对应的各行为标识片段确定为行为特征码。
[0149] 上述实施例中,由于行为标识片段的分值可以用来衡量行为标识片段与计算机病毒之间的关联性,将最大的分值所对应的行为标识片段确定为行为特征码,可以提高计算机病毒被检测出来的概率,从而只要是携带有计算机病毒的待检测文件可以有效地被检测出来。
[0150] 在一个实施例中,如图7所示,S606具体可以包括:
[0151] S702,从预设的数据列表中,查找与各行为标识片段中相邻的行为标识相匹配的行为标识组。
[0152] 其中,预设的数据列表为行为标识组的分值统计表,在该数据列表中可以有多个字段,如行为标识ID1、行为标识ID2、病毒概率、安全概率和行为标识组的分值。行为标识组可以是二元组,如ID1和ID2的组合,ID1和ID2是两个相邻行为标识。这里的病毒概率可以是ID1和ID2的组合在病毒文件样本的行为序列中出现的概率,安全概率可以是ID1和ID2的组合在安全文件样本的行为序列中出现的概率。
[0153] 在一个实施例中,从预设的数据列表中,按照行为标识字段查找与各行为标识片段中相邻的行为标识相匹配的行为标识组。
[0154] 例如,行为标识片段中两个相邻的行为标识ID1=1、ID2=2,那么,在预设的数据列表中查找ID1=1、ID2=2的二元组,如表1所示。
[0155] S704,获取行为标识组对应的第二分值;第二分值用于表示行为标识组与计算机病毒之间的关联性。
[0156] 在一个实施例中,行为标识组是将两个行为标识按照排列组合的方式所得到的二元组;该方法还包括:确定行为标识组在各病毒文件样本所对应的行为序列出现的概率,以及在各安全文件样本所对应的行为序列出现的概率;将行为标识组在各病毒文件样本所对应的行为序列出现的概率与行为标识组在各安全文件样本所对应的行为序列出现的概率之间的比值,确定为行为标识组对应的第二分值。
[0157] 其中,行为标识组在各病毒文件样本所对应的行为序列出现的概率,即为病毒概率;行为标识组在各安全文件样本所对应的行为序列出现的概率,即为安全概率,如表1所示。
[0158] 对于行为标识组的分值,假设总共有256种行为,统计行为标识组分值的方式可以是:S704之前,1)准备一批Android病毒文件样本和安全文件样本,分别在Android模拟器所模拟的系统环境中运行,得到Android病毒文件样本的行为序列和安全文件样本的行为序列;2)统计病毒概率和安全概率;对于病毒概率,统计每一个行为标识组在多少个Android病毒文件样本的行为序列中出现了,然后除以Android病毒文件的个数,即可得到病毒概率p(m,n);同理可统计安全概率p'(m,n);3)行为标识组的分值Frac(m,n)=p(m,n)/p'(m,n),即可得到行为标识组的分值。
[0159] S706,分别对各行为标识片段中的行为标识组对应第二分值进行累加,得到累加值。
[0160] 例如,假设某一行为标识片段为(20,60,82,134,17,58),对应的行为标识组(ID1,ID2)的分值分别为:当ID1=1、ID2=1时,分值Frac(1,1)=p(1,1)/p'(1,1);当ID1=1、ID2=2时,分值Frac(1,2)=p(1,2)/p'(1,2);……;当ID1=6、ID2=6时,分值Frac(6,6)=p(6,6)/p'(6,6)。然后对Frac(1,2)、Frac(1,2)、……、Frac(6,6)进行累加,即可得到该行为标识片段的累加值。
[0161] S708,将累加值确定为对应各行为标识片段的第一分值。
[0162] 上述实施例中,通过对各行为标识片段中的行为标识组对应第二分值进行累加,得到各行为标识片段的第一分值,由于行为标识片段的第一分值可以用来衡量行为标识片段与计算机病毒之间的关联性,因此可以将最大的分值所对应的行为标识片段确定为行为特征码,以便提高计算机病毒被检测出来的概率。
[0163] 作为一个示例,如图8所示,对于待检测Android文件的计算机病毒检测,可以包括以下内容:
[0164] (一)取一批Android病毒文件样本和安全文件样本,统计得到行为标识二元组的分值,其中二元组是指两相邻行为标识ID1和ID2的组合。
[0165] 假设总共有256种行为,统计二元组分值的方式可以是:1)准备一批Android病毒文件样本和安全文件样本,分别在Android模拟器所模拟的系统环境中运行,得到Android病毒文件样本的行为序列和安全文件样本的行为序列;2)统计二元组在Android病毒文件样本的行为序列中出现的概率(即病毒概率)和在安全文件样本的行为序列中出现的概率(即安全概率);对于病毒概率,统计每一个二元组在多少个Android病毒文件样本的行为序列中出现了,然后除以Android病毒文件的个数,即可得到病毒概率p(m,n);同理可统计安全概率p'(m,n);3)二元组的分值Frac(m,n)=p(m,n)/p'(m,n),如表1所示。
[0166] (二)对每一个Android病毒文件样本,当该Android病毒文件样本在Android模拟器所模拟的系统环境中运行后得到对应的行为序列时,提取行为特征码,将所有Android病毒文件样本的行为特征码进行保存,得到病毒库。其中,对于提取到行为特征码的方式,具体可以是:
[0167] S21,取一个Android病毒文件样本,在在Android模拟器所模拟的系统环境中运行后得到对应的行为序列,假设该行为序列为(20,60,82,134,17,58,15,16)。
[0168] S22,设定每个行为标识片段的长度X=6,划分行为序列时逐步移动的步长L=1。
[0169] S23,按照行为标识片段的长度X=6、逐步移动的步长L=1,将行为序列(20,60,82,134,17,58,15,16)划分为多个行为标识片段,多个行为标识片段为:(20,60,82,134,
17,58);(60,82,134,17,58,15);(82,134,17,58,15,16);
[0170] S24,计算每一个行为标识片段的分值:对行为标识片段中所有相邻的两个行为标识,在表1中查询与其匹配的二元组的分值,从而得到所有相邻的两个行为标识的分值,然后进行累加求和,得到的累加值即为行为标识片段的分值。
[0171] S25,将所有行为标识片段的分值进行排序,取分值最大的行为标识片段记为该Android病毒文件样本的行为特征码。其中,若存在多个行为标识片段所对应的分值相同、且最大,则在并列最大的多个行为标识片段中选取排列在第一个最大分值所对应的片段。
[0172] 例如,假设上例中第三个行为标识片段(82,134,17,58,15,16)分值最大,则取该行为标识片段为行为特征码。
[0173] S26,对所有Android病毒文件样本提取行为特征码,得到对应的病毒库。
[0174] 例如,得到的病毒库为:{(82,134,17,58,15,16);(8,12,144,127,8,152)}。
[0175] (三)获取待检测Android文件,将待检测Android文件在Android模拟器所模拟的系统环境中运行,得到对应的行为序列。
[0176] 例如,对于某待检测Android文件,假设该某待检测Android文件的行为序列为(18,58,82,134,17,58,15,16,8,12,144,58,82,134,17,58,15,144,127,8)。
[0177] (四)遍历病毒库,查询从病毒库中获取的行为特征码是否在待检测Android文件的行为序列中,查询的方式如下所述:
[0178] S41,获取病毒库的第一个行为特征码;
[0179] S42,查询所选取的行为特征码是否在待检测Android文件的行为序列中出现;若出现,则表示命中病毒库;若未出现,则执行S43。
[0180] S43,在病毒库中重新获取一条行为特征码,若病毒库中存在未获取的行为特征码,则在获取后执行S42;若不存在,则表示未命中病毒库。
[0181] 例如,根据(三)中的内容可得,待检测Android文件的行为序列为(18,58,82,134,17,58,15,16,8,12,144,58,82,134,17,58,15,144,127,8),病毒库中的第一个行为特征码(82,134,17,58,15,16)存在于待检测Android文件的行为序列中,即命中病毒库。
[0182] (五)若命中病毒库,则判定待检测Android文件携带有计算机病毒;若否,则无法判定。
[0183] 图2-7为一个实施例中计算机病毒的检测方法的流程示意图。应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0184] 如图9所示,在一个实施例中,提供了一种计算机病毒的检测装置,该计算机病毒的检测装置具体包括:待检测文件获取模块902、行为序列生成模块904、特征码获取模块906和病毒确定模块908;其中:
[0185] 待检测文件获取模块902,用于获取待检测文件;
[0186] 行为序列生成模块904,用于将待检测文件运行于模拟器所提供的系统环境中,生成由行为标识组成的第一行为序列;行为标识用于表示待检测文件在运行时所执行的行为;
[0187] 特征码获取模块906,用于从病毒库获取行为特征码;行为特征码是由行为标识样本构成,行为标识样本是携带计算机病毒的病毒文件样本在系统环境中运行生成;
[0188] 病毒确定模块908,用于当所选取的行为特征码与生成的第一行为序列相匹配时,则确定待检测文件携带计算机病毒。
[0189] 在一个实施例中,病毒确定模块908还用于:确定与所所选取的行为特征码对应的目标病毒类型;在第一行为序列中查找与所选取的行为特征码匹配的行为标识片段;当查找到匹配的行为标识片段时,则确定所选取的行为特征码与生成的第一行为序列相匹配;确定待检测文件携带有目标病毒类型的计算机病毒。
[0190] 上述实施例中,将待检测文件运行于模拟器所提供的系统环境中,可以很方便地获得用于表示待检测文件在运行时所执行行为的行为序列。由于病毒库中的行为特征码是根据携带计算机病毒的病毒文件样本在系统环境中运行所形成的,具有泛化能力,因此只要待检测文件携带有计算机病毒,就可以依据从病毒库中的行为特征码检测出待检测文件携带有计算机病毒,使得以变形方式隐藏在文件中的恶意代码能够有效地被检测出来,提高了病毒检测的准确性。
[0191] 在一个实施例中,行为序列生成模块904还用于:通过模拟器所提供的系统环境运行待检测文件;获取待检测文件在系统环境中运行时所产生的第一行为日志;从第一行为日志提取待检测文件在运行时所执行行为的行为标识;将提取的行为标识进行组合得到第一行为序列。
[0192] 在一个实施例中,行为序列生成模块904还用于:行为序列生成模块还用于:从第一行为日志中获取待检测文件在运行时所执行行为的触发时间,以及行为在执行完成时的结束时间;按照触发时间、或结束时间、或由触发时间和结束时间所得的执行时长,对提取的行为标识进行组合得到第一行为序列。
[0193] 上述实施例中,将待检测文件运行于模拟器所提供的系统环境中,可以很方便地获得待检测文件在运行时的行为日志。从行为日志中提取行为标识,按照行为的触发时间、或结束时间、或执行时长对提取出来的行为标识进行组合,得到用于检测待检测文件是否携带计算机病毒的行为序列,由于所得到的行为序列是根据待检测文件在系统环境中运行所形成的,具有泛化能力,因此只要待检测文件携带有计算机病毒就可以被检测出来,提高了病毒检测的准确性。
[0194] 在一个实施例中,如图10所示,该装置还包括:病毒文件样本获取模块910、行为特征码生成模块912和特征码保存模块914;其中:
[0195] 病毒文件样本获取模块910,用于获取携带计算机病毒的病毒文件样本;
[0196] 行为特征码生成模块912,用于将携带计算机病毒的病毒文件样本运行于由模拟器所提供的系统环境中,生成由行为标识样本组成的行为特征码;
[0197] 特征码保存模块914,用于将行为特征码作为用于检测计算机病毒的标签保存于病毒库中。
[0198] 上述实施例中,由于病毒库中的行为特征码是根据携带计算机病毒的病毒文件样本在系统环境中运行所形成的,具有泛化能力,因此将行为特征码作为用于检测计算机病毒的标签保存于病毒库中,只要待检测文件携带有计算机病毒,就可以依据从病毒库中的行为特征码检测出待检测文件携带有计算机病毒,使得以变形方式隐藏在文件中的恶意代码能够有效地被检测出来,有利于提高病毒检测的准确性。
[0199] 在一个实施例中,行为特征码生成模块912还用于:通过模拟器所提供的系统环境运行携带计算机病毒的病毒文件样本;获取病毒文件样本在系统环境中运行时所产生的第二行为日志;从第二行为日志提取病毒文件样本在运行时所执行行为的行为标识;将提取的行为标识进行组合得到第二行为序列;从第二行为序列中选取行为标识片段,并将选取的行为标识片段确定为行为特征码。
[0200] 上述实施例中,通过模拟器所提供的系统环境运行携带计算机病毒的病毒文件样本,可以很方便地获得关于病毒文件样本的第二行为日志。从第二行为日志提取行为标识进行组合得到第二行为序列,并将从第二行为序列中选取的行为标识片段作为行为特征码,由于该行为特征码是根据携带计算机病毒的病毒文件样本在系统环境中运行所形成的,具有泛化能力,可以匹配出以变形方式存在的计算机病毒,有利于提高病毒检测的准确性。
[0201] 在一个实施例中,行为特征码生成模块912还用于:确定行为标识片段的长度值和划分第二行为序列时逐步移动的步长;在第二行为序列中,按照步长逐步确定划分起点,并依照划分起点逐步划分出具有长度值的多个行为标识片段;确定各行为标识片段所对应的第一分值;第一分值用于表示行为标识片段与计算机病毒之间的关联性;将第一分值中最大的分值所对应的行为标识片段确定为行为特征码。
[0202] 在一个实施例中,行为特征码生成模块912还用于:将各行为标识片段所对应的第一分值按照分值大小进行降序排列;当排列后的各第一分值中最大的分值有多个时,则在多个最大的分值中选取排列在前的分值所对应的行为标识片段确定为行为特征码;或者,将多个最大的分值所对应的各行为标识片段确定为行为特征码。
[0203] 上述实施例中,由于行为标识片段的分值可以用来衡量行为标识片段与计算机病毒之间的关联性,将最大的分值所对应的行为标识片段确定为行为特征码,可以提高计算机病毒被检测出来的概率,从而只要是携带有计算机病毒的待检测文件可以有效地被检测出来。
[0204] 在一个实施例中,行为特征码生成模块912还用于:从预设的数据列表中,查找与各行为标识片段中相邻的行为标识相匹配的行为标识组;获取行为标识组对应的第二分值;第二分值用于表示行为标识组与计算机病毒之间的关联性;分别对各行为标识片段中的行为标识组对应第二分值进行累加,得到累加值;将累加值确定为对应各行为标识片段的第一分值。
[0205] 在一个实施例中,行为特征码生成模块912还用于:确定行为标识组在各病毒文件样本所对应的行为序列出现的概率,以及在各安全文件样本所对应的行为序列出现的概率;将行为标识组在各病毒文件样本所对应的行为序列出现的概率与行为标识组在各安全文件样本所对应的行为序列出现的概率之间的比值,确定为行为标识组对应的第二分值。
[0206] 上述实施例中,通过对各行为标识片段中的行为标识组对应第二分值进行累加,得到各行为标识片段的第一分值,由于行为标识片段的第一分值可以用来衡量行为标识片段与计算机病毒之间的关联性,因此可以将最大的分值所对应的行为标识片段确定为行为特征码,以便提高计算机病毒被检测出来的概率。
[0207] 作为一个示例,如图11所示,计算机病毒的检测方法中可以使用行为序列提取模块1102、病毒库生成模块1104和检测流程控制模块1106来完成计算机病毒的检测;其中,上述的行为序列生成模块904和行为特征码生成模块912共同组成行为序列提取模块1102;上述的病毒文件样本获取模块910和特征码保存模块914共同组成病毒库生成模块1104;上述的待检测文件获取模块902、特征码获取模块906和病毒确定模块908共同组成检测流程控制模块1106。
[0208] 如图11所示,行为特征码提取模块1102是一个独立过程,被病毒库生成模块1104和检测流程控制模块1106调用;病毒库生成模块1104选取一批Android病毒文件样本和安全文件样本,得到行为标识在Android病毒文件样本的行为序列中出现的概率,然后按照上述实施例的方法对Android病毒文件样本提取的行为特征进行保存得到病毒库。检测流程控制模块1106则调用病毒库生成模块1104得到的病毒库,然后取待检测Android文件的行为序列去检索,查询是否命中了病毒库,若命中了则判定待检测Android文件携带有计算机病毒。
[0209] 作为另一个示例,对于行为特征码提取模块1102,其工作流程如图12所示,具体的内容如下所述:
[0210] Android模拟器是一种用于模拟操作系统的应用,假设定义256种行为,如打电话、发短信、广告弹窗、启动摄像头、开启GPS、开启DBS、开启Wi-Fi以及获取位置信息等行为等,然后在模拟的操作系统中各个功能执行处设置日志记录功能,当待检测Android文件在模拟器中运行时,必定会触发某种功能行为的执行,此时输出一条行为日志,该行为日志可包含至少两个字段:行为ID和触发时间;此外,还可以包括结束时间。
[0211] 于是,待检测Android文件在Android模拟器中运行一段时间后的行为日志如下:
[0212] 行为ID=19,触发时间t1,结束时间t'1;
[0213] 行为ID=58,触发时间t2,结束时间t'2;
[0214] 行为ID=82,触发时间t3,结束时间t'3;
[0215] 行为ID=134,触发时间t4,结束时间t'4;
[0216] 行为ID=17,触发时间t5,结束时间t'5;
[0217] 行为ID=58,触发时间t6,结束时间t'6;
[0218] 行为ID=15,触发时间t7,结束时间t'7;
[0219] 行为ID=16,触发时间t8,结束时间t'8。
[0220] 则待检测Android文件的行为序列为(19,58,82,134,17,58,15,16)。
[0221] 作为另一个示例,对于病毒库生成模块1104,其工作流程如图13和图14所示。其中,如图13所示,病毒库生成模块1104的工作流程如下所述:
[0222] 取一批Android病毒文件样本和安全文件样本,统计得到行为标识二元组的分值,其中二元组是指两相邻行为标识ID1和ID2的组合。
[0223] 假设总共有256种行为,统计二元组分值的方式可以是:1)准备一批Android病毒文件样本和安全文件样本,分别在Android模拟器所模拟的系统环境中运行,得到Android病毒文件样本的行为序列和安全文件样本的行为序列;2)统计二元组在Android病毒文件样本的行为序列中出现的概率(即病毒概率)和在安全文件样本的行为序列中出现的概率(即安全概率);对于病毒概率,统计每一个二元组在多少个Android病毒文件样本的行为序列中出现了,然后除以Android病毒文件的个数,即可得到病毒概率p(m,n);同理可统计安全概率p'(m,n);3)二元组的分值Frac(m,n)=p(m,n)/p'(m,n),如表1所示。
[0224] 如图14所示,病毒库生成模块1104的工作流程如下所述:
[0225] 对每一个Android病毒文件样本,当该Android病毒文件样本在Android模拟器所模拟的系统环境中运行后得到对应的行为序列时,提取行为特征码,将所有Android病毒文件样本的行为特征码进行保存,得到病毒库。其中,对于提取到行为特征码的方式,具体可以是:
[0226] S141,取一个Android病毒文件样本,在在Android模拟器所模拟的系统环境中运行后得到对应的行为序列,假设该行为序列为(20,60,82,134,17,58,15,16)。
[0227] S142,设定每个行为标识片段的长度X=6,划分行为序列时逐步移动的步长L=1。
[0228] S143,按照行为标识片段的长度X=6、逐步移动的步长L=1,将行为序列(20,60,82,134,17,58,15,16)划分为多个行为标识片段,多个行为标识片段为:(20,60,82,134,
17,58);(60,82,134,17,58,15);(82,134,17,58,15,16);
[0229] S144,计算每一个行为标识片段的分值:对行为标识片段中所有相邻的两个行为标识,在表1中查询与其匹配的二元组的分值,从而得到所有相邻的两个行为标识的分值,然后进行累加求和,得到的累加值即为行为标识片段的分值。
[0230] S145,将所有行为标识片段的分值进行排序,取分值最大的行为标识片段记为该Android病毒文件样本的行为特征码。其中,若存在多个行为标识片段所对应的分值相同、且最大,则在并列最大的多个行为标识片段中选取排列在第一个最大分值所对应的片段。
[0231] 例如,假设上例中第三个行为标识片段(82,134,17,58,15,16)分值最大,则取该行为标识片段为行为特征码。
[0232] S146,对所有Android病毒文件样本提取行为特征码,得到对应的病毒库。
[0233] 作为另一个示例,对于检测流程控制模块1106,其工作流程如图15所示,具体的内容如下所述:
[0234] 检测流程控制模块1106的输入是一个安全类型未知的待检测Android文件,调用行为序列提取模块1102得到该待检测Android文件的行为序列。然后遍历行为特征码病毒库,检测每一个特征码是否存在与该待检测Android文件的行为序列中,如果有一个存在则命中病毒库,则判断待检测Android文件携带有计算机病毒;否则无法判定。
[0235] 图16示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图16所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现计算机病毒的检测方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行计算机病毒的检测方法。
计算机设备的显示屏可以是液晶显示屏或者电子显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0236] 本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0237] 在一个实施例中,本申请提供的计算机病毒的检测装置可以实现为一种计算机程序的形式,计算机程序可在如图16所示的计算机设备上运行。计算机设备的存储器中可存储组成该计算机病毒的检测装置的各个程序模块,比如,图9所示的待检测文件获取模块902、行为序列生成模块904、特征码获取模块906和病毒确定模块908。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的计算机病毒的检测方法中的步骤。
[0238] 例如,图16所示的计算机设备可以通过如图Z所示的计算机病毒的检测装置中的待检测文件获取模块902执行S202。计算机设备可通过行为序列生成模块904执行S204。计算机设备可通过特征码获取模块906执行S206。计算机设备可通过病毒确定模块908执行S208。
[0239] 在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述计算机病毒的检测方法的步骤。此处计算机病毒的检测方法的步骤可以是上述各个实施例的计算机病毒的检测方法中的步骤。
[0240] 在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述计算机病毒的检测方法的步骤。此处计算机病毒的检测方法的步骤可以是上述各个实施例的计算机病毒的检测方法中的步骤。
[0241] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0242] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0243] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈