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

一种异构图神经网络代码漏洞检测方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京远禾科技有限公司

摘要:本申请公开了一种异构图神经网络代码漏洞检测方法,其特征在于包括以下步骤:S1、将训练数据集进行图表示;S2、将训练数据集异构图表示输入图注意力网络GAT模型;S3、检测样本初始化;S4、使用分类器模块对GAT2模型对检测样本的图表示运算结果降维输出。本方案将训练数据集和检测样本进行了多种类型边的异构化,并改进了注意力网络模型使之可以处理异构图,随后设计了减少过拟合的新颖的分类器,使利用图神经网络对代码漏洞的检测有更好的灵敏度和贴合真实世界代码。

主权项:1.一种异构图神经网络代码漏洞检测方法,其特征在于包括以下步骤:基于至少一个以下开源项目的源代码构建训练数据集:Ffmpeg、QEMU、LinuxKernel、VLCMediaPlayer;使用GithubAPI读取源代码、源代码变更信息和源代码变更标注中提示的漏洞信息;利用Snyk或CVE数据库来获取涉及所选的项目漏洞信息并将获得的漏洞信息与对应的代码关联;S1、将训练数据集进行图表示S1-1.生成训练数据集的图表示的节点信息S1-2.生成训练数据集的图表示的边信息1采用CodeSurfer工具生成训练数据集的节点间的抽象代码树边,得到第一类边信息;2采用CodeSurfer工具生成训练数据集的节点间的控制流边,得到第二类边信息;3采用CodeSurfer工具生成训练数据集的节点间的数据流边,得到第三类边信息;4采用CodeSurfer工具生成训练数据集的节点间的调用边,得到第四类边信息;CodeSurfer是由GrammaTech公司开发的工具;S1-3.生成训练数据集异构图表示将节点信息与节点间的四类边信息复合得到图表示,并计为G=ν,ε,其中ν为图表示的节点的集合,ε为图表示中所有类型的边的总和,εj表示某一特定类型的边;S2、将训练数据集异构图表示输入图注意力网络GAT模型S2-1.将训练数据集中的节点信息与第一至四类边信息合并为同构子图输入图注意力网络GAT模型,将注意力系数归一化后再与其对应的特征进行线性组合,得到包括训练数据集节点信息的节点级图注意力模型GAT1;S2-2.根据边的类型将训练集图表示划分为不同的子图,并对各子图应用节点级注意力机制;针对在多个子图中重合的节点,综合其在各子图中学习到的特征;通过路径级注意力机制将各子图学习到的特征表示聚合,作为节点的终端表示形式,其中对于与漏洞检测高度相关的子图中学习到的节点特征,赋予更高的权重,得到在节点级图注意力模型GAT1中加入路径级注意力网络模型GAT2;节点级图注意力模型GAT1中εk边路径下节点j对节点i的重要性依如下公式计算,其中W为图注意力网络GAT模型训练中得到的权重矩阵: 节点特征计算公式为: 路径级注意力网络模型GAT2中,加权后的节点特征计算公式为: 其中: 其中: 其中,为加权后的节点特征表示,是第k条特定类型的边的特征表示,为第k条特定类型的边的注意力权重,K为此种特定类型的边的总数,q为查询向量,i为节点序数,b为偏置向量,为第i个节点对于边εk的嵌入;S3、检测样本初始化S3-1.数据清洗及切片S3-2.图初始化1采用CodeSurfer工具生成检测样本的节点信息,所述节点信息包括该节点代表的代码语句和该节点的类型;2生成训练数据集的图表示的边信息,采用CodeSurfer工具生成检测样本的节点间的抽象代码树边、控制流边、数据流边、调用边;得到检测样本的图表示;S4、使用分类器模块对路径级注意力网络模型GAT2对检测样本的图表示运算结果降维输出将路径级注意力网络模型GAT2中训练得到的训练集图表示节点信息hi与检测样本的图表示节点信息Hi连接并输入两个卷积层中进行卷积处理,每一个卷积层的后面都代入Relu激活函数并进行最大池化操作,获得与漏洞更相关的高级特征,然后再将该高级特征输入到MLP模型中进行二分类,得到漏洞检测结果。

全文数据:

权利要求:

百度查询: 北京远禾科技有限公司 一种异构图神经网络代码漏洞检测方法

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