[发明专利]基于知识图谱的漏洞代码图谱构建及代码漏洞检测方法有效

专利信息
申请号: 202210595809.8 申请日: 2022-05-30
公开(公告)号: CN114692155B 公开(公告)日: 2022-08-23
发明(设计)人: 王晓东;王健;魏志强;李凯航 申请(专利权)人: 中国海洋大学
主分类号: G06F21/56 分类号: G06F21/56;G06F16/36;G06F8/41
代理公司: 青岛华慧泽专利代理事务所(普通合伙) 37247 代理人: 赵梅
地址: 266100 山*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 知识 图谱 漏洞 代码 构建 检测 方法
【权利要求书】:

1.基于知识图谱的漏洞代码图谱构建方法,其特征在于,包括以下步骤:

S1、获取漏洞代码相关信息:包括漏洞源代码文件、漏洞发布日期、漏洞补丁方案、漏洞所处的代码仓库地址、代码仓库提交日志、代码仓库issue信息;

S2、对漏洞源代码文件的处理:将漏洞源代码文件处理成抽象语法树,利用抽象语法树的深度遍历算法,从抽象语法树中提取实体、关系信息,构建源代码图谱,进而抽取生成漏洞代码子图;步骤S2的具体步骤如下:

S21、处理漏洞源代码文件,提取源代码文件的抽象语法树;

S22、实体类型定义及实体间关系定义:结合源代码文件的抽象语法树信息,定义构建源代码知识图谱必备的实体类型信息和实体间关系信息;

S23、遍历抽象语法树生成源代码图谱:利用代码图谱生成算法,结合实体类型定义及实体间关系定义,抽取生成源代码图谱,存入图数据库;

S24、利用漏洞代码子图生成算法,从上一步骤生成的源代码图谱中抽取生成漏洞代码子图;漏洞代码子图生成算法如下:

记漏洞代码子图,其中,代表漏洞代码子图的数量,,代表漏洞代码子图中节点的集合,,代表漏洞代码子图中边的集合;路径,其中,代表路径的数量;

S241、根据不同漏洞代码的符号特征,找到漏洞代码定义、赋值、声明节点ni,j,把ni,j加入到Ni中;

S242、查询源代码图谱中从文件节点到Ni中每个节点的路径Pj,得到路径上的所有节点Nj,如果nj,k不存在于Ni中,就把nj,k加入到Ni中,同时保留他们之间的关系;

S243、查询源代码图谱中所有与Ni中每个节点有数据依赖和控制依赖的节点n,如果n不存在于Ni中,也把n加入到Ni中;

S244、给Ni中所有的节点ni,j添加标签,所有带标签的节点组成漏洞代码子图;

S3、对漏洞代码相关文字信息的处理:基于获取到的漏洞代码相关信息数据,利用自然语言处理技术,从代码文档、issue、补丁方案中提取出与代码相关的实体节点和实体间关系信息,保存记录到数据库中;

S4、对前两部分的到的实体和关系进行实体关系融合:通过步骤S1可以得到源代码实体关系,通过步骤S2得到文档实体关系,将两者进行实体关系融合,整合源代码和文档中的信息;

S5、构造标注数据集D:得到漏洞代码子图以后,将漏洞代码子图和爬取的数据进行对齐,对每一个漏洞代码子图进行人工标注,对于有漏洞的代码子图标注上对应的漏洞类型,没有漏洞的代码子图标注0;构造的标注数据集,其中,表示数据集中的第i条数据,共条标注数据;表示第i个漏洞代码子图,,n代表漏洞的种类数量,,表示第i个漏洞代码子图的漏洞标签,当且仅当Gi包含第j种漏洞;,其中,表示第i个漏洞代码图谱中的第j个节点,表示第i个漏洞代码图谱共有个节点;,其中,表示第i个漏洞代码图谱中的第j条边,表示第i个漏洞代码图谱共有条边。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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