[发明专利]基于树型注意力和加权图匹配的相似漏洞检测方法在审
| 申请号: | 202211678532.1 | 申请日: | 2022-12-26 |
| 公开(公告)号: | CN115859307A | 公开(公告)日: | 2023-03-28 |
| 发明(设计)人: | 苏小红;郑伟宁;魏宏巍;魏子越;陶文鑫;蒋远;王甜甜;张彦航 | 申请(专利权)人: | 哈尔滨工业大学 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F8/75;G06F18/22;G06N3/042;G06N3/0455;G06N3/08 |
| 代理公司: | 哈尔滨龙科专利代理有限公司 23206 | 代理人: | 李智慧 |
| 地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 注意力 加权 匹配 相似 漏洞 检测 方法 | ||
1.一种基于树型注意力和加权图匹配的相似漏洞检测方法,其特征在于所述方法包括如下步骤:
步骤1:利用静态解析工具解析源代码,并生成CPG,CPG将AST、PDG合并为一个数据结构;
步骤2:分别为目标函数、漏洞函数和补丁函数生成FCG、vSCG、pSCG;
步骤3:利用由CodeBERT模型和树型注意力机制构成的语句节点嵌入网络,分别提取FCG、vSCG和pSCG语句节点的语义和语法信息,生成由语义特征向量和语法特征向量组成的语句节点初始嵌入向量;
步骤4:利用图神经网络分别对FCG、vSCG、pSCG进行表示学习,学习每个节点的向量表示;
步骤5:利用加权图匹配方法分别计算FCG和vSCG之间、FCG和pSCG之间的相似度;
步骤6:利用标签信息和步骤5计算得到的相似度,计算三元组损失函数,根据误差反向传播调整语句节点嵌入网络和由图神经网络和加权图匹配方法构成的图匹配模型的参数,直到语句节点嵌入网络和图匹配模型对输入的响应达到预定的目标范围为止,训练结束,得到由语句节点嵌入网络和图匹配模型构成的相似漏洞检测模型;
步骤7:用训练好的相似漏洞检测模型对代码进行相似漏洞检测。
2.根据权利要求1所述的基于树型注意力和加权图匹配的相似漏洞检测方法,其特征在于所述步骤2的具体步骤如下:
步骤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.根据权利要求1所述的基于树型注意力和加权图匹配的相似漏洞检测方法,其特征在于所述步骤3的具体步骤如下:
步骤31:对于FCG、vSCG、pSCG中任一语句节点vi,使用经过漏洞数据训练微调后的CodeBERT模型,来学习语句中token之间的依赖关系,以获得节点vi对应的语义特征向量表示,记为
步骤32:利用树型注意力机制生成节点vi的语法特征向量;
步骤33:将语义特征向量和语法特征向量进行拼接并送入全连接网络将其映射到同一个语义空间,最终得到节点的初始嵌入向量表示。
4.根据权利要求3所述的基于树型注意力和加权图匹配的相似漏洞检测方
法,其特征在于所述步骤32的具体步骤如下:
步骤321:通过深度优先遍历AST获得节点序列;
步骤322:使用word2vec模型获得所有节点的数字向量,计算节点的位置编码并添加到节点的数字向量中;
步骤323:提取AST中拥有多个孩子节点的非叶子节点,并将其作为子树的根节点;
步骤324:用子树掩码来隐藏子树根节点的兄弟节点和父节点,只计算其与自身和子节点的注意力值,将其相加得到子树的隐藏向量表示;
步骤325:利用软注意力机制求出对所有AST子树的重要性,再将这些重要性作为权重进行加权求和,从而得到语句的语法特征向量表示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211678532.1/1.html,转载请声明来源钻瓜专利网。





