赞
踩
标题 | Vulcan: Automatic extraction and analysis of cyber threat intelligence from unstructured text Vulcan:从非结构化文本中自动提取和分析网络威胁情报 |
期刊 | SECURITY AND COMMUNICATION NETWORKS |
分区 | 3区 |
年份 | 2022 |
引用数 | 7 |
关键词 | 网络威胁情报;CTI;网络安全;信息提取;语言模型 |
摘要:
为了应对快速发展的网络威胁,人们进行了大量研究工作来设计网络威胁情报(CTI)系统,从公开来源中提取 CTI 数据。具体来说,文件哈希和 IP 地址等妥协指标 (IOC) 受到安全研究人员的最多关注。然而,以 IOC 为中心的 CTI 系统理解和检测威胁的能力仍然存在疑问,原因有两个。首先,IOC 是取证工件,表明端点或网络已受到损害。他们无法描述威胁的技术细节。其次,攻击者频繁改变基础设施和静态指标,这使得IOC的寿命非常短。因此,在设计CTI系统时,我们应该将注意力转向有助于威胁理解和检测的其他类型的CTI数据(例如攻击向量、工具)。在这项工作中,我们提出了 Vulcan,一种新颖的 CTI 系统,它从非结构化文本中提取描述性或静态 CTI 数据并确定它们的语义关系。为此,我们设计了一种针对网络安全领域量身定制的基于神经语言模型的命名实体识别(NER)和关系提取(RE)模型。实验结果证实,Vulcan 具有很高的准确性,对于 NER 和 RE 任务,平均 F 1 分数分别为 0.972 和 0.985。 Vulcan 还提供了一个环境,让安全从业者可以开发用于威胁分析的应用程序。为了证明Vulcan的适用性,我们引入了两个应用:演化识别和威胁分析。这些应用程序节省了分析网络威胁并显示威胁的详细特征的时间和人力成本。
文章要解决的问题:对于当前较为流行的以IoC为中心的CTI系统存疑。指出两点疑问:IOC大多数情况只能作为取证指标,因为收集到IOC时目标以及受到损害;其次,攻击者频繁改变基础设施和静态指标,这导致IOC的寿命非常短。本文着力点为非结构化文本中提取描述性或静态 CTI 数据并确定它们的语义关系。
提出的方法:
CTI 收集的公共来源示例包括 MalwareBytes、AlienVault 和 FireEye 的站点。通过组织之间的 CTI 共享可以使对网络威胁的理解更加准确,已经提出了多项提案,例如 STIX (2022);TAXII (2022) 。 TAXII 定义了用于交换 CTI 数据的协议,而 STIX 是该数据(包括网络威胁事件)的通用语言标准。MISP(2016) 和 OpenCTI (2022) 已被提出来有效地收集、存储和管理有关网络威胁的 CTI 数据。
数据抓取器数据抓取器是一种从多个网站收集以自然语言编写的与威胁相关的文本数据的爬虫。具体来说,数据抓取器首先收集文章的链接,直到每个站点不再有链接为止。对于每篇文章链接,它都会提取标题、撰写日期、内容和域名。就 Twitter 而言,数据抓取器收集包括“勒索软件”主题标签的推文。某些类型的网站在描述详细解释之前会提供结构化的威胁摘要。数据抓取器还收集这些数据作为威胁分析的资源。预处理器 对于通过数据抓取器收集的文章,预处理器执行两个文本处理任务:主题过滤和文本清理。首先,整理了有关勒索软件攻击的文章。为此,收集的文章会通过包含一组与勒索软件相关的关键字的过滤器。关键字的示例包括“加密”、“解密”、“需求”和“赎金”。其次,由于文本处理在很大程度上取决于输入文本的质量(Roy 等人,2020),因此我们需要整理文章以获得干净的文本。为此,预处理器使用一组正则表达式从文章中删除嘈杂的字符,例如 HTML 标签和空格。最后,对每篇文章应用句子标记化,将文章划分为句子列表。
图一表示非结构的自然语言数据经过VulcanCTI分析系统后的威胁关系示意图。
图二中展示了三个CTI数据提取实体信息并打标签的实例。
图三表示本文设计的实体与关系:(黑圈表示实体;黑线表示关系;红圈色表来自外部数据源)
实体(8个):
关系(8个):spread_via(传播途径)、exploit(利用)、target(目标)、variant_of(变体)、detected_at(被发现)、use(使用)、capable_of(有能力...)、encrypt(加密)
某些类型的 CTI 数据及其关系是从提供结构化 CTI 数据的外部来源导入的:MITRE,2022;NVD,2022
TEI架构如图5所示。
BERT-BiLSTM-CRF 在训练 TEI 之前,我们将输入句子转换为 token 序列,即 BERT 模型的格式。然后,来自 BERT 模型的令牌的最终隐藏状态向量被输入 BiLSTM 层。 BiLSTM 层从令牌序列的前向和后向两个方向提取特征。接下来,BiLSTM 层的输出被馈送到 CRF 层以解码最佳标签序列。 标签:勒索软件、攻击向量、漏洞、平台、算法、工具和其他。
威胁实体识别的局限性是无法真正理解一段文字表示下的隐藏含义,问题分为两种:
(1)单个实体经常指代不同的事物。
(2)具有不同名称的多个实体指示相同的事物。
为了克服以上问题,实体链接器执行两种类型的操作:实体分割和实体集成。
当文本数据中没有明确提及实体时,就会出现问题(1)。
例:“Magniber 勒索软件在 2018 年 7 月卷土重来。”
TEI 将“Magniber”一词识别为“勒索软件”。但是,实体 Magniber 对应于 Magniber 勒索软件家族的第二个版本。它的第一个版本于 2017 年 10 月首次发现。尽管这两个版本的勒索软件具有相同的名称,但它们在技术上彼此不同。故而,需要将两者进行区分识别,也即为实体分割。
事件发生时推文的数量往往会迅速增加。如图6所示,包含关键词“CryPy”的推文数量在出现一次推文爆发后呈下降趋势。相比之下,包含关键字“Magniber”的推文数量在很长一段时间内飙升了数倍。因此很可能出现了与 Magniber 同名的新变体。
利用前文设计的TEI,指代同一事物的术语被替换为代表性表达。例如,“电子邮件”和“附件”被替换为“电子邮件”。然后我们检查爆发点中是否包含以前未见过的技术术语。如果是这样,我们根据突发点的时间顺序将给定的候选实体分成几个具有版本号的不同实体(例如,Magniber v1.0、Magniber v2.0)。
当网络安全领域中某些实体被使用多个名称(即别名)就会引起问题(2)
例:两个具有不同名称的勒索软件实体Revil和Sodinokibi表示相同的勒索软件,两个不同类型的实体EternalBlue和CVE2017-0144表示相同的漏洞。这些指代同一事物的实体可以在不同来源(例如文章、博客)中互换使用。
需要将这些表示相同事物的实体链接起来。为了解决这个问题,我们应该构建一个索引词典,即由别名对 (a 1 , a 2 ) 组成的字典,其中 a 1 是 a 2 的别名。我们从提供结构化 CTI 数据的多个来源收集与威胁相关的术语及其别名。然后,对于每个别名对 (a 1 , a 2 ) ,我们在与别名对名称相同的实体之间添加 alias_for 关系。
TRI架构如图7所示 。
- 输入句子同时输入实体对,并在实体前后插入特殊标记。
- 将实体名称进行掩码处理避免TRI训练过拟合。
- 将预处理后的句子转换为 BERT 模型使用的格式(每个句子都被 WordPiece 标记器标记为一系列标记,并在开头添加[CLS])。
- 通过BERTlayer平均运算应用于每种实体类型的隐藏状态向量。
- 再将三个向量和两个实体类型分别输入到全连接 (FC) 层。
- FC 层的输出被连接并传送到另一个 FC 层,然后是 softmax 层。
- 最后,TRI 识别输出实体之间的关系类型。
图 9 显示了一个应用程序的代码,该应用程序将勒索软件实体作为输入参数并返回其演变时间线。
代码逻辑:
- 首先从输入实体中找到所有可访问的勒索软件实体(变体)
- 而实体之间的关系类型对应于“variant_of”
- 接下来,按检测到实体的时间顺序对实体进行排序
- 最后,提取与每个勒索软件实体连接的任何类型的实体,以提取勒索软件实体的特征。
表 4 列出了 Vulcan 支持的搜索 API 的摘要(当前只包含基础功能)
- 链接/断连Vulcan数据库
- 获取实体/关系列表
- 获取给出的实体的类型/实体对的关系
- 获取到给定实体相关联的所有实体
总体架构如图4所示,Vulcan分为两部分:CTI数据采集和CTI数据使用。
数据收集部分由五个部分组成:
- 数据抓取器
- 预处理器
- 威胁实体标识符
- 实体链接器
- 威胁关系标识符
每个组件通过将前一个组件的输出作为输入来顺序操作(pipeline型模型)
CTI数据使用由系统提供的API进行调用。
Vulcan 的操作首先通过数据抓取器收集文本数据开始,这些文本数据可能包括来自多个来源(例如威胁报告、文章)的 CTI 数据。第二,预处理器过滤收集的数据,仅选择与勒索软件攻击相关的数据。第三,威胁实体标识符(TEI)从文本数据中提取实体。第四,实体链接器执行两个功能:实体分割和实体集成,为 TEI 识别的实体分配唯一的身份。实体分割步骤将引用不同事物的同名实体解耦。例如,虽然Magniber勒索软件家族有多个变体,但它们都以相同的名称“Magniber”来指代。因此,根据变体的独特特征,Magniber实体被分为不同的东西。另一方面,实体集成步骤将引用同一事物的不同名称的实体连接起来(例如 MailTo、NetWalker 和 Koko)。最后,威胁关系标识符(TRI)确定同一句子中实体的语义关系。
经过系统分析过后,Vulcan 将收集到的 CTI 数据及其关系存储在图形数据库中,并为安全从业人员提供搜索 API 来访问数据库。这些 API 使他们能够开发各种类型的应用程序以进行威胁分析。在这里,我们介绍两个使用搜索 API、进化识别和威胁分析构建的应用程序。
实验在具有 40 个 Intel Xeon E5-2630 CPU、12 个 16 GB 内存和 4 个 TITAN Xp 的服务器上进行了所有实验。
在这里,我们解释了用于实验的数据集和语言模型。我们还描述了与提供结构化 CTI 数据的现有来源的数据集成,以增加 Vulcan 的数据覆盖范围。
为了评估我们的系统 Vulcan,我们构建了一个真实数据集,其中包含用 6,791 个实体注释的句子以及实体之间的 4,323 个关系。
为了生成数据集,我们邀请了五名计算机科学研究生来执行注释任务。注释任务涉及两个步骤。首先,我们使用图 3 中定义的实体类型之一手动标记句子的单词。本步骤中标注的文字用于训练和评估威胁实体标识符(TEI)。其次,我们标记注释实体之间的语义关系。此步骤中注释的关系用于训练和评估威胁关系标识符(TRI)。图8示出了带注释的句子的示例。每个句子都包含命名实体之间的一个或多个关系。除了勒索软件攻击的关系类型之外,我们还考虑与其他类型相对应的关系的负样本,以使 TRI 将图 3 中定义的我们感兴趣的关系与其他关系区分开来。例如,考虑以下句子:“就 WannaCry 而言,它不会感染 Mac 系统。在这里,我们在实体对之间分配另一种类型(WannaCry,Mac)。
表1中涵盖了每种实体类型的平均精度、召回率和 F1 分数。
TEI 以 0.968 的平均精度和 0.977 的平均召回率检测我们感兴趣的实体。在本工作中讨论的实体类型中,漏洞类型产生最高的F1分数1.000,攻击向量类型显示最低的F1分数0.951。我们观察到倾向于遵循固定模式的实体类型表现出较高的性能,例如漏洞和算法。这可以归因于这样一个事实:实体类型的模式是决定给定单词的实体类型的关键特征。另一方面,对于勒索软件和攻击向量等实体类型,可以确定类型的特征在给定单词中并不能很好地体现出来。因此,在识别勒索软件和攻击媒介时,性能会出现一些下降。
如表2所示,TRI取得了较高的性能,平均精度为0.981,平均召回率为0.990。实验结果证实 TRI 的参数经过训练可以正确确定给定输入的关系类型。此外,TRI在区分实体之间存在方向的variant_of类型关系方面表现出很高的精确度和召回率。这是因为实体之间放置的单词明显不同,例如,variant_of (e1 , e2) 的 < e1 , e2的后继 > ,以及 < e1 的变体,称为 e2 > 对于variant_of (e2 , e1 ) 。与网络安全领域现有的关系提取工作(Dong et al., 2019; Jo et al., 2020; Pingle et al., 2019)相比,TRI 在提取 CTI 数据之间更多样化类型的关系时表现出相当的性能。
表3显示了Vulcan与现有NER、RE模型的性能比较。首先,与 CRF、BiLSTM + CRF 模型相比,我们的 NER 模型 TEI 在精度和召回率方面都表现出了更好的性能。
其次,我们比较了两个 RE 模型 CNN 和 TRI 与两种不同类型数据集的性能:
(1) 真实情况 (g-truth) 数据集和
(2) NER 模型的输出(即 CRF、 BiLSTM + CRF 和 TEI)。
g-truth 数据集由正确标记的实体及其关系组成。它用于评估 RE 模型对实体之间的关系进行分类的效果。另一方面,NER 模型的输出包括几个错误分类的实体及其关系。它用于评估 RE 模型的端到端性能。
图 10 和 11 显示了两个勒索软件家族(Satan 和 Magniber)的演变时间表,其中显示了每个变体添加了哪些功能。请注意,勒索软件实体之间的边缘方向是相反的,以指示演化方向。并且,之前出现的功能并未针对时间线的可见性进行标记。
图12显示了Ryuk勒索软件恶意行为的分析结果。从应用程序的输出中,我们可以识别勒索软件除了加密之外还执行哪些行为,以及它使用哪些工具来执行这些行为。
4.1 收获
1.学习到了几个细节:
- 实体连接器中的实体分割,考虑到了同一款(同名)恶意软件/工具的不同版本的问题,并通过时间和技术的差异来进行分离提取。
- 系统API的设计,这对于研究落地相当重要,只有不断完善趋于成熟的api才能让这个系统在实际的威胁分析当中起到关键作用。
- 评估实验中对于关系提取的对比实验时,提到了使用错误分类来,这个观点我第一次注意到,我暂时理解为:当使用错误的NER分类来给到RE时,这个RE能够检测出错误or这个RE能纠正这个错误,至于是否是这样有待深究。
- API的设计,能够描述恶意软件家族的发展时间线、对不同关系和实体的信息进行检索。
2.一些思考:
1.为什么大多数的此类文献几乎都在用基于BERT模型的pipeline?
2.非结构化的开源安全报告除了IoC、实体识别、关系抽取还有什么更深层次的信息可以挖掘?我认为这种提取的CTI离真正的TTP还有一段距离。
4.2 问题
1.文中尽管提到了非结构的数据来源,并且量很大,但是本文所用到的数据集的分析并未阐述。
2.文中最后提到了评估系统的实验,但是关于训练TEI和TRI的实验以及实验评估均未提及。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。