第三方库重用检测方法、装置、电子设备和存储介质制造方法及图纸

技术编号:37643535 阅读:33 留言:0更新日期:2023-05-25 10:10
本发明专利技术涉及数据处理技术领域,提供一种第三方库重用检测方法、装置、电子设备和存储介质,该方法包括:对待检测二进制文件和侯选库进行锚点检测,得到多个锚点;对每个锚点进行锚点增强,得到每个锚点的候选重用区域;调整候选重用区域,基于调整结果确定重用分值最高的候选重用区域,并将重用分值最高的候选重用区域作为第三方库的重用区域。本发明专利技术将第三方库重用检测任务转化为第三方库重用区域探测任务,在常量特征和函数特征的基础上,进一步进行函数调用图粒度的区域探索,以减少不同编译选项和体系结构的影响,同时探索真正的重用范围,解决传统特征单一和粒度不匹配问题,减少漏报和误报,提高第三方库重用检测的准确性。性。性。

【技术实现步骤摘要】
第三方库重用检测方法、装置、电子设备和存储介质


[0001]本专利技术涉及数据处理
,尤其涉及一种第三方库重用检测方法、装置、电子设备和存储介质。

技术介绍

[0002]第三方库是现代软件系统的重要组成部分,第三方库在软件开发过程中经常被重用,因此第三方库中存在的漏洞被引入下游软件中,严重危害了下游软件安全。第三方库重用检测技术旨在从目标软件中检测重用的第三方库的代码,从而关联出库重用引入的漏洞威胁,及时修补下游软件漏洞,保障软件供应链安全。
[0003]由于C/C++代码使用不同的编译选项或编译成不同架构的二进制文件,会导致显著差异,因此,如何对C/C++二进制文件的第三方库重用进行检测成为亟需解决的问题。目前,第三方库重用检测方法包括B2SFinder的第三方库重用检测方法和使用二进制函数相似性匹配的技术进行第三方库重用检测方法,但是上述两种方式存在特征单一和粒度不匹配问题,导致漏报和误报,降低第三方库重用检测的准确性。

技术实现思路

[0004]本专利技术提供一种第三方库重用检测方法、装置、电子设备和存储介质,用以解决第三方库重用检测问题,通过将第三方库重用检测任务转化为第三方库重用区域探测任务,在常量特征和函数特征的基础上,进一步进行函数调用图粒度的区域探索,以减少不同编译选项和体系结构的影响,同时探索真正的重用范围,解决传统特征单一和粒度不匹配问题,减少漏报和误报,提高第三方库重用检测的准确性。
[0005]本专利技术提供一种第三方库重用检测方法,包括:
[0006]对待检测二进制文件和侯选库进行锚点检测,得到多个锚点;
[0007]对每个所述锚点进行锚点增强,得到每个所述锚点的候选重用区域;
[0008]调整所述候选重用区域,基于调整结果确定重用分值最高的所述候选重用区域,并将重用分值最高的所述候选重用区域作为第三方库的重用区域。
[0009]在一个实施例中,所述锚点增强包括锚点对齐和锚点扩展;
[0010]所述对每个所述锚点进行锚点增强,得到每个所述锚点的候选重用区域,包括:
[0011]采用锚点对齐算法,对每个所述锚点进行锚点对齐;
[0012]将对齐后的锚点进行锚点扩展,得到每个对齐后的锚点的候选重用区域。
[0013]在一个实施例中,所述采用锚点对齐算法,对每个所述锚点进行锚点对齐,包括:
[0014]采用所述锚点对齐算法遍历每个所述锚点;
[0015]基于遍历结果将每个所述锚点加入锚点列表中的锚点序列;
[0016]对相似度大于设定值的锚点序列进行合并,以确定每个所述锚点的最长的锚点序列,并将每个所述锚点的最长的锚点序列作为每个所述锚点的对齐结果。
[0017]在一个实施例中,所述将对齐后的锚点进行锚点扩展,得到每个对齐后的锚点的
候选重用区域,包括:
[0018]确定所述候选重用区域的重用函数对应的子函数;
[0019]基于所述重用函数对应的子函数将对齐后的锚点进行锚点扩展,得到每个对齐后的锚点的候选重用区域。
[0020]在一个实施例中,所述调整所述候选重用区域,包括:
[0021]确定所述候选重用区域的边界节点;
[0022]基于所述边界节点调整所述候选重用区域。
[0023]在一个实施例中,所述基于调整结果确定重用分值最高的所述候选重用区域,包括:
[0024]基于所述调整结果获取调整后的目标候选重用区域;
[0025]基于所述目标候选重用区域的相似度,确定重用分值最高的所述候选重用区域。
[0026]在一个实施例中,确定所述目标候选重用区域的相似度,包括:
[0027]基于图神经网络确定两个所述目标候选重用区域的结构相似度;
[0028]采用所述结构相似度,对齐系数,函数调用图规模系数以及函数调用图差异系数,确定所述目标候选重用区域的相似度。
[0029]本专利技术还提供一种第三方库重用检测装置,包括:
[0030]锚点检测模块,用于对待检测二进制文件和侯选库进行锚点检测,得到多个锚点;
[0031]锚点增强模块,用于对每个所述锚点进行锚点增强,得到每个所述锚点的候选重用区域;
[0032]区域调整模块,用于调整所述候选重用区域,基于调整结果确定重用分值最高的所述候选重用区域,并将重用分值最高的所述候选重用区域作为第三方库的重用区域。
[0033]本专利技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述第三方库重用检测方法。
[0034]本专利技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述第三方库重用检测方法。
[0035]本专利技术提供的第三方库重用检测方法、装置、电子设备和存储介质,通过对待检测二进制文件和侯选库进行锚点检测,得到多个锚点;对每个锚点进行锚点增强,得到每个锚点的候选重用区域;调整候选重用区域,基于调整结果确定重用分值最高的候选重用区域,并将重用分值最高的候选重用区域作为第三方库的重用区域。本专利技术将第三方库重用检测任务转化为第三方库重用区域探测任务,在常量特征和函数特征的基础上,进一步进行函数调用图粒度的区域探索,以减少不同编译选项和体系结构的影响,同时探索真正的重用范围,解决传统特征单一和粒度不匹配问题,减少漏报和误报,提高第三方库重用检测的准确性。
附图说明
[0036]为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些
附图获得其他的附图。
[0037]图1是本专利技术提供的第三方库重用检测方法的流程示意图之一;
[0038]图2是本专利技术提供的区域调整算法的流程示意图;
[0039]图3是本专利技术提供的锚点对齐算法的流程示意图;
[0040]图4是本专利技术提供的第三方库重用检测方法的流程示意图之二;
[0041]图5是本专利技术提供的第三方库重用检测装置的结构示意图;
[0042]图6是本专利技术提供的电子设备的结构示意图。
具体实施方式
[0043]为使本专利技术的目的、技术方案和优点更加清楚,下面将结合本专利技术中的附图,对本专利技术中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0044]下面结合图1

图6描述本专利技术的第三方库重用检测方法、装置、电子设备和存储介质。
[0045]具体地,本专利技术提供了一种第三方库重用检测方法,参照图1,图1是本专利技术提供的第三方库本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种第三方库重用检测方法,其特征在于,包括:对待检测二进制文件和侯选库进行锚点检测,得到多个锚点;对每个所述锚点进行锚点增强,得到每个所述锚点的候选重用区域;调整所述候选重用区域,基于调整结果确定重用分值最高的所述候选重用区域,并将重用分值最高的所述候选重用区域作为第三方库的重用区域。2.根据权利要求1所述的第三方库重用检测方法,其特征在于,所述锚点增强包括锚点对齐和锚点扩展;所述对每个所述锚点进行锚点增强,得到每个所述锚点的候选重用区域,包括:采用锚点对齐算法,对每个所述锚点进行锚点对齐;将对齐后的锚点进行锚点扩展,得到每个对齐后的锚点的候选重用区域。3.根据权利要求2所述的第三方库重用检测方法,其特征在于,所述采用锚点对齐算法,对每个所述锚点进行锚点对齐,包括:采用所述锚点对齐算法遍历每个所述锚点;基于遍历结果将每个所述锚点加入锚点列表中的锚点序列;对相似度大于设定值的锚点序列进行合并,以确定每个所述锚点的最长的锚点序列,并将每个所述锚点的最长的锚点序列作为每个所述锚点的对齐结果。4.根据权利要求2所述的第三方库重用检测方法,其特征在于,所述将对齐后的锚点进行锚点扩展,得到每个对齐后的锚点的候选重用区域,包括:确定所述候选重用区域的重用函数对应的子函数;基于所述重用函数对应的子函数将对齐后的锚点进行锚点扩展,得到每个对齐后的锚点的候选重用区域。5.根据权利要求1所述的第三方库重用检测方法,其特征在于,所述调整所述候选重用区域,包括:确...

【专利技术属性】
技术研发人员:李红李思远王勇攀朱红松孙利民
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1