一种基于多关系图的源代码漏洞检测方法技术

技术编号:41879266 阅读:23 留言:0更新日期:2024-07-02 00:32
一种基于多关系图的源代码漏洞检测方法,其首先从标准漏洞数据库SARD和NVD数据集中切分得到C语言源代码数据集,借助Joern生成AST并取得其程序切片;其次,为了捕获AST的额外语法信息,使用编译器对AST添加携带额外信息的边进行扩展以增强其结构和连接性,然后将增强的AST转化为多关系图;最后,构建多关系图注意力网络学习嵌入向量。使用图注意力网络从源代码中提取多个代码关系,利用多关系图的邻接矩阵和初始节点表示学习全局嵌入向量,对其进行归一化并馈送到softmax层进行处理。本发明专利技术借助新设计的表征方式和多关系图聚合学习,能够为下游软件漏洞检测任务提供更优质的代码表示,从而实现准确、高效且更适用的漏洞检测方法。

【技术实现步骤摘要】

本专利技术涉及源代码漏洞检测,主要指一种基于多关系图的源代码漏洞检测方法


技术介绍

1、传统的漏洞检测主要包括静态、动态以及动静结合三种方法。静态检测基于训练样本中预先学习的模式识别新项目中可能存在的问题,在程序编译和运行前通过词法、语法等分析技术检测潜在漏洞。早期静态检测常运用规则分析、代码相似性比对和符号执行等手段,如flawfinder、rats、its4等。然而,静态检测误报率偏高,且高度依赖专家经验,难以满足代码漏洞检测的需求。为了弥补静态检测的不足,动态检测应运而生,其依赖于程序代码的实际运行与输入数据,通过监测程序在运行时的行为特征,利用异常行为分析技术来精准识别潜在漏洞,实现较高的检测准确率。然而,动态检测难以覆盖目标程序的所有代码路径,存在一定的局限性。通过将静态检测与动态检测相融合,提高了漏洞检测的准确性和实用性,但它们通常都依赖于已知的漏洞语法或行为模式,对新型漏洞检测仍有挑战。

2、近年来,研究人员开始探索新的智能化漏洞检测方法,目前有大量的实践证明,机器学习技术在检测常见代码漏洞或bug方面可以超越专家制定的规则。然本文档来自技高网...

【技术保护点】

1.一种基于多关系图的源代码漏洞检测方法,其特征在于,主要包含以下步骤:

2.根据权利要求1所述的一种基于多关系图的源代码漏洞检测方法,其特征在于,步骤B具体实现如下:

3.根据权利要求2所述的一种基于多关系图的源代码漏洞检测方法,其特征在于,步骤C具体实现如下:

4.根据权利要求1所述的一种基于多关系图的源代码漏洞检测方法,其特征在于,步骤D具体实现如下:

5.根据权利要求4所述的一种基于多关系图的源代码漏洞检测方法,其特征在于,步骤E中所述归一化的具体实现如下:

【技术特征摘要】

1.一种基于多关系图的源代码漏洞检测方法,其特征在于,主要包含以下步骤:

2.根据权利要求1所述的一种基于多关系图的源代码漏洞检测方法,其特征在于,步骤b具体实现如下:

3.根据权利要求2所述的一种基于多关系图的源代码漏洞检测方法,其特...

【专利技术属性】
技术研发人员:张学军郭梅凤张一帆张斌周博曾宇辰陈卓梁书滨
申请(专利权)人:兰州交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1