一种相似性查询方法、数据库更新方法、装置及系统与流程

文档序号:32100384发布日期:2022-11-09 00:42阅读:73来源:国知局
一种相似性查询方法、数据库更新方法、装置及系统与流程

1.本技术涉及信息安全技术领域,尤其涉及一种相似性查询方法、数据库更新方法、装置及系统。


背景技术:

2.随着互联网技术的蓬勃发展,大量未知源头的文件出现在网络上,这其中既有来自于开源社区的正常文件,也有来自于恶意攻击者的恶意文件。通过对未知源头的文件进行溯源分析,能够获知文件的类型、目的、危险性等信息,从而确定文件是否为恶意文件,还能了解恶意文件的攻击过程和攻击手段,而且根据追溯到的相关信息能够定位攻击来源或者攻击者,具有遏制黑客攻击、完善网络安全保障体系的重要作用和价值。
3.目前,通常使用人工分析的方法对文件进行溯源分析,在这个过程中会人工比对两个文件中代码的结构、逻辑、功能等要素,以此来确定两个样本是否属于同一家族或变种。但是,这种溯源方法的正确性不高,而且效率低下。


技术实现要素:

4.本技术提供了一种相似性查询方法、数据库更新方法、装置及系统,针对两个预设粒度对待检测文件进行特征提取和相似性查询,能够更加准确的检出相似样本文件,用以提高溯源分析的准确率。
5.本技术的技术方案是这样实现的:
6.第一方面,本技术实施例提供了一种相似性查询方法,该方法包括:
7.根据第一预设粒度对待检测文件进行特征提取,得到第一目标特征;
8.将所述第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件;
9.在所述第一特征数据库中不存在所述待检测文件的相似样本文件的情况下,根据第二预设粒度对所述待检测文件进行特征提取,得到第二目标特征;其中,所述第二预设粒度与所述第一预设粒度不同;
10.将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件。
11.第二方面,本技术实施例提供了一种数据库更新方法,所述数据库包括第一特征数据库及第二特征数据库,所述第一特征数据库存储有多个第一样本文件各自的代码特征和所述多个第一样本文件各自的代码家族信息,所述第二特征数据库存储有多个第二样本文件各自的内容特征;该方法包括:
12.获取待检测文件,根据代码粒度对所述待检测文件进行特征提取,得到第一目标特征,根据内容粒度对所述待检测文件进行特征提取,得到第二目标特征;
13.在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第一目标特征和所述相
似样本文件的代码特征存储进入所述第一特征数据库,且确定所述待检测文件所属的代码家族,以在所述第一特征数据库中指示所述第一目标特征和所述相似样本文件的代码特征;
14.在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库不存在所述待检测文件的相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库。
15.第三方面,本技术实施例提供了一种相似性查询装置,该相似性查询装置包括第一提取单元、第一查询单元、第二提取单元和第二查询单元,其中,
16.第一提取单元,配置为根据第一预设粒度对待检测文件进行特征提取,得到第一目标特征;
17.第一查询单元,配置为将所述第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件;
18.第二提取单元,配置为在所述第一特征数据库中不存在所述待检测文件的相似样本文件的情况下,根据第二预设粒度对所述待检测文件进行特征提取,得到第二目标特征;其中,所述第二预设粒度与所述第一预设粒度不同;
19.第二查询单元,配置为在将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件。
20.第四方面,本技术实施例提供了一种数据库更新装置,所述数据库包括第一特征数据库及第二特征数据库,所述第一特征数据库存储有多个第一样本文件各自的代码特征和所述多个第一样本文件各自的代码家族信息,所述第二特征数据库存储有多个第二样本文件各自的内容特征;
21.该数据库更新装置包括获取单元和更新单元;其中,
22.获取单元,配置为获取待检测文件,根据代码粒度对所述待检测文件进行特征提取,得到第一目标特征,根据内容粒度对所述待检测文件进行特征提取,得到第二目标特征;
23.更新单元,配置为在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第一目标特征和所述相似样本文件的代码特征共同存储进入所述第一特征数据库,且确定所述待检测文件所属的代码家族,以在所述第一特征数据库中指示所述第一目标特征和所述相似样本文件的代码特征;
24.更新单元,还配置为在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库不存在所述待检测文件的相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库。
25.第五方面,本技术实施例提供了一种相似性查询系统,该相似性查询系统至少包括如第三方面所述的相似性查询装置。
26.第六方面,本技术实施例提供了一种数据库更新系统,该数据库更新系统至少包括如第四方面所述的数据库更新装置。
27.本技术实施例提供了一种相似性查询方法、数据库更新方法、装置及系统,相似性查询方法包括:根据第一预设粒度对待检测文件进行特征提取,得到第一目标特征;将所述
第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件;在所述第一特征数据库中不存在所述待检测文件的相似样本文件的情况下,根据第二预设粒度对所述待检测文件进行特征提取,得到第二目标特征;其中,所述第二预设粒度与所述第一预设粒度不同;将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件;数据库更新方法包括:获取待检测文件,根据代码粒度对所述待检测文件进行特征提取,得到第一目标特征,根据内容粒度对所述待检测文件进行特征提取,得到第二目标特征;在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第一目标特征和所述相似样本文件的代码特征存储进入所述第一特征数据库,且确定所述待检测文件所属的代码家族,以在所述第一特征数据库中指示所述第一目标特征和所述相似样本文件的代码特征;在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库不存在所述待检测文件的相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库。这样,针对两个预设粒度分别建立两个特征数据库,然后依次对待检测文件进行特征提取和相似性查询,能够更加准确地检出待检测文件的相似样本文件,用以提高溯源分析的准确率;另外,利用待检测文件的第一目标特征和第二目标特征进行数据库更新,使得第一特征数据库和第二特征数据库的特征数量不断增加,进而第一数据库和第二特征数据库能够提供更好地溯源分析能力。
附图说明
28.图1为本技术实施例提供的一种相似性查询方法的流程示意图;
29.图2为本技术实施例提供的另一种相似性查询方法的流程示意图;
30.图3为本技术实施例提供的一种数据库更新方法的流程示意图;
31.图4为本技术实施例提供的又一种相似性查询方法的流程示意图;
32.图5为本技术实施例提供的再一种相似性查询方法的流程示意图;
33.图6为本技术实施例提供的一种相似性查询方法的工作过程示意图;
34.图7为本技术实施例提供的一种数据库更新方法的工作过程示意图;
35.图8为本技术实施例提供的一种相似性查询装置的组成结构示意图;
36.图9为本技术实施例提供的一种相似性查询装置的硬件结构示意图;
37.图10为本技术实施例提供的一种数据库更新装置的组成结构示意图;
38.图11本技术实施例提供的一种数据库更新装置的硬件结构示意图。
具体实施方式
39.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
40.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
41.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
42.需要指出,本技术实施例所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
43.对本技术实施例中涉及到的专业名词说明如下:
44.(1)jaccard相似系数(jaccard similarity coefficient):也称为jaccard系数,用于比较有限样本集之间的相似性与差异性。不同之间的jaccard系数越大,样本相似度越高。给定两个集合a、b,jaccard系数定义为:a与b交集的大小与a与b并集的大小的比值,即jaccard系数的计算方法如式(1)或者式(2)所示。
[0045][0046][0047]
其中,j(a,b)表示为集合a与集合b的jaccard系数。
[0048]
(2)模糊哈希算法:也称为基于内容分割的分片哈希算法,主要用于文件的相似性比较。模糊哈希算法和哈希算法的不同点在于,哈希算法是将整个文件作为定义域来求算结果,而模糊哈希算法则是先对文件进行分块,计算每一块的哈希值,然后将得到的一系列哈希值利用比较函数与其他哈希值进行比较,来确定相似程度。
[0049]
(3)控制流图(control flow graph,cfg):也称为控制流程图,是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。换句话说,控制流图用图的形式表示一个过程内所有基本块执行的可能流向,也能反映一个过程的实时执行过程。
[0050]
(4)基本块:是指代码中按照顺序执行的语句序列,其中只有一个入口和一个出口,入口就是其中的第一个语句,出口就是其中的最后一个语句。对一个基本块来说,执行时只从其入口进入,从其出口退出。
[0051]
随着互联网技术的蓬勃发展,大量未知源头的软件出现在网络上,这其中既有来自于开源社区的正常文件,也有来自于恶意攻击者的恶意文件。对未知文件进行溯源分析,能够获知文件所属的类别、家族等信息,从而确定文件是否为恶意文件,还能了解恶意文件的攻击对象、攻击过程和攻击手段,而且根据追溯到的相关信息能够定位攻击来源或者攻击者,具有遏制黑客攻击、完善网络安全保障体系的重要作用和价值。
[0052]
目前,通常使用人工分析的方法对一个样本进行溯源,在这个过程中会人工比对两个样本中代码的结构、逻辑、功能等要素,以此来确定两个样本是否属于同一家族或变种。在相关技术中,在进行溯源分析时,通常使用规则匹配的方式。病毒分析师会首先会提取家族的恶意代码作为规则,后续使用这些规则进行家族判定。
[0053]
然而,无论是样本相似性比较还是提取规则,均需要分析人员具有一定的病毒分
析能力,且分析样本耗时耗力,难以对大批量样本进行溯源。
[0054]
本技术实施例提供了一种相似性查询方法,该方法的基本思想是:根据第一预设粒度对待检测文件进行特征提取,得到第一目标特征;将所述第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件;在所述第一特征数据库中不存在所述待检测文件的相似样本文件的情况下,根据第二预设粒度对所述待检测文件进行特征提取,得到第二目标特征;其中,所述第二预设粒度与所述第一预设粒度不同;将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件;这样,针对两个预设粒度分别建立两个特征数据库,然后依次对待检测文件进行特征提取和相似性查询,能够更加准确的检出待检测文件的相似样本文件,用以提高溯源分析的准确率。
[0055]
本技术实施例还提供了一种数据库更新方法,该方法的基本思想是:获取待检测文件,根据代码粒度对所述待检测文件进行特征提取,得到第一目标特征,根据内容粒度对所述待检测文件进行特征提取,得到第二目标特征;在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第一目标特征和所述相似样本文件的代码特征存储进入所述第一特征数据库,且确定所述待检测文件所属的代码家族,以在所述第一特征数据库中指示所述第一目标特征和所述相似样本文件的代码特征;在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库不存在所述待检测文件的相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库。这样,利用待检测文件的第一目标特征和第二目标特征进行数据库更新,使得第一特征数据库和第二特征数据库的特征数量不断增加,进而第一数据库和第二特征数据库能够提供更好地溯源分析能力。
[0056]
下面将结合附图对本技术各实施例进行详细说明。
[0057]
在本技术的一实施例中,参见图1,其示出了本技术实施例提供的一种相似性查询方法的流程示意图。如图1所示,该方法可以包括:
[0058]
s101:根据第一预设粒度对待检测文件进行特征提取,得到第一目标特征。
[0059]
需要说明的是,本技术实施例提供了一种相似性查询方法,目的是快速查找待检测文件的相似样本文件,从而完成对待检测文件的溯源分析,以使得用户能够根据所查找到的相似样本文件初步了解待检测文件,及时掌握待检测文件所属的家族和其他信息,最终提高了网络安全性,本技术所述家族是由行为相似的一组文件构成,与后续的所述的代码家族为同一含义。
[0060]
因此,针对待检测文件,需要根据第一预设粒度对其进行特征提取,得到第一目标特征。在这里,待检测文件可以包括多种文件类型,例如待检测文件可以是可执行文件(后缀名为exe)、脚本文件(后缀名为txt)、命令文件(后缀名为com)等。
[0061]
s102:将所述第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件。
[0062]
需要说明的是,将第一目标特征在第一特征数据库进行相似性查询,从而确定第一特征数据库中是否存在待检测文件的相似样本文件。在这里,第一特征数据库存储有多个第一样本文件分别在第一预设粒度上的代码特征。
[0063]
为便于溯源,所述第一特征数据库中存储有相应的用于溯源的信息(比如所属家
族),以便于在确定出相似样本文本之后,可进一步将该相似样本文件所属的家族确定为待检测文件的家族,以对该待检测文件进行追踪溯源。
[0064]
s103:在所述第一特征数据库中不存在所述待检测文件的相似样本文件的情况下,根据第二预设粒度对所述待检测文件进行特征提取,得到第二目标特征。
[0065]
需要说明的是,在相关技术中,在对待检测文件进行溯源分析时,一般仅采用单一特征,然而这种情况下检出率并不理想。因此,在本技术实施例中,如果无法利用第一目标特征在第一特征数据库中检出待检测文件的相似样本文件,则还需要根据第二预设粒度对待检测文件进行特征提取,从而得到待检测文件的第二目标特征。在这里,所述第二预设粒度与所述第一预设粒度不同。
[0066]
s104:将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件。
[0067]
需要说明的是,将第二目标特征在第二数据库中进行相似性查询,从而确定第二特征数据库中是否存在所述待检测文件的相似样本文件。在这里,第二数据库中存储有多个第二样本文件相对于第二预设粒度的内容特征。
[0068]
为便于溯源,所述第二特征数据库中存储有相应的用于溯源的信息(比如所属家族),以便于在确定出相似样本文本之后,可进一步将该相似样本文件所属的家族确定为待检测文件的家族,以对该待检测文件进行追踪溯源。
[0069]
进一步地,在一些实施中,所述第一预设粒度为代码粒度;所述根据第一预设粒度对待检测文件进行特征提取,得到第一目标特征,可以包括:
[0070]
对所述待检测文件进行反汇编处理,得到所述待检测文件对应的待检测代码;对所述待检测代码进行特征提取,得到第一目标特征;
[0071]
和/或,
[0072]
所述第二预设粒度为文件内容粒度;所述根据第二预设粒度对所述待检测文件进行特征提取,得到第二目标特征,可以包括:
[0073]
获取所述待检测文件的内容数据;
[0074]
根据所述待检测文件的内容数据,得到所述第二目标特征。
[0075]
上述内容数据通常为二进制文件,这里是对二进制文件计算第二目标特征,比如传统哈希、模糊哈希等。
[0076]
需要说明的是,第一预设粒度和第二预设粒度可以根据实际应用环境进行组合确定,例如第一预设粒度为代码粒度,第二预设粒度为文本内容粒度;或者第一预设粒度为代码函数粒度,第二预设粒度为代码控制流粒度;或者第一预设粒度为代码函数粒度,第二预设粒度为文本内容粒度;或者第一预设粒度为文本内容粒度,第二预设粒度为代码控制流粒度等等。
[0077]
为了方便说明,以第一预设粒度为代码粒度、第二预设粒度为文本内容粒度为例进行后续解释,但这并不构成本技术实施例的具体限定。
[0078]
由于第一预设粒度是指代码粒度,所以需要对待检测文件进行反汇编处理,从而得到待检测代码,进一步地利用待检测代码进行特征提取,就得到了第一目标特征。同时第二预设粒度是指内容粒度,所以需要获取待检测文件的内容数据,进而根据内容数据得到第二目标特征。
[0079]
在相关技术中,一般仅根据单一粒度(通常为内容粒度)对待检测文件和样本文件进行比对,在这种情况下,由于文件内容的任何细节(例如地址数据不同、格式不同、自定义名称不同)的改变均会造成内容差异,若作为比对范本的内容特征较为精确,则检出率过低;若作为比对范本的内容特征较为粗糙,则误检率过高,很难选择合适的范本特征。
[0080]
本技术实施例引入了代码粒度,相比于文本内容粒度,代码粒度的特征能够更为准确的指示不同类型文件。换句话说,对于同一类型的不同文件,即便其文本内容有所差异,但为了达到类似的目的,其使用的函数、控制流等必定存在一定的相似性,因此从代码粒度入手能够提高检出率以及正确性。
[0081]
另外,本技术实施例从第一预设粒度和第二预设粒度两个层次对待检测文件和样本文件进行比对,能够根据每个层次的特点确定每个层次的样本特征,而且不同层次可以相互配合,构成立体化、全面性的比对体系,从而提高检测效果。
[0082]
本技术实施例提供了一种相似性查询方法,通过根据第一预设粒度对待检测文件进行特征提取,得到第一目标特征;将所述第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件;在所述第一特征数据库中不存在所述待检测文件的相似样本文件的情况下,根据第二预设粒度对所述待检测文件进行特征提取,得到第二目标特征;其中,所述第二预设粒度与所述第一预设粒度不同;将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件。这样,针对两个预设粒度分别建立两个特征数据库,然后依次对待检测文件进行特征提取和相似性查询,能够更加准确的检出待检测文件的相似样本文件,提高溯源分析的准确性;另外,在检出待检测文件的相似样本文件之后,能够获取待检测文件所属的代码家族、恶意代码等信息,能够更加全面地对待检测文件进行恶意举证。
[0083]
在本技术实施例中,以第一预设粒度为代码粒度,第二预设粒度为例,对相似性查询方法进行具体说明。参见图2,其示出了本技术实施例提供的一种相似性查询方法的流程示意图。如图2所示,该方法可以包括:
[0084]
s201:对所述待检测文件进行反汇编处理,得到所述待检测文件对应的待检测代码。
[0085]
需要说明的是,对于相同类别的多个文件来说,其汇编代码具有一定的相似性,因此,对待检测文件进行反汇编处理,得到待检测文件对应的待检测代码。
[0086]
在这里,反汇编处理(disassembly)是指将待检测代码转为汇编代码的过程,即将机器语言转换为汇编语言。也就是说,通过反汇编处理所得到的待检测代码是由汇编语言撰写的。在这里,汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。
[0087]
s202:对所述待检测代码进行特征提取,得到第一目标特征。
[0088]
需要说明的是,在得到待检测代码后,需要针对待检测代码进行特征提取,从而得到第一目标特征。
[0089]
进一步地,在一些实施例中,所述对所述待检测代码进行特征提取,得到第一目标
特征,可以包括:
[0090]
基于预设细分粒度对所述待检测代码进行分割操作,得到至少一个待检测对象;其中,所述预设细分粒度至少包括以下的其中一项:函数、控制流、基本块;
[0091]
对所述至少一个待检测对象分别进行哈希计算,得到目标代码哈希值集合;
[0092]
将所述目标代码哈希值集合确定为所述第一目标特征。
[0093]
需要说明的是,对于待检测代码来说,其中仍然有过多的细节(例如可替换地址、格式类辅助语言等)。在进行相似性比对时,为了避免细节的不同导致本属于一类的文件无法检出,所以需要根据预设细分粒度对待检测代码进行分割操作,获得至少一个待检测对象。也就是说,预设细分粒度是在第一预设粒度上的进一步细分。例如,当第一预设粒度为代码粒度时,预设细分粒度可以是函数、基本块、控制流等。
[0094]
在得到至少一个待检测对象以后,计算每个待检测对象各自的哈希值,得到目标代码哈希值集合,目标代码哈希值集合即为第一目标特征。在这里,哈希计算可以采用多种已有哈希算法,例如模糊哈希算法、信息摘要算法(message-digest algorithm 5,md5)、256位哈希算法(secure hash algorithm256,sha256)等。
[0095]
还需要说明的是,根据前述内容,在第一预设粒度为代码的情况下,预设细分粒度可以至少包括以下的其中一项:函数、控制流、基本块组合、基本块等。以预设细分粒度为函数为例,在获得待检测代码后,对待检测代码进行函数分割,从而获得待检测代码中包括的多个函数(即待检测对象);然后,对这多个函数的内容分别进行哈希计算,所得到的多个哈希值就构成了目标哈希值集合。
[0096]
另外,预设细分粒度可以包括多个粒度的组合。以采用函数、基本块同时作为预设细分粒度为例,需要将待检测代码进行函数分割,得到多个待检测函数,同时需要将待检测代码进行基本块进行分割,得到多个待检测基本块。这样,在比较相似度时,分别针对函数和基本块两个细分粒度进行比较,或者将函数粒度和基本块粒度两个细分粒度进行联合,得到第一预设粒度上的相似性查询结果。
[0097]
这样,通过以上处理,获取了待检测文件的第一目标特征,后续可以利用第一目标特征对待检测文件进行溯源。
[0098]
s203:将所述第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件。
[0099]
需要说明的是,将第一目标特征在第一特征数据库进行相似性查询,从而确定第一特征数据库中是否存在待检测文件的相似样本文件。
[0100]
具体地,第一特征数据库中存储了已知样本文件对应于第一预设粒度的代码特征。因此,在一些实施例中,该方法还可以包括:
[0101]
获取多个第一样本文件;
[0102]
根据第一预设粒度对所述多个第一样本文件分别进行特征提取,得到所述多个第一样本文件各自的代码特征;
[0103]
基于所述多个第一样本文件各自的代码特征,建立所述第一特征数据库。
[0104]
需要说明的是,第一样本文件是指已知的样本文件,也是相似性比对的蓝本。根据第一预设粒度对多个第一样本文件分别进行特征提取,这样就得到了多个第一样本文件各自的代码特征;将所获得的多个第一样本文件各自的代码特征进行存储,也就建立了第一
特征数据库。在这里,第一特征数据库可以为多种类型的数据库,本技术实施例不做限定。
[0105]
还需要说明的是,为了避免直接提取的特征通用性过差,还可以对特征进行泛化处理。因此,在一些实施例中,在所述第一预设粒度为代码粒度的情况下,所述根据所述第一预设粒度对所述多个第一样本文件分别进行特征提取,得到所述多个第一样本文件各自的代码特征,可以包括:
[0106]
对所述第一样本文件进行反汇编处理,得到所述多个第一样本文件各自的代码;
[0107]
基于预设细分粒度对所述多个第一样本文件各自的代码进行分割操作,得到所述多个第一样本文件各自对应的至少一个代码对象;
[0108]
对所述多个第一样本文件各自对应的至少一个代码对象进行指令泛化处理,得到所述多个第一样本文件各自对应的待入库对象;
[0109]
对所述多个第一样本文件各自对应的待入库对象进行哈希计算,得到所述多个第一样本文件各自对应的代码哈希值集合;
[0110]
将所述多个第一样本文件各自对应的代码哈希值集合确定为所述多个第一样本文件各自的代码特征。
[0111]
需要说明的是,以第一预设粒度为代码粒度、预设细分粒度为函数为例,获得代码特征的过程如下:首先,针对多个第一样本文件,通过反汇编处理得到多个样本代码;然后,对每一样本代码进行分割,确定每一个第一样本文件对应的多个函数(相当于代码对象);之后,对多个函数进行指令泛化处理,得到泛化后函数(相当于待入库对象);将每一个第一样本文件所对应的多个泛化后函数分别进行哈希计算,得到每一个第一样本文件对应的代码哈希值集合(相当于代码特征);将多个第一样本文件各自对应的代码哈希值集合进行存储,从而建立第一特征数据库。
[0112]
这样,通过指令泛化处理能够去除一些干扰相似性匹配的特征(例如,同一个函数在不同的二进制中,指令的地址很有可能是会变化的),使得多个第一样本文件各自的代码特征更具有代表性,提高后续使用过程中的检出正确率。
[0113]
还需要说明的是,以第一预设粒度为代码粒度为例,此时第一目标特征为目标代码哈希值集合,第一样本文件的代码特征为代码哈希值集合。也就是说,所述第一特征数据库中存储有多个第一样本文件各自的代码哈希值集合。所述将所述第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件,可以包括:
[0114]
将所述多个第一样本文件各自的代码哈希值集合与所述目标代码哈希值集合进行比较,确定多个代码相似分数;其中,所述多个第一样本文件中每一第一样本文件对应一个代码相似分数;
[0115]
从所述多个代码相似分数中确定最高代码相似分数;
[0116]
在所述最高代码相似分数小于第一预设阈值的情况下,所述第一特征数据库中不存在所述待检测文件的相似样本文件;
[0117]
在所述最高代码相似分数大于或等于第一预设阈值的情况下,确定所述第一特征数据库中存在所述待检测文件的相似样本文件。
[0118]
需要说明的是,通过将待检测文本和多个第一样本文件进行比较,从而确定第一特征数据库中是否存在待检测文件的相似样本文件。判断第一特征数据库中是否存在待检
测文件的相似样本文件的过程如下:
[0119]
首先,将多个第一样本文件各自的代码哈希值集合与目标代码哈希值集合分别进行比较,从而获得多个代码相似分数。在这里,每个代码相似分数代表了待检测文件与其中一个第一样本文件的相似程度,所以每一第一样本文件都对应一个代码相似分数。
[0120]
其次,在多个代码相似分数之中确定出最高代码相似分数,然后将最高代码相似分数与第一预设阈值进行比较。在这里,第一预设阈值可以根据实际应用需求确定,本技术实施例不作具体设定。
[0121]
如果最高代码相似分数小于第一预设阈值,那么说明待检测文件与任意一个第一样本文件都不是很相似,即第一特征数据库中不存在待检测文件的相似样本文件;如果最高代码相似分数等于或大于第一预设阈值,那么说明待检测文件与其中一个第一样本文件(即最高代码相似分数所对应的样本文件)较为相似,即第一特征数据库中存在待检测文件的相似样本文件。
[0122]
这样,通过将待检测文本和多个第一样本文件进行比较,从而确定第一特征数据库中是否存在待检测文件的相似样本文件。
[0123]
进一步地,可以利用jaccard相似系数作为待检测样本和第一样本文件之间的代码相似分数。因此,所在一些实施例中,所述将所述多个第一样本文件各自的代码哈希值集合与所述目标代码哈希值集合进行比较,确定多个代码相似分数,可以包括:
[0124]
确定待计算样本文件和所述待计算样本文件的代码哈希值集合;其中,所述待计算样本文件是所述多个第一样本文件中的任意一个;
[0125]
对所述待计算样本文件的代码哈希值集合和所述目标代码哈希值集合进行交并运算,得到代码哈希值并集和代码哈希值交集;
[0126]
将所述代码哈希值交集中的哈希值数量确定为第一数量,将所述代码哈希值并集中的哈希值数量确定为第二数量;
[0127]
对所述第一数量和所示第二数量进行除法运算,得到所述待计算样本文件的代码相似分数;
[0128]
在确定所述多个第一样本文件各自的代码相似分数后,得到所述多个代码相似分数。
[0129]
需要说明的是,为了方便说明,以待计算样本文件指代任意一个第一样本文件,则待检测文件和待计算样本文件之间的代码相似分数可以通过以下步骤进行计算:
[0130]
首先,对待计算样本文件的代码哈希值集合和目标代码哈希值集合进行交并运算,得到两个集合的交集,即代码哈希值交集;以及得到两个集合的并集,即代码哈希值并集。
[0131]
其次,分别统计代码哈希值交集和代码哈希值并集各自包含的哈希值数量,将代码哈希值交集中的哈希值数量记为第一数量,将代码哈希值并集中的哈希值数量记为第二数量;
[0132]
最后,将第一数量和第二数量之间的比值,确定为待计算样本文件对应的代码相似分数。
[0133]
按照以上流程将待检测文件和多个第一样本文件进行分别比较,就得到了多个代码相似分数。这里,该流程是根据前述的式(1)来计算代码相似分数。
[0134]
另外,在申请实施例中,也可以只确定目标代码哈希值集合和待计算代码哈希值集合的并集,即代码哈希值并集;这时候则是根据前述的式(2)来计算代码相似分数。
[0135]
这样,通过以上流程,能够初步判断第一特征数据库中是否存在待检测文件的相似样本文件;如果存在相似样本文件,则能够通过相似样本文件初步判断待检测文件的文件类型、是否为恶意文件等信息。
[0136]
还需要说明的是,由于第一样本文件都是已知的文件,除了将第一样本文件各自的特征信息进行入库存储,还会将能够收集到的样本文件的其他信息(例如代码家族信息、恶意代码位置)同时进行存储。因此,在所述第一特征数据库中存在所述待检测文件的相似样本文件的情况下,该方法还可以包括:
[0137]
将所述待检测文件的相似样本文件确定为目标样本文件;
[0138]
从所述第一特征数据库中,获取所述目标样本文件的代码家族信息,并根据所述代码家族信息确定所述待检测文件所属的代码家族。
[0139]
需要说明的是,为了方便说明,以下将检测文件的相似样本文件称为目标样本文件。
[0140]
在所述第一特征数据库中存在所述待检测文件的相似样本文件的情况下,由于第一特征数据库中还会存储有每个第一样本文件各自的代码家族信息,因此通过在第一特征数据库中能够确定目标样本文件的代码家族信息,也就获知了待检测文件所属的代码家族。在这里,代码家族是指行为相似的一类代码,如果能够确定出待检测文件所属的代码家族,就可以更加准确的预知待检测文件的行为信息、是否具有攻击性、来源、攻击对象等,从而完成对待检测文件的溯源分析。
[0141]
进一步地,在一些实施例中,在所述第一特征数据库中存在所述待检测文件的相似样本文件的情况下,该方法还可以包括:
[0142]
判断所述第一特征数据库中是否包括所述目标样本文件的恶意代码位置;
[0143]
在判断结果为是的情况下,根据所述恶意代码位置对所述待检测文件进行恶意代码提取,得到目标代码;其中,所述目标代码用于判断所述待检测文件是否为恶意文件。
[0144]
需要说明的是,如果目标样本文件本身是一种恶意文件,那么第一数据库中还可能还记载了恶意代码位置。根据恶意代码位置,对待检测文件(具体是待检测代码)进行恶意代码提取,能够得到目标代码。然后,以目标代码为依据,可以更加准确的判断待检测文件是否为恶意文件,甚至可以获取到待检测文件的攻击对象、攻击手段和攻击过程等信息;另外,通过目标代码的编写方式,还有助于用于推测恶意文件的最新发展趋势,以便进行一些主动防御手段。也就是说,通过待检测文件所属的代码家族、目标恶意代码和目标相似样本文件,可以对待检测文件进行全方面的恶意举证。
[0145]
这样,根据第一预设粒度,能够提取出待检测文件的第一目标特征,从而根据第一目标特征在第一特征数据库中的相似性查询结果,确定第一特征数据库中是否存在待检测文件的相似样本文件。
[0146]
s204:在所述第一特征数据库中不存在所述待检测文件的相似样本文件的情况下,获取所述待检测文件的内容数据。
[0147]
需要说明的是,若第一特征数据库无法检出待检测文件的相似样本文件,则可以继续提取待检测文件的第二目标特征。在本技术实施例中,第二目标特征是文本内容粒度
的,所以需要获取待检测文件的内容数据,如二进制形式的数据。
[0148]
s205:根据所述待检测文件的内容数据,得到所述第二目标特征。
[0149]
需要说明的是,针对待检测文件的内容数据进行特征提取,得到第二目标特征。
[0150]
进一步地,在一些实施例中,所述根据所述待检测文件的内容数据,得到所述第二目标特征,可以包括:
[0151]
对所述待检测文件的内容数据进行哈希值计算,得到目标内容哈希值;
[0152]
将所述目标内容哈希值确定为所述第二目标特征。
[0153]
需要说明的是,第二预设粒度是文件内容粒度,也就是说需要针对待检测文件的文件内容来提取特征。此时,需要获取待检测文件的内容数据,一般为二进制形式;然后对待检测文件的内容数据进行哈希值计算,得到目标内容哈希值,即为第二目标特征。
[0154]
在这里,对文件内容数据进行哈希计算同样可以采用多种哈希算法,例如模糊哈希算法、md5信息摘要算法或者sha256算法等。另外,对待检测对象进行哈希计算和对文件内容数据进行哈希计算,可以采用同一种哈希算法,也可以采用不同种算法。
[0155]
这样,如果无法在第一特征数据库中确定待检测文件的相似样本文件时,还可以按照第二预设粒度提取待检测文件的第二目标特征,从而更加全面的查询待检测文件的相似样本文件,提高溯源分析的准确性。
[0156]
s206:将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件。
[0157]
需要说明的是,在获得第二目标特征后,将第二目标特征在第二数据库中进行相似性查询,从而确定第二特征数据库中是否存在所述待检测文件的相似样本文件。
[0158]
进一步地,在一些实施例中,该方法还可以包括:
[0159]
获取多个第二样本文件;
[0160]
根据所述第二预设粒度对所述多个第二样本文件分别进行特征提取,得到所述多个第二样本文件各自的内容特征;
[0161]
基于所述多个第二样本文件各自的内容特征,建立所述第二特征数据库。
[0162]
当第二预设粒度为文件内容粒度时,第二样本文件的内容特征为内容哈希值。此时,所述第二特征数据库中存储有多个第二样本文件各自的内容哈希值。因此,在一些实施例中,所述将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件,可以包括:
[0163]
将所述多个第二样本文件各自的内容哈希值与所述目标内容哈希值进行比较,确定多个内容相似分数;所述多个第二样本文件中每一第二样本文件对应一个内容相似分数;
[0164]
从所述多个内容相似分数中确定出最高内容相似分数;
[0165]
在所述最高内容相似分数大于或等于第二预设阈值的情况下,确定所述第二特征数据库中存在所述待检测文件的相似样本文件;
[0166]
在所述最高第二相似分数小于所述第二预设阈值的情况下,确定所述第二特征数据库中不存在所述待检测文件的相似样本文件。
[0167]
需要说明的是,将所述目标内容特征在预设内容数据库中进行相似性查询,可以具体包括以下步骤:
[0168]
首先,将多个第二样本文件各自的内容哈希值与目标内容哈希值进行比较,确定多个内容相似分数。在这里,内容相似分数用于指示待检测文件和任一第二样本文件的相似性,所以每一第二样本文件对应一个内容相似分数。
[0169]
然后,在多个内容相似分数中确定出最高内容相似分数,并将最高内容相似分数与第二预设阈值进行比较。在这里,第二预设阈值可以根据实际应用场景确定。
[0170]
在所述最高内容相似分数大于或等于第二预设阈值的情况下,说明第二特征数据库中存在所述待检测文件的相似样本文件;在所述最高第二相似分数小于第二预设阈值的情况下,说明第二特征数据库中不存在所述待检测文件的相似样本文件。此时,可认为待检测文件为孤立文件。
[0171]
进一步地,在一些实施例中,该方法还可以包括:
[0172]
在所述最高内容相似分数小于所述第二预设阈值的情况下,将所述最高内容相似分数对应的第二样本文件确定为所述待检测文件的相似样本文件。
[0173]
还需要说明的是,在所述最高内容相似分数小于所述第二预设阈值的情况下,将所述最高内容相似分数对应的第二样本文件确定为待检测文件的相似样本文件。这样,根据目标样本文件的相关信息,可以进一步了解待检测文件。
[0174]
本技术实施例提供了一种相似性查询方法,根据第一预设粒度对待检测文件进行特征提取,得到第一目标特征;将所述第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件;在所述第一特征数据库中不存在所述待检测文件的相似样本文件的情况下,根据第二预设粒度对所述待检测文件进行特征提取,得到第二目标特征;其中,所述第二预设粒度与所述第一预设粒度不同;将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件;这样,利用两个预设粒度(第一预设粒度和第二预设粒度)分别对待检测文件进行特征提取,根据所提取的特征依次进行相似性查询,能够更加准确的对待检测文件的溯源分析,以便检出待检测文件的相似样本文件,从而了解待检测文件的所属类别、是否为恶意文件、攻击手段、攻击对象、攻击者信息等;除此之外,利用以上流程,还可以实现对待检测文件的自动化溯源分析,提高分析效率,能够对海量样本进行分析。
[0175]
在本技术的又一实施例中,参见图3,其示出了本技术实施例提供的一种数据库更新方法的流程示意图。如图3所示,该方法可以包括:
[0176]
s301:获取待检测文件,根据代码粒度对所述待检测文件进行特征提取,得到第一目标特征,根据内容粒度对所述待检测文件进行特征提取,得到第二目标特征。
[0177]
需要说明的是,在第一预设粒度为代码粒度,第二预设粒度为内容粒度,且第一特征数据库中存储有所属代码家族的情况下,本技术进一步提供了数据库的更新方法,以不断完善数据库,尤其是第一特征数据库,以更有利于根据代码粒度查询行为相似的样本,进而提高追踪溯源能力。也就是说,在第一特征数据库和第二特征数据库中对待检测文件进行相似性查询之后,还会根据相似性查询结果对待检测文件入库,使得第一特征数据库和第二特征数据库得到及时更新,从而保证后续在接收到新的待检测文件时同样能够进行精确识别。
[0178]
基于这样的思想,数据库包括第一特征数据库及第二特征数据库,所述第一特征
数据库存储有第一样本文件的代码特征,且所述第一特征数据库还能够指示第一样本文件所属的代码家族,所述第二特征数据库存储有第二样本文件的内容特征;
[0179]
s302:在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第一目标特征和所述相似样本文件的代码特征存储进入所述第一特征数据库,且确定所述待检测文件所属的代码家族,以在所述第一特征数据库中指示所述第一目标特征和所述相似样本文件的代码特征。
[0180]
s303:在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库不存在所述待检测文件的相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库。
[0181]
在这里,步骤s302和步骤s303之间并不存在特定的执行顺序。
[0182]
需要说明的是,在利用第一特征数据库/第二特征数据库对待检测文件进行查询后,针对查询结果的不同,存在不同的处理方式。在这里,处理方式不同的原因如下:对于第一特征数据库,一般存储的是不同代码家族的代码特征,对于无明显所属代码家族的文件并不会存储;对于第二特征数据库,其存储的是内容特征,即只要是不同的文件,都会提取其内容特征进行存储。
[0183]
基于以上原理,待检测文件的相似性查询结果可以分为两类:
[0184]
查询结果(1):所述第一特征数据库中不存在待检测文件的相似样本文件,且第二特征数据库中存在待检测文件的相似样本文件。
[0185]
在这种情况下,需要将第一目标特征存储进入第一特征数据库;另外,将第二目标特征存储进入第二特征数据库。
[0186]
具体地,在第二特征数据库中查找到相似样本文件的情况下,说明待检测文件和该相似样本文件属于同一家族,因此,可以参考该相似样本文件所属的代码家族(该代码家族的名称可以是人为命名的“自定义家族1”,本技术对此不作限定),将待检测文件的第一目标特征归入第一特征数据库中。同时,如果该第二特征数据库中的相似样本文件对应的特征未归入第一特征数据库时,也将其归入第一特征数据库,且标识其对应的家族。
[0187]
例如,假定存在文件1和文件2,在对文件1进行相似性检测时,利用第一特征数据库和第二特征数据库均无法查询到相似样本文件,此时将文件1的内容特征存储到第二特征数据库中;然后,在对文件2进行相似性检测时,第一特征数据库无法查询到相似样本文件,但是通过第二特征数据库,发现文件2与文件1相似,那么文件1和文件2构成一个新的代码家族。此时,可以为文件1和文件2的代码家族设置一个家族标识,并根据该家族标识将文件1和文件2的代码特征存储入第一特征数据库。
[0188]
查询结果(2):第一特征数据库和第二特征数据库均不存在所述待检测文件的相似样本文件。
[0189]
在这种情况下,需要将第二目标特征存储进入第二特征数据库。
[0190]
具体地,由于无法确定待检测文件是偶然出现的一个文件(该种情况无需存储进入第一特征数据库),还是某种新代码家族的其中一个文件(该种情况需要存储进入第一特征数据库),所以会先将其作为孤立样本提取内容特征存储进入第二特征数据库。
[0191]
进一步地,在一些实施例中,针对查询结果(1),该方法还包括:
[0192]
将所述第二目标特征存储进入所述第二特征数据库中。
[0193]
需要说明的是,由于第二特征数据库用于存储不同文件的内容特征,所以即使第二特征数据库中已经存储有“待检测文件的相似样本文件”的内容特征,仍然可以将待检测文件的内容特征(即第二目标特征)存储进入所述第二特征数据库中。
[0194]
进一步地,在一些实施例中,所述第一特征数据库中存在所述待检测文件的相似样本文件的情况下,该方法还可以包括:
[0195]
将所述第二目标特征存储进入所述第二特征数据库中。
[0196]
需要说明的是,除了查询结果(1)和查询结果(2),还有可能出现查询结果(3),查询结果(3)是指所述第一特征数据库中存在所述待检测文件的相似样本文件。
[0197]
在这种情况下,无论第二特征数据库是否能够查到待检测文件的相似样本文件,均可将第二目标特征存储进入第二特征数据库。
[0198]
进一步地,针对查询结果(3),该方法还可以包括:
[0199]
将所述第一目标特征存储进入所述第一特征数据库中。
[0200]
需要说明的是,类似地,即使第一特征数据库中已经存储由“待检测文件的相似样本文件”的代码特征,仍然可以将待检测文件的代码特征(即第一目标特征)存储进入第一特征数据库中。
[0201]
进一步地,针对查询结果(3),所述将所述第二目标特征存储进入所述第二特征数据库中,可以包括:
[0202]
在所述第二特征数据库中不存在相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库中。
[0203]
需要说明的是,考虑到存储空间的占用问题,可以仅在第二特征数据库中不存在相似样本文件的情况下,将第二目标特征进行入库存储。
[0204]
综上所述,针对不同查询结果,可以按照以下步骤对数据库进行更新:
[0205]
对于查询结果(1),第一特征数据库中无法查询到待检测文件,但是第二特征数据库中能够查询到待检测文件。此时,将第一目标特征存储入第一特征数据库,同时将第二目标特征存储入第二特征数据库。
[0206]
对于查询结果(2),第一特征数据库和第二特征数据库均不能够查询到待检测文件。此时,将第二目标特征存储入第二特征数据库,且如果能够确定待检测文件所属的代码家族,那么将第一目标特征存储入第一特征数据库。
[0207]
对于查询结果(3):所述第一特征数据库中存在所述待检测文件的相似样本文件。此时,将第二目标特征存储入第二特征数据库。
[0208]
应理解,针对查询结果(2),由于第一特征数据库中已经存在相应的代码特征,由于代码层面的特征可能会占据较多存储空间,考虑到存储空间的占用问题,可无需将待检测文件的第一目标特征入库;但是由于文件内容层面的特征占据空间不大,因此,可以将待检测文件的第二目标特征存储到第二特征数据库。另外,本技术并不排除将待检测文件的第一目标特征也存储至第一特征数据库中,该方案也同样在本技术的保护范围;
[0209]
针对以上特征存储步骤,无论是否在第二特征数据库查询到相似样本文件,都会将待检测文件的内容特征存储到第二特征数据库,这虽然保证了第二特征数据库的实时更新,但是有可能会导致第二特征数据库中的数据量过大,从而系统运行缓慢。因此,在考虑
存储空间的前提下,以下还提供了一种优化后的特征存储步骤,具体地,将前述的查询结果(3)又分为了两种情况:
[0210]
查询结果(3.1):若第一特征数据库和第二特征数据库均能够查询到待检测文件,说明待检测文件属于已知代码家族,且待检测文件的特征在第一特征数据库和第二特征数据库均已经记载,所以无需对待检测文件进行特征入库,即不存储待检测文件的内容特征。
[0211]
查询结果(3.2):若第一特征数据库能够查询到待检测文件,但是第二特征数据库不能够查到,说明待检测文件属于已知代码家族,且待检测文件的文件内容特征在第二特征数据库并无类似记载,将待检测文件的内容特征进行入库存储。
[0212]
对于查询结果(1)和查询结果(2),则沿用前述步骤。
[0213]
除此之外,也可以选择将判定为恶意样本的待检测文件进行自动化入库,不断增强系统的溯源能力。
[0214]
这样,本技术实施例提供的相似性查询方法还能够支持对待检测文件进行自动化入库,不断增强系统的溯源能力。
[0215]
综上所述,本技术实施例提供了一种相似性查询方法,能够对待检测文件进行自动化分析,支持对海量样本进行高效溯源。具体地,本技术实施例包括以下几个部分:(1)基于海量样本,建立分布式数据库(即第一特征数据库和第二特征数据库)用于存储不同样本文件的特征(例如代码特征和内容特征);(2)分别从第一预设粒度和第二预设粒度对待检测文件进行溯源,根据溯源结果能够从相似样本、归属家族、壳、恶意代码等多个维度对恶意文件进行全方位的恶意性举证;(3)支持对待检测文件进行自动化入库,不断增强系统的溯源能力。
[0216]
本技术实施例提供了一种数据库更新方法,获取待检测文件,根据代码粒度对所述待检测文件进行特征提取,得到第一目标特征,根据内容粒度对所述待检测文件进行特征提取,得到第二目标特征;在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第一目标特征和所述相似样本文件的代码特征存储进入所述第一特征数据库,且确定所述待检测文件所属的代码家族,以在所述第一特征数据库中指示所述第一目标特征和所述相似样本文件的代码特征;在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库不存在所述待检测文件的相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库。这样,根据待检测文件的查询结果将第一目标特征和/或第二目标特征进行入库存储,保证两个特征数据库得到及时更新,不断提高溯源分析的能力。除此之外,本技术实施例中的相似性查询方法已经实现了自动化流程,提供样本文件即可进行自动化分析,能够对海量样本进行溯源,提高了溯源分析的效率。
[0217]
在本技术的再一实施例中,参见图4,其示出了本技术实施例提供的又一种相似性查询方法的流程示意图。如图4所示,该方法可以包括:
[0218]
s401:根据海量样本文件建立两个预设数据库。
[0219]
需要说明的是,本技术实施例提供了一种相似性查询方法,能够对待检测文件进行相似性查询,从而获得待检测文件的溯源分析结果,整个相似性查询方法可分为三个部分:数据库建立方法、相似匹配方法和自动化入库方法。
[0220]
其中,数据库建立方法就是指根据海量样本文件建立两个预设数据库。在这里,两
个预设数据库相当于前述的第一特征数据库和第二特征数据库。
[0221]
进一步地,如图5所示,步骤s401可以具体包括以下流程:
[0222]
s501:获取海量样本文件。
[0223]
需要说明的是,利用近两年特定产品领域的热门样本文件和每日新增样本文件来获取海量样本文件,建立两个预设数据库。
[0224]
s502:对所述海量样本文件进行特征提取,得到所述海量样本文件各自的内容特征和所述海量样本文件各自的代码特征。
[0225]
需要说明的是,对所获取的海量样本文件进行特征提取。在这里,所提取的特征包括两个粒度的特征:一是内容特征(相当于前述的代码特征),使用模糊哈希的方法,对整个样本文件的二进制内容进行计算,得到文件内容粒度的内容特征;二是代码特征(相当于前述的内容特征),首先使用反汇编工具对样本文件进行反汇编处理,得到样本文件的汇编代码,然后将汇编代码细分为多个函数(相当于前述的待检测对象);其次,使用指令泛化技术,去除一些干扰相似性匹配的特征,例如,同一个函数在不同的二进制中,指令的地址很有可能是会变化的;最后,利用模糊哈希算法计算每一个泛化后的函数的哈希值,从而得到一个样本文件对应的哈希值集合,作为样本文件的代码特征。
[0226]
在这里,在对汇编代码进行细分时,可以不仅可以选择以函数为单位,也可以扩展为函数的控制流图、部分基本块组合及单个基本块等。
[0227]
s503:将所述海量样本文件各自的内容特征存储到样本库,将海量样本文件各自的代码特征存储到代码库。
[0228]
需要说明的是,预设数据库分为两个,一个是存储样本文件的二进制内容特征的样本库(相当于前述的第二特征数据库),另一个是存储样本文件的代码特征的代码库(相当于前述的第一特征数据库)。在得到样本文件各自的样本特征和代码特征后,将内容特征存储到样本库,将代码特征存储到代码库。
[0229]
这样,通过对海量样本文件的特征提取,建立了两个预设数据库,即样本库和代码库,以便于后续对待检测文件进行溯源分析。
[0230]
s402:在两个预设数据库中对待检测文件进行相似性查询,得到相似性检测结果。
[0231]
需要说明的是,在两个预设数据库中进行相似性查询,确定是否能够查到待检测文件的相似样本文件,从而完成对待检测文件的溯源分析。在本技术实施例中,由于预设数据库分为两个,文件之间的相似性也从两个粒度进行定义:文件内容粒度的相似性和代码粒度的相似性。其中,
[0232]
文件内容粒度的相似性:这个相似性相对比较严格,即利用模糊哈希值算法分别对两个文件的二进制文件内容进行计算,对所得到的两个哈希值进行对比,从而计算两个文件之间的内容相似性。
[0233]
代码粒度的相似性:这个相似性是根据代码中各个函数来计算的,首先利用反汇编技术提取文件的代码信息,接下来将代码信息按照执行流的组合等方式分成多个段,然后去除与匹配无关的代码(如操作数等),最后统计两个文件中相似函数的数量,并计算jaccard相似系数作为两个文件之间的内容相似性。
[0234]
因此,如图6所示,步骤s402可以具体包括以下流程:
[0235]
s601:将待检测文件在代码库中进行查询,确定第一相似样本文件集。
[0236]
需要说明的是,将待检测文件在代码库中进行查询,具体地,可以按照前述方法计算待检测文件的代码特征,然后将待检测文件的代码特征与代码库中存储的多个代码特征进行比较,从而确定第一相似样本文件集。在这里,由于代码库中是按照每类样本文件的代码特征进行入库的,因此第一相似样本文件集是指代码库中存储的与待检测文件最为相似的一类样本文件。换句话说,第一相似样本文件集是作为一个整体与待检测文件进行相似比较的,第一相似样本文件集实质上相当于前述的“最高代码相似分数对应的第一样本”。
[0237]
s602:判断第一相似样本文件集与待检测文件的相似度是否大于或等于第一预设阈值。
[0238]
在这里,对于步骤s602,如果判断结果为是,则执行步骤s603;如果判断结果为否,则执行步骤s604。
[0239]
需要说明的是,判断第一相似样本文件集与待检测文件的相似度(具体可以为前述的最高代码相似分数)是否大于或等于第一预设阈值,从而确定代码库中是否存在待检测文件的相似样本文件。
[0240]
s603:确定所述待检测文件为已知家族文件。
[0241]
需要说明的是,对于代码库而言,其中所存储的样本文件都属于已知家族的文件。因此,最高代码相似分数大于或等于第一预设阈值,则确定待检测文件为已知家族文件。
[0242]
还需要说明的是,对于恶意代码家族,代码库中还会记载恶意代码位置,从而能够得到待检测文件的恶意代码。
[0243]
s604:将待检测文件在样本库中进行查询,确定第二相似样本文件集。
[0244]
需要说明的是,将待检测文件在代码库中进行查询。具体地,可以按照前述方法计算待检测文件的内容特征,然后将待检测文件的内容特征与样本库中存储的多个内容特征逐一进行比较,根据比较结果确定第二相似样本文件集。类似的,由于样本库中是按照每类样本文件的内容特征进行入库的,因此第二相似样本文件集是指样本库中存储的与待检测文件最为相似的一类样本文件。换句话说,第二相似样本文件集是作为一个整体与待检测文件进行相似比较的,第二相似样本文件集实质上相当于前述的“最高内容相似分数对应的第二样本”。
[0245]
s605:判断第二相似样本文件集与待检测文件的相似度是否大于或等于第二预设阈值。
[0246]
在这里,对于步骤s605,如果判断结果为是,则执行步骤s606;如果判断结果为否,则执行步骤s607。
[0247]
需要说明的是,判断第二相似样本文件集与待检测文件的相似度(具体可以为前述的最高内容相似分数)是否大于或等于第二预设阈值,从而确定样本库中是否存在待检测文件的相似样本文件。
[0248]
s606:确定所述待检测文件为未知家族文件。
[0249]
需要说明的是,如果第二相似样本文件集与待检测文件的相似度大于或等于第二预设阈值,则确定待检测文件为未知家族文件。
[0250]
s607:确定所述待检测文件为孤立样本文件。
[0251]
需要说明的是,如果第二相似样本文件集与待检测文件的相似度小于第二预设阈值,则确定待检测文件为孤立样本文件。
[0252]
也就是说,对于待检测文件的查询方式是通过两级查询进行的。首先,查询代码库,因为代码库中涉及的样本都是已知家族样本,所以查到的属于已知家族;其次,如果代码库查询不到相似样本,则通过样本库进行查询,如果查到说明该家族能够查询到相似样本,但家族信息未知;最后,如果代码库和样本库均未查询到相似样本,则说明这个样本属于相对新样本,记为孤立样本。
[0253]
通过相似性查询,能够得到以下几部分信息:
[0254]
(1)待检测文件的相似样本文件:通过两个途径得到相似样本,一是通过代码相似性,二是通过文件内容相似性。
[0255]
(2)待检测文件所属的代码家族:具有相似代码特征的文件,其行为也必定一致。因此,本技术实施例将相似样本的家族作为待检测文件的家族。
[0256]
(3)待检测文件的恶意代码:本技术实施例记录了每段相似代码在样本中的位置,并在数据库中保存了代码片段的恶意性信息,结合这两部分能够得到样本的恶意代码。
[0257]
这样,通过预设数据库对待检测文件进行相似性查询,得到相似性查询结果,以获得待检测文件的溯源信息。
[0258]
s403:根据相似性查询结果,对待检测文件进行自动化入库。
[0259]
需要说明的是,根据相似性查询结果,对待检测文件进行自动化入库,以使得样本库和代码库都及时进行更新,始终保持较高的检出率。
[0260]
具体地,参见图7,其示出了本技术实施例提供的一种数据库更新方法的工作过程示意图。如图7所示,样本入库可分为三种情况:
[0261]
(1)孤立样本文件:样本家族未知且没有相似样本,这类样本暂时插入样本库中,以后获得家族信息后再插入代码库。
[0262]
(2)已知家族文件:通过代码库能够查询到相似样本,因为代码库中已存在相应代码信息,所以无需插入代码库,仅需要插入样本库。
[0263]
(3)未知家族文件:表示不能通过代码库查询到相似样本,但是能够通过样本库查询到相似样本,这时需要将样本信息同时插入样本库和代码库。
[0264]
也就是说,本技术实施例提出了一种快速代码相似性查询系统,提供样本即可进行分,而且能够支持对海量样本进行溯源。本技术实施例中的快速代码相似性查询系统包括以下几个部分:(1)基于海量样本,建立分布式数据库用于存储文件内容及代码信息;(2)分别从文件和代码的粒度对待检测文件进行溯源,从相似样本、归属家族、壳、恶意代码等多个维度对恶意软件进行全方位的恶意性举证;(3)支持对恶意样本进行自动化入库,不断增强系统的溯源能力。这样,快速代码相似性查询系统能够对待检测文件进行相似性查询,从而获得待检测文件的溯源分析结果;而且本技术实施例提供的相似性查询流程已经实现了自动化,新增数据源源不断地被插入到预设数据库中,从而溯源分析能力也在不断增强。
[0265]
综上所述,本技术实施例通过代码相似性匹配的方法能够对多个家族事件进行溯源,为恶意文件分析提供了更多的样本来源;以及,通过本技术实施例的代码溯源能力,能够提取到多个恶意文件的代码信息。
[0266]
除此之外,以下技术方案同样在本技术实施例的保护范围之内:(1)任何与本技术实施例架构或方法相似,但是用在不同的场景中。(2)任何与本技术实施例架构或方法相似,使用代码相似性进行相似样本查询的方法。(3)任何与本技术实施例架构或方法相似,
使用代码相似性进行家族溯源的方法。(4)任何与本技术实施例架构或方法相似,使用代码相似性进行恶意代码定位的方法。(5)本技术实施例中样本代码分割粒度包括函数、基本块、基本块组合、部分控制流等。(6)任何与本技术实施例架构或方法相似,但是采用不同的相似性定义的方法。(7)任何使用代码信息来计算样本之间相似性的方法。
[0267]
本技术实施例提供了一种相似性查询方法,通过本实施例对前述实施例的详细阐述,从中可以看出,针对两个预设粒度分别建立两个特征数据库,然后依次对待检测文件进行特征提取和相似性查询,能够更加准确的检出待检测文件的相似样本文件,提高溯源分析的准确性。
[0268]
在本技术的又一实施例中,参见图8,其示出了本技术实施例提供的一种相似性查询装置70的组成结构示意图。如图8所示,该相似性查询装置70包括第一提取单元701、第一查询单元702、第二提取单元703和第二查询单元704;其中,
[0269]
第一提取单元701,配置为根据第一预设粒度对待检测文件进行特征提取,得到第一目标特征;
[0270]
第一查询单元702,配置为将所述第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件;
[0271]
第二提取单元703,配置为在所述第一特征数据库中不存在所述待检测文件的相似样本文件的情况下,根据第二预设粒度对所述待检测文件进行特征提取,得到第二目标特征;其中,所述第二预设粒度与所述第一预设粒度不同;
[0272]
第二查询单元704,配置为在将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件。
[0273]
在一些实施中,第一预设粒度为代码粒度;第一提取单元701,具体配置为对所述待检测文件进行反汇编处理,得到所述待检测文件对应的待检测代码;对所述待检测代码进行特征提取,得到第一目标特征;和/或,第二预设粒度为文件内容粒度;第二提取单元703,具体配置为获取所述待检测文件的内容数据;根据所述待检测文件的内容数据,得到所述第二目标特征。
[0274]
在一些实施例中,第一提取单元701,还配置为基于预设细分粒度对所述待检测代码进行分割操作,得到至少一个待检测对象;其中,所述预设细分粒度至少包括以下的其中一项:函数、控制流、基本块;计算所述至少一个待检测对象各自的哈希值,组成目标代码哈希值集合;将所述目标代码哈希值集合确定为所述第一目标特征。
[0275]
在一些实施例中,第一特征数据库中还存储有多个第一样本文件各自的代码家族信息;第一查询单元702,还配置为在所述第一特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述待检测文件的相似样本文件确定为目标样本文件;从所述第一特征数据库中,获取所述目标样本文件的代码家族信息,并根据所述代码家族信息确定所述待检测文件所属的代码家族。
[0276]
在一些实施例中,第一查询单元702,还配置为判断所述第一特征数据库中是否包括所述目标样本文件的恶意代码位置;在判断结果为是的情况下,根据所述恶意代码位置对所述待检测文件进行恶意代码提取,得到目标代码;其中,所述目标代码用于判断所述待检测文件是否为恶意文件。
[0277]
在一些实施例中,第二提取单元703,具体配置为获取所述待检测文件的内容数
据;对所述待检测文件的内容数据进行哈希值计算,得到目标内容哈希值;将所述目标内容哈希值确定为所述第二目标特征。
[0278]
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0279]
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务设备,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0280]
因此,本实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所计算机程序被至少一个处理器执行时实现前述实施例中任一项的用户推荐方法的步骤。
[0281]
基于上述的一种相似性查询装置80的组成以及计算机存储介质,参见图9,其示出了本技术实施例提供的一种相似性查询装置80的具体硬件结构示意图。如图9所示,可以包括:第一通信接口801、第一存储器802和第一处理器803;各个组件通过总线系统804耦合在一起。可理解,第一总线系统804用于实现这些组件之间的连接通信。第一总线系统804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为第一总线系统804。其中,第一通信接口801,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
[0282]
第一存储器802,用于存储能够在第一处理器803上运行的计算机程序;
[0283]
第一处理器803,用于在运行计算机程序时,执行:
[0284]
根据第一预设粒度对待检测文件进行特征提取,得到第一目标特征;
[0285]
将所述第一目标特征在第一特征数据库中进行相似性查询,确定所述第一特征数据库中是否存在所述待检测文件的相似样本文件;
[0286]
在所述第一特征数据库中不存在所述待检测文件的相似样本文件的情况下,根据第二预设粒度对所述待检测文件进行特征提取,得到第二目标特征;其中,所述第二预设粒度与所述第一预设粒度不同;
[0287]
将所述第二目标特征在第二特征数据库中进行相似性查询,确定所述第二特征数据库中是否存在所述待检测文件的相似样本文件。
[0288]
可以理解,本技术实施例中的第一存储器802可以是易失性第一存储器或非易失性第一存储器,或可包括易失性和非易失性第一存储器两者。其中,非易失性第一存储器可以是只读第一存储器(read-only memory,rom)、可编程只读第一存储器(programmable rom,prom)、可擦除可编程只读第一存储器(erasable prom,eprom)、电可擦除可编程只读
第一存储器(electrically eprom,eeprom)或闪存。易失性第一存储器可以是随机存取第一存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取第一存储器(static ram,sram)、动态随机存取第一存储器(dynamic ram,dram)、同步动态随机存取第一存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取第一存储器(double data rate sdram,ddrsdram)、增强型同步动态随机存取第一存储器(enhanced sdram,esdram)、同步链动态随机存取第一存储器(synchronous link dram,sldram)和直接内存总线随机存取第一存储器(direct rambus ram,drram)。本技术描述的系统和方法的第一存储器802旨在包括但不限于这些和任意其它适合类型的第一存储器。
[0289]
而第一处理器803可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过第一处理器803中的硬件的集成逻辑电路或者软件形式的指令完成。上述的第一处理器803可以是通用第一处理器、数字信号第一处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用第一处理器可以是微第一处理器或者该第一处理器也可以是任何常规的第一处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码第一处理器执行完成,或者用译码第一处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机第一存储器,闪存、只读第一存储器,可编程只读第一存储器或者电可擦写可编程第一存储器、寄存器等本领域成熟的存储介质中。该存储介质位于第一存储器802,第一处理器803读取第一存储器802中的信息,结合其硬件完成上述方法的步骤。
[0290]
可以理解的是,本技术描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(application specific integrated circuits,asic)、数字信号第一处理器(digital signal processing,dsp)、数字信号处理设备(dsp device,dspd)、可编程逻辑设备(programmable logic device,pld)、现场可编程门阵列(field-programmable gate array,fpga)、通用第一处理器、控制器、微控制器、微第一处理器、用于执行本技术功能的其它电子单元或其组合中。
[0291]
对于软件实现,可通过执行本技术功能的模块(例如过程、函数等)来实现本技术的技术。软件代码可存储在第一存储器中并通过第一处理器执行。第一存储器可以在第一处理器中或在第一处理器外部实现。
[0292]
可选地,作为另一个实施例,第一处理器803还配置为在运行计算机程序时,执行前述实施例中任一项的方法的步骤。
[0293]
基于上述相似性查询装置70的组成以及硬件结构,本技术实施例还提供了的一种相似性查询系统,该相似性查询系统至少包括相似性查询70。
[0294]
本技术实施例提供了一种相似性查询装置,该相似性查询装置包括第一提取单元、第一查询单元、第二提取单元和第二查询单元,根针对两个预设粒度分别建立两个特征数据库,然后依次对待检测文件进行特征提取和相似性查询,能够更加准确的检出待检测
文件的相似样本文件,用以提高溯源分析的准确率。
[0295]
本技术的再一实施例中,参见图10,其示出了本技术实施例提供的一数据库更新装置90的组成结构图,如图10所示,所述数据库包括第一特征数据库及第二特征数据库,所述第一特征数据库存储有多个第一样本文件各自的代码特征和所述多个第一样本文件各自的代码家族信息,所述第二特征数据库存储有多个第二样本文件各自的内容特征;
[0296]
数据库更新装置90包括获取单元901和更新单元902;其中,
[0297]
获取单元901,配置为获取待检测文件,根据代码粒度对所述待检测文件进行特征提取,得到第一目标特征,根据内容粒度对所述待检测文件进行特征提取,得到第二目标特征;
[0298]
更新单元902,配置为在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第一目标特征和所述相似样本文件的代码特征共同存储进入所述第一特征数据库,且确定所述待检测文件所属的代码家族,以在所述第一特征数据库中指示所述第一目标特征和所述相似样本文件的代码特征;
[0299]
更新单元902,还配置为在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库不存在所述待检测文件的相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库。
[0300]
在一些实施例中,更新单元902,还配置为在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库中。
[0301]
在一些实施例中,更新单元902,还配置为在所述第一特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库中。
[0302]
在一些实施例中,更新单元902,还配置为在所述第一特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第一目标特征存储进入所述第一特征数据库中。
[0303]
在一些实施例中,更新单元902,还配置为在所述第二特征数据库中不存在相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库中。
[0304]
可以理解地,在本实施例中,“单元”可以是部分电路、部分处理器、部分程序或软件等等,当然也可以是模块,还可以是非模块化的。而且在本实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0305]
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例提供了一种计算机存储介质,应用于数据库更新装置90,该计算机存储介质存储有计算机程序,计算机被第二处理器执行时实现前述实施例中任一项的作品打分方法的步骤。
[0306]
基于上述数据库更新装置90的组成以及计算机存储介质,参见图11,其示出了本技术实施例提供的数据库更新装置90的具体硬件结构示例,如图11所示,数据库更新装置90可以包括:第二通信接口1001、第二存储器1002和第二处理器1003;各个组件通过第二总线系统1004耦合在一起。可理解,第二总线系统1004用于实现这些组件之间的连接通信。第
二总线系统1004除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图11中将各种总线都标为第二总线系统1004。其中,
[0307]
第二通信接口1001,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
[0308]
第二存储器1002,用于存储能够在第二处理器1003上运行的计算机程序;
[0309]
第二处理器1003,用于在运行计算机程序时,执行:
[0310]
获取待检测文件,根据代码粒度对所述待检测文件进行特征提取,得到第一目标特征,根据内容粒度对所述待检测文件进行特征提取,得到第二目标特征;
[0311]
在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库中存在所述待检测文件的相似样本文件的情况下,将所述第一目标特征和所述相似样本文件的代码特征存储进入所述第一特征数据库,且确定所述待检测文件所属的代码家族,以在所述第一特征数据库中指示所述第一目标特征和所述相似样本文件的代码特征;
[0312]
在所述第一特征数据库中不存在所述待检测文件的相似样本文件,且所述第二特征数据库不存在所述待检测文件的相似样本文件的情况下,将所述第二目标特征存储进入所述第二特征数据库。
[0313]
可选地,作为另一个实施例,第二处理器1003还配置为在运行计算机程序时,执行前述实施例中任一项的方法。
[0314]
可以理解,第二存储器1002与第一存储器802的硬件功能类似,第二处理器1003与第一处理器803的硬件功能类似;这里不再详述。
[0315]
基于上述数据库更新装置90的组成以及硬件结构,本技术实施例还提供了的一种数据库更新系统,该数据库更新系统至少包括数据库更新装置90。
[0316]
本技术实施例提供了一种数据库更新装置,该数据库更新装置包括获取单元和更新单元,利用待检测文件的第一目标特征和第二目标特征进行数据库更新,使得第一特征数据库和第二特征数据库的特征数量不断增加,进而第一数据库和第二特征数据库能够提供更好地溯源分析能力。
[0317]
以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
[0318]
需要说明的是,在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0319]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0320]
本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
[0321]
本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
[0322]
本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
[0323]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1