买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本发明公开了一种基于树型注意力和加权图匹配的相似漏洞检测方法,首先,分别为目标函数、漏洞函数和补丁函数生成FCG、vSCG、pSCG。其次,利用语句节点嵌入网络分别提取FCG、vSCG和pSCG语句节点的语义和语法信息。接着,利用图神经网络和加权图匹配方法构成的图匹配模型,学习并计算FCG和vSCG之间以及FCG和pSCG之间的相似度,然后利用计算的三元组损失函数调整网络参数,训练检测模型。最后,利用训练好的模型检测软件中的相似漏洞。本发明可以在捕获代码中与漏洞相关的语法和语义特征的同时,有效利用补丁信息区分仅有细微差异的漏洞和补丁函数,从而提高相似漏洞检测的准确率。
主权项:1.一种基于树型注意力和加权图匹配的相似漏洞检测方法,其特征在于所述方法包括如下步骤:步骤1:利用静态解析工具解析源代码,并生成CPG,CPG将AST、PDG合并为一个数据结构;步骤2:分别为目标函数、漏洞函数和补丁函数生成FCG、vSCG、pSCG,具体步骤如下:步骤21:对于待测的目标函数,首先提取其对应的PDG,然后将语句对应的AST扩展到PDG的每个节点,最后形成FCG;步骤22:对于需要与目标函数进行匹配的漏洞函数,首先通过分析漏洞和diff文件找到被删除的语句,将删除的语句视为漏洞语句,将漏洞语句作为切片准则,使用程序切片技术在PDG中找到切片节点,然后通过数据依赖和控制依赖将这些节点连接起来,再以切片中的每个节点作为根节点,展开其对应的AST,形成漏洞函数的切片复合图,记为vSCG;若diff文件中只有添加的语句而没有删除语句,则通过从漏洞函数的PDG及其对应的补丁函数的pSCG中提取相同的节点和边来生成vSCG;步骤23:对于需要与目标函数进行匹配的补丁函数,通过分析漏洞和diff文件找到添加的语句,将添加语句视为补丁语句,将补丁语句作为切片准则,使用程序切片技术在PDG中找到切片节点,然后通过数据依赖和控制依赖将这些节点连接起来,再以切片中的每个节点作为根节点,展开其对应的AST,形成补丁函数的切片复合图,记为pSCG;如果在diff文件中只有删除的语句而没有添加的语句,则通过从漏洞函数的PDG及在步骤22中生成的vSCG中提取相同的节点和边来生成pSCG;步骤3:利用由CodeBERT模型和树型注意力机制构成的语句节点嵌入网络,分别提取FCG、vSCG和pSCG语句节点的语义和语法信息,生成由语义特征向量和语法特征向量组成的语句节点初始嵌入向量;步骤4:利用图神经网络分别对FCG、vSCG、pSCG进行表示学习,学习每个节点的向量表示;步骤5:利用加权图匹配方法分别计算FCG和vSCG之间、FCG和pSCG之间的相似度;步骤6:利用标签信息和步骤5计算得到的相似度,计算三元组损失函数,根据误差反向传播调整语句节点嵌入网络和由图神经网络和加权图匹配方法构成的图匹配模型的参数,直到语句节点嵌入网络和图匹配模型对输入的响应达到预定的目标范围为止,训练结束,得到由语句节点嵌入网络和图匹配模型构成的相似漏洞检测模型;步骤7:用训练好的相似漏洞检测模型对代码进行相似漏洞检测。
全文数据:
权利要求:
百度查询: 哈尔滨工业大学 基于树型注意力和加权图匹配的相似漏洞检测方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。