一种基于深度学习的漏洞影响范围推理方法和系统
未命名
07-15
阅读:101
评论:0

1.本发明属于网络安全技术领域,涉及一种基于深度学习的漏洞影响范围推理方法和系统。
背景技术:
2.开源对软件的发展具有深远的意义,帮助开发者共享成果,让开发者能够专注于自己的创新,其推进了技术的快速发展。据不完全统计,78%的企业都在使用开源软件,且越来越多的公司开始重视第三方依赖的安全性。开源软件具有开放、共同参与、自由传播等特性,因此开源软件的安全威胁一方面由于开发者自身安全意识和技术水平不足从而容易产生软件漏洞,另一方面也无法避免攻击者引入安全风险,如向开源软件注入木马程序进行软件供应链攻击等。在开源软件的生命周期中,各种漏洞频出不穷,容易遭受黑客攻击利用,从而造成财产损失。漏洞影响范围推理的目的就是挖掘尚未发现的受漏洞影响的开源软件产品,从而提早发现潜在的隐患。
3.目前,漏洞影响范围通常通过nvd(national vulnerability database,美国国家漏洞数据库)获取。nvd在每个漏洞的详情页中会给出受该漏洞影响的软件cpe(common platform enumeration,通用平台枚举项)列表。然而,该cpe列表并不完整。比如在cve-2018-0852的描述中明确说明该漏洞影响microsoft outlook 2007sp3这一软件产品,但直到2022年4月,nvd在该漏洞详情页中发布的cpe列表并没有记录microsoft outlook 2007sp3这一软件产品。已有的漏洞影响范围推理的方法通过漏洞所在文件推理出受该文件影响的软件产品,这种方法能够一定程度上完善漏洞的影响范围,但是需要大量的人力查找漏洞相关文件,而且仅用到了漏洞所在文件这一信息,漏洞其余信息被忽略,导致推理效率较低、准确率较低等问题。
技术实现要素:
4.本发明为了解决漏洞的影响范围推理准确率偏低的问题,提出了一种基于深度学习的漏洞影响范围推理方法和系统。本发明可以有效提高漏洞影响范围推理的准确率,提高安全漏洞挖掘能力。
5.本发明的目的在于提供一种基于深度学习的漏洞影响范围推理方法,该方法通过构建漏洞的异质网络,采用深度学习方法,通过链接推理的方式推理漏洞的影响范围,有效的帮助安全分析人员发现软件中的漏洞,尽早解决安全风险。
6.为实现上述目的,本发明采用如下技术方案:
7.一种基于深度学习的漏洞影响范围推理方法,其步骤包括:
8.采集漏洞信息,根据漏洞信息获取软件产品与漏洞的关联关系,构建漏洞知识图谱;
9.根据漏洞知识图谱,构建漏洞影响范围推理算法模型的数据集;
10.利用构建的数据集,构建漏洞影响范围推理算法模型并对其进行训练;
11.利用训练完成的漏洞影响范围推理算法模型,进行漏洞影响范围推理。
12.进一步地,所述根据漏洞信息获取软件产品与漏洞的关联关系,构建漏洞知识图谱,包括:在已有漏洞知识图谱的基础上,抽取漏洞补丁包含的软件版本信息,补全漏洞知识,完善软件产品与漏洞的关联关系,构建新的漏洞知识图谱。
13.进一步地,所述根据漏洞补丁获取软件产品与漏洞的关联关系,构建漏洞知识图谱,包括,具体包括以下步骤:
14.a)从漏洞信息发布平台采集漏洞对应的补丁。
15.b)根据漏洞的补丁得到受漏洞影响的软件产品及对应的版本,细化软件产品粒度。
16.c)抽取知识图谱三元组《头实体,尾实体,关系》,补充到原有漏洞知识图谱,构建新的漏洞知识图谱。
17.进一步地,所述构建漏洞影响范围推理算法模型的数据集,包括以下步骤:
18.a)将漏洞知识图谱形式化定义为其中表示图的顶点集(即节点集),也即漏洞知识图谱中的实体集,ε表示图的边集,也即漏洞知识图谱中实体之间的关系集,为图中节点的属性集。其中,每个节点都有特定的节点类型,每条边都有特定的边类型。节点类型的映射函数为:边类型的映射函数为:其中和表示节点类型集合和边类型集合,且此外,属性映射函数为其中为属性键集合,为属性值集合。其中,ki表示节点vi的属性键,si表示节点vi的属性值。
19.b)对于漏洞知识图谱中各节点及其属性,使用pace(position-aware character embedding,位置感知的字符嵌入)、bert等初始化模型得到漏洞知识图谱中各节点的初始向量表示。
20.c)将漏洞知识图谱中的数据按照比例抽取划分生成训练集、验证集和测试集。
21.进一步地,构建的所述漏洞影响范围推理算法模型包含gatne-i或gatne-t,该模型的训练过程包括以下步骤:
22.a)输入训练集节点嵌入维度d,边嵌入维度s,学习率η。
23.b)初始化所有模型参数。
24.c)对训练集按照批处理大小进行随机游走采样,生成随机游走序列。
25.d)从随机游走序列中生成训练样本{(vi,vj,r)}。其中r表示节点vi和节点vj的关系类型。
26.e)根据损失函数进行梯度更新,更新模型参数,损失函数如下:
[0027][0028]
其中,类型为t的节点的概率分布为p
t
(v),cj是随机游走序列中节点vj的上下文节点嵌入向量,v
i,r
为节点vi在关系类型r下的嵌入向量,σ(x)为sigmoid激活函数,l为负样本个数,v
l,k
为从节点vj的概率分布中随机采样的第l个负样本,表示期望计算,c
l,k
表示节点v
l,k
的上下文嵌入向量。
[0029]
进一步地,上述步骤c)中,设置多种实体之间的元路径,指导随机游走算法生成随机游走序列,使得随机游走序列包含丰富的漏洞知识,提高训练样本的质量。
[0030]
进一步地,上述方法还包括对所述漏洞影响范围推理算法模型的训练结果进行评估的步骤,具体包括:
[0031]
a)设置评价指标,包括命中率(hit@10)、平均排名(mr)、平均倒数排名(mrr)。其计算公式如下:
[0032][0033][0034][0035]
其中,是指示函数,当输入为true的时候,输出为1,输入为false的时候,输出为0。为测试集,r
ij
为三元组(vi,vj,r)的排名。
[0036]
b)对于测试集中的每个正确三元组,用每个软件产品实体替换尾节点以生成污染三元组。
[0037]
c)将所有污染三元组与正确三元组送入训练好的模型,得到预测评分。
[0038]
d)根据计算公式计算正确三元组在所有三元组(包括正确三元组与污染三元组)中的hit@10,mr,mrr。
[0039]
一种基于深度学习的漏洞影响范围推理系统,其包括:
[0040]
漏洞知识图谱构建模块,用于采集漏洞信息,根据漏洞信息获取软件产品与漏洞的关联关系,构建漏洞知识图谱;
[0041]
数据集构建模块,用于根据漏洞知识图谱,构建漏洞影响范围推理算法模型的数据集;
[0042]
模型构建模块,用于利用构建的数据集,构建漏洞影响范围推理算法模型并对其进行训练;
[0043]
漏洞影响范围推理模块,用于利用训练完成的漏洞影响范围推理算法模型,进行漏洞影响范围推理。
[0044]
本发明的技术方案获得了下列有益效果:
[0045]
本发明综合了漏洞的多维度信息,利用深度学习技术提高了对漏洞的语义理解,能够高效准确地完成对漏洞影响范围的推理,能够有效挖掘尚未发现的受漏洞影响的开源软件产品,从而提早发现潜在的漏洞隐患。
附图说明
[0046]
图1是本发明的方法流程图。
[0047]
图2是本发明中漏洞影响范围推理算法模型构建流程图。
具体实施方式
[0048]
下面结合附图,对本发明做进一步的说明。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。应该指出,以下详细说明都是示例性的,旨在对本技术提供进一步的说明。
[0049]
本实施例提供一种基于深度学习的漏洞影响范围推理方法,其总体流程如图1所示,主要包括以下步骤:
[0050]
1)采集漏洞发布平台的漏洞数据,进行规范化处理,构建漏洞知识图谱。具体说明如下:
[0051]
1a)从漏洞信息发布平台采集漏洞对应的补丁。如漏洞编号为cve-2021-32773的安全漏洞,该漏洞源于使用racket沙箱评估的代码可能会导致系统模块错误地使用攻击者创建的模块而不是它们预期的依赖项,攻击者可利用此漏洞控制系统功能,从而允许访问旨在受到限制的设施。从nvd的漏洞详情页中获取该漏洞的补丁链接。然后转到1b)。
[0052]
1b)根据漏洞的补丁得到受漏洞影响的软件产品及对应的版本,细化软件产品粒度,得到包含漏洞、软件产品及版本号的数据文件,转到1c)。
[0053]
1c)根据数据文件中结构化数据的类型,基于已有的类型解析模板去构建对应的解析类,遍历数据文件,从中解析中构成知识图谱的实体和关系。最终生成的知识图谱数据文件格式以《头实体,尾实体,关系》这样的数据对构成。补充到原有漏洞知识图谱,构建新的漏洞知识图谱。
[0054]
2)根据漏洞知识图谱,构建漏洞影响范围推理模型的数据集,包括训练集、验证集、测试集。
[0055]
2a)将漏洞知识图谱形式化定义为其中表示图的顶点集,也即漏洞知识图谱中的实体集,ε表示图的边集,也即漏洞知识图谱中实体之间的关系集,为图中节点的属性集。其中,每个节点都有特定的节点类型,每条边都有特定的边类型。节点类型的映射函数为:边类型的映射函数为:其中和表示节点类型集合和边类型集合,且属性映射函数为其中为属性键集合,为属性值集合,转到2b)。
[0056]
2b)对于漏洞知识图谱中各节点及其属性,使用pace对短文本属性(如软件产品的名称)进行初始向量化。pace将文本编码为字符编码与位置作为权重的线性组合。可以有效地表达具有重复字符的相似文本的语义。对于长文本属性(如漏洞的描述)使用bert进行编码,bert基于transformer的编码器实现并在大规模语料库上训练的模型。被证明可以有效地对各种自然语言处理任务中的文本语义进行编码。最终得到漏洞知识图谱中各节点的初始向量表示。
[0057]
2c)基于已有的知识图谱三元组数据文件按照一定的比例抽取划分成三个数据集,包括训练集、验证集、测试集。
[0058]
3)构建漏洞影响范围推理算法模型进行训练。
[0059]
构建的漏洞影响范围推理算法模型包含gatne-i。其中gatne是通用的多路复用异构网络嵌入学习框架(general attributed multiplex heterogeneous network embedding)。gatne-i是gatne的归纳式模型,能够将节点的特征通过多层感知机转化为节
点初始嵌入向量,类似地,gatne-i将节点特征与边的类型结合得到边嵌入向量,最终将二者结合得到节点在不同边类型下的嵌入向量。由于以上特性,gatne-i更适合不断出现新节点的情况。
[0060]
其中,漏洞影响范围推理算法模型训练流程如图2所示,具体说明如下:
[0061]
3a)输入训练集嵌入维度d,学习率η,权重矩阵mr,转到3b)。
[0062]
3b)使用xavier方法对所有模型参数进行初始化,转到3c)。
[0063]
3c)设置实体间的元路径,使用基于元路径的随机游走,对训练集按照批处理大小进行随机游走采样,生成随机游走序列。元路径(meta-path)是实体类型和关系交替而成的序列。能够很好地指导类似知识图谱的异质网络生成随机游走序列,转到3d)。
[0064]
3d)从随机游走序列中生成训练样本{(vi,vj,r)},转到3e)。
[0065]
3e)根据损失函数进行梯度更新,更新模型参数,损失函数如下:
[0066][0067]
其中,类型为t的节点的概率分布为p
t
(v),cj是随机游走序列中节点vj的上下文节点嵌入向量,v
i,r
为节点vi在关系类型r下的嵌入向量,σ(x)为sigmoid激活函数,l为负样本个数,v
l,k
为从节点vj的概率分布中随机采样的第l个负样本,表示期望计算,c
l,k
表示节点v
l,k
的上下文嵌入向量。
[0068]
4)算法模型训练结果评估。
[0069]
4a)得到训练好的模型后,设置评价指标进行模型效果评估,包括命中率(hit@10)、平均排名(mr)、平均倒数排名(mrr)。其计算公式如下:
[0070][0071][0072][0073]
其中,是指示函数,当输入为true的时候,输出为1,输入为false的时候,输出为0。为测试集,r
ij
为三元组(vi,e,vj)的排名。转到4b)。
[0074]
4b)对于测试集中的每个正确三元组,用每个产品实体替换尾节点以生成污染三元组,转到4c)。
[0075]
4c)将所有污染三元组与正确三元组送入训练好的模型,得到预测评分,转到4d)。
[0076]
4d)根据计算公式计算正确三元组在所有三元组中的hit@10,mr,mrr。
[0077]
5)利用训练完成的漏洞影响范围推理算法模型,进行漏洞影响范围推理
[0078]
在实际应用场景中,利用训练完成的漏洞影响范围推理算法模型,对其输入漏洞、软件产品与相关属性,经过算法模型计算处理,输出漏洞影响范围推理结果。
[0079]
基于同一发明构思,本发明的另一实施例提供一种基于深度学习的漏洞影响范围
推理系统,其包括:
[0080]
漏洞知识图谱构建模块,用于采集漏洞信息,根据漏洞信息获取软件产品与漏洞的关联关系,构建漏洞知识图谱;
[0081]
数据集构建模块,用于根据漏洞知识图谱,构建漏洞影响范围推理算法模型的数据集;
[0082]
模型构建模块,用于利用构建的数据集,构建漏洞影响范围推理算法模型并对其进行训练;
[0083]
漏洞影响范围推理模块,用于利用训练完成的漏洞影响范围推理算法模型,进行漏洞影响范围推理。
[0084]
其中各模块的具体实施过程参见前文对本发明方法的描述。
[0085]
基于同一发明构思,本发明的另一实施例提供一种计算机设备(计算机、服务器、智能手机等),其包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行本发明方法中各步骤的指令。
[0086]
基于同一发明构思,本发明的另一实施例提供一种计算机可读存储介质(如rom/ram、磁盘、光盘),所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现本发明方法的各个步骤。
[0087]
以上公开的本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的普通技术人员可以理解,在不脱离本发明的精神和范围内,各种替换、变化和修改都是可能的。本发明不应局限于本说明书的实施例所公开的内容,本发明的保护范围以权利要求书界定的范围为准。
技术特征:
1.一种基于深度学习的漏洞影响范围推理方法,其特征在于,包括以下步骤:采集漏洞信息,根据漏洞信息获取软件产品与漏洞的关联关系,构建漏洞知识图谱;根据漏洞知识图谱,构建漏洞影响范围推理算法模型的数据集;利用构建的数据集,构建漏洞影响范围推理算法模型并对其进行训练;利用训练完成的漏洞影响范围推理算法模型,进行漏洞影响范围推理。2.如权利要求1所述的方法,其特征在于,所述根据漏洞信息获取软件产品与漏洞的关联关系,构建漏洞知识图谱,包括:从漏洞信息发布平台采集漏洞对应的补丁;根据漏洞的补丁得到受漏洞影响的软件产品及对应的版本,细化软件产品粒度;抽取知识图谱三元组<头实体,尾实体,关系>,补充到原有漏洞知识图谱,构建新的漏洞知识图谱。3.如权利要求1所述的方法,其特征在于,所述根据漏洞知识图谱,构建漏洞影响范围推理算法模型的数据集,包括:对于漏洞知识图谱中各节点及其属性,使用pace对短文本属性进行初始向量化,使用bert对于长文本属性进行初始向量化;将漏洞知识图谱中的数据按照比例划分生成训练集、验证集和测试集。4.如权利要求1所述的方法,其特征在于,所述漏洞影响范围推理算法模型包含gatne-i或gatne-t,所述漏洞影响范围推理算法模型的训练过程包括:输入训练集节点嵌入维度d,边嵌入维度s,学习率η;初始化所有模型参数;对训练集按照批处理大小进行随机游走采样,生成随机游走序列;从随机游走序列中生成训练样本{(v
i
,v
j
,r)},其中r表示节点v
i
和节点v
j
的关系类型;根据损失函数进行梯度更新,更新模型参数,损失函数如下:其中,类型为t的节点的概率分布为p
t
(v),c
j
是随机游走序列中节点v
j
的上下文节点嵌入向量,v
i,r
为节点v
i
在关系类型r下的嵌入向量,σ(x)为sigmoid激活函数,l为负样本个数,v
l,k
为从节点v
j
的概率分布中随机采样的第l个负样本,表示期望计算,c
l,k
表示节点v
l,k
的上下文嵌入向量。5.如权利要求4所述的方法,其特征在于,所述对训练集按照批处理大小进行随机游走采样,生成随机游走序列,包括:设置多种实体之间的元路径,用以指导随机游走算法生成随机游走序列,使得随机游走序列包含丰富的漏洞知识,提高训练样本的质量。6.如权利要求1所述的方法,其特征在于,还包括对所述漏洞影响范围推理算法模型的训练结果进行评估的步骤,具体包括:设置评价指标,包括命中率hit@10、平均排名mr、平均倒数排名mrr,其计算公式如下:
其中,是指示函数,当输入为true的时候,输出为1,输入为false的时候,输出为0;为测试集;r
ij
为三元组(v
i
,v
j
,r)的排名;对于测试集中的每个正确三元组,用每个软件产品实体替换尾节点以生成污染三元组;将所有污染三元组与正确三元组送入训练好的模型,得到预测评分;根据计算公式计算正确三元组在所有三元组中的hit@10,mr,mrr。7.如权利要求1所述的方法,其特征在于,所述利用训练完成的漏洞影响范围推理算法模型,进行漏洞影响范围推理,包括:在实际应用场景中,利用训练完成的漏洞影响范围推理算法模型,对其输入漏洞、软件产品与相关属性,经过漏洞影响范围推理算法模型计算处理,输出漏洞影响范围推理结果。8.一种基于深度学习的漏洞影响范围推理系统,其特征在于,包括以下步骤:漏洞知识图谱构建模块,用于获取漏洞补丁,根据漏洞补丁获取软件产品与漏洞的关联关系,构建漏洞知识图谱;数据集构建模块,用于根据漏洞知识图谱,构建漏洞影响范围推理算法模型的数据集;模型构建模块,用于利用构建的数据集,构建漏洞影响范围推理算法模型并对其进行训练;漏洞影响范围推理模块,用于利用训练完成的漏洞影响范围推理算法模型,进行漏洞影响范围推理。9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1~7中任一项所述方法的指令。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,所述计算机程序被计算机执行时,实现权利要求1~7中任一项所述的方法。
技术总结
本发明涉及一种基于深度学习的漏洞影响范围推理方法和系统。该方法的步骤包括:采集漏洞信息,根据漏洞信息获取软件产品与漏洞的关联关系,构建漏洞知识图谱;根据漏洞知识图谱,构建漏洞影响范围推理算法模型的数据集;利用构建的数据集,构建漏洞影响范围推理算法模型并对其进行训练;利用训练完成的漏洞影响范围推理算法模型,进行漏洞影响范围推理。进一步该方法还包括对所述漏洞影响范围推理算法模型的训练结果进行评估的步骤。本发明为了解决漏洞的影响范围推理准确率偏低的问题,提出了一种基于深度学习的漏洞影响范围推理方法,可以有效提高漏洞影响范围推理的准确率,提高安全漏洞挖掘能力。提高安全漏洞挖掘能力。提高安全漏洞挖掘能力。
技术研发人员:刘泽鑫 吴敬征 凌祥 罗天悦 王丽敏 屈晟 武延军
受保护的技术使用者:中国科学院软件研究所
技术研发日:2023.01.06
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/