[发明专利]第三方库重用检测方法、装置、电子设备和存储介质在审
申请号: | 202310069034.5 | 申请日: | 2023-01-13 |
公开(公告)号: | CN116150763A | 公开(公告)日: | 2023-05-23 |
发明(设计)人: | 李红;李思远;王勇攀;朱红松;孙利民 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 杨伟东 |
地址: | 100084*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 第三 重用 检测 方法 装置 电子设备 存储 介质 | ||
本发明涉及数据处理技术领域,提供一种第三方库重用检测方法、装置、电子设备和存储介质,该方法包括:对待检测二进制文件和侯选库进行锚点检测,得到多个锚点;对每个锚点进行锚点增强,得到每个锚点的候选重用区域;调整候选重用区域,基于调整结果确定重用分值最高的候选重用区域,并将重用分值最高的候选重用区域作为第三方库的重用区域。本发明将第三方库重用检测任务转化为第三方库重用区域探测任务,在常量特征和函数特征的基础上,进一步进行函数调用图粒度的区域探索,以减少不同编译选项和体系结构的影响,同时探索真正的重用范围,解决传统特征单一和粒度不匹配问题,减少漏报和误报,提高第三方库重用检测的准确性。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种第三方库重用检测方法、装置、电子设备和存储介质。
背景技术
第三方库是现代软件系统的重要组成部分,第三方库在软件开发过程中经常被重用,因此第三方库中存在的漏洞被引入下游软件中,严重危害了下游软件安全。第三方库重用检测技术旨在从目标软件中检测重用的第三方库的代码,从而关联出库重用引入的漏洞威胁,及时修补下游软件漏洞,保障软件供应链安全。
由于C/C++代码使用不同的编译选项或编译成不同架构的二进制文件,会导致显著差异,因此,如何对C/C++二进制文件的第三方库重用进行检测成为亟需解决的问题。目前,第三方库重用检测方法包括B2SFinder的第三方库重用检测方法和使用二进制函数相似性匹配的技术进行第三方库重用检测方法,但是上述两种方式存在特征单一和粒度不匹配问题,导致漏报和误报,降低第三方库重用检测的准确性。
发明内容
本发明提供一种第三方库重用检测方法、装置、电子设备和存储介质,用以解决第三方库重用检测问题,通过将第三方库重用检测任务转化为第三方库重用区域探测任务,在常量特征和函数特征的基础上,进一步进行函数调用图粒度的区域探索,以减少不同编译选项和体系结构的影响,同时探索真正的重用范围,解决传统特征单一和粒度不匹配问题,减少漏报和误报,提高第三方库重用检测的准确性。
本发明提供一种第三方库重用检测方法,包括:
对待检测二进制文件和侯选库进行锚点检测,得到多个锚点;
对每个所述锚点进行锚点增强,得到每个所述锚点的候选重用区域;
调整所述候选重用区域,基于调整结果确定重用分值最高的所述候选重用区域,并将重用分值最高的所述候选重用区域作为第三方库的重用区域。
在一个实施例中,所述锚点增强包括锚点对齐和锚点扩展;
所述对每个所述锚点进行锚点增强,得到每个所述锚点的候选重用区域,包括:
采用锚点对齐算法,对每个所述锚点进行锚点对齐;
将对齐后的锚点进行锚点扩展,得到每个对齐后的锚点的候选重用区域。
在一个实施例中,所述采用锚点对齐算法,对每个所述锚点进行锚点对齐,包括:
采用所述锚点对齐算法遍历每个所述锚点;
基于遍历结果将每个所述锚点加入锚点列表中的锚点序列;
对相似度大于设定值的锚点序列进行合并,以确定每个所述锚点的最长的锚点序列,并将每个所述锚点的最长的锚点序列作为每个所述锚点的对齐结果。
在一个实施例中,所述将对齐后的锚点进行锚点扩展,得到每个对齐后的锚点的候选重用区域,包括:
确定所述候选重用区域的重用函数对应的子函数;
基于所述重用函数对应的子函数将对齐后的锚点进行锚点扩展,得到每个对齐后的锚点的候选重用区域。
在一个实施例中,所述调整所述候选重用区域,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310069034.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:灯杆底板焊连固定加工设备
- 下一篇:一种陶瓷器具表面用砂石釉的配方及制备方法