[发明专利]一种基于深度学习的代码缺陷检测方法及装置有效
申请号: | 201811278355.1 | 申请日: | 2018-10-30 |
公开(公告)号: | CN109408389B | 公开(公告)日: | 2020-10-16 |
发明(设计)人: | 计卫星;高玉金;王一拙;杨恬;石剑君;石峰 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京慕达星云知识产权代理事务所(特殊普通合伙) 11465 | 代理人: | 姜海荣 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 学习 代码 缺陷 检测 方法 装置 | ||
本发明涉及一种基于深度学习的代码缺陷检测方法及装置,选取多个代码缺陷检测工具,分别对被检测代码进行检测,相应生成多个检测结果;将所述被检测代码通过预设的转换方法,转换为所述被检测代码的特征向量;所述特征向量包括所述被检测代码的结构特征和语义特征;将所述特征向量分别输入多个所述代码缺陷检测工具各自相对应的评估模型,输出多个所述代码缺陷检测工具分别对所述被检测代码检测缺陷结果的置信度;并结合检测工具对被检测代码的检测结果,可以有效判定代码是否真实存在某种缺陷,能够解决现有代码缺陷检测中误报较高的问题,有效提升代码审查的工作效率。
技术领域
本发明涉及检测技术领域,特别涉及一种基于深度学习的代码缺陷检测方法及装置。
背景技术
代码缺陷检测应用了代码分析技术,是保证软件质量和可靠性的重要手段。通常将分析方法分为静态分析和动态分析,静态分析方法不需要运行程序,在二进制或源代码层级上对软件的结构,内容进行分析和评价,可以较早地发现程序代码中的缺陷。动态分析方法通过动态分析方法通过运行待测程序以获取和分析程序运行过程中产生的动态信息,以判断其运行时语义性质。在静态分析领域,存在多款开源的静态分析工具,包括FindBugs、JLint和Infer等,也有多款商业化的分析工具,例如Fortify和Coverity等,在实际应用中,这些工具对不同代码缺陷类型的检测能力各不相同,但是难以对其能力进行准确的量化评估,影响了软件评测和审查的工作效率。
深度学习是机器学习中一种基于对数据进行表征学习的方法。它通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。近年来,深度学习技术正逐步应用在软件安全和代码分析领域,利用深度学习技术,可以提取代码的结构特征和语义特征进而利用深度神经网络提取高维特征来描述代码。
针对目前存在着大量代码缺陷检测工具,由于检测技术的限制,这些工具的检测结果通常都包含着大量误报,由于无法得知工具对于特定缺陷的检测能力,面对工具的检测报告,通常难以判定其中哪些为准确结果,这会影响代码的检测和审查的工作效率。
发明内容
鉴于上述问题,本发明提供了一种基于深度学习的代码缺陷检测方法及装置,本发明基于深度学习构建的评估模型,将被检测代码转换为向量表现形式输入评估模型,利用模型输出的置信度,并结合检测工具对被检测代码的检测结果,可以有效判定代码是否真实存在某种缺陷,能够解决现有代码缺陷检测中误报较高的问题,有效提升代码审查的工作效率。
第一方面,本发明实施例提供一种基于深度学习的代码缺陷检测方法,包括:
选取多个代码缺陷检测工具,分别对被检测代码进行检测,相应生成多个检测结果;
将所述被检测代码通过预设的转换方法,转换为所述被检测代码的特征向量;所述特征向量包括所述被检测代码的结构特征和语义特征;
将所述特征向量分别输入多个所述代码缺陷检测工具各自相对应的评估模型,输出多个所述代码缺陷检测工具分别对所述被检测代码检测缺陷结果的置信度;
将多个所述检测结果和多个所述置信度,进行加权求和生成预测结果;
当所述预测结果大于预设阈值时,确定所述被检测代码存在缺陷。
在一个实施例中,将多个所述检测结果和多个所述置信度,进行加权求和生成预测结果,包括:
将多个所述检测结果和多个所述置信度,输入以下公式,生成预测结果;
其中:P表示预测结果,k表示不同代码缺陷检测工具的数量,t表示代码缺陷检测工具(t∈[1,k]),new表示被检测代码,i表示代码缺陷类别,P(t,new,i)表示不同代码缺陷检测工具的置信度,E(t,new,i)表示不同代码缺陷检测工具的检测结果;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811278355.1/2.html,转载请声明来源钻瓜专利网。