[发明专利]基于知识图谱的漏洞代码图谱构建及代码漏洞检测方法有效
| 申请号: | 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、根据不同漏洞代码的符号特征,找到漏洞代码定义、赋值、声明节点
S242、查询源代码图谱中从文件节点到
S243、查询源代码图谱中所有与
S244、给
S3、对漏洞代码相关文字信息的处理:基于获取到的漏洞代码相关信息数据,利用自然语言处理技术,从代码文档、issue、补丁方案中提取出与代码相关的实体节点和实体间关系信息,保存记录到数据库中;
S4、对前两部分的到的实体和关系进行实体关系融合:通过步骤S1可以得到源代码实体关系,通过步骤S2得到文档实体关系,将两者进行实体关系融合,整合源代码和文档中的信息;
S5、构造标注数据集D:得到漏洞代码子图以后,将漏洞代码子图和爬取的数据进行对齐,对每一个漏洞代码子图进行人工标注,对于有漏洞的代码子图标注上对应的漏洞类型,没有漏洞的代码子图标注0;构造的标注数据集,其中,表示数据集中的第i条数据,共条标注数据;表示第i个漏洞代码子图,,n代表漏洞的种类数量,,表示第i个漏洞代码子图的漏洞标签,当且仅当
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国海洋大学,未经中国海洋大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210595809.8/1.html,转载请声明来源钻瓜专利网。





