首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

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

申请/专利权人:兰州交通大学

申请日:2024-04-29

公开(公告)日:2024-06-28

公开(公告)号:CN118260773A

主分类号:G06F21/57

分类号:G06F21/57;G06F11/36;G06F8/75;G06F8/41;G06N3/042;G06N3/047;G06N3/048

优先权:

专利状态码:在审-公开

法律状态:2024.06.28#公开

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

主权项:1.一种基于多关系图的源代码漏洞检测方法,其特征在于,主要包含以下步骤:步骤A:生成程序切片,从软件保障参考数据集SARD,SoftwareAssuranceReferenceDataset和国家漏洞数据库NVD,NationalVulnerabilityDatabase中切分得到C语言源代码数据集,并利用Joern对源代码进行解析和提取,通过指定切片起始点,Joern可以提取出相关的代码和依赖项,生成对应的抽象语法树AST,AbstractSyntaxTree,基于漏洞规则对代码进行切片,最终得到程序切片;所述漏洞规则包括API库函数调用FC,FunctionCall、数组使用AU,ArrayUsage、指针使用PU,PointerUsage、算术表达式AE,ArithmeticExpression;步骤B:生成扩展AST,利用编译器在步骤A生成的AST基础上添加携带额外信息的边对其进行扩展和优化后生成扩展AST;步骤C:将扩展AST编码为多关系图,利用多关系图来存储扩展的AST关系,每条边对应一个关系图,从而形成多关系图;该多关系图是一个有向图,由节点和边组成,节点代表AST或中间表示IR,IntermediateRepresentation的节点,边代表两个节点之间存在某种关系,并使用邻接矩阵对每个关系图的边重新编码;步骤D:构建多关系图注意力网络,将步骤C得到的邻接矩阵和初始顶点嵌入传递给图注意力网络GAT,Graphattentionnetworks对所有邻居节点进行聚合操作,进而学习多关系图的全局嵌入向量;其中初始顶点嵌入利用Word2Vec向量化得到,将每个顶点映射为一个向量表示;步骤E:图嵌入模块,将多关系图注意力网络输出的图向量嵌入归一化,将归一化的特征向量馈送到softmax层进行处理,得到预测结果。

全文数据:

权利要求:

百度查询: 兰州交通大学 一种基于多关系图的源代码漏洞检测方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。