基于文本预训练模型的漏洞相似性对比方法及系统与流程

文档序号:32789189发布日期:2023-01-03 20:27阅读:14来源:国知局
基于文本预训练模型的漏洞相似性对比方法及系统与流程

1.本发明涉及漏洞数据检测领域,特别涉及一种基于文本预训练模型的漏洞相似性对比方法及系统。


背景技术:

2.目前,漏洞扫描评估产品主要采用的是基于漏洞知识库的技术。漏洞知识库,即各国信息安全中心及信息安全厂商和组织组建起的漏洞库,例如cve(common vulnerabilities&exposures,通用漏洞披露)等。现有的漏洞扫描产品往往支持多种漏洞库,甚至支持整合多种漏洞扫描技术。为提高漏洞扫描结果的精准性,更好地进行漏洞分析和风险评估,需要一种漏洞相似度对比技术,将相似漏洞归一化处理。
3.现有的漏洞相似性检测技术主要包括基于规则匹配的方法以及基于文本挖掘的方法。对于规则匹配法,主要是通过提取漏洞信息中的关键词,以关键词重合度作为漏洞间的相似度。漏洞关键词往往从漏洞描述,漏洞类型,漏洞风险等级等信息中提取。这种方式依赖于漏洞信息的完整性和一致性,且没有挖掘出漏洞信息中深层次的语义信息。由于不同漏洞扫描技术的规范不同,漏洞信息的描述方式往往也不同,很容易出现误判的情况。对于基于文本挖掘的方法,主要是通过利用现有的自然语言处理(natural language processing,nlp)技术,对漏洞信息进行建模和比对。目前已有的漏洞相似性比对技术,主要是将漏洞相似性比对问题转化为nlp中的文本相似度问题,通过运用word2vec词向量生成模型以及tf-idf(term frequency

inverse document frequency)加权技术对漏洞文本进行向量化,然后以向量相似度作为漏洞相似度。这种技术相较于规则匹配法更为灵活,能够提取漏洞文本中深层次的语义信息,弥补了规则匹配法存在的缺陷。
4.然而,由于nlp技术的快速发展,现有漏洞相似性比对技术采用的word2vec+tf-idf的技术选型已经较为过时,其效果只能满足简单的,信息量较少的漏洞相似性判断,在实际的漏洞相似性比对问题中,存在很多比较棘手的相似性判断问题,例如两条漏洞文本除资产类型外,其余部分完全相同;或两条漏洞描述的是同一资产下的不同漏洞等情况。由于这些情况下的漏洞文本只存在细微的差异,即使运用了一些文本挖掘技术,也能够得到很高的相似性,但实际描述的并不是同一类漏洞。因此,需要一种更为精细化的,多维的漏洞相似性对比技术,能够更准确地判断漏洞相似性。


技术实现要素:

5.基于此,本技术实施例提供了一种基于文本预训练模型的漏洞相似性对比方法及系统,从文本相似度,主体词和漏洞类型三个维度来判别两个漏洞文本是否属于同一类漏洞描述,从而提高了判断漏洞相似性的准确度。
6.第一方面,提供了一种基于文本预训练模型的漏洞相似性对比方法,该方法包括:
7.获取漏洞扫描产品的漏洞文本数据集;
8.对漏洞文本数据集进行预处理得到目标漏洞文本;
9.基于预先训练的sentence-bert模型对所述目标漏洞文本进行向量化得到漏洞文本向量;所述漏洞文本向量用于表征句子在向量空间上的语义信息;
10.对所述目标漏洞文本进行文本分词和主体词库过滤,提取出所述目标漏洞文本的主体词;
11.基于漏洞关键词正则匹配以及hmcn模型对所述目标漏洞文本进行处理得到所述目标漏洞文本的漏洞类型;
12.将所获得的所述漏洞文本向量、所述主体词以及所述漏洞类型分别进行漏洞相似度计算,并将所得的各个漏洞相似度计算结果加权求和,得到漏洞相似性对比结果。
13.可选地,所述对漏洞文本数据集进行预处理,包括:
14.对所述漏洞文本数据集进行过滤描述短和/或长文本,英文转小写。
15.可选地,基于预先训练的sentence-bert模型对所述目标漏洞文本进行向量化得到漏洞文本向量,包括:
16.使用孪生网络模型和三胞胎网络模型生成具有语义的句子embedding向量。
17.可选地,对所述目标漏洞文本进行文本分词和主体词库过滤,提取出所述目标漏洞文本的主体词,包括:
18.将漏洞文本中的英文部分进行提取,再经过分词处理后,与英文主体词库进行比对,将比对结果中处于预设单词列表的单词作为漏洞文本的主题词;其中,所述预设单词列表通过人工设定具有意思的单词列表。
19.可选地,将所获得的漏洞文本向量进行漏洞相似度计算,包括:
20.基于漏洞文本向量间的余弦相似度计算得到第一漏洞相似度计算结果。
21.可选地,
22.将所获得的主体词进行漏洞相似度计算,包括:
23.获取到其主体词列表和位置权重列表;
24.获取主体词列表和位置权重列表的交集部分;
25.并根据公式
[0026][0027]
得到第二漏洞相似度计算结果;其中,a表示目标漏洞文本,b表示对比漏洞文本,spla(i)表示主题词i在目标漏洞文本中位置权重,splb(i)表示主题词i在对比漏洞文本中位置权重,n表示主体词列表。
[0028]
可选地,将所获得的漏洞类型进行漏洞相似度计算,包括:
[0029]
当漏洞文本对的类型相同,则将第三漏洞相似度计算结果赋值为1;
[0030]
当漏洞文本对的类型不相同,则将第三漏洞相似度计算结果赋值为0。
[0031]
第二方面,提供了一种基于文本预训练模型的漏洞相似性对比系统,该系统包括:
[0032]
获取模块,用于获取漏洞扫描产品的漏洞文本数据集;
[0033]
预处理模块,用于对漏洞文本数据集进行预处理得到目标漏洞文本;
[0034]
向量化模块,用于基于预先训练的sentence-bert模型对所述目标漏洞文本进行向量化得到漏洞文本向量;所述漏洞文本向量用于表征句子在向量空间上的语义信息;
[0035]
提取模块,用于对所述目标漏洞文本进行文本分词和主体词库过滤,提取出所述目标漏洞文本的主体词;
[0036]
处理模块,用于基于漏洞关键词正则匹配以及hmcn模型对所述目标漏洞文本进行处理得到所述目标漏洞文本的漏洞类型;
[0037]
计算模块,用于将所获得的所述漏洞文本向量、所述主体词以及所述漏洞类型分别进行漏洞相似度计算,并将所得的各个漏洞相似度计算结果加权求和,得到漏洞相似性对比结果。
[0038]
可选地,所述预处理模块具体包括:
[0039]
对所述漏洞文本数据集进行过滤描述。
[0040]
可选地,所述向量化模块具体包括:
[0041]
使用孪生网络模型和三胞胎网络模型生成具有语义的句子embedding向量。
[0042]
本技术实施例提供的技术方案中首先获取漏洞扫描产品的漏洞文本数据集;对漏洞文本数据集进行预处理得到目标漏洞文本;基于预先训练的sentence-bert模型对目标漏洞文本进行向量化得到漏洞文本向量;对目标漏洞文本进行文本分词和主体词库过滤,提取出目标漏洞文本的主体词;然后基于漏洞关键词正则匹配以及hmcn模型对目标漏洞文本进行处理得到目标漏洞文本的漏洞类型;最后将所获得的漏洞文本向量、主体词以及漏洞类型分别进行漏洞相似度计算,并将所得的各个漏洞相似度计算结果加权求和,得到漏洞相似性对比结果。可以看出,本发明的有益效果至少包括:
[0043]
(1)基于多维相似度对比,计算准确率高;
[0044]
(2)无需进行大量规则匹配,计算效率高;
[0045]
(3)模型训练后可复用,维护人工成本低;
[0046]
(4)相似度计算灵活性高,误报低;
[0047]
(5)封装程度高,专业人员水平要求低。
附图说明
[0048]
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其它的实施附图。
[0049]
图1为本技术实施例提供的一种基于文本预训练模型的漏洞相似性对比方法流程图;
[0050]
图2为本技术实施例提供的一种漏洞文本主体词提取流程图;
[0051]
图3为本技术实施例提供的一种漏洞文本类型识别流程图。
具体实施方式
[0052]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0053]
在本发明的描述中,除非另有说明“多个”的含义是两个或两个以上。本发明的说
classification networks,层次多标签分类网络)模型预测漏洞文本的漏洞类型。如图3是漏洞类型识别方案的整体流程。本技术优先使用成本较小的,性能较好的漏洞关键词规则匹配方式确定漏洞类型。在漏洞描述或漏洞名称中,往往直接包含了漏洞常见的关键词,通过正则匹配的方式可以快速识别出其漏洞类型。如果在文本中没有包含此类关键词,本技术就需要借助漏洞文本的cwe编号做判断,cwe编号能够指出详细的漏洞类型,通过cwe编号与漏洞类型的对应关系,即可以直接确定漏洞类型。若通过上述基于规则的方式仍然无法确定漏洞类型,则需要先借助分类模型预测出一段文本对应的cwe编号,再用cwe编号识别其漏洞类型。
[0067]
s6,将所获得的漏洞文本向量、主体词以及漏洞类型分别进行漏洞相似度计算,并将所得的各个漏洞相似度计算结果加权求和,得到漏洞相似性对比结果。
[0068]
在本实施例中,基于上述流程得到的《漏洞文本向量,主体词,漏洞类型》三元组进行漏洞文本相似度计算。对于任意一对漏洞文本,在根据上述介绍的漏洞文本相似度计算,漏洞主体词相似度计算,以及漏洞类型识别之后,可以得到三个维度的分数(即第一漏洞相似度计算结果、第二漏洞相似度计算结果、第三漏洞相似度计算结果)。目前本技术采用加权的方式将三个维度的分数组合起来,得到一对漏洞文本最终的相似度分数。其中,漏洞文本相似度是基于漏洞文本向量间的余弦相似度计算的,计算公式为:
[0069][0070]
其中,x,y表示待获得漏洞文本相似度的漏洞文本对。
[0071]
对于主体词相似度计算,首先本技术先获取到其主体词列表wl(word list)和位置权重列表pl(position list),其中pl(i)=len(wl)-i-1。接着,本技术取这两条漏洞文本wl和pl的交集部分swl(same word list)和spl(same position list),用如下公式计算相似度,其中n=len(swl)。该公式借鉴了余弦相似度计算公式,能够从文本重合度和位置重合度两个方面度量主体词列表之间的相似性。
[0072][0073]
由上可知,a表示目标漏洞文本,b表示对比漏洞文本,spla(i)表示主题词i在目标漏洞文本中位置权重,splb(i)表示主题词i在对比漏洞文本中位置权重,n表示主体词列表。
[0074]
对于漏洞类型相似度,本技术直接采用与运算,若漏洞文本对的类型相同,则为1,否则为0。在得到上述三个维度的分数之后,最终漏洞相似度分数的计算公式为score(x,y)=0.6*textsimilarity(x,y)+0.2*entitysimilarity(x,y)+0.2*(vultype(x)&vultype(y)),其中,各维度的权重可以根据实际情况做调整。
[0075]
本技术实施例还提供的一种基于文本预训练模型的漏洞相似性对比系统。系统包括:
[0076]
获取模块,用于获取漏洞扫描产品的漏洞文本数据集;
[0077]
预处理模块,用于对漏洞文本数据集进行预处理得到目标漏洞文本;
[0078]
向量化模块,用于基于预先训练的sentence-bert模型对目标漏洞文本进行向量
化得到漏洞文本向量;漏洞文本向量用于表征句子在向量空间上的语义信息;
[0079]
提取模块,用于对目标漏洞文本进行文本分词和主体词库过滤,提取出目标漏洞文本的主体词;
[0080]
处理模块,用于基于漏洞关键词正则匹配以及hmcn模型对目标漏洞文本进行处理得到目标漏洞文本的漏洞类型;
[0081]
计算模块,用于将所获得的漏洞文本向量、主体词以及漏洞类型分别进行漏洞相似度计算,并将所得的各个漏洞相似度计算结果加权求和,得到漏洞相似性对比结果。
[0082]
在本技术一个可选的实施例中,预处理模块具体包括:对漏洞文本数据集进行过滤描述。
[0083]
在本技术一个可选的实施例中,向量化模块具体包括:使用孪生网络模型和三胞胎网络模型生成具有语义的句子embedding向量。
[0084]
本技术实施例提供的基于文本预训练模型的漏洞相似性对比系统用于实现上述基于文本预训练模型的漏洞相似性对比方法,关于基于文本预训练模型的漏洞相似性对比系统的具体限定可以参见上文中对于基于文本预训练模型的漏洞相似性对比方法的限定,在此不再赘述。上述基于文本预训练模型的漏洞相似性对比系统中的各个部分可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于设备中的处理器中,也可以以软件形式存储于设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0085]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0086]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1