2021-03-09

Information Prediction using Knowledge Graphs for Contextual Malware Threat Intelligence

Abstract

有关恶意软件攻击的大量威胁情报信息以完全不同的(通常是非结构化的)格式提供。知识图可以使用由实体和关系表示的RDF三元组来捕获此信息及其上下文。然而,稀疏或不准确的威胁信息会导致诸如不完整或错误的三元组等挑战。用于填充知识图的命名实体识别(NER)和关系提取(RE)模型不能完全保证准确的信息检索,进一步加剧了这一问题。本文提出了一种端到端的方法来生成恶意软件知识图,称为MalKG,这是第一个开源的恶意软件威胁情报自动化知识图。名为MT40K(https://github.com/malkg-researcher/MalKG)的MalKG数据集包含从27,354个唯一实体和34个关系生成的大约40,000个三元组。我们展示了MalKG在知识图中预测缺失恶意软件威胁情报信息中的应用。对于基本事实,我们手动管理一个名为MT3K的知识图,其中有3,027个三元组,由5,741个唯一实体和22个关系生成。对于通过最先进的实体预测模型(Tucker)进行的实体预测,我们的方法对于HITS@10度量(预测知识图中缺失实体的前10个选项)达到了80.4,对于MRR(平均倒数排名)达到了0.75。我们还提出了一个框架,从1100份恶意软件威胁情报报告和常见的漏洞和暴露(CVE)数据库中,在语句级别手动和自动地将数千个实体和关系提取到RDF三元组中。

1.Introduction

恶意软件威胁情报向安全分析师和研究人员提供有关趋势攻击和防御机制的信息。他们利用这些情报帮助他们完成日益复杂的工作,如发现零日攻击、保护知识产权和防止对手入侵。这些信息非常丰富;但是,它通常采用非标准和非结构化格式。此外,信息并不总是准确或完整的。例如,有关最近对SolarWinds软件的攻击的威胁报告(https://www.cyberscoop.com/turla-solarwinds-kaspersky/)捕获了对Sunspot恶意软件的详细分析,该软件将Sunburst恶意软件插入了SolarWinds的Orion软件中。随着更多信息的披露,后续报告中的时间表发生了变化。然而,没有关于威胁参与者的信息,尽管Sunburst恶意软件和与Turla高级持久威胁(APT)组相关联的后门程序有相似之处。知识图可以识别有关攻击行为者的缺失信息。

安全威胁研究人员的一个主要目标是自动化威胁检测和预防,在循环中尽量减少人类的参与。人工智能技术,再加上关于威胁的大数据,有可能在很大程度上实现这一点。互联网上越来越多的威胁信息来源,如分析报告、博客、常见漏洞和暴露数据库(CVE、NVD),提供了足够的数据来评估当前的威胁状况,并为我们防范未来的威胁做好准备。对这些基本上是非结构化的数据进行结构化并将其转换为可用的格式只能解决一个问题。它错过了捕捉威胁信息的上下文,这可以显著提高威胁情报。然而,在此步骤之前需要解决几个挑战,例如:(a)缺乏收集数据和上下文的标准化数据聚合格式;(b)数据提取模型的局限性导致收集的关于攻击的信息不完整;(c)从威胁信息中提取的数据不准确。在本文中,我们将讨论前两个挑战。解决来源信息可信度的第三个挑战留给未来的工作。

有人可能会争辩说,诸如常见漏洞和暴露(CVE)[38]和国家漏洞数据库(NVD)[27]之类的数据源,诸如结构化威胁信息表达(STIX)[3]之类的标准可以有效地自动聚合威胁和漏洞数据。但是,这些数据源和标准忽略了上下文的重要性,可以通过链接和语义元数据来方便地添加上下文。文本数据不仅仅是单词的集合。信息中有含义,将概念与外部资源链接对于有效使用它至关重要。例如,人类安全分析员可以正确理解威胁报告中“极光”一词的含义。它指的是中国高级持续性威胁组织(APTS)实施的一系列网络攻击,谷歌于2009年首次检测到这一攻击。然而,除非提供了安全环境,否则收集这些信息的计算机或人

工智能模型可能会将其误认为北极光。

知识图通过添加上下文以及允许对数据进行推理来弥合这一鸿沟。知识图的最小单元称为RDF三元组[21],包括使用实体和关系的数据实例。实体捕获真实世界的对象、事件、抽象概念和事实。例如,实体代表网络安全域的恶意软件、组织、漏洞和恶意软件行为特征。关系使用描述实体之间关系的关键短语来连接实体。具体地说,在恶意软件威胁情报中使用知识图添加上下文带来了许多机会:

1.实体预测:从知识图中预测缺失的实体。给定恶意软件知识图谱,填写缺少的信息,如恶意软件作者和漏洞。对于不完整的三重h多宿主窗口系统,是否具有易受攻击性?实体预测将返回实体的有序集合,例如,{欺骗路由指针、多个评估注入漏洞、堆溢出}。在这种情况下,欺骗路由指针是不完整三元组的正确尾部实体。

2.实体分类:确定实体的类别标签是否正确。例如,正确确定 spoofed route pointer(欺骗性路由指针)是class:Vulnerability的一个实例。

3.实体解析:确定两个实体是否引用同一个对象。例如,Operation AppleJeus和Operation AppleJeus Sequel可能具有相似的属性。但是,它们是不同的恶意软件活动,不应将其解析为同一实体。

4.三重分类:验证在恶意软件威胁情报知识图中的RDF三重分类是否正确。例如,< ZeroCleare, targets, Energy Sector In The Middle-East>,应该归类为正确的三元组,而<ZeroCleare, targets, Energy Sector In Russia>,应该归为不正确的三元组

像MalKG这样的知识图表包含了丰富的信息,可以被统计学习系统[7]所利用。例如,在MalKG中,一个低维的嵌入向量空间可以表示一个实体,一个矩阵可以表示一个关系。因此,可以使用各种方法将实体和关系嵌入到机器可读的形式中,从而实现自动分析和推理。

积极性:在上一节描述的例子中,知识图完成可以预测丢失的头部实体,即恶意软件“Aurora Botnet”的作者。MalKG的完整性主要依赖于两个因素:(1)威胁报告中可用的信息(2)NER和RE模型的有效性。实体预测是预测缺失实体的最佳候选对象或基于存储在知识图中的现有信息推断新事实的任务。基于规则的推理使用恶意软件威胁智能本体控制哪些头和尾实体类可以形成关系。本文提出了基于TuckER[2]实体识别模型的实体预测方法。我们还比较和对比了实体预测模型的性能,这些模型对于其他领域的数据集在其他方面表现良好。基于翻译的嵌入模型[6,20,40]表现尤其出色,而张量分解也是如此[2,37,43]。其他模型在特定数据集上可以充分发挥作用,但不能完全表达MalKG的某些属性,例如实体之间的一对多关系(不包括逆关系)和极少数对称关系实例。

网络安全情报是一个广泛的领域,并且用一个知识图表示这个领域是一项艰巨的任务。因此,在本研究中,我们将重点放在恶意软件威胁情报上,并研究恶意软件示例以说明工作。尽管如此,这些挑战和方法已经足够广泛,可以应用到安全领域的其他领域。我们的恶意软件威胁情报知识图,MalKG,实例化从互联网上收集的恶意软件威胁情报报告。我们从CVE漏洞描述数据库中提取了大约1100份PDF格式的威胁报告,以提取包含恶意软件威胁情报的实体。实例化过程将在下面的章节中描述,并包括用于命名实体抽取(NER)和关系抽取(RE)的算法。一起,NER和RE算法被部署和自动生成数千RDF三元组,捕获恶意软件威胁信息到一个知识图的单元。我们还讨论了在这一过程中遇到的挑战。具体来说,本文的主要贡献有:

1. 我们提出了一个端到端的、自动化的、本体定义的恶意软件威胁情报知识图生成框架。从1100份以非结构化文本格式编写的威胁报告和CVE漏洞描述中提取了40000个三元组。这些三元组创建了第一个开源知识图谱,用于从1999年以来的近1000个恶意软件中提取结构化和上下文相关的恶意软件威胁情报。

2. 使用基于张量分解的模型将三元组编码到向量嵌入中,可以从图中提取潜在信息并发现隐藏信息。这对网络安全分析师来说是一个至关重要的目标,因为基于向量嵌入的机器学习模型可以为自动入侵检测系统产生更准确和上下文相关的预测。

3.我们提供一个真实数据集MT3K,其中包括5741个手工标记的实体及其类、22个关系和3027个triple组,这些数据是从2006-2019年期间编写的81份非结构化威胁报告中提取的。安全专家验证了这些数据,并且在培训自动化过程以获取恶意软件威胁情报的更大知识图方面非常有价值。

4.我们在网络安全领域采用了最先进的实体和关系提取模型,并将默认语义分类映射到恶意软件本体。我们还确保模型在不影响精度的情况下扩大到威胁语料库的大小。

5.在已知知识图谱中存在缺失信息(或实体)的MalKG的情况下,我们通过在MalKG的其他三元组中寻找语义和句法相似性,通过嵌入模型准确地学习并预测MalKG中缺失信息,证明了实体补全的有效性。

6.MalKG是开源的,它与文本语料库、三元组和实体一起,为新的上下文安全研究问题提供了一个新的基准框架。

2.Background

2.1Definitions

恶意软件知识图MalKG将异构多模态数据表示为有向图,MalKG = {E,R,T},其中E,R和T分别表示实体、关系和三元组(也称为事实)的集合。每个三元组(E_{head},r,E_{tail})∈T,其中E_{head}E_{tail}∈E,r∈R,对于实体和关系E_{head},E_{tail},r,我们分别用加粗的面h, t, r表示它们的低维嵌入向量。我们分别用d_{e}d_{r} 来表示实体和关系的嵌入维数。n_{h},n_{r},n_{t}分别代表实体、关系、三元组的数量。我们使用fφ表示法来表示<h, r, t>的每个三元组的得分函数。评分函数根据平移距离或语义相似度[19]来衡量T中一个事实的可信性。表1列出了该符号的摘要。

2.2Malware Knowledge Graph (MalKG)

知识图使用实体及其之间的关系以三元组的形式存储大量特定于领域的信息。在过去的十年中,出现了诸如Freebase [5],Google的Knowledge Graph3和WordNet [10]之类的图形。它们通过计算机可以解释的语义结构化信息来增强“大数据”结果,这是构建更多智能机器必不可少的属性。不存在开源恶意软件知识图,因此,在本研究中,我们提出了针对恶意软件威胁情报的第一个自动生成的知识图MalKG生成过程使用管理的和自动的非结构化数据[21]的组合来填充KG。这帮助我们实现了策划方法的高精度和自动化方法的效率。MalKG是使用现有的本体构建的[28,34],因为它们为MalKG生成提供了一种结构,并考虑到了可实现的最终目标。本体是使用能力问题构建的,为语义类别(称为类)和属性(也称为关系)[28]的系统识别铺平了道路。本体还可以避免生成冗余的三元组,加速三元组生成过程。

MalKG包括分层实体。例如,恶意软件类可以有像TrojanHorse和Virus这样的子类。根据恶意软件传播和感染计算机的方式,一个层级捕获恶意软件的类别。另一方面,MalKG的关系并不是等级关系。例如,一种名为WickedRose的病毒(恶意软件的子类)利用微软PowerPoint的漏洞并安装恶意代码。这里的“exploit(利用)”是实体病毒(子类)和软件之间的关系,因此不需要子关系来描述不同的exploit类别。MalKG以三元组的形式来存储这些事实。

2.3Information Prediction

考虑MalKG的不完全三元组,<Adobe Flash Player , hasVulnerability, ? >。知识图补全可以预测其缺失的尾部t,即名为“Adobe Flash Player”的软件的一个漏洞。MalKG可以从一个不完整的三元组中预测丢失的实体,这构成了最小的恶意软件威胁情报单位。在构建知识图的过程中,三元组可能会缺少头或尾。知识图完成,有时也称为实体预测,是预测缺失实体的最佳候选对象的任务。它还可以根据知识图所表示的现有信息推断出新的事实来预测一个实体。

2.4MalKG Vector Embedding

MalKG的三元组由一个相对较低的(例如,50)维向量空间嵌入来表示[2,36,39,42,43],既不丢失关于结构的信息,也不保留关键特征。我们构造MalKG中所有三元组的嵌入,其中每个三元组有三个向量,e1,r,e2∈R^{d},并且实体是分层的。因此,为了缩小嵌入模型的选择范围,我们保证了嵌入模型满足以下要求:

1. 一个嵌入模型必须有足够的表达能力来处理不同类型的关系(与所有边都相等的一般图相反)。它应该为共享相同关系的三元组创建单独的嵌入。具体来说,在e1∈class:ExploitTarget中嵌入三重<e1,hasVulnerability,e3>应不同于在e2∈class:Software中嵌入三重<e2,hasVulnerability,e3>。

2. 当一个实体涉及到不同类型的关系[40]时,一个嵌入模型也应该能够为它创建不同的嵌入。此要求确保创建具有1-to-n、n-to-1和n-to-n关系的三元组嵌入。例如,一个简单而富有表现力的模型TransE[6]在处理1到n、n到1和n到n关系时存在缺陷[20,40]。它将创建非常相似的DUSTMAN和ZeroCleare恶意软件的嵌入,因为它们都涉及TDL文件,尽管它们是两个独立的实体,应该具有独立的嵌入。

3.属于同一个类的实体应该投影到嵌入空间[11]的相同邻域中。这个要求允许在预测一个未标记实体的类标签时使用嵌入的邻域信息(这个任务称为实体分类)。

2.5Challenges in MalKG Construction

从大量的威胁报告中生成三元组不是一项简单的任务,而且与创建的小型基准数据集不同,手工注释过程对于大量数据是不可复制和可伸缩的。需要解决的挑战包括:

(a)恶意软件威胁报告以非结构化文本的形式涵盖恶意软件攻击的技术和社会方面。这些报告并没有标准化的格式来描述恶意软件威胁情报。因此,从原始文本中提取的信息包含噪音和其他复杂信息,如代码片段、图像和表。

(b)威胁报告包含通用和特定领域的信息。使用根据通用数据集或特定领域(如健康状况)训练的命名实体提取(NER)模型不能用于网络安全威胁报告。此外,特定于领域的概念有时会有标题误导NER模型将其归类为通用概念。例如,当CVE描述提到“Yosemite backup 8.7”时,它指的是Yosemite服务器备份软件,而不是加州的国家公园。

(c)实体抽取有时会导致对同一概念进行多重分类。例如,SetExpan[29]可以对类似于输入种子语义类的带注释的实体进行分类。例如,实体“Linux”被归类为软件和漏洞

(d) doced[44]等关系提取方法在医学数据集上进行训练,文献记录稀疏。源代码中专门用于示例数据的硬编码变量使得重用具有挑战性。然而,我们将其推广到目标恶意软件威胁情报实体。[44]中另一个至关重要的方面是,随着给定文档中实体的数量的增加,内存需求呈指数增长。

(e)实体提取模型[1,5,29]定义的语义分类器与恶意软件威胁情报领域要求的语义分类器不同,不能直接应用。

3 MalKG: System Architecture

我们提议的恶意软件KG构建框架的输入,如图1所示,由一个训练语料库和一个现有的本体(例如[28])组成,该本体具有为MalKG提供结构的类和关系。训练语料库包含从互联网上收集的恶意软件威胁情报报告,使用本体对报告中的实体和关系进行手工标注,以及CVE漏洞数据库。训练语料库和本体类被输入到诸如SetExpan[29]等实体提取器中,以提供来自非结构化恶意软件报告的实体实例。关系提取模型[44]使用这些实体实例和本体关系作为输入,并预测实体对之间的关系。实体对及其对应关系称为三元组,它们构成一个初始知识图。我们使用基于张量分解的方法TuckER[2]来创建向量嵌入来预测缺失的实体,并获得带有完整RDF三元组的MalKG的最终版本。

3.1 Generating Contextual and Structured Information

本节描述了从非结构化数据生成上下文相关和结构化恶意软件威胁信息的过程。

语料库——可以调查威胁报告、博客、威胁建议、推特和反向工程代码,以收集有关恶意软件特征的详细信息。我们的工作依赖于威胁报告来获取关于恶意软件攻击和CVE漏洞描述的详细信息。安全组织发布关于网络罪犯如何滥用各种软件和硬件平台和安全工具的深入信息。请参阅图2以获得关于后门的威胁报告的摘录,来自Backdoor.Winnti malware family。从威胁报告文集中收集的信息包括漏洞、受影响的平台、操作方式、攻击者、第一次看到的攻击,以及诸如妥协指标等事实。这些报告为其他安全分析师提供了研究材料,他们获得了研究和分析恶意软件样本、对手技术、了解零日漏洞等必要信息。然而,并不是所有的报告都是一致的、准确的或全面的。从这些威胁报告中收集有价值的数据,以整合关于给定恶意软件的所有知识,并在威胁事件研究期间获得这些信息(例如,调查假阳性事件)是一个重要的研究目标。

情境化——MalKG以三元组的形式获取威胁信息,这是知识图[21]中最小的信息单位。例如,考虑以下威胁报告片段:

“... DUSTMAN can be considered as a new variant of ZeroCleare malware ... both DUSTMAN and ZeroCleare utilized a skeleton of the modified “Turla Driver Loader (TDL)” ... The malware executable file “dustman.exe” is not the actual wiper , however , it contains all the needed resources and drops three other files [assistant.sys, elrawdisk.sys, agent.exe] upon execution...”

表2显示了由此文本生成的一组三元组。在一起,许多这样的三元组形成了恶意软件知识图,其中的实体和关系模型节点和有向边分别。图3显示了文本中的示例知识图。

                                                                                                     

实例化本体——MalKG中的每个实体都有一个唯一的标识符,该标识符捕获包含对三元组威胁源引用的来源信息。对于MalKG,此来源信息包含提取它的威胁报告的唯一标识符或唯一的CVE id。

信息抽取——遵循恶意软件威胁情报本体,我们通过手工标注威胁报告来创建ground truth三元组。我们生成了MT3K,一种使用手工注释三元组的恶意软件威胁情报知识图。虽然这是创建ground truth的必要步骤,但是手工注释的方法有一些限制,但是对于测试大规模模型是非常宝贵的。

推理引擎——我们使用MALOnt[28]和恶意软件本体[34]中定义的类和关系从非结构化文本中提取三元组。虽然使用本体并不是实例化MalKG的唯一方法,但它可以将来自多个源的不同数据映射到共享的结构中,并使用规则在该结构中维护逻辑。本体使用公共词汇表,可以方便收集、聚合和分析数据[24]。例如,MALOnt中有名为Malware和Location的类。根据MALOnt中指定的关系,一个恶意软件类的实体可以与另一个恶意软件类实体有“类似”的关系。但是由于规则引擎,Malware类永远不能关联到一个实体的Location类。

知识图包含实体之间的1-to-1、1-to-n、n-to-1、n- n关系。实体级1到n关系是指对于某一对特定的头和关系,在知识图中存在多个正确的尾。在图3中,实体“dustman”。是恶意软件文件的一个实例。它删除三个不同的文件。实体DUSTMAN和ZeroCleare都*involve*Turla Driver Loader (TDL)文件,并阐述了n-to-1关系在知识图中是如何存在的;n到n也是类似的原理。

3.2 Predicting Missing Information

当关于恶意软件威胁的信息(实体和关系)稀少时,知识图补全能够基于MalKG中现有的三元组推断遗漏的事实。对于MalKG,我们通过TuckER[2]和TransH[40]演示了实体预测。使用FB15K[6]、FB15k237[35]、WN18[6]、WN18RR[9]等标准数据集与其他模型进行比较,为其他更精细的模型建立基线。然而,用于比较的数据集与我们的MT3KG和MT40K三组数据集截然不同。下面的协议描述了恶意软件知识图中缺失实体的预测:

1. 对于测试集中的每个三元组,将head实体h替换为知识图中的所有其他实体,从而生成一组候选三元组,以与每个真测试三元组进行比较。这一步称为损坏测试三元组的头部,所产生的三元组称为损坏三元组。

2. 不同的分数fφ(h,r,t)计算每个真测试三元组及其相应的损坏三元组。将得分按升序排序,以确定真实测试三组在有序集中的排名。该排名评估模型在给定< ?,relation, tail>的情况下预测头部的性能。排名越高,表示模型在学习实体和关系的嵌入方面的效率。

3.对尾部实体t重复前两个步骤,并存储真正的测试三元组排行。这个等级评估模型在预测给定<h、r、t>的缺失t时的表现。

4.平均等级、平均倒数等级(MRR)和命中率@n是文献中使用的常规度量,从所有真实测试三元组的等级计算得出。平均数表示所有真实测试三元组的平均数。当单个测试三元组的排名不好时,平均排名会受到很大影响。最近的文献[2,17]报道了用于更稳健估计的平均倒数秩(MRR)。它是所有真实测试三元组排名的倒数的平均值。HITS@n表示在排名的前n个位置中真实测试三次的比率。比较嵌入模型时,Mean Rank的值越小,MRR和HITS@n的值越大,表示模型越好。我们报告了各种张量分解和基于翻译的模型的MRR和HITS@n的结果。

                                                        

                                                                                               

                                                                                                  

4 Experimental Evaluation

本节介绍知识图完成的实验设置、结果和实现细节。

4.1 Datasets

恶意软件威胁情报语料库由威胁报告和CVE漏洞描述组成。威胁报告是在2006-2021年间编写的,所有CVE漏洞描述都是在1990-2021年间创建的。我们对原始语料库数据进行了几个预处理步骤。我们为每个单独的文档和CVE描述提供唯一的标识符。从每个文档中提取单独的句子,并分配一个句子ID。文档和句子的识别还为未来在可信性、上下文实体分类和关系提取方面的工作提供来源。我们使用spacy default tokenizer库(https://spacy.io/api/tokenizer)将纯文本句子标记化并解析为具有开始和结束位置的单词,并按顺序为每个文档保存它们。

4.2 Manually Curated Triples: MT3K

MT3K数据集是由我们的研究团队手动注释并由安全专家验证的5741个三元组的集合。81份威胁报告使用BRAT注释工具进行了注释(参见图4)[32]。在图4中,“PowerPoint file”和“installs malicious code”分别被标记为软件类和漏洞类。从软件到漏洞的箭头表示它们之间具有 hasVulnerability的语义关系。该注释遵循恶意软件威胁本体[28,34]中定义的规则。在恶意软件威胁情报本体[28]中定义了22个其他关系类型(Nr)。

                                                                              

MT3K数据集作为基准数据集,使用我们的自动生成三倍数的方法来评估恶意软件威胁情报。其他三重数据集如FB15K[6]、FB15K-237[35]、WN18[6]和WN18RR[9]已被用于评估通用知识图及其应用的性能,例如链接预测和知识图补全。然而,没有开源的恶意软件威胁情报知识图,因此不存在恶意软件KG评估的三元组。我们希望MT3K和MT40K能够作为未来安全研究的基准数据集。

4.3 Automated Dataset: MT40K

MT40K数据集是由27,354个唯一实体和34个关系生成的40,000个三元组的集合。该语料库由2006-2021年间编写的约1,100份未识别的纯文本威胁报告和1990-2021年间创建的所有CVE漏洞描述组成。带注释的关键短语被分类成从恶意软件威胁本体[28,34]中定义的语义类别导出的实体。在实体之间形成关系以生成用于构建MalKG的三元组时应用推理规则引擎。

我们的信息抽取框架包括实体抽取和关系抽取,基于网络安全领域的需求。该框架以威胁报告的纯文本和原始CVE漏洞描述作为输入。它定位并分类文本中的原子元素(提到),这些元素属于预定义的类别,如攻击者、漏洞等。将实体提取和实体识别任务进行了划分。实体提取(EE)步骤结合了最先进的实体提取技术。实体分类(EC)步骤解决了划分为多个语义类别的实体的消歧问题,并根据经验学习的算法只分配一个类别。将EE和EC的结果结合起来给出最终的提取结果。下一节将提供详细信息。

4.3.1 Entity Extraction (EE)

我们将标记化单词的提取分为两类:领域特定的关键字提取和通用的关键字提取(class:Location)。网络安全领域特定的EE任务进一步细分为事实关键字提取(class:Malware)和上下文关键字提取(class:Vulnerability)。我们使用精确度和召回度量作为评估标准来缩小不同类别的EE模型。具体来说,Flair框架[1]在分类通用和事实特定于域的关键短语(例如-Person, Date, Geo-Political Entity , Product (Software,Hardware)时,给出了很高的分数(0.88-0.98)。威胁报告的写作风格多种多样,以及报告转换为文本期间引入的噪音,导致类的精度得分不同,但均在0.9-0.99范围内。对于上下文实体提取,我们扩展了SetExpan [29]模型以生成文本语料库中的所有实体。基于置信度值输入实体种子值的反馈循环允许更好的训练数据集。在这种方法中使用的一些语义类是恶意软件,恶意软件运动,攻击者组织,漏洞。

4.3.2 Entity Classification (EC)

使用多个EE模型的缺点是某些实体可以多次分类,在某些情况下甚至可能不准确。我们凭经验观察到,这种现象不限于任何特定类别。造成这种现象的一个原因是不同威胁报告及其写作风格的变异和语法不一致。例如,对于文档中相同位置的“linux”会被分类为Software 和 Organization。由于实体提取模型彼此独立运行,因此紧密类类型可能有重叠。我们采用了三步法来解决实体分类中的歧义:

1.我们比较了在同一文档中同一类别之间以及各类别之间出现的实体的置信度得分。

2.对于相同的置信度得分,我们将这些类别标记为不明确的。我们保留了这些实例,直到关系提取阶段为止。那时,我们依靠本体中的规则引擎来确定给定关系的头和尾实体的正确类别(在下一节中进行介绍)。

3.对于通过了前两个步骤的实体,我们使用更广泛的语义类对它们进行了分类

4.3.3 Relation Extraction

我们基于DocRED为MalKG建立关系提取;在Wiki数据和Wikipedia上预训练的具有三个功能的远程监督的人工神经网络模型[44]。DocRED [44]要求分析文档中的多个句子以提取实体并通过合并文档的所有知识来推断它们之间的关系,这是从句子级关系提取中获得的一种转变。MT3K三元组和文本语料库形成训练数据集和在先前步骤中生成的实体,而处理后的文本语料库形成测试数据集。如第2.5节所述,虽然培训和测试不是一个简单的实现,但我们使用27354个实体之间的34个关系生成了40000个三重组。实例化的实体、它们的分类和威胁报告或CVE描述中的位置构成了RE模型的输入。测试批大小为16个文档。由于DocRED中的可伸缩性问题,每个文档中的实体数限制为少于80个。实体数较多的文本文档被进一步拆分为较小的尺寸。训练运行了4-6小时,epoch大小为984,阈值设置为0.5。

4.4 Predicting Missing Information

知识图完成(或实体预测)预测MalKG中缺失的信息。它还评估给定三元组的实体预测精度,并建议对预测的实体进行排序。对于MalKG三元组中缺失的实体,TuckER[2]张量分解方法满足MalKG结构的要求(见2.4节),可以预测缺失的实体。然而,在缩小实体预测模型的范围之前,我们对比其他最先进的模型评估了它的性能。

4.4.1 Benchmark Dataset

由于网络安全领域缺乏基准数据集,我们依靠其他数据集来观察和比较现有嵌入模型的性能。最常用的基准数据集是FB15K、WN18、FB15K237、WN18RR。FB15K和FB15K-237是从freebase的知识图谱中收集而来的,它们是包含名人、地点、事件等一般事实的协作知识库。WN18和WN18RR是来自英语词汇数据库Wordnet的数据集。更简单的模型在这些数据集上表现得更好,这些数据集中存在一个测试三组对应的反比关系。这些实例从FB15K和WN18中剔除,生成FB15K237和WNRR。openke(https://github.com/thunlp/OpenKE)对实体预测(或知识图完成)的实验结果总结在表4中。

表3描述了我们生成的图的结构- MalKG和手工标注的图、它们的属性和语料库细节之间的比较。例如,它比较实体、关系和三元组(事实)的数量、实体的平均程度以及数据集(MT3K、MT40K)和基准数据集的图密度。注意,所有关系和图密度的平均度定义分别为n_{t}/{n_{e}}n_{t}/{n_{e}}^{2}[25]。这两个指标的得分越低,表示稀疏图越少。

4.4.2 Implementation

MT3K验证集用于调优MT40K的超参数。在MT3K上的TuckER实验中,我们在de= 200, dr= 30,learning rate= 0.0005,batch size of 128 and 500 iterations时获得了最好的性能。在TransH实验中,de= dr= 200,learning rate= 0.001给了我们最好的结果。对于MT3K和MT40K,我们将每个数据集分成70%的训练数据、15%的验证数据和15%的测试数据。然而,对于较大的MT40K数据集,我们依赖于MT3K数据集进行测试。MalKG的知识图谱完成情况可以描述为两种情况:

1. predict head given <?,relation,tail>
2. predict tail given <head,relation,?>

5 Results and Discussion

表4显示了现有嵌入模型在基准数据集上的实体预测结果。一个向上的箭头(↑)旁边的评估指标表明一个更大的值是首选的指标,反之亦然。为了便于解释,我们将Hits@n measures表示为百分比值,而不是0和1之间的比率。TransE在FB15K-237数据集上的Hits@10和MRR得分最大,而TransR在其余三个数据集上表现更好。然而,尽管TransH具有TransE的简单性(时间复杂度O(de)),但TransH比TransE更具表现力(能够建模更多的关系)。TransR (O(nede+nrdedr))的空间复杂度比TransH (O(nede+nrde))[39]大。此外,平均而言,训练transr(on benchmark datasets)比训练TransH[20]多花6倍的时间。考虑到这些模型的功能和复杂性,我们选择TransH作为基于表示转换的模型。仅在一种情况下(Hits@10 on WN18), DistMult的性能比TuckER好0.37%。TuckER和ComplEx在多个案例中都取得了非常接近的结果。因此,我们密切关注最近精炼的数据集(FB15K-237和WN18RR)的结果,因为我们的MT3K数据集与这两个数据集具有相似的属性(与WN18RR一样,MT3K具有层次关系,而与FB15K-237一样,没有冗余三元组)。由于空间复杂性非常接近(ComplEx: O(nede+nrde)和TuckER: O(nede+nrdr)),我们选择TuckER对MT3K进行评价,因为它包含了ComplEx[2]。我们在我们的数据集上评估了TransH[40]和TuckER[2]的性能。表5和表6显示了TransH和TuckER在MT3K和MT40K上的性能。与基准相比,TransH在MT3K上的MRR得分有所提高。与其他基准测试结果相比,在所有测试中,Tucker的性能都有所提高。显然,在MT3K数据集上,TuckER的性能远远优于TransH。这一结果背后有四个原因:

1.与5,741个唯一实体相比,MT3K仅具有22个关系。这使得知识图具有较高的实体与关系比率,这意味着实体之间具有很强的相关性。基于张量分解的方法使用张量和非线性变换,比线性模型更准确地将此类相关性捕获到嵌入中[40]。对于较大的知识图(例如MalKG),此属性尤其重要,因为由于实体提取模型的不足或用于预测稀疏图的信息,KG可能会缺少实体。准确的预测在这两种情况下都有帮助,尤其是在网络安全领域。

2. 我们表明TuckER并没有将所有的潜在知识存储到单独的实体和关系嵌入中。相反,它使用其核心张量强制参数共享,以便所有实体和关系学习存储在核心张量中的公共知识。这就是所谓的多任务学习,除了复杂的[37]模型,没有其他模型采用这种方法。因此,TuckER创建了反映MalKG中实体之间复杂关系(1-n, n-1, n-n)的嵌入。

3.此外,我们几乎可以肯定地确保在验证和测试数据集中没有逆关系和冗余信息。与TuckER这样的双线性模型相比,像TransH这样简单而又有表现力的模型很难在这样的数据集中表现得很好。

4. TransH的参数数量与唯一实体数量(ne)呈线性增长,而TuckER的参数数量与嵌入维度数量(de和dr)呈线性增长。TuckER的低维嵌入可以在各种机器学习模型中学习和重用,并执行分类和异常检测等任务。我们探索异常检测作为MalKG未来的工作,以识别值得信赖的三元组。

由于TuckER在ground truth数据集上的表现明显优于TransH,所以我们只在MT40K数据集上使用TuckER。值得注意的是,除平均排序(MR)外,其他所有指标在MT40K上均比MT3K有所改善。它证实了一般的直觉,当我们提供更多的数据,模型学习嵌入更有效。MR不是一个稳定的衡量指标,即使单个实体的排名很低,它也会波动。我们看到,即使MR恶化,MRR评分也有所提高,这证实了只有少数糟糕的预测会显著影响MT40K上的MR的假设。Hits@10为80.4,说明实体预测模型预测一个有序实体集时,真实实体出现在前10名的次数为80.4%。Hits@1测度表明,模型将真实实体排在第1位的次数为73.9%,即在80.4%的情况下,模型的最佳预测是对应的不完全三元组缺失实体。我们可以类似地解释Hits@3。我们将MT40K上的整体实体预测结果转化为足够的结果,以便训练的模型可以得到改进,并进一步用于预测看不见的实体。

                                                    

                                                                                          

7 Conclusion

在本研究中,我们提出一个框架来生成第一个恶意软件威胁情报知识图MalKG,它可以从非结构化威胁报告中生成结构化和上下文相关的威胁情报。我们提出了一种以非结构化文本语料库、恶意软件威胁本体、实体抽取模型和关系抽取模型作为输入的体系结构。它创建了三元组的向量嵌入,可以从图中提取潜在信息并发现隐藏信息。该框架输出一个MalKG,它包括27,354个独特实体、34个关系和大约40000个以entityhead-relation-entitytail形式存在的三元组。由于这是一个相对较新的研究方向,我们演示了知识图如何通过实体预测应用程序准确地预测文本语料库中的缺失信息。我们激励并实证地探索了不同的三组编码模型,并得出结论:基于张量因子分解的方法在我们的数据集中获得了最高的整体性能。使用MT40K作为基线数据集,我们将为未来的工作探索实体和关系提取的稳健模型,这些模型可以推广到网络安全领域,用于不同的数据集,包括博客、tweet和多媒体。另一个应用是使用向量嵌入从MalKG编码的背景知识中识别可能的网络安全攻击。当前的预测模型可以为缺失的信息生成一个顶级选项列表。将这种能力扩展到预测有关新生攻击向量的威胁情报,并使用这些信息来防御尚未广泛传播的攻击,这将是一件有趣的事情。通过这项研究,我们想要解决的一个基本问题是知识图谱中不准确的三元组。这是由于实体和关系提取模型的局限性和威胁报告中不准确的描述。

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值