[发明专利]基于图神经网络的漏洞识别与预测方法、系统、计算机设备和存储介质有效
| 申请号: | 202010053062.4 | 申请日: | 2020-01-17 |
| 公开(公告)号: | CN111274134B | 公开(公告)日: | 2023-07-11 |
| 发明(设计)人: | 孙小兵;曹思聪;李斌 | 申请(专利权)人: | 扬州大学 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F11/36;G06N3/0442;G06N3/048;G06N3/08 |
| 代理公司: | 南京理工大学专利中心 32203 | 代理人: | 马鲁晋 |
| 地址: | 225009*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 神经网络 漏洞 识别 预测 方法 系统 计算机 设备 存储 介质 | ||
1.一种基于图神经网络的漏洞识别与预测方法,其特征在于,包括以下步骤:
步骤1,构建漏洞数据集;具体过程包括:
步骤1-1,采集漏洞数据库NVD中的数据,包括漏洞报告;
步骤1-2,提取漏洞报告中的CWE漏洞类型标签、描述信息以及漏洞文件;
步骤1-3,利用一组与软件安全性相关的漏洞发生特征关键词和所述描述信息进行匹配,筛选出安全性漏洞,由所有安全性漏洞构成漏洞数据集;
步骤2,将漏洞数据集划分为训练集和测试集;
步骤3,漏洞文件代码图表示;具体过程包括:
步骤3-1,将所述漏洞数据集中的每个漏洞文件分解为一组方法即函数;特殊地,头文件也视为一组方法;
步骤3-2,利用GumTree对每个漏洞文件对应的一组方法进行语法分析,获得一组语法抽象树AST;
步骤3-3,利用word2vec对语法抽象树AST中的代码单词code tokens进行词向量学习,获得一组词向量;
由上述过程将每一个漏洞文件表示为一个代码属性图gi(V,X,A),该图中结点的代码属性由词向量表示,边属性的类型为AST;其中V表示结点集合,X表示初始结点的特征矩阵,A表示两结点是否通过一条AST边相连,0表示两结点不相连,1表示相连,A为一个m×m的邻接矩阵,m为结点总数;
步骤4,结合门控图神经网络GGNN的特征学习和门控递归单元实现漏洞特征提取,将图中每个结点向量作为门控图神经网络GGNN的输入端,迭代后的状态向量作为漏洞特征;
步骤5,将漏洞特征作为预测器的输入端,构建预测器,并利用该预测器预测代码文件中的漏洞。
2.根据权利要求1所述的基于图神经网络的漏洞识别与预测方法,其特征在于,步骤2所述将漏洞数据集划分为训练集和测试集,具体包括:
步骤2-1,对CWE漏洞类型标签进行归并,获得如下漏洞类型与CWE标签的对应关系:Resource Leaks:CWE-913、CWE-74、CWE-400、CWE-404、CWE-610、CWE-669、CWE-913;Insecure Arguments:CWE-134、CWE-20、CWE-330、CWE-665;Use After Free:CWE-416;RaceConditions:CWE-362、CWE-754、CWE-755;Null Pointer Deference:CWE-476;BufferOverflows:CWE-120、CWE-119;Information Exposure:CWE-200、CWE-311、CWE-668、CWE-922;Privilege Escalation:CWE-269、CWE-326;Improper Authentication:CWE-287、CWE-345、CWE-862、CWE-863;
步骤2-2,从漏洞数据集中随机选取部分状态为Modified的漏洞报告,结合CWE漏洞类型标签和上述对应关系对选取的漏洞报告进行分类,构建语料库,并将语料库中的一部分漏洞报告作为训练集,其余漏洞报告作为测试集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010053062.4/1.html,转载请声明来源钻瓜专利网。





