[发明专利]脆弱代码片段克隆检测方法、装置、电子设备及存储介质有效
申请号: | 202211592925.0 | 申请日: | 2022-12-13 |
公开(公告)号: | CN115586920B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 张涛;宁戈;张弛;谭博迈 | 申请(专利权)人: | 北京安普诺信息技术有限公司 |
主分类号: | G06F8/75 | 分类号: | G06F8/75 |
代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 贾晓玲 |
地址: | 100085 北京市海淀区东北旺西*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 脆弱 代码 片段 克隆 检测 方法 装置 电子设备 存储 介质 | ||
1.一种脆弱代码片段克隆检测方法,其特征在于,包括以下步骤:
生成待测程序的程序依赖图;
利用局部敏感哈希算法在所述待测程序的程序依赖图中定位出所有与若干个脆弱代码指纹子图的第一起始节点匹配的第二起始节点,将一对匹配的所述第一起始节点和所述第二起始节点确定为一个起始节点克隆对,其中,所述脆弱代码指纹子图为从所述脆弱代码片段的程序依赖图中提取的部分程序依赖图;
基于所有所述起始节点克隆对对所述脆弱代码指纹子图和所述待测程序的程序依赖图并行地执行切片子图匹配,其中,对于任一所述起始节点克隆对,所述切片子图匹配包括:
同时从所述第一起始节点和所述第二起始节点开始对所述第一起始节点所在的脆弱代码指纹子图和所述待测程序的程序依赖图进行切片,判断所述第一起始节点所在的脆弱代码指纹子图中的其余所有节点是否均能在所述待测程序的程序依赖图中匹配到相应的节点;
若是,则确定所述待测程序中存在与所述第一起始节点所在的脆弱代码指纹子图对应的脆弱代码片段。
2.如权利要求1所述的脆弱代码片段克隆检测方法,其特征在于,所述利用局部敏感哈希算法在所述待测程序的程序依赖图中定位出所有与若干个脆弱代码指纹子图的第一起始节点匹配的第二起始节点,包括以下步骤:
将所述待测程序的程序依赖图中的节点通过预设的局部敏感哈希函数映射到多个哈希桶内;
获取所有所述脆弱代码指纹子图的第一起始节点,并分别对所述第一起始节点通过所述预设的局部敏感哈希函数计算待查询桶号;
计算所述第一起始节点与所述待查询桶号对应的所述哈希桶内的所述待测程序的程序依赖图中的节点之间的距离;
将距离小于预设阈值的所述待测程序的程序依赖图中的节点标记为第二起始节点。
3.如权利要求1所述的脆弱代码片段克隆检测方法,其特征在于,所述基于所有所述起始节点克隆对对所述脆弱代码指纹子图和所述待测程序的程序依赖图并行地执行切片子图匹配,包括以下步骤:
为每一个所述起始节点克隆对创建一个执行切片子图匹配的子任务;
将所述起始节点克隆对中的第一起始节点所在的脆弱代码指纹子图和所述待测程序的程序依赖图下发至所述子任务;
并行地执行所有所述子任务。
4.如权利要求1所述的脆弱代码片段克隆检测方法,其特征在于,所述脆弱代码指纹子图的提取方法包括以下步骤:
获取脆弱代码片段和所述脆弱代码片段中的脆弱代码语句;
生成所述脆弱代码片段的程序依赖图;
对所述脆弱代码片段的程序依赖图以所述脆弱代码语句的节点为切片点进行后向切片,获得切片程序依赖图,所述切片程序依赖图包含所有与所述脆弱代码语句具有控制或数据依赖关系的节点及相应的边;
将所述切片程序依赖图确定为脆弱代码指纹子图。
5.如权利要求4所述的脆弱代码片段克隆检测方法,其特征在于,所述同时从所述第一起始节点和所述第二起始节点开始对所述第一起始节点所在的脆弱代码指纹子图和所述待测程序的程序依赖图进行切片,判断所述第一起始节点所在的脆弱代码指纹子图中的其余所有节点是否均能在所述待测程序的程序依赖图中匹配到相应的节点,包括以下步骤:
分别将所述第一起始节点和所述第二起始节点作为所述第一起始节点所在的脆弱代码指纹子图和所述待测程序的程序依赖图的切片点,其中,将所述脆弱代码指纹子图中的脆弱代码语句的节点作为所述第一起始节点;
从所述切片点开始,同时对所述第一起始节点所在的脆弱代码指纹子图和所述待测程序的程序依赖图执行后向切片,分别获取与所述第一起始节点存在控制或数据依赖关系的第一前驱节点和与所述第二起始节点存在控制或数据依赖关系的第二前驱节点,并判断所述第一前驱节点和所述第二前驱节点是否匹配,若是则重复此步骤,若否则结束切片,从而判断所述第一起始节点所在的脆弱代码指纹子图中的其余所有节点是否均能在所述待测程序的程序依赖图中匹配到相应的节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京安普诺信息技术有限公司,未经北京安普诺信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211592925.0/1.html,转载请声明来源钻瓜专利网。