一种基于TransH-Bert的网络安全知识图谱推理方法

未命名 09-01 阅读:129 评论:0

一种基于transh-bert的网络安全知识图谱推理方法
技术领域
1.本发明涉及网络安全和人工智能领域,尤其涉及一种基于transh-bert的网络安全知识图谱推理方法。


背景技术:

2.目前,随着物联网、云计算和5g等技术的不断普及和发展,网络信息交互越来越多,网络技术的发展呈现出突飞猛进的态势。然而网络安全防御技术的发展总是滞后于各种新的网络技术,这使得黑客或攻击组织可以在网络安全防御技术更新之前利用各种安全漏洞进行攻击。近年来网络安全事故频发给人类的生产和生活带来了严重的危害。
3.面对不断出现的各种网络攻击技术和网络漏洞和互联网上日益增多的多源异构网络安全数据,面向多元关联智能推理的网络安全知识图谱日益成为研究的热点。网络安全知识图谱可以组织网络安全知识、指导网络安全实践、辅助网络安全决策、推动网络安全技术发展。网络安全知识图谱的意义在于可以帮助人们更好地理解和应对网络安全问题。知识图谱是一种图形化的知识表示方式,它可以将复杂的知识体系以图谱的形式展现出来,使得人们可以更加直观地了解其中的关系和规律。在网络安全领域,知识图谱可以帮助人们理解网络安全威胁、攻击方式和防御策略等方面的知识,进而更好地保护自己和组织的网络安全。
4.由于知识图谱的天然不完整性,且随着时间的推移知识图谱中的知识也会发生变化。为了消除知识图谱中的不一致性、补充知识图谱中的缺失关系,需要对知识图谱中的知识执行知识推理。知识推理可以根据已有的事实和关系,自动地推导出新的事实和关系,从而丰富知识图谱的内容和质量,进一步提升其应用效果。
5.现有的网络安全知识图谱推理模型主要有4种:1、association rule mining under incomplete evidence(amie),amie是一种基于不完备知识库的关联规则挖掘模型。通过依次学习预测每种关系的规则:对于每种关系,从规则体为空的规则开始,通过三种操作扩展规则体部分,保留支持度大于阈值的候选(闭式)规则。这三种规则分别为添加悬挂边、添加实例边、添加闭合边。该模型可解释性强、能自动发现推理规则,但是生成的规则覆盖度低且模型预测效果较差。2、path ranking algorithm(pra),pra是一种基于路径排序算法的知识推理模型,改模型的基本思想是通过发现连接两个实体的一组关系路径来预测实体间可能存在的某种特定关系,其获取的关系路径实际上对应一种霍恩子句,pra计算的路径特征可以转换为逻辑规则。该模型可解释性强、能自动发现推理规则,但处理低频关系和低连通图的效果不好。3、knowledge graph embedding by translating on hyperplanes(transh),transh是一种基于分布式表示学习的知识推理模型,此类模型的中心思想是找到一种映射函数,将符号表示映射到向量空间进行数值表示,从而减少维数灾难,同时捕捉实体和关系之间的隐式关联,重点是可以直接计算且计算速度快。transh的主要思想是将衡量向量化后的知识图谱中三元组的合理性问题,转化成衡量头实体和尾实体的距离问题。该模型复杂度低、且训练速度快,但是执行知识推理时无法刻画知识实体间的
语义关系。4.neural tensor networks(ntn),ntn模型的核心思想是通过引入张量表示来对关系进行建模,并利用神经网络进行推理和分类。该模型复杂度高,需要大量的三元组样例才能得到充分学习,在大规模稀疏知识图谱上的效果较差。


技术实现要素:

6.针对现有技术的不足,本发明提供一种基于transh-bert的网络安全知识图谱推理方法,可利用现有的网络安全知识图谱推理出新的网络安全知识。本发明首先提出cwe、cve、capec知识库构建出基础网络安全知识图谱,然后使用transh模型刻画网络安全知识实体在向量空间中的位置信息,利用bert预训练模型刻画网络安全知识实体的语义信息,最后提出通过融合transh模型刻画出的位置信息和bert预训练模型刻画的语义信息来执行知识推理任务,即使用transh模型输出的位置数据和bert预训练模型输出的关系概率矩阵计算知识推理的得分,使用计算出的得分来执行知识推理任务,有效提高了知识推理模型的准确率。
7.一种基于transh-bert的网络安全知识图谱推理方法,包括以下内容:
8.步骤1:构建网络安全知识图谱,并且将其以三元组的形式存储于基于标签的图数据库中;
9.步骤1.1:准备图数据库环境;首先在计算机上安装图数据库,用于存放网络安全知识图谱;并且关闭操作系统的防火墙以及系统更新功能;
10.步骤1.2:使用爬虫工具从网络安全知识库中爬取common vulnerabilities and exposures即cve知识库、common attack pattern enumeration and classification即capec知识库和common weak-ness enumeration即cwe知识库;
11.步骤1.3:从知识库中提取出知识实体,并保存至基于标签的图数据库中;
12.步骤1.3.1:解析cve知识库,将cve知识库中的知识转化为cve知识节点存储在基于标签的图数据库中;cve知识节点以cve知识库中的cve_id为实体id,并提取出description、references、cvssv3score和cvssv3vector字段作为cve节点的属性;
13.步骤1.3.2:解析cwe知识库,将cwe知识库中的知识转化为cwe知识节点存储在基于标签的图数据库中;cwe知识节点以cwe知识库中的cwe_id为实体id,并提取出description和name字段作为cwe节点的属性;
14.步骤1.3.3:解析capec知识库,将capec知识库中的知识转化为capec知识节点存储在基于标签的图数据库中;capec知识节点以capec知识库中的capec_id为实体id,并提取出description和name字段作为capec节点的属性;
15.步骤1.4:从知识库中提取出知识实体之间的关系,并保存至基于标签的图数据库中;
16.步骤1.4.1:提取cwe知识库中的observed_examples字段解析出cve实体和cwe实体之间的关系;
17.步骤1.4.2:提取cwe知识库中的related_weaknesses字段解析出cwe实体和cwe实体之间的关系;
18.步骤1.4.3:提取capec知识库中的related_attack_patterns字段解析出capec实体和capec实体之间的关系;
19.步骤1.4.4:提取capec知识库中的related_weaknesses字段解析出capec实体和cwe实体之间的关系;
20.步骤1.4.5:将解析出来的所有关系保存至基于标签的图数据库中;
21.步骤2:基于步骤1,使用bert预训练模型获取知识图谱中知识实体的文本描述之间存在的关系,即基于知识实体的文本描述,然后通过bert预训练模型计算出知识实体之间的关系概率矩阵;
22.步骤2.1:下载bert预训练模型,按照bert预训练模型参数将步骤1得到的知识图谱中的知识实体的文本描述从字符串的形式转换为数组的形式;
23.步骤2.2:构造bert预训练模型的输入数据;将步骤1所得知识图谱中任意两个知识实体的文本描述按照如下公式的方式拼接得到样本,其中[cls]表示样本其实标识符,[sep]表示数据的分隔符和结束符;
[0024]
[cls]sentence1[sep]sentence2[sep]
ꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0025]
步骤2.3:基于步骤1得到的知识图谱中关系的种类,将步骤2.2中两个实体之间的关系转换为one-hot编码作为该样本的标签;
[0026]
步骤2.4:将拼接后的样本数字化,构建出input_ids、input_mask和segment_ids数组,然后输入到bert预训练模型中;首先需要定义样本最大长度len,若样本长度超过len则超过部分的数据将会丢失,然后将所有的样本转化为长度为len的索引数组input_ids,若样本长度小于len,则需要在样本末尾补0;为了区分出input_ids数组中的有用数据和无用数据,需要根据input_ids生成input_mask数组,其中样本无效部分置为0,有效部分置为1,置为0的部分在训练时会被忽略;为了区分出样本中不同的句子段,还需根据input_ids生成segment_ids数组,其中第一个句子用0填充,第二个句子用1填充,样本长度小于len时,末尾使用0填充;
[0027]
步骤2.5:将步骤2.4构建出的input_ids、input_mask和segment_ids数组输入到bert预训练模型中,然后将模型的输出池化表示输入到dropout层防止模型过拟合,然后将dropout层的输出输入到softmax层后得到关系概率矩阵;
[0028]
步骤2.6:基于bert预训练模型已经训练好的参数和步骤2.5计算得到的关系概率矩阵通过反向传播来更新模型的权重,即对已有参数进行微调,使模型更适合知识图谱推理模型;
[0029]
步骤3:使用transh模型刻画步骤1所得知识图谱中知识实体的位置信息,即通过transh模型将知识图谱中所有的知识实体映射到n维向量空间中;每个知识实体都有一个向量表示,通过向量表示计算任意两个知识实体的l2范式,该值表示知识实体在向量空间中的位置关系,值越小表示知识实体在向量空间中的位置越相近,值越大表示知识实体在向量空间中的位置越远离;
[0030]
将知识图谱中的三元组作为训练transh模型的数据集,训练使损失函数最小化;transh模型的输出为知识实体和关系在向量空间中的向量表示;
[0031]
步骤3.1:构造transh模型训练所需要的数据集;将步骤1所得知识图谱中的知识实体和关系转化为三元组《h,r,t》的形式作为训练transh模型的数据集;
[0032]
transh模型将步骤1所得知识图谱中任意两个知识实体及实体间的关系定义为三元组《h,r,t》,h、t分别表示头节点和尾节点,对于每一个存在于实体之间的关系r,都有一
个关系向量dr和一个超平面wr表示,即将实体和关系嵌入到不同的向量空间;该模型的得分函数为:
[0033][0034]
其中h

表示头节点h在超平面wr上的投影,t

表示尾节点t在超平面wr上的投影限制超平面wr的l2范数(欧几里得范数)为1,时推出以下公式:
[0035][0036][0037]
步骤3.2:初始化transh模型参数;为了训练transh模型,需要初始化模型中所有的参数,包括实体和关系的向量表示、投影矩阵以及模型的超参数,并将这些参数均取随机值;
[0038]
步骤3.3:设置transh模型的损失函数;使用margin-based ranking loss作为损失函数,该损失函数通过最小化正样本和负样本之间的距离来提高模型区分知识实体的能力,样本之间的距离通过公式(2)计算得到;
[0039]
步骤3.4:对数据集进行随机抽样;每次从训练数据中随机抽取一部分三元组作为训练样本,其中包括正样本和负样本;正样本是已知的三元组,而负样本是从所有实体中随机选择的与正样本不相连的实体,以便训练模型更好地区分正确的三元组和错误的三元组;
[0040]
步骤3.5:使用梯度下降法更新transh模型的参数以最小化损失函数;即计算损失函数对每个参数的导数,将其用于更新参数;
[0041]
重复步骤3.4和3.5得到transh模型的最优参数,最终模型的输出为知识实体的关系在向量空间中的向量表示;
[0042]
步骤4:融合知识实体的语义信息和结构信息执行缺失实体补全任务,即根据实体在transh向量空间中的l2范式距离和bert模型输出的关系概率矩阵计算出得分;最大得分对应的实体即为期望实体;
[0043]
步骤4.1:从步骤1所创建的知识图谱中随机选取一个知识实体作为已知实体,从剩下的知识实体中随机选取一个作为预测实体,并获取这两个知识实体对应的文本描述;
[0044]
步骤4.2:从步骤3输出的向量表示中,查询步骤4.1中获取的两个实体的向量表示,并根据公式(2)计算关系为步骤1知识图谱中的任意一种关系时,这两个实体之间的l2距离;
[0045]
步骤4.3:将这两个实体的文本描述按照步骤2进行拼接、数字化输入到bert预训练模型中,最终获取到这两个实体的文本描述之间的关系概率矩阵;
[0046]
步骤4.4:根据公式(5)(6),计算各种关系最终对应的得分,最高得分对应的关系即为期望关系,该预测实体为期望实体;
[0047][0048][0049]
其中,v1表示已知实体在transh向量空间中的向量表示,v2表示预测实体在transh向量空间中的向量表示,r表示步骤1知识图谱中的任意一种关系,lr表示已知实体、预测实
体和关系r根据公式(2)计算出的得分,sum(1)表示所有关系的得分之和;r
probar
表示步骤4.3获得的关系概率矩阵,scorer表示关系r对应的最终得分,该得分的计算融合了知识实体在向量空间中的位置信息和知识实体文本描述的语义信息。
[0050]
本发明有益技术效果:
[0051]
本发明分析了当前对于网络安全知识图谱构建和网络安全知识推理的需求,设计了一种基于transh-bert模型的网络安全知识图谱推理方法,该方法通过解析互联网中的知识库,构建出基础网络安全知识图谱并对该知识图谱进行进一步的推理生成新的知识图谱,并在推理过程中融合了transh模型输出的知识实体embedding和bert模型输出的关系概率矩阵,使得推理过程中既考虑了知识的结构信息又考虑了知识的语义信息,使得该知识推理模型的准确率高。
附图说明
[0052]
图1本发明实施例一种基于transh-bert的网络安全知识图谱推理方法框架图;
[0053]
图2本发明实施例获取的网络安全知识图谱示意图;
[0054]
图3本发明实施例一种基于transh-bert的网络安全知识图谱推理方法bert模型框架图;
[0055]
图4本发明实施例样本数组化图;
[0056]
图5本发明实施例本方法与其他现有方法的实验结果对比图。
具体实施方式
[0057]
下面结合附图和实施例对本发明做进一步说明;
[0058]
一种基于transh-bert的网络安全知识图谱推理方法,整体框架如附图1所示,包括以下内容:
[0059]
步骤1:构建网络安全知识图谱;如附图2所示,网络安全知识图谱以三元组的形式存储于neo4j图数据库中。
[0060]
步骤1.1:准备neo4j图数据库环境;首先在计算机上安装neo4j图数据库,用于存放网络安全知识图谱;关闭操作系统的防火墙以及系统更新功能;
[0061]
步骤1.2:使用基于python的爬虫工具从mitre公司维护的网络安全知识库中爬取common vulnerabilities and exposures(cve)知识库、common attack pattern enumeration and classification(capec)知识库、common weak-ness enumeration(cwe)知识库,爬取版本分别为cve-2023、cwe4.10、capec3.9;
[0062]
步骤1.3:从知识库中提取出知识实体,并保存至基于标签的图数据库中;
[0063]
步骤1.3.1:使用python解析cve知识库,将cve知识库中的知识转化为cve知识节点和关系存储在neo4j图数据库中。cve知识节点以cve知识库中的cve_id为实体id,并提取出description、references、cvssv3score、cvssv3vector字段作为cve节点的属性。
[0064]
步骤1.3.2:使用python解析cwe知识库,将cwe知识库中的知识转化为cwe知识节点和关系存储在neo4j图数据库中。cwe知识节点以cwe知识库中的cwe_id为实体id,并提取出description、name字段作为cwe节点的属性。
[0065]
步骤1.3.3:使用python解析capec知识库,将capec知识库中的知识转化为capec
知识节点和关系存储在neo4j图数据库中;capec知识节点以capec知识库中的capec_id为实体id,并提取出description、name字段作为capec节点的属性;
[0066]
步骤1.4:从知识库中提取出知识实体之间的关系,并保存至基于标签的图数据库中;
[0067]
步骤1.4.1:提取cwe知识库中的observed_examples字段解析出cve实体和cwe实体之间的关系;
[0068]
步骤1.4.2:提取cwe知识库中的related_weaknesses字段解析出cwe实体和cwe实体之间的关系;
[0069]
步骤1.4.3:提取capec知识库中的related_attack_patterns字段解析出capec实体和capec实体之间的关系;
[0070]
步骤1.4.4:提取capec知识库中的related_weaknesses字段解析出capec实体和cwe实体之间的关系;
[0071]
步骤1.4.5:将解析出来的所有关系保存至neo4j图数据库中;
[0072]
步骤2:基于步骤1,使用bert预训练模型获取知识图谱中知识实体的文本描述之间存在的关系,即基于知识实体的文本描述,使用bert模型计算出知识实体之间的关系概率矩阵;
[0073]
步骤2.1:下载bert预训练模型,按照bert预训练模型参数将步骤1得到的知识图谱中的知识实体的文本描述从字符串的形式转换为数组的形式;
[0074]
步骤2.2:构造bert预训练模型的输入数据,将步骤1所得知识图谱中任意两个知识实体的文本描述按照如下公式的方式拼接得到样本,[cls]表示样本其实标识符,[sep]表示数据的分隔符和结束符;
[0075]
[cls]sentence1[sepisentence2[sepi(7)
[0076]
步骤2.3:根据步骤1得到的知识图谱中关系的种类,将步骤2.2中两个实体之间的关系转换为one-hot编码作为该样本的标签。最终得到的one-hot编码为childof:[1,0,0,0,0,0,0,0],parentof:[0,1,0,0,0,0,0,0],canfollow:[0,0,1,0,0,0,0,0],canprecede:[0,0,0,1,0,0,0,0],peerof:[0,0,0,0,1,0,0,0],belongof:[0,0,0,0,0,1,0,0],attackof:[0,0,0,0,0,0,1,0],contardiction:[0,0,0,0,0,0,0,1]。
[0077]
步骤2.4:将拼接后的样本数字化,如附图4所示,所有的样本需要被转化为长度为len的索引数组input_ids,若样本长度小于len,则需要在样本末尾补0。为了区分出input_ids数组中的有用数据和无用数据,需要根据input_ids生成input_mask数组,生成规则为样本无效部分置为0,有效部分置为1,置为0的部分在训练时会被忽略。为了区分出样本中不同的句子段,还需根据input_ids生成segment_ids数组,生成规则为第一个句子用0填充,第二个句子用1填充,样本长度小于len时,末尾使用0填充。segment_ids,input_mask,input_ids为bert预训练模型的输入;
[0078]
步骤2.5:将步骤2.4构建出的input_ids、input_mask和segment_ids数组输入到bert预训练模型中,然后将模型的输出池化表示(pooled representation)输入到dropout层防止模型过拟合,然后将dropout层的输出输入到softmax层后得到关系概率矩阵。样本输入bert模型后,会执行编码操作,bert模型中的双向attention机制使得样本中的两个句子会相互attention,通过训练将会学习到两个句子之前可能存在的关系类型。
[0079]
为了防止过拟合,在获取样本的最终编码之后需要执行0.1的dropout操作,dropout的结果输入到全连接层,通过全连接层将维度降到8,维度设置为8是因为知识实体之间可能存在的关系有7种,即childof,parentof,canfollow,canprecede,peerof,belongof,attackof,在这7种关系之外需要额外添加一种关系contardiction用于表示两个知识实体之间不存在任何关系。全连接层输出后通过softmax计算,得到各种关系对应的概率。例如附图3所示的输出结果中关系为childof的概率为0.6,远大于其他关系的概率,则从语义层面看,输入的两个实体的文本描述之间的关系为childof关系的可能性最大。最终,这个概率将用来和transh模型的输出进行融合以得到最终的预测结果;
[0080]
步骤2.6:微调bert预训练模型。由于bert预训练模型已经基于大规模的语料库训练出了一套参数,这套参数可以从github中获取,将这套参数作为模型训练的起点可以有效提高训练的效率。为了使模型更加适应步骤1构建出的知识图谱的知识推理任务,需要基于已经训练好的参数和步骤2.5计算得到的关系概率矩阵通过反向传播来更新模型的权重,即对已有参数进行微调,使模型更适合知识图谱推理模型。迭代75次后模型的损失值稳定在0.02左右表示模型已经收敛;
[0081]
步骤3:使用transh模型刻画步骤1所得知识图谱中知识实体的位置信息,即通过transh模型将知识图谱中所有的知识实体映射到n维向量空间中,本发明中设置n为50。每个知识实体都有一个向量表示,通过向量表示可计算任意两个知识实体的l2范式,该值表示知识实体在向量空间中的位置关系,值越小表示知识实体在向量空间中的位置越相近,值越大表示知识实体在向量空间中的位置越远离;
[0082]
transh模型将步骤1所得知识图谱中任意两个知识实体及实体间的关系定义为三元组《h,r,t》,h、t分别表示头节点和尾节点,对于每一个存在于实体之间的关系r,都由一个关系向量dr和一个超平面wr表示,即将实体和关系嵌入到不同的向量空间。该模型的得分函数为:
[0083][0084]
公式(8)中h

表示头节点h在超平面wr上的投影,t

表示尾节点t在超平面wr上的投影,限制超平面wr的l2范数(欧几里得范数)为1,即时可推出以下公式
[0085][0086][0087]
将知识图谱中的三元组作为训练transh模型的数据集,训练使得分函数最小化。transh模型的输出为知识实体和关系在向量空间中的向量表示;
[0088]
步骤3.1:构造transh模型训练所需要的数据集。将步骤1所得知识图谱中的知识实体和关系转化为三元组《h,r,t》的形式作为训练transh模型的数据集。
[0089]
步骤3.2:初始化transh模型参数。为了训练transh模型,需要初始化模型中所有的参数,包括实体和关系的向量表示、投影矩阵以及模型的超参数,本发明中将这些参数均取随机值。
[0090]
步骤3.3:设置transh模型的损失函数。transh模型的目标是最小化模型的预测误差,因此需要定义一个合适的损失函数来衡量模型的预测误差。本发明使用margin-based ranking loss作为损失函数,该损失函数通过最小化正样本和负样本之间的距离来提高模
型区分知识实体的能力,样本之间的距离可通过公式(8)计算。
[0091]
步骤3.4:随机抽样。为了提高transh模型训练的效率和效果,通常需要对数据集进行随机抽样。具体地,每次从训练数据中随机抽取一部分三元组作为训练样本,其中包括正样本和负样本。正样本是已知的三元组,而负样本是从所有实体中随机选择的与正样本不相连的实体,以便训练模型更好地区分正确的三元组和错误的三元组。
[0092]
重复步骤3.4和3.5得到transh模型的最优参数,最终模型的输出为知识实体的关系在向量空间中的向量表示。迭代3000次之后,模型的损失值稳定在0.02左右表示模型已经收敛。
[0093]
步骤4:融合知识实体的语义信息和结构信息执行缺失实体补全任务,即根据实体在transh向量空间中的l2范式距离和bert模型输出的关系概率矩阵计算出得分;最大得分对应的实体即为期望实体;
[0094]
步骤4.1:从步骤1所创建的知识图谱中随机选取一个知识实体作为已知实体,从剩下的知识实体中随机选取一个作为预测实体,并获取这两个知识实体对应的文本描述。
[0095]
步骤4.2:从步骤3输出的向量表示中,查询步骤4.1中获取的两个实体的向量表示,并根据公式(2)计算关系为步骤1知识图谱中的任意一种关系时,这两个实体之间的l2距离。
[0096]
步骤4.3:将这两个实体的文本描述按照步骤2进行拼接、数字化输入到bert预训练模型中,最终获取到这两个实体的文本描述之间的关系概率矩阵。
[0097]
步骤4.4:根据公式(5)(6),计算最终各种关系对应的得分,最高得分对应的关系即为期望关系,该预测实体为期望实体。
[0098][0099][0100]
v1表示已知实体在transh向量空间中的向量表示,v2表示预测实体在transh向量空间中的向量表示,r表示步骤1知识图谱中的任意一种关系,lr表示已知实体、预测实体和关系r根据公式(2)计算出的得分,sum(1)表示所有关系的得分之和。r
probar
表示步骤4.3获得的关系概率矩阵,scorer表示关系r对应的最终得分,该得分的计算融合了知识实体在向量空间中的位置信息和知识实体文本描述的语义信息。
[0101]
步骤5:为了评估知识推理得到的新知识的质量,需要使用hits@3、hits@5、hits@10、mrr、mr等指标进行评估。本发明中使用hits@10指标和mrr指标进行评估;hits@10表示得分排名小于10的平均占比,该值取值范围为(0,1),且值越大表示模型效果越好;mrr表示平局倒数排名,该值取值范围为(0,1),且值越大表示模型效果越好。
[0102]
如附图5所示,将transh-bert模型的hits@10和mrr指标与transe、transh、mtransh、transr模型进行对比可知transh-bert模型的mrr指标比transe模型高0.032,比transh模型高0.023,比mtransh模型高0.018,比transr模型高0.014。transh-bert模型的hits@10指标高于比transe模型高0.079,比transh模型高0.062,比mtransh模型高0.041,比transr模型高0.045。综上所述,transh-bert模型在执行缺失实体补全任务时,有较高的准确度。

技术特征:
1.一种基于transh-bert的网络安全知识图谱推理方法,其特征在于,具体包括以下步骤:步骤1:构建网络安全知识图谱,并且将其以三元组的形式存储于基于标签的图数据库中;步骤2:基于步骤1,使用bert预训练模型获取知识图谱中知识实体的文本描述之间存在的关系,即基于知识实体的文本描述,然后通过bert预训练模型计算出知识实体之间的关系概率矩阵;步骤3:使用transh模型刻画步骤1所得知识图谱中知识实体的位置信息,即通过transh模型将知识图谱中所有的知识实体映射到n维向量空间中;每个知识实体都有一个向量表示,通过向量表示计算任意两个知识实体的l2范式,该值表示知识实体在向量空间中的位置关系,值越小表示知识实体在向量空间中的位置越相近,值越大表示知识实体在向量空间中的位置越远离;将知识图谱中的三元组作为训练transh模型的数据集,训练使损失函数最小化;transh模型的输出为知识实体和关系在向量空间中的向量表示;步骤4:融合知识实体的语义信息和结构信息执行缺失实体补全任务,即根据实体在transh向量空间中的l2范式距离和bert模型输出的关系概率矩阵计算出得分;最大得分对应的实体即为期望实体。2.根据权利要求1所述的一种基于transh-bert的网络安全知识图谱推理方法,其特征在于,步骤1具体为:步骤1.1:准备图数据库环境;首先在计算机上安装图数据库,用于存放网络安全知识图谱;并且关闭操作系统的防火墙以及系统更新功能;步骤1.2:使用爬虫工具从网络安全知识库中爬取common vulnerabilities and exposures即cve知识库、common attack pattern enumeration and classification即capec知识库和common weak-ness enumeration即cwe知识库;步骤1.3:从知识库中提取出知识实体,并保存至基于标签的图数据库中;步骤1.4:从知识库中提取出知识实体之间的关系,并保存至基于标签的图数据库中。3.根据权利要求2所述的一种基于transh-bert的网络安全知识图谱推理方法,其特征在于,步骤1.3具体为:步骤1.3.1:解析cve知识库,将cve知识库中的知识转化为cve知识节点存储在基于标签的图数据库中;cve知识节点以cve知识库中的cve_id为实体id,并提取出description、references、cvssv3score和cvssv3vector字段作为cve节点的属性;步骤1.3.2:解析cwe知识库,将cwe知识库中的知识转化为cwe知识节点存储在基于标签的图数据库中;cwe知识节点以cwe知识库中的cwe_id为实体id,并提取出description和name字段作为cwe节点的属性;步骤1.3.3:解析capec知识库,将capec知识库中的知识转化为capec知识节点存储在基于标签的图数据库中;capec知识节点以capec知识库中的capec_id为实体id,并提取出description和name字段作为capec节点的属性。4.根据权利要求2所述的一种基于transh-bert的网络安全知识图谱推理方法,其特征在于,步骤1.4具体为:
步骤1.4.1:提取cwe知识库中的observed_examples字段解析出cve实体和cwe实体之间的关系;步骤1.4.2:提取cwe知识库中的related_weaknesses字段解析出cwe实体和cwe实体之间的关系;步骤1.4.3:提取capec知识库中的related_attack_patterns字段解析出capec实体和capec实体之间的关系;步骤1.4.4:提取capec知识库中的related_weaknesses字段解析出capec实体和cwe实体之间的关系;步骤1.4.5:将解析出来的所有关系保存至基于标签的图数据库中。5.根据权利要求1所述的一种基于transh-bert的网络安全知识图谱推理方法,其特征在于,步骤2具体为:步骤2.1:下载bert预训练模型,按照bert预训练模型参数将步骤1得到的知识图谱中的知识实体的文本描述从字符串的形式转换为数组的形式;步骤2.2:构造bert预训练模型的输入数据;将步骤1所得知识图谱中任意两个知识实体的文本描述按照如下公式的方式拼接得到样本,其中[cls]表示样本其实标识符,[sep]表示数据的分隔符和结束符;[cls]sentence1[sep]sentence2[sep]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)步骤2.3:基于步骤1得到的知识图谱中关系的种类,将步骤2.2中两个实体之间的关系转换为one-hot编码作为该样本的标签;步骤2.4:将拼接后的样本数字化,构建出input_ids、input_mask和segment_ids数组,然后输入到bert预训练模型中;首先需要定义样本最大长度len,若样本长度超过len则超过部分的数据将会丢失,然后将所有的样本转化为长度为len的索引数组input_ids,若样本长度小于len,则需要在样本末尾补0;为了区分出input_ids数组中的有用数据和无用数据,需要根据input_ids生成input_mask数组,其中样本无效部分置为0,有效部分置为1,置为0的部分在训练时会被忽略;为了区分出样本中不同的句子段,还需根据input_ids生成segment_ids数组,其中第一个句子用0填充,第二个句子用1填充,样本长度小于len时,末尾使用0填充;步骤2.5:将步骤2.4构建出的input_ids、input_mask和segment_ids数组输入到bert预训练模型中,然后将模型的输出池化表示输入到dropout层防止模型过拟合,然后将dropout层的输出输入到softmax层后得到关系概率矩阵;步骤2.6:基于bert预训练模型已经训练好的参数和步骤2.5计算得到的关系概率矩阵通过反向传播来更新模型的权重,即对已有参数进行微调,使模型更适合知识图谱推理模型。6.根据权利要求1所述的一种基于transh-bert的网络安全知识图谱推理方法,其特征在于,步骤3具体为:步骤3.1:构造transh模型训练所需要的数据集;将步骤1所得知识图谱中的知识实体和关系转化为三元组<h,r,t>的形式作为训练transh模型的数据集;transh模型将步骤1所得知识图谱中任意两个知识实体及实体间的关系定义为三元组<h,r,t>,h、t分别表示头节点和尾节点,对于每一个存在于实体之间的关系r,都有一个关
系向量d
r
和一个超平面w
r
表示,即将实体和关系嵌入到不同的向量空间;该模型的得分函数为:其中h

表示头节点h在超平面w
r
上的投影,t

表示尾节点t在超平面w
r
上的投影限制超平面w
r
的l2范数(欧几里得范数)为1,时推出以下公式:时推出以下公式:步骤3.2:初始化transh模型参数;为了训练transh模型,需要初始化模型中所有的参数,包括实体和关系的向量表示、投影矩阵以及模型的超参数,并将这些参数均取随机值;步骤3.3:设置transh模型的损失函数;使用margin-based ranking loss作为损失函数,该损失函数通过最小化正样本和负样本之间的距离来提高模型区分知识实体的能力,样本之间的距离通过公式(2)计算得到;步骤3.4:对数据集进行随机抽样;每次从训练数据中随机抽取一部分三元组作为训练样本,其中包括正样本和负样本;正样本是已知的三元组,而负样本是从所有实体中随机选择的与正样本不相连的实体,以便训练模型更好地区分正确的三元组和错误的三元组;步骤3.5:使用梯度下降法更新transh模型的参数以最小化损失函数;即计算损失函数对每个参数的导数,将其用于更新参数;重复步骤3.4和3.5得到transh模型的最优参数,最终模型的输出为知识实体的关系在向量空间中的向量表示。7.根据权利要求1所述的一种基于transh-bert的网络安全知识图谱推理方法,其特征在于,步骤4具体为:步骤4.1:从步骤1所创建的知识图谱中随机选取一个知识实体作为已知实体,从剩下的知识实体中随机选取一个作为预测实体,并获取这两个知识实体对应的文本描述;步骤4.2:从步骤3输出的向量表示中,查询步骤4.1中获取的两个实体的向量表示,并根据公式(2)计算关系为步骤1知识图谱中的任意一种关系时,这两个实体之间的l2距离;步骤4.3:将这两个实体的文本描述按照步骤2进行拼接、数字化输入到bert预训练模型中,最终获取到这两个实体的文本描述之间的关系概率矩阵;步骤4.4:根据公式(5)(6),计算各种关系最终对应的得分,最高得分对应的关系即为期望关系,该预测实体为期望实体;期望关系,该预测实体为期望实体;其中,v1表示已知实体在transh向量空间中的向量表示,v2表示预测实体在transh向量空间中的向量表示,r表示步骤1知识图谱中的任意一种关系,l
r
表示已知实体、预测实体和关系r根据公式(2)计算出的得分,sum(1)表示所有关系的得分之和;r
probar
表示步骤4.3获得的关系概率矩阵,score
r
表示关系r对应的最终得分,该得分的计算融合了知识实体在向量空间中的位置信息和知识实体文本描述的语义信息。

技术总结
本发明设计一种基于TransH-Bert的网络安全知识图谱推理方法,属于网络安全和人工智能领域;首先提出CWE、CVE、CAPEC知识库构建出基础网络安全知识图谱,然后使用TransH模型刻画网络安全知识实体在向量空间中的位置信息,利用Bert预训练模型刻画网络安全知识实体的语义信息,最后提出通过融合TransH模型刻画出的位置信息和Bert预训练模型刻画的语义信息来执行知识推理任务,即使用TransH模型输出的位置数据和Bert预训练模型输出的关系概率矩阵计算知识推理的得分,使用计算出的得分来执行知识推理任务,有效提高了知识推理模型的准确率。率。


技术研发人员:冯永新 赵运弢 袁艺
受保护的技术使用者:沈阳理工大学
技术研发日:2023.05.24
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐