首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 恶意软件 / 一种基于深度学习的信息安全知识图谱的自动构建方法

一种基于深度学习的信息安全知识图谱的自动构建方法

阅读:937发布:2020-05-12

专利汇可以提供一种基于深度学习的信息安全知识图谱的自动构建方法专利检索,专利查询,专利分析的服务。并且一种基于 深度学习 的信息安全知识图谱的自动构建方法,包括以下步骤,步骤1,构建信息安全知识图谱的本体库;步骤2,对收集的数据基于启发式规则的方式进行标注得到实体识别的训练集,并设计了基于Bi-LSTM的模型结构进行学习作为实体识别的模型,从而 抽取 出文本的实体词;步骤3,基于三元组知识来进行自动标注得到关系抽取的训练集,并设计了基于注意 力 机制的LSTM结构作为关系抽取的模型,从而抽取出文本中的三元组(关系)。,下面是一种基于深度学习的信息安全知识图谱的自动构建方法专利的具体信息内容。

1.一种基于深度学习的信息安全知识图谱的自动构建方法,其特征在于,包括以下步骤,步骤1,构建信息安全知识图谱的本体库;步骤2,对收集的数据基于启发式规则的方式进行标注得到实体识别的训练集,并设计了基于Bi-LSTM的模型结构进行学习作为实体识别的模型,从而抽取出文本的实体词;步骤3,基于三元组知识来进行自动标注得到关系抽取的训练集,并设计了基于注意机制的LSTM结构作为关系抽取的模型,抽取文本中的三元组。
2.如权利要求1所述的方法,其特征在于,所述本体库的包括实体的类型和实体的关系,所述实体类型共12种,所述实体类型包括软件,软件供应商,漏洞,漏洞类型,攻击,恶意软件,防御工具,软件的更新,软件的版本,文件,代码硬件;所述关系共8种。
3.如权利要求2所述的方法,其特征在于,所述对本体库的数据集进行标注的具体方式为,首先根据本题库定义的实体类型,对每一种类型的实体收集词汇构成实体词典,然后根据实体词典对文本句子进行标注。
4.如权利要求3所述的方法,其特征在于,采用了Bi-LSTM来对句子进行编码的具体方式为首先将句子序列中的每个词转化为词向量,然后作为LSTM的输入,LSTM每一个STEP的输出作为句子中对应词的表征,Bi-LSTM从句子的两个方向分别进行编码,由此对于每一个词语得到了两个表征编码 和 两个向量分别表示该词
的上文信息和下文信息。并且使用激活函数得到类别取值的概率分布的具体方式为zi=wTHi+b
Fi=softmax(zi),
其中以上公式中的Hi对应于第i的词的向量表达,concat是一个连接操作,将两个向量拼接到一起,wT,b分别为权重和偏差,zi是经过一个全连接层对于每个词语的向量表示,Fi为最终每个词语的类别概率分布,表示该词语属于哪个类别,softmax是一个权重函数,输出每个类别的概率。
5.如权利要求5所述的方法,其特征在于,所述基于三元组知识来进行自动标注得到训练集的方式为首先基于CVE数据中提取出的字段建立一个三元组的词典,然后对于一个句子中识别出来的实体词,两两去查看是否在三元组字典中,如果在,将这个实体对和该句子作为一个训练样本加入到训练集中。从而构造出一个用来做关系抽取的数据集。
6.如权利要求5所述的方法,其特征在于,所述建立基于注意力结构的LSTM描述上下文的具体方式为首先将句子中的词对应到一个向量表示,然后通过Bi-LSTM得到对应于每个词的隐状态Hi,然后与实体词L1和L2的向量和通过注意力层计算一个权重分布,最后得到Hi的加权和Hs,公式如下:
ei=Wembeddingxi
Hi=[forward_LSTM(ei),backward_LSTM(ei)]
SP=sum_pooling(eL1,eL2)
α=softmax(wT[SP,Hi,dot_product(SP,Hi)])
Hs=αH
其中上式中Wembedding对应于每个词的词向量,上式中xi为对应每个词的编号,通过编号在词向量表中我们索引到对应该词的向量。上式为H为表示[H1,H2,...,HT],Hs即为注意力层的输出,其中forward_LSTM和backward_LSTM分别对应于前向和后向的LSTM。上式中ei为每个词对应的词向量,SP对应于实体词对的词向量和,dot_Product表示两个向量的点积。

说明书全文

一种基于深度学习的信息安全知识图谱的自动构建方法

技术领域

[0001] 本发明涉及一种图谱的自动构建方法,尤其涉及一种基于深度学习的信息安全知识图谱的自动构建方法。

背景技术

[0002] 目前的信息安全知识库大多数采用人工维护和更新的方式进行维护,比较著名的比如CVE(公共漏洞知识库),但CVE的更新大多采用人工手动更新的方式,不能及时地更新一些新发现地漏洞和攻击知识,而这些知识往往都已经在第一时间发表在相关公司厂商或者安全团队的博客里,所以有必要采用一种自动更新的方式从文本中挖掘和提取知识。
[0003] 除了公开的知识库之外,现有技术有一些研究比如Stucco,通过采用机器学习的方法从文本中提取三元组从而构建知识图谱,在实体识别过程中采用最大熵模型基于标注的预料进行训练从而从文本提取相关的实体,在提取实体之后,使用基于主动学习的半监督方法进行关系抽取,构建了一个信息安全的知识库。
[0004] 然而目前现有技术中存在两个问题,第一,基于人工整理的方式,虽然具有较好的准确率,但是存在更新不及时的问题;第二,目前基于机器学习方法的研究,算法的效果不够好,尤其是在关系抽取阶段,介入了人工的辅助才能进行学习,构建过程仍然不是完全自动化。

发明内容

[0005] 针对上述问题,本发明提出了一种基于深度学习的信息安全知识图谱的自动构建方法,通过建立模型自动识别信息安全相关的实体词以及根据上下文语义判定实体词之间的关系。
[0006] 一种基于深度学习的信息安全知识图谱的自动构建方法,包括以下步骤,[0007] 步骤1,构建信息安全知识图谱的本体库;
[0008] 步骤2,对收集的数据基于启发式规则的方式进行标注得到实体识别的训练集,并设计了基于Bi-LSTM的模型结构进行学习作为实体识别的模型,从而抽取出文本的实体词;
[0009] 步骤3,基于三元组知识来进行自动标注得到关系抽取的训练集,并设计了基于注意机制的LSTM结构作为关系抽取的模型,从而抽取出文本中的三元组(关系)。
[0010] 进一步,所述本体库的包括实体的类型和实体的关系,所述实体类型共12种,所述实体类型包括软件,软件供应商,漏洞,漏洞类型,攻击,恶意软件,防御工具,软件的更新,软件的版本,文件,代码硬件;所述关系共8种。
[0011] 进一步,所述对本体库的数据集进行标注的具体方式为,首先根据本题库定义的实体类型,对每一种类型的实体收集词汇构成实体词典,然后根据实体词典对文本句子进行标注。
[0012] 进一步,采用了Bi-LSTM来对句子进行编码的具体方式为首先将句子序列中的每个词转化为词向量,然后作为LSTM的输入,LSTM每一个STEP的输出作为句子中对应词的表征,Bi-LSTM从句子的两个方向分别进行编码,由此对于每一个词语得到了两个表征编码和 两个向量分别表示该词的上文信息和下文信息。并且使用激活函数得到类别取值的概率分布的具体方式为
[0013] zi=wTHi+b
[0014] Fi=softmax(zi),
[0015] 其中以上公式中的Hi对应于第i的词的向量表达,concat是一个连接操作,将两个向量拼接到一起,wT,b分别为权重和偏差,zi是经过一个全连接层对于每个词语的向量表示,Fi为最终每个词语的类别概率分布,表示该词语属于哪个类别,softmax是一个权重函数,输出每个类别的概率。
[0016] 进一步,所述基于三元组知识来进行自动标注得到训练集的方式为首先基于CVE数据中提取出的字段建立一个三元组的词典,然后对于一个句子中识别出来的实体词,两两去查看是否在三元组字典中,如果在,将这个实体对和该句子作为一个训练样本加入到训练集中。从而构造出一个用来做关系抽取的数据集。
[0017] 进一步,所述建立基于注意力结构的LSTM描述上下文的具体方式为首先将句子中的词对应到一个向量表示,然后通过Bi-LSTM得到对应于每个词的隐状态Hi,然后与实体词L1和L2的向量和通过注意力层计算一个权重分布,最后得到Hi的加权和Hs,公式如下:
[0018] ei=Wembeddingxi
[0019] Hi=[forward_LSTM(ei),backward_LSTM(ei)]
[0020] SP=sum_pooling(eL1,eL2)
[0021] α=softmax(wT[SP,Hi,dot_product(SP,Hi)])
[0022] Hs=αH
[0023] 其中上式中Wembedding对应于每个词的词向量,上式中xi为对应每个词的编号,通过编号在词向量表中我们索引到对应该词的向量。上式为H为表示[H1,H2,...,HT],Hs即为注意力层的输出,其中forward_LSTM和backward_LSTM分别对应于前向和后向的LSTM。上式中ei为每个词对应的词向量,SP对应于实体词对的词向量和,dot_product表示两个向量的点积。
[0024] 本发明能够自动地从文本中挖掘和提取有用地信息安全知识,从而整合成一个可供检索和使用的信息安全知识库。通过机器学习方法以有监督的方式训练模型,从而能够从一句话中自动识别出信息安全相关的实体词以及根据上下文语义判定实体词之间的关系,而有监督学习的方法需要大量的标注数据集才能使模型获得较好的效果。人工标注的方法需要消耗大量的人力和时间,本发明自动获得一份较好的数据。附图说明
[0025] 图1为本发明的具体流程图
[0026] 图2为本发明的Bi-LSTM结构图;
[0027] 图3为本发明的LSTM的关系分类模型结构图。

具体实施方式

[0028] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0029] 在进行知识图谱构建之前,首先构建知识图谱存储知识的类型,以及知识之间的关系,本发明结合安全知识库的模式定义了一个全面的信息安全知识图谱的本体库。表1为实体类型表,表2为实体关系的定义表。
[0030] 表1实体类型表
[0031] 实体名称 描述Software 软件,包括应用软件系统软件
Vendor 软件供应商或者开发商
Vulnerability 漏洞
Vul_Type 漏洞类型
Attack 攻击或者漏洞利用
Malware 恶意软件
Defense_Tool 防御工具
Update 软件的更新或者补丁
Version 软件的版本
File 文件或者路径
Function 代码块或者API接口
Hardware 硬件,网络硬件或者信息存储、计算的硬件
[0032] 表2实体关系表
[0033]
[0034]
[0035] 表3为解释了关系(Rel)的含义表。
[0036] 表3
[0037]关系(Rel) 对应的含义描述
AFFECT 影响或者造成威胁
DEFEND 防御或者修复之后从来避免
DEV 开发与维护
EXPLOIT 利用
IS_A 是或者属于的关系
PUBLISH 发布或者发行
RELATED 相关,具有某种联系
RUNON 运行在这之上
[0038] 目前定义了12种实体类型,8种关系,其中RELATED关系是一种比较泛化或者模糊表达的关系,表示这两个之间有关系,例如某个漏洞可能有某个文件或者某个API或者函数块有关。
[0039] 在获取到大量的非结构化数据和文本数据之后,为了能够自动地从文本中提取知识,需要通过机器学习方法以有监督的方式训练模型,从而能够从一句话中自动识别出信息安全相关的实体词以及根据上下文语义判定实体词之间的关系。
[0040] 而有监督学习的方法需要大量的标注数据集才能使模型获得较好的效果。人工标注的方法需要消耗大量的人力和时间,本发明自动获得一份较好的数据。
[0041] 首先根据本体库定义的实体类型,对每一种类型的实体收集尽可能多的词汇,相当于得到了一个实体词典,然后根据实体词典对文本句子进行标注,本发明BIO-tagging的格式进行标注,例如B-Vendor表示Vendor类型实体词的开始部分,I-Vendor表示Vendor类型实体词的中间和结尾部分,0表示其他词汇,即不属于任何实体类型或者实体词。
[0042] 实体词典的来源主要是解析自CVE中的相关字段,比如上文提到的affected-vendor,affected-software,可以直接作为vendor和software的词典来源。CVE数据是指前文提到的公共漏洞库,里面每一个目录对应于一个漏洞的详细信息,比如这个漏洞所影响到的软件,软件厂商,以及漏洞的评级,还有漏洞的描述文本,CVE数据基本上是一个结构化数据,可以给我们提供很多实体词源。
[0043] 通过收集以上的词汇作为不同的类型实体词典,我们可以使用字符串匹配的方式标识句子中出现的实体词。
[0044] 但对于有些情况来说,比如version、file、update等,严格的字符串匹配是不行的,需要通过启发式的方法或者正则表达式算法进行匹配。本文通过对各种形式定义不同的正则表达式模板或者规则进行匹配。
[0045] 为了评估自动化标注算法的效果,本发明随机抽取了50条数据,进行人工标注,然后对比与自动化标注的结果,对于每一种实体类别分别统计TP、FP、TN、FN的值,并且进行三次独立的实验评估(每次均随机抽50条),实验评估的结果如下:
[0046] 表4
[0047]评估实验 Recall Precision F1
1 77.5% 99% 86.9%
2 70% 98% 81%
3 78% 94.5% 85.6%
[0048] 本发明采用了Bi-LSTM来对句子进行编码,首先将句子序列中的每个词转化为词向量,然后作为LSTM的输入,LSTM每一个STEP的输出作为句子中对应词的表征,Bi-LSTM从句子的两个方向分别进行编码,由此对于每一个词语得到了两个表征编码和,两个向量分别兼顾了该词的上文信息和下文信息,能够更好进行下一步的识别和分类。如图2是Bi-LSTM的结构图,通过LSTM得到每个词语的表征之后,直接将这个问题看做是单个词语的分类问题,所以对于每个词语的表征通过一个参数共享的前向神经网络,使用激活函数Softmax得到类别取值的概率分布。公式如下:
[0049]
[0050] zi=wTHi+b
[0051] Fi=softmax(zi)
[0052] 本发明通过前向神经网络得到每个词语的类别标签的概率分布,然后使用交叉熵作为损失函数进行权重更新。损失函数公式如下:
[0053]
[0054] 在实验数据集上,本发明的准确率较以往的方法,获得了更高的准确率,准确率到了97.5%。
[0055] 在从句子中抽取出实体词之后,需要挖掘实体词之间的关系,以便能够建立实体之间的关系。对一个句子进行实体词识别之后,会从中抽取出一个集为L实体词列表,L中的每个实体词的类型记为TypeLi,本发明定义了Type之间的关系,我们将Typei和Typej之间的关系记为RelTi,Tj,我们根据本体库的定义把可能存在关系的实体词对,记为一个待分类问题,即Li和Lj之间是否存在关系 即计算条件概率的条件概率分布,概率最大的Rel即为答案。
[0056] 在确立好问题模型之后,需要大量的标注数据集来进行模型训练,而在信息安全领域缺乏这样的数据集,人工标注的成本也太高,于是本发明使用了自动标注的方法基于已有的三元组知识来进行标注得到一个训练集,以此来进行训练。具体步骤如下:
[0057] (1)首先基于CVE数据中提取出的字段建立一个三元组的词典,比如(Microsoft,DEVELOP,Windows10)。这些知识是被保证是正确的知识。
[0058] (2)然后对于一个句子中识别出来的实体词,两两查看是否在三元组字典中,如果在,将这个实体对和该句子作为一个训练样本加入到训练集中去。
[0059] 本发明设计了基于attention结构的LSTM来刻画上下文,并通过学习实体词的类型向量为模型提供更多的信息,关系分类模型结构图如图3所示,其结构说明如下:
[0060] 首先将句子中的词Xi通过词向量编码对应到一个向量表示,然后通过Bi-LSTM得到对应于每个词的隐状态Hi,然后与实体词L1和L2的向量和通过a注意力层计算一个权重分布,最后得到Hi的加权和Hs(即图中注意力层的结果)再将两个实体词对应的实体类型进行向量编码为两个8维的向量,与Hs向量拼接到一起得到一个新的向量P(即图中连接层的结果),向量P输入到一个全连接层,并输出一个softmax的概率分布向量作为最后的结果。公式如下:
[0061] ei=Wembedddingxi
[0062] Hi=[forward_LSTM(ei),backward_LSTM(ei)]
[0063] SP=sum_pooling(eL1,eL2)
[0064] 上式中ei为每个词对应的词向量,SP对应于实体词对的词向量和。Attention层公式如下:
[0065] α=softmax(wT[SP,Hi,dot_product(SP,Hi)])
[0066] Hs=αH
[0067] 上式为H为表示[H1,H2,...,HT],Hs即为attention层的输出,也就是Hi的加权和。
[0068] 为了提供给网络更直接的信息,减少误分类的情况,本发明将两个实体词对应的实体类型进行向量编码为两个8维的向量,与Hs向量拼接到一起得到一个新的向量P,向量P输入到一个全连接层,并输出一个softmax的概率分布向量作为最后的结果。最终的损失函数采用交叉熵损失。
[0069] 训练时的主要参数如表6:
[0070] 表6
[0071]
[0072]
[0073] 在测试集上准确率达到了87%,以及远远超过以往地技术方案。
[0074] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈