[发明专利]基于图卷积网络对代码图表示学习的源代码漏洞检测方法有效

专利信息
申请号: 202010576421.4 申请日: 2020-06-22
公开(公告)号: CN111783100B 公开(公告)日: 2022-05-17
发明(设计)人: 苏小红;段亚男;王甜甜;蒋远;赵玲玲 申请(专利权)人: 哈尔滨工业大学
主分类号: G06F21/57 分类号: G06F21/57;G06F21/56;G06N3/04;G06N3/08
代理公司: 哈尔滨龙科专利代理有限公司 23206 代理人: 高媛
地址: 150001 黑龙*** 国省代码: 黑龙江;23
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 图卷 网络 代码 图表 学习 源代码 漏洞 检测 方法
【权利要求书】:

1.一种基于图卷积网络对代码图表示学习的源代码漏洞检测方法,其特征在于所述方法包括如下步骤:

步骤1:通过解析源代码,生成以抽象语法树、控制流图和程序依赖图联合表示代码结构信息,以代码内容和节点类型表示代码属性信息的代码属性图;

步骤2:在代码属性图中添加函数调用关系和过程间依赖关系,具体步骤如下:

步骤21:选取图中类型为函数的节点;

步骤22:遍历其孩子节点即函数体的节点,查找边类型为与控制流和数据流相关的边,获取到节点和边信息加入图结构信息中;

步骤23:从孩子节点中选取类型为Callee的节点,根据函数名和路径递归查找被调用的函数;

步骤24:重复步骤21、22、23,直至遍历完函数中的所有节点,得到与漏洞相关的控制流、程序依赖和函数调用的图结构信息;

步骤3:利用程序切片技术提取与漏洞关键点相关的程序切片;

步骤4:利用得到的程序切片简化步骤1和步骤2提取得到的图结构信息,得到简化后的与漏洞相关的图结构,具体步骤如下:

步骤41:初始化简化后的图结构列表为空,节点列表N为空,边列表E为空;

步骤42:对于输入的全部图结构中的每个函数体的图结构gr,从切片列表(Sliceslist,S)中筛选出属于同一个函数体的切片s;

步骤43:使用Filter过滤函数,从object中筛选出符合condition的object的子集,然后对于当前的gr中的节点gr.node,筛选出符合节点的代码存在于切片s的情况的节点加入节点列表N中;

步骤44:若N不为空,则再次筛选图结构gr中的边列表gr.edge,选出gr.edge中边的两端的节点都存于节点列表N中的边信息,并加入边列表E中;

步骤45:最后将(N,E)添加至简化后的图结构SGR中;

步骤5:使用图卷积网络对图数据进行表示学习,学习每个节点的向量表示;

步骤6:根据边的类型,在图结构上划分出多个子图,并通过基于节点注意力机制的READOUT模型得到每个子图的向量表示,基于子图自注意力机制的READOUT模型得到全图的向量表示;

步骤7:将得到的子图和全图的向量表示进行拼接后送入全连接层和softmax层得到预测结果,利用标签信息计算交叉熵损失函数,根据误差反向传播调整网络参数,直到网络对输入的响应达到预定的目标范围为止,训练结束;

步骤8:用训练好的图卷积神经网络模型对代码进行漏洞检测。

2.根据权利要求1所述的基于图卷积网络对代码图表示学习的源代码漏洞检测方法,其特征在于所述步骤6的具体步骤如下:

步骤61:根据边的类型划分出多个子图;

步骤62:计算所有节点的自注意力,并进行池化操作,再根据节点的自注意力值对节点的向量表示进行加权求和,得到每个子图的向量表示;

步骤63:通过一个多层感知机模型计算每个子图的注意力值,最后利用每个子图的注意力值对子图的向量表示进行加权求和,得到全图的最终向量表示。

3.根据权利要求2所述的基于图卷积网络对代码图表示学习的源代码漏洞检测方法,其特征在于所述注意力值、子图的向量表示和全图的最终向量表示的具体计算公式如下:

其中,为sub子图经过l层卷积操作后节点表示的矩阵,为每个节点添加自连接后的邻接矩阵,为对应的每个节点的度数的矩阵,Z为得到的注意力值,hsub为sub子图的节点乘以相应的注意力值累加得到的子图向量表示,hCFG,hPDG,hCG,为对应CFG、PDG、CG子图的表示,W为计算得到的权重矩阵,hG为最终的图表示。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010576421.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top