[发明专利]脆弱代码片段克隆检测方法、装置、电子设备及存储介质有效
申请号: | 202211592925.0 | 申请日: | 2022-12-13 |
公开(公告)号: | CN115586920B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 张涛;宁戈;张弛;谭博迈 | 申请(专利权)人: | 北京安普诺信息技术有限公司 |
主分类号: | G06F8/75 | 分类号: | G06F8/75 |
代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 贾晓玲 |
地址: | 100085 北京市海淀区东北旺西*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 脆弱 代码 片段 克隆 检测 方法 装置 电子设备 存储 介质 | ||
本申请提供了一种脆弱代码片段克隆检测方法、装置、电子设备及存储介质,方法包括:生成待测程序的程序依赖图;利用局部敏感哈希算法在待测程序的程序依赖图中定位出所有与若干个脆弱代码指纹子图的第一起始节点匹配的第二起始节点,将一对匹配的第一起始节点和第二起始节点确定为一个起始节点克隆对,其中,脆弱代码指纹子图为从脆弱代码片段的程序依赖图中提取的部分程序依赖图;基于所有起始节点克隆对对脆弱代码指纹子图和待测程序的程序依赖图并行地执行切片子图匹配,从而检测出克隆的脆弱代码片段。通过提取脆弱代码指纹子图,并利用局部敏感哈希算法快速匹配起始节点克隆对,再并行执行子图匹配,提高了脆弱代码克隆检测的准确度和效率。
技术领域
本公开主要涉及计算机应用技术领域,特别涉及一种脆弱代码片段克隆检测方法、装置、电子设备及存储介质。
背景技术
在软件开发中,开源代码的复用是一种普遍存在的现象,同时也是一种不容忽视的供应链安全风险威胁向量。开发者在频繁复制一些开源代码库中的代码片段时,出于开发效率的考虑,并不会对引入的代码进行深入的理解分析,这就导致潜藏在开源代码中的缺陷也会被引入软件系统中。这些含有缺陷、导致软件漏洞产生的关键代码片段被称作“脆弱代码”。
现有的脆弱代码克隆检测方法通常将待检测代码进行别名替换或进行较高程度的抽象,例如生成代码的程序依赖图,基于此可以通过将相同结构或相同特征与已知情况相匹配来找到由脆弱代码克隆引起的漏洞。但是当代码修改增加,比如添加和删除代码行时,就会受到影响,这也使得漏洞检测更加困难且应用场景有限。而且,如果缺乏对上下文关系的验证会导致漏报或者误报,因为安全缺陷对上下文非常敏感。
此外,以程序依赖图为代码表征方式的代码克隆检测技术还存在执行效率低的局限性。即当作为匹配目标的子图库(脆弱代码指纹子图库)容量较大时,或者当待测程序的程序依赖图包含大量的节点和边时,子图匹配面临着极高的计算负荷和时间开销问题。
因此,如何提高脆弱代码克隆检测的精确度和效率已经成为本领域技术人员面临的一个技术难题。
发明内容
本申请公开的实施例旨在提供一种脆弱代码片段克隆检测方法、装置、电子设备及存储介质,以解决上述问题。
在本公开的第一方面中,提供了一种脆弱代码片段克隆检测方法,包括以下步骤:
生成待测程序的程序依赖图;
利用局部敏感哈希算法在所述待测程序的程序依赖图中定位出所有与若干个脆弱代码指纹子图的第一起始节点匹配的第二起始节点,将一对匹配的所述第一起始节点和所述第二起始节点确定为一个起始节点克隆对,其中,所述脆弱代码指纹子图为从所述脆弱代码片段的程序依赖图中提取的部分程序依赖图;
基于所有所述起始节点克隆对对所述脆弱代码指纹子图和所述待测程序的程序依赖图并行地执行切片子图匹配,其中,对于任一所述起始节点克隆对,所述切片子图匹配包括:
同时从所述第一起始节点和所述第二起始节点开始对所述第一起始节点所在的脆弱代码指纹子图和所述待测程序的程序依赖图进行切片,判断所述第一起始节点所在的脆弱代码指纹子图中的其余所有节点是否均能在所述待测程序的程序依赖图中匹配到相应的节点;
若是,则确定所述待测程序中存在与所述第一起始节点所在的脆弱代码指纹子图对应的脆弱代码片段。
可选地,所述利用局部敏感哈希算法在所述待测程序的程序依赖图中定位出所有与若干个脆弱代码指纹子图的第一起始节点匹配的第二起始节点,包括以下步骤:
将所述待测程序的程序依赖图中的节点通过预设的局部敏感哈希函数映射到多个哈希桶内;
获取所有所述脆弱代码指纹子图的第一起始节点,并分别对所述第一起始节点通过所述预设的局部敏感哈希函数计算待查询桶号;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京安普诺信息技术有限公司,未经北京安普诺信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211592925.0/2.html,转载请声明来源钻瓜专利网。