[发明专利]代码漏洞检测方法、装置、电子设备及存储介质在审
申请号: | 202310573945.1 | 申请日: | 2023-05-19 |
公开(公告)号: | CN116595538A | 公开(公告)日: | 2023-08-15 |
发明(设计)人: | 秦一伟;张斯璟 | 申请(专利权)人: | 中国农业银行股份有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F8/41;G06F18/2411;G06F18/214 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 王风茹 |
地址: | 100005 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 漏洞 检测 方法 装置 电子设备 存储 介质 | ||
本发明公开一种代码漏洞检测方法、装置、电子设备及存储介质,检测方法包括:解析样本代码得到抽象语法树、控制流图和程序依赖图,并根据抽象语法树、控制流图和程序依赖图构建原始代码属性图;对原始代码属性图中的节点特征向量进行卷积聚合操作,得到目标代码属性图;根据目标代码属性图确定样本代码的表征向量;基于样本代码的表征向量和样本标签进行模型训练,得到代码检测模型;基于代码检测模型对目标代码进行漏洞检测。本发明利用代码属性图检测,考虑了代码的词序关系和结构特性,考虑维度更全面;对节点特征向量进行卷积聚合操作,可以获得更好的节点表征,使得训练出的模型能更全面、准确地检测出代码中的漏洞,提高了检测效率。
技术领域
本发明实施例涉及代码检测技术,尤其涉及一种代码漏洞检测方法、装置、电子设备及存储介质。
背景技术
代码漏洞检测问题是软件开发过程中的一个重要问题,代码的高度复杂性和结构的变化性使得代码漏洞检测成为一个极具挑战的问题。目前常用的代码漏洞检测方法有人工检测、基于深度学习的漏洞检测等。人工检测,费时费力,效率低、成本高,在工业使用中不具有实操意义。基于深度学习的漏洞检测,通常是将源代码看作是一个自然语言顺序的语言片段,仅利用了代码单词之间的词序关系进行检测,而忽视了蕴含在源代码中的其他信息,容易出现漏检或误检,检测准确率不高。
发明内容
本发明实施例提供一种代码漏洞检测方法、装置、电子设备及存储介质,能够更全面、准确地检测出代码中包括的漏洞,提高漏洞检测效率。
第一方面,本发明提供一种代码漏洞检测方法,包括:
解析样本代码得到抽象语法树、控制流图和程序依赖图,并根据所述抽象语法树、所述控制流图和所述程序依赖图构建原始代码属性图;
对所述原始代码属性图中的节点特征向量进行卷积聚合操作,得到目标代码属性图;
根据所述目标代码属性图确定所述样本代码的表征向量;
基于所述样本代码的表征向量和样本标签进行模型训练,得到代码检测模型;
基于所述代码检测模型对目标代码进行漏洞检测。
第二方面,本发明提供一种代码漏洞检测装置,包括:
构建模块,用于解析样本代码得到抽象语法树、控制流图和程序依赖图,并根据所述抽象语法树、所述控制流图和所述程序依赖图构建原始代码属性图;
聚合模块,用于对所述原始代码属性图中的节点特征向量进行卷积聚合操作,得到目标代码属性图;
确定模块,用于根据所述目标代码属性图确定所述样本代码的表征向量;
训练模块,用于基于所述样本代码的表征向量和样本标签进行模型训练,得到代码检测模型;
检测模块,用于基于所述代码检测模型对目标代码进行漏洞检测。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任一实施例所述的代码漏洞检测方法。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的代码漏洞检测方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业银行股份有限公司,未经中国农业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310573945.1/2.html,转载请声明来源钻瓜专利网。