[发明专利]一种可解释性的基于多任务的源代码漏洞检测的方法在审
申请号: | 202310886074.9 | 申请日: | 2023-07-19 |
公开(公告)号: | CN116628707A | 公开(公告)日: | 2023-08-22 |
发明(设计)人: | 韩晓晖;刘蒙;左文波;崔慧;罗雪姣 | 申请(专利权)人: | 山东省计算中心(国家超级计算济南中心);齐鲁工业大学(山东省科学院) |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06N3/0464;G06N3/0455;G06N3/047;G06N3/048;G06N3/0442;G06N3/084;G06F40/253;G06F40/30;G06F16/35;G06F18/2415;G06F18/25 |
代理公司: | 济南泉城专利商标事务所 37218 | 代理人: | 支文彬 |
地址: | 250014 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 解释性 基于 任务 源代码 漏洞 检测 方法 | ||
一种可解释性的基于多任务的源代码漏洞检测的方法,涉及计算机程序分析及网络安全技术领域,构建了一个源代码及其语义描述的数据集,并对其进行了数据清洗以达到高质量数据集的标准。使用静态分析工具将高级编程语言源代码生成抽象语法树,运行卷积神经网络从源代码和抽象语法树中提取语法特征和语义特征。利用交叉注意力机制和长短记忆网络对语法特征和语义特征进行特征融合。模型对输入的高级编程语言代码进行自动漏洞检测,并输出相应的机理解释,以实现对源代码的可解释性分析。
技术领域
本发明涉及计算机程序分析及网络安全技术领域,具体涉及一种可解释性的基于多任务的源代码漏洞检测的方法。
背景技术
在当今的网络环境中,软件漏洞已经成为各种网络攻击的主要诱因。随着软件的不断发展和功能的日益复杂化,软件中隐藏的漏洞数量也随之增加,这将导致系统被攻击者利用并造成严重的安全问题。尽管研究人员从不同的漏洞数据中构建了各种工具和方法来帮助检测和消除漏洞,但每年在Common Vulnerabilities and Exposures (CVE)中所披露的漏洞数量仍然在不断上升。
鉴于漏洞是不可避免的,尽早地发现它们是很重要的。作为软件的最基本组件,代码中存在的安全漏洞可能直接导致软件漏洞的产生。因此,对源代码特征进行深入分析对于发现软件漏洞具有至关重要的作用。传统的早期源代码审查技术依赖于审查人员对安全问题的理解和积累的长期经验来进行判别。显然,依靠手工检测源代码中的漏洞的方式过于主观,并且随着代码规模和复杂性不断增大,这种技术已经无法满足当前的需求。之后,在大数据的驱动下,基于机器学习的自动化漏洞检测方案逐渐成为学术界和产业界关注的焦点。基于机器学习的漏洞检测技术避免了依赖专家人工识别问题,但是仍需要由专家定义一个漏洞的特征集合,然后采用机器学习模型按相应标签自动对源代码进行自动分类。
随着近年来深度学习技术在各个领域的成功应用以及开源代码量的增加,基于深度学习模型和海量源代码构建的端到端代码分析方法成为了研究的新焦点。目前,已有多种深度学习模型应用于源代码漏洞预测,这极大提高了漏洞预测的精度和效率。深度学习通过迭代训练模型并不断调整权重,以学习漏洞代码中的关键特征。这种端到端的学习方法使得模型能够逐步优化,准确地捕捉漏洞代码中的关键模式和异常行为,从而提高漏洞检测的准确性和效果。然而,深度学习模型的一个挑战在于其黑盒特性,导致其输出结果通常缺乏可解释性。这种缺乏可解释性的问题在漏洞检测领域尤为显著。当深度学习模型用于漏洞检测时,虽然可以获得高度准确的预测结果,但很难理解模型是如何基于输入的源代码特征来进行决策的。因此,为了更好地检测和分析源代码漏洞,针对不同的编程语言开发统一的静态分析技术和工具是非常有必要的。
发明内容
本发明为了克服以上技术的不足,提供了一种不仅能对源代码中的漏洞进行检测,而且具有漏洞语义解释生成机制,生成代码语义描述使得检测结果具有可解释性的方法。
本发明克服其技术问题所采用的技术方案是:
一种可解释性的基于多任务的源代码漏洞检测的方法,包括如下步骤:
(a)获取个不同软件项目的源代码,构建基于函数级别的高级编程语言代码数据集,,其中为第个源代码,,为第个源代码的语义文本描述,为源代码的文本的标签,,为0时表示第个源代码为无漏洞代码,为1时表示第个源代码为真实漏洞代码,对第个源代码进行数据清洗;
(b)抽取数据清洗后的第个源代码的抽象语法树,将抽取得到的抽象语法树依次经过标准化和序列化操作后得到第一token序列;
(c)将数据清洗后的第个源代码转换得到第二token序列;
(d)构建由跨模态编码器、解码器、分类器构成的多任务学习模型IMVD,跨模态编码器由语义特征编码器、语法特征编码器、复合特征编码器构成;
(e)对第一token序列进行词嵌入,得到抽象语法树的初始向量表示,将抽象语法树的初始向量表示输入到语义特征编码器中,输出得到抽象语法树的特征数据;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东省计算中心(国家超级计算济南中心);齐鲁工业大学(山东省科学院),未经山东省计算中心(国家超级计算济南中心);齐鲁工业大学(山东省科学院)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310886074.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种铅酸电池极耳整形装置
- 下一篇:一种集成电路的布局生成方法及装置