一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种二进制特征数据库构建方法及装置与流程

2023-02-01 14:56:01 来源:中国专利 TAG:


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.用所述二进制特征构建全量特征数据库。
29.第二方面,本技术提供一种二进制特征数据库构建装置,所述装置包括:
30.获取模块,用于获取二进制文件;
31.构建模块,用于从所述二进制文件中获取二进制特征,用所述二进制特征构建全量特征数据库;
32.过滤模块,用于对所述全量特征数据库进行过滤,剔除重用特征。
33.可选地,所述获取模块,用于:
34.获取开源组件数据,用所述开源组件数据构建开源组件信息库;
35.从所述开源组件信息库获取所述二进制文件。
36.可选地,所述获取模块,用于:
37.从所述开源组件信息库爬取二进制包;
38.将所述二进制包解压,从解压后的文件包中识别并获取二进制文件。
39.可选地,所述获取模块,用于:
40.通过爬虫方式获取所述开源组件基础信息、以及所述开源组件依赖关系;
41.用所述开源组件基础信息以及所述开源组件依赖关系构建开源组件信息库。
42.可选地,所述过滤模块,用于:
43.通过所述开源组件信息库中的开源组件依赖关系对所述全量特征数据库进行过滤,剔除重用特征。
44.可选地,所述构建模块,用于:
45.对所述二进制文件进行反编译,从反编译后的文件中获取文件特征;
46.从所述文件特征中提取可用于二进制检测的所述二进制特征;
47.用所述二进制特征构建全量特征数据库。
48.第三方面,本技术提供一种可读介质所述可读介质包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如第一方面任一所述的方法。
49.第四方面,本技术提供一种电子设备,所述电子设备包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如第一方面任一所述的方法。
50.本技术具有以下优点:
51.本技术一种二进制特征数据库构建方法,可以获取二进制文件;接着,从所述二进制文件中获取二进制特征,用所述二进制特征构建全量特征数据库;然后,对所述全量特征数据库进行过滤,剔除重用特征。本技术从全量特征数据库中剔除重用特征,可避免在二进制检测过程中二进制特征在组件之间的重用,进而防止在二进制检测的匹配中发生误报。
附图说明
52.为了更清楚地说明本技术实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
53.图1为本技术一实施例中所述二进制特征数据库构建方法的流程图一;
54.图2为本技术一实施例中所述二进制特征数据库构建方法的流程图二;
55.图3为本技术一实施例中所述二进制特征数据库构建装置的结构示意图;
56.图4为本技术一实施例中所述电子设备的结构示意图。
具体实施方式
57.为使本技术的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本技术的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
58.相关技术中,由于二进制程序中的特征没有源码特征丰富,且由于大量的特征在大量的组件中出现,引起了二进制特征在组件之间的简单重用、部分重用和衍生重用的现象,进而在匹配结果中造成误报,导致二进制的检测更加困难。针对上述问题,本技术提出一种二进制特征数据库构建方法,可以获取二进制文件;接着,从所述二进制文件中获取二进制特征,用所述二进制特征构建全量特征数据库;然后,对所述全量特征数据库进行过滤,剔除重用特征。本技术从全量特征数据库中剔除重用特征,可避免在二进制检测过程中二进制特征在组件之间的重用,进而防止在二进制检测的匹配中发生误报。
59.下面结合附图,详细地说明本技术非限制性的实施方案。
60.如附图1,示出了本技术一实施例中所述二进制特征数据库构建方法,所述方法应用于二进制软件成分分析检测,包括:
61.s101:获取二进制文件。
62.构建所述二进制特征数据库,需要足够多的二进制文件,且所述二进制文件为多种多样性,便于后续得到各种二进制特征,完善二进制特征数据库的特征数据。
63.在一实施例中,所述获取二进制文件,可以获取开源组件数据,用所述开源组件数据构建开源组件信息库;接着,从所述开源组件信息库获取所述二进制文件。在开放源代码中,能够获取各种各样的源代码系统,即能获得各种各样的开源组件数据。用所述开源组件数据构建所述开源组件信息库,便于调取开源组件数据,从而在所述开源组件数据中得到二进制文件。从所述开源组件信息库中获取到各种各样的二进制文件,满足二进制文件多样化的需求,以构建完善的二进制特征数据库。
64.在一实施例中,所述从所述开源组件信息库获取所述二进制文件,可以从所述开源组件信息库爬取二进制包;然后,将所述二进制包解压,从解压后的文件包中识别并获取二进制文件。所述开源组件信息库中有各种各样的开源组件数据,从开源组件数据中获取二进制文件。由于所述开源组件信息库中存储的开源组件数据量较大,在获取所述二进制包时,需要爬取,以便快速获的二进制包。开源组件数据中的二进制文件都是在压缩包中,即压缩包为二进制包。压缩包中可能会含有其他文件,故在获取二进制文件时,需要将二进制包解压,再识别出二进制文件。
65.在一实施例中,所述开源组件数据包括开源组件基础信息、以及开源组件依赖关系。开源组件基础信息为二进制包或二进制文件等代码。开源组件依赖关系是指用二进制文件中的代码搭建的应用软件与所依赖的函数库之间的对应关系。应用软件为了实现其功能需要大量调用系统函数库中的函数。
66.在一实施例中,所述获取开源组件数据,用所述开源组件数据构建开源组件信息库,可以通过爬虫方式获取所述开源组件基础信息、以及所述开源组件依赖关系;然后,用所述开源组件基础信息以及所述开源组件依赖关系构建开源组件信息库。现在互联网盛行,网络上很多开源组件,为了能够快速的获取所述开源组件,可以通过爬虫的方式在网络上获取所述开源组件基础信息和所述开源组件依赖关系。所述开源组件信息库包括所述开源组件基础信息和所述开源组件依赖关系,用户用开源组件基础信息中的二进制代码搭建的应用软件,应用软件在使用时,需要调用系统数据库中的函数以实现功能,应用软件依赖于系统数据库中的函数。开源组件依赖关系,可以提示用户在安装应用软件时,安装相应的函数库软件包,使应用软件能运行。二进制代码需要通过代码体现其所需要调用的函数,从而实现其功能。实现相同功能的二进制代码,调用的函数一样,但是二进制代码却不一定完全相同,可以是相似代码。
67.s102:从所述二进制文件中获取二进制特征,用所述二进制特征构建全量特征数据库。
68.将所有从二进制文件中获取的二进制特征,用来构建全量特征数据库,便于检测二进制软件成分时,用所述二进制特征来衡量二进制程序的相似性。
69.在一实施例中,所述从所述二进制文件中获取二进制特征,用所述二进制特征构建全量特征数据库,可以对所述二进制文件进行反编译,从反编译后的文件中获取文件特征;接着,从所述文件特征中提取可用于二进制检测的所述二进制特征;然后,用所述二进制特征构建全量特征数据库。所述文件特征包括常量字符串、控制流图、函数调用图、结构化签名、基本块属性、部分类名称、以及函数名称。从所述文件特征中提取可用于二进制检测的所述二进制特征,便于检测二进制程序的相似性。虽然好多源代码中具有的信息在二进制文件中不存在,但是一些配置信息还是存在的,例如常量字符串、部分类名称、以及函
数名称。这些存在的配置信息用于作为二进制特征,检测二进制程序的相似性,可提高检测的准确性。
70.s103:对所述全量特征数据库进行过滤,剔除重用特征;
71.其中,所述过滤为遍历所述全量特征数据库中的所述二进制特征,将每两个所述二进制特征进行对比,确定每两所述二进制特征的相似度,根据所述相似度确定所述重用特征。相似度超过预设值的两个所述二进制特征,可确定其中一个为重用特征。相似度的计算可采用相关算法进行计算,相似度的计算可以有较多种算法,且可根据实际情况调整算法,相似度的计算有较多的现有技术,且不是本技术的发明点,本技术不再赘述。
72.将所有的二进制特征都收归到全量特征数据库中,可能会有很多相似二进制程序的二进制特征都保持在了全量特征数据库,但这些相似的二进制程序的二进制特征不相同,但是这些不相同的二进制特征均能检测出相似的二进制程序。故而检测相似的二进制程序,仅用一套二进制特征即可,无需用更多的二进制特征检索相似的二进制程序。当重复使用相似的二进制程序的二进制特性进行检测时,会增加检测的时间与检测的程序步骤数量,从而降低了检测的效率。将重复的二进制特征剔除,仅留下一套二进制特征去检测相似的二进制程序,可提高二进制检测的效率。
73.在一实施例中,所述对所述全量特征数据库进行过滤,剔除重用特征,可以通过所述开源组件信息库中的开源组件依赖关系对所述全量特征数据库进行过滤,剔除重用特征。开源组件依赖关系可以知道二进制程序调用的函数,从调用的函数可以确定二进制文件搭建的应用软件的实现功能,若是功能相同的不同二进制文件,那么该二进制文件为相似性二进制文件。该相似的二进制文件可用一套二进制特征去检测。用于检测该相似二进制文件的其它二进制特征可以剔除掉,避免重复检测,进而防止在二进制检测的匹配中发生误报,可提高检测效率。
74.具体地,从某一开源组件开始,通过开源组件信息库的依赖关系信息查找其对应的组件依赖关系网。计算该依赖关系网中每个组件的依赖层级并以数值标识,从依赖层级最高的组件开始,对该依赖关系网中的开源组件按依赖层级由高到低依次遍历。遍历过程中,每两个组件之间通过相关算法计算依赖方的二进制特征和被依赖方的二进制特征的相似度,将相似度高的两个所述二进制特征标记,并将依赖方中的二进制特征标记为重用特征,将重用特征从依赖方的特征中剔除。重复上述过程,直至全部开源组件处理完毕。
75.具体地,如附图2所示,本技术一实施例中,所述二进制特征数据库构建方法可以包括:
76.从所述开源组件信息库爬取二进制包;
77.将所述二进制包解压,得到解压后的文件包;
78.从解压后的文件包中识别并获取二进制文件;
79.对所述二进制文件进行反编译,从反编译后的文件中获取文件特征;
80.从所述文件特征中提取可用于二进制检测的所述二进制特征;
81.用所述二进制特征构建全量特征数据库;
82.即将二进制特征、二进制文件与所述二进制特征的映射关系保存在所述全量特征数据库的在用特征库中;其中,所有的文件特征,包括被剔除的二进制特征均保存在全量特征数据库的原始特征库中,可以在后续需要用到重复的二进制特征时,直接调用。
83.如附图3,示出了本技术一实施例中二进制特征数据库构建装置的结构示意图,所述装置包括:
84.获取模块,用于获取二进制文件;
85.构建模块,用于从所述二进制文件中获取二进制特征,用所述二进制特征构建全量特征数据库;
86.过滤模块,用于对所述全量特征数据库进行过滤,剔除重用特征。
87.可选地,所述获取模块,用于:
88.获取开源组件数据,用所述开源组件数据构建开源组件信息库;
89.从所述开源组件信息库获取所述二进制文件。
90.可选地,所述获取模块,用于:
91.从所述开源组件信息库爬取二进制包;
92.将所述二进制包解压,从解压后的文件包中识别并获取二进制文件。
93.可选地,所述获取模块,用于:
94.通过爬虫方式获取所述开源组件基础信息、以及所述开源组件依赖关系;
95.用所述开源组件基础信息以及所述开源组件依赖关系构建开源组件信息库。
96.可选地,所述过滤模块,用于:
97.通过所述开源组件信息库中的开源组件依赖关系对所述全量特征数据库进行过滤,剔除重用特征。
98.可选地,所述构建模块,用于:
99.对所述二进制文件进行反编译,从反编译后的文件中获取文件特征;
100.从所述文件特征中提取可用于二进制检测的所述二进制特征;
101.用所述二进制特征构建全量特征数据库。
102.由于二进制特征数据库构建装置采用了二进制特征数据库构建方法的所有实施方式的全部技术方案,因此至少具有上述和下述的各个实施方式的技术方案所带来的所有有益效果,在此不再一一赘述。
103.图4是本技术实施例提供的一种电子设备的结构示意图。在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(random-access memory,ram),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
104.处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是isa(industry standard architecture,工业标准体系结构)总线、pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
105.存储器,用于存放执行指令。具体地,执行指令即可被执行的计算机程序。存储器可以包括内存和非易失性存储器,并向处理器提供执行指令和数据。
106.在一种可能实现的方式中,处理器从非易失性存储器中读取对应的执行指令到内
存中然后运行,也可从其它设备上获取相应的执行指令,以在逻辑层面上形成二进制特征数据库构建方法。处理器执行存储器所存放的执行指令,以通过执行的执行指令实现本技术任一实施例中提供的二进制特征数据库构建方法。
107.上述如本技术图1所示实施例提供的二进制特征数据库构建方法执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
108.结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
109.本技术实施例还提出了一种可读介质,该可读存储介质存储有执行指令,存储的执行指令被电子设备的处理器执行时,能够使该电子设备执行本技术任一实施例中提供的二进制特征数据库构建方法,并具体用于执行上述二进制特征数据库构建方法。
110.前述各个实施例中所述的电子设备可以为计算机。
111.本领域内的技术人员应明白,本技术的实施例可提供为方法或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例,或软件和硬件相结合的形式。
112.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
113.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
114.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献