一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种面向多源漏洞信息的事件图谱自动构建方法及系统与流程

2021-11-18 02:34:00 来源:中国专利 TAG:


1.本发明属于软件安全领域,特别涉及一种面向多源漏洞信息的事件图谱自动构建方 法及系统。


背景技术:

2.随着大数据时代的到来,高质量的数据集成为了科学研究的重要基石,因此,漏洞 研究的成败也与漏洞数据集质量的好坏息息相关。现存多个漏洞数据集,但缺少数据集 规范,导致信息内容杂乱、信息种类缺失等问题。因此需要自动化构建一个规整、规范、 可用性较强的漏洞事件图谱,涵盖多个数据源的漏洞发生信息,将原本杂乱的信息转化 为规整的知识,以便于开发人员直观地对漏洞进行理解、分析和使用,减少了漏洞数据 集构建的人力资本,也便于支撑后期的漏洞分析及诊断。
3.事件知识图谱从自然语言文本中抽取事件和实体、属性、关系等进行知识融合,然 后通过本体构建体系框架,以结构化的三元组形式存储。目前已有一些工作构建事件图 谱,如文献《building event

centric knowledge graphs from news》提出了一种以事件为中 心的知识图谱,从新闻报道里抽取事件,包括时间、地点和参与者等等,并建立了事件 之间的因果关系和共指关系,重构了历史发展和时间演变。也有工作提出了以事件为中 心的多语言时序知识图谱,如文献《eventkg:a multilingual event

centric temporalknowledge graph》从dbpedia等大型知识图谱中抽取了69万个当代和历史事件、230 多万个时序关系,并对抽取的事件、实体和关系进行了融合。现有的事件知识图谱研究 大多集中在历史、金融和新闻领域中,而少有涉及其他领域。现有的公开专利均为基于 安全漏洞的传统知识图谱构建方法,将漏洞看作实体,将漏洞报告中的一些基础属性看 做是实体属性,例如产品名称、cwe

id、cvss评分、公开日期等。而漏洞本身是一 个有过程的事件,除了上述的基础属性,它还有触发条件、原因、结果、位置等事件属 性。传统的知识图谱难以对其进行表示,从而使用事件图谱表征漏洞事件是具有可行性 的。


技术实现要素:

4.发明目的:本发明的目的在于针对上述现状存在的问题,提供一种面向多源漏洞信 息的事件图谱自动构建方法及系统,以整合漏洞相关的多种信息并进行识别,并将其可 视化为漏洞事件图谱。
5.技术方案:为实现上述发明目的,本发明采用的技术方案为:一种面向多源漏洞信 息的事件图谱自动构建方法,包括以下步骤:
6.步骤1,根据cve

id从漏洞数据库中爬取漏洞报告,构建漏洞报告数据集;
7.步骤2,将漏洞的发生原因视为事件触发词,构建漏洞事件触发词标注集,进行漏 洞事件的触发词提取,并通过触发词判断漏洞类型;
8.步骤3,通过命名实体识别的方式从漏洞的描述信息中提取漏洞事件元素,并进行 信息补全;
9.步骤4,利用文本信息抽取显式的漏洞事件关系,并利用文本相似性抽取隐式的漏 洞事件关系;
10.步骤5,进行漏洞相关代码的表征;
11.步骤6,将步骤2至步骤5所得的漏洞事件信息可视化为漏洞事件图谱;所述图谱 中包括漏洞事件的相关元素,漏洞事件之间的关系,漏洞事件通过事件触发词关联漏洞 类型。
12.进一步地,所述步骤1中根据cve

id采集漏洞数据库cve、nvd和ibm x

forceexchange中的漏洞报告;获取报告中的描述信息、发布日期、cvss分值、cwe类别 以及相关链接,以此得到漏洞报告数据集。
13.进一步地,所述步骤2中利用漏洞事件触发词标注集,训练bert模型的序列标注 任务,并利用训练后的模型进行触发词提取;利用softmax分类器将提取的触发词进行 分类,漏洞类型包括时序漏洞、配置漏洞、输入验证漏洞、内存漏洞、逻辑资源漏 洞、数字漏洞、未知漏洞中的一种或多种。
14.进一步地,所述步骤3中提取的漏洞事件中的事件元素包括触发操作、发生情境、 攻击者、影响版本、后果和位置;利用构建的漏洞事件元素标注集,训练bert模型 的序列标注任务,并利用训练后的模型连接bilstm层和crf层进行事件元素提取。
15.进一步地,所述步骤3中在cve和nvd描述中缺失部分事件元素时,利用ibmx

force exchange中的描述进行事件元素补全。
16.进一步地,所述步骤4中通过句型模板对显式的漏洞事件关系进行提取,漏洞显式 关系类型包括相似关系、因果关系、兄弟关系、回归关系、包含关系和依赖关系中 的一种或多种。
17.进一步地,所述步骤4中通过计算漏洞描述信息向量化表示的余弦相似度,提取漏 洞隐式的相似关系。
18.进一步地,所述步骤5中将漏洞代码表示为抽象语法树ast、控制流图cfg、程 序依赖图pdg中的一种或多种。
19.基于相同的发明构思,本发明提供的一种面向多源漏洞信息的事件图谱自动构建系 统,包括:
20.数据集构建模块,用于根据cve

id从漏洞数据库中爬取漏洞报告,构建漏洞报告 数据集;
21.触发词提取模块,用于将漏洞的发生原因视为事件触发词,构建漏洞事件触发词标 注集,进行漏洞事件的触发词提取,并通过触发词判断漏洞类型;
22.漏洞事件元素识别模块,用于通过命名实体识别的方式从漏洞的描述信息中提取漏 洞事件元素,并进行信息补全;
23.漏洞事件关系识别模块,用于利用文本信息抽取显式的漏洞事件关系,并利用文本 相似性抽取隐式的漏洞事件关系;
24.漏洞代码表示模块,用于进行漏洞相关代码的表征;
25.以及可视化模块,用于将所得的漏洞事件信息可视化为漏洞事件图谱;所述图谱中 包括漏洞事件的相关元素,漏洞事件之间的关系,漏洞事件通过事件触发词关联漏洞类 型。
26.基于相同的发明构思,本发明提供的一种面向多源漏洞信息的事件图谱自动构建系 统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计 算机程序被加载至处理器时实现所述的面向多源漏洞信息的事件图谱自动构建方法。
27.有益效果:本发明与现有技术相比,其显著优点为:1)根据漏洞本身是有过程的 事件这一特点,构建漏洞领域的事件图谱,相较于普通的漏洞数据集,开发人员能够更 加直观地对漏洞事件及其相关的事件因素进行了解;相较于已有的漏洞图谱构建技术, 本发明并不局限于提取漏洞报告中已有的元素和关系,而是利用算法将报告文本中的事 件元素及隐式关系提取出来。2)通过观察漏洞报告,明确漏洞事件的各项元素并使用 bert bilstm crf模型进行提取,包括触发操作、影响版本、攻击者、后果、位 置等,对漏洞事件表征更全面;3)考虑到事件元素的缺失问题,本研究不局限于 cve/nvd网站中的漏洞描述,还利用ibm x

force exchange中的描述进行事件元素补 全,构建的事件图谱更完整;4)在事件关系方面,本研究同时考虑显式和隐式的漏洞 事件关系,除了从描述语句中直接得出事件间的显式关系,还通过计算描述语句间的相 似性以判断事件间的隐式关系,能够充分发掘出漏洞事件之间的关系;5)考虑到漏洞 事件的领域特征,不仅从描述文本中抽取事件元素,还通过多种代码图的组合表征漏洞 代码语义信息,以此丰富漏洞事件图谱。
附图说明
28.图1为一个实施例中面向多源漏洞信息的事件图谱自动构建方法的流程图。
29.图2为一个实施例中cve、nvd和ibm x

force exchange的漏洞报告截图。
30.图3为一个实施例中漏洞事件触发词标注示意图。
31.图4为一个实施例中bert模型训练示意图。
32.图5为一个实施例中漏洞事件元素标注示意图。
33.图6为一个实施例中bert bilstm crf模型示意图。
34.图7为一个实施例中cve

2017

3169的cve/nvd及ibm x

force exchange的事件 元素标注示意图。
35.图8为一个实施例中漏洞事件显式关系示意图。
36.图9为一个实施例中漏洞事件隐式关系示意图。
37.图10为一个实施例中漏洞事件图谱的部分示意图。
具体实施方式
38.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术, 并不用于限定本技术。
39.在一个实施例中,结合图1,本发明提出一种面向多源漏洞信息的事件图谱自动构 建方法,首先,根据cve

id从漏洞数据库中爬取漏洞报告,构建漏洞报告数据集;然 后,针对漏洞事件,将漏洞的发生原因视为事件触发词进行识别,并通过其判断漏洞类 型;其次,对漏洞的描述文本信息进行标注,通过命名实体识别的方式对描述中的攻击 者、后果、位置等信息进行识别,并进行信息补全;再其次,利用文本信息抽取显式的 事件关系,并利用文本相似性抽取隐式的事件关系。然后,利用ast、dfg、cfg的 代码表示方式来表征漏洞的
相关代码。最终借助可视化工具将其可视化显示为漏洞事件 图谱。主要步骤概括如下:
40.步骤1,构建漏洞报告数据集;
41.步骤2,进行漏洞事件的触发词提取,并通过其判断漏洞类型;
42.步骤3,进行漏洞事件元素的提取,并进行信息补全;
43.步骤4,进行漏洞事件的关系抽取;
44.步骤5,进行漏洞相关代码的表征;
45.步骤6,将上述步骤所得漏洞事件信息可视化为漏洞事件图谱。
46.进一步地,在其中一个实施例中,步骤1所述构建漏洞报告数据集,具体过程包括:
47.步骤1

1,根据cve

id采集漏洞数据库cve、nvd和ibm x

force exchange中 的漏洞报告,如图2分别为三个数据库的漏洞报告截图;
48.步骤1

2,对提取出的漏洞报告进行预处理,去除报告中的多余信息,获取报告中 的描述信息、发布日期、cvss分值、cwe类别以及相关链接,以此得到漏洞报告数据 集。
49.进一步地,步骤2所述的进行漏洞事件的触发词提取,并通过其判断漏洞类型,具 体过程包括:
50.步骤2

1,使用bio标注方法针对漏洞报告中的描述进行人工标注,将漏洞事件中 的原因视为事件触发词。如图3所示,“double free vulnerability”为该句描述中的发生 原因(即,触发词),则将三个单词分别标注为“b

trigger”、“i

trigger”和“i

trigger”。 此外,将其余词均标注为“o”。以此构建漏洞事件触发词标注集,并随机选取80%的 描述数据作为训练集,剩下的20%作为测试集;
51.步骤2

2,利用步骤2

1中构建的漏洞事件触发词标注集,如图4,训练bert模型 的序列标注任务,bert的词嵌入层具有三个嵌入层,分别为token embedding层、segment embeddings层和position embeddings层。此外,在对输入语句分词后两个特殊的token 会被插入到分词结果的开头([cls])和结尾([sep])。再利用训练后的模型进行触发词提 取;
[0052]
步骤2

3,利用softmax分类器将步骤2

2中提取的触发词进行分类,具体类别如表 1。在多项逻辑回归和线性判别分析中,softmax函数的输入是从k个不同的线性函数得 到的结果,而样本向量x属于第j个分类的概率为:
[0053][0054]
其中,y表示某个类别,x为样本向量,x
t
为样本向量的转置向量,w为权重参数。该函 数的分子是通过指数函数将实数输出映射到零至正无穷,而分母试讲所有结果相加,进 行归一化。且样本向量x属于每个分类的概率值的和为1,选取概率最高值为该样本的 分类类型。
[0055]
表1漏洞事件触发词类型表
[0056][0057]
进一步地,步骤3所述的进行漏洞事件元素的提取,并进行信息补全,具体过程包 括:
[0058]
步骤3

1,明确漏洞事件中的事件元素,包括触发操作、影响版本、攻击者、后果、 位置等,具体说明如表2;
[0059]
表2漏洞事件元素说明表
[0060][0061]
步骤3

2,针对漏洞报告中的描述进行人工标注,如图5,将包括触发词的无用词标注为“o”,对触发操作、发生情境和攻击者等事件元素进行相应标注,例如,将“linuxkernelbefore2.6.22”分别标注为“b

ver”、“i

ver”、“i

ver”和“i

ver”。以此构建漏洞事件元素标注集,并随机选取80%的描述数据作为训练集,剩下的20%作为测试集;
[0062]
步骤3

3,利用步骤3

2中构建的漏洞事件元素标注集,训练bert模型的序列标注任务,并利用训练后的模型连接bilstm层和crf层进行事件元素提取,如图6。其中,bilstm层用于提取特征,而crf层的作用是为最后预测的标签添加一些约束来保证预测的标签是合法的。在训练数据训练过程中,这些约束可以通过crf层自动学习到。可能学习到的约束有:1)句子中第一个词总是以标签“b
‑“
或“o”开始,而不是“i
‑”
。2)标签“b

label1i

label2i

label3i
‑…”
,label1,label2,label3应该属于同一类实体。例如,“b

coni

con”是合法的序列,但是“b

coni

atk”是非法标签序列。3)标签序列“oi

label”是非法的标签。实体标签的首个标签应该是“b
‑”
,而非“i
‑”
,换句话说,有效的标签序列应该是“ob

label”。
[0063]
步骤3

4,cve和nvd描述中可能会缺失部分事件元素,因此,结合ibmx

forceexchange中的描述,同样利用上述步骤3

1至3

3中的bert bilstm crf模型进行事件元素提取,以补全缺失的元素。结合图7中的实例可以得知,图7(a)中cve

2017

3169的cve/nvd描述缺失了攻击者和后果这两个元素,而如图7(b),在ibmx

forceexchange的相应描述中能够查找到缺失的两个信息,以此对漏洞事件元素进行补充。
[0064]
进一步地,步骤4所述的进行漏洞事件的关系抽取,具体过程包括:
[0065]
步骤4

1,结合图8可以得知,漏洞报告中存在显式的事件关系,具体类型见表3。
例如从图8cve

2012

5532描述中的“note:thisvulnerabilityexistsbecauseofanincorrectfixforcve

2012

2669.”可以看出,cve

2012

5532的发生是由于cve

2012

2669的错误修复导致的,这是一种因果关系。通过相关句型模板对显式的漏洞事件关系进行提取;
[0066]
表3漏洞显式关系类型表
[0067][0068]
步骤4

2,结合图9可以得知,漏洞报告中存在隐式的事件关系。例如从图9(a)和图9(b)中可以看出,cve

2018

18500和cve

2019

9790的描述是相似的,因此存在隐式的漏洞事件关系。对漏洞事件的描述语句进行相似性计算并提取隐式的相似关系,首先将两个描述语句通过bert进行向量化表示,然后使用余弦相似度对两者进行计算得到相似度,以此判断两者是否为相似关系。
[0069]
进一步地,步骤5所述的进行漏洞相关代码的表征,具体过程包括:对漏洞数据集中的所有数据进行代码表征,通过工具joern将漏洞代码表示为抽象语法树ast、控制流图cfg、程序依赖图pdg。通过ast、cfg和pdg将代码表征为了复合图形结构,代码中的数据传递和控制依赖通过有向边连接各个图结点。
[0070]
进一步地,步骤6所述的将上述步骤所得漏洞事件信息可视化为漏洞事件图谱,具体过程包括:将上述步骤2、3、4和5得到的事件触发词、事件元素、事件关系和代码表示用neo4j工具进行可视化,形成漏洞事件图谱,如图10为漏洞事件图谱的部分示意图(图中省略了漏洞事件的发布日期、cvss分值等基本元素、提取的触发操作以及相关代码表征的节点)。
[0071]
本发明针对漏洞数据挖掘领域,提出了一种面向多源漏洞信息的事件图谱自动构建技术。该技术整合了漏洞相关的多种信息并进行识别,最终利用可视化工具进行可视化显示。首先,漏洞事件图谱的自动构建能够让开发人员更加直观地对漏洞事件及其相关的事件因素进行了解,减少开发人员手动分析和理解漏洞数据的人力和时间成本,提高他们
进行软件维护的有效性和高效性。其次,研究者可以将构建好的漏洞事件图谱视作 漏洞分析和修复的基石,利用图谱中的大量数据所形成的知识更快速准确地进行漏洞分 析及修复,以减少漏洞带来的安全隐患和经济损失等。
[0072]
基于相同的发明构思,在一个实施例中,本发明提出的一种面向多源漏洞信息的事 件图谱自动构建系统,包括:数据集构建模块,用于根据cve

id从漏洞数据库中爬取 漏洞报告,构建漏洞报告数据集;触发词提取模块,用于将漏洞的发生原因视为事件触 发词,构建漏洞事件触发词标注集,进行漏洞事件的触发词提取,并通过触发词判断漏 洞类型;漏洞事件元素识别模块,用于通过命名实体识别的方式从漏洞的描述信息中提 取漏洞事件元素,并进行信息补全;漏洞事件关系识别模块,用于利用文本信息抽取显 式的漏洞事件关系,并利用文本相似性抽取隐式的漏洞事件关系;漏洞代码表示模块, 用于进行漏洞相关代码的表征;以及可视化模块,用于将所得的漏洞事件信息可视化为 漏洞事件图谱;所述图谱中包括漏洞事件的相关元素,漏洞事件之间的关系,漏洞事件 通过事件触发词关联漏洞类型。各模块的具体实施细节参考上述的面向多源漏洞信息的 事件图谱自动构建方法,此处不再赘述。
[0073]
基于相同的发明构思,在一个实施例中,本发明提出的一种面向多源漏洞信息的事 件图谱自动构建系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计 算机程序,该计算机程序被加载至处理器时实现上述的面向多源漏洞信息的事件图谱自 动构建方法。
[0074]
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了 解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原 理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和 改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等 效物界定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献