本文是 Computer & Security 121(2022)102828
文章 KRYSTAL: Knowledge graph-based framework for tactical attack discovery in audit data的阅读笔记
代码https://github.com/sepses/Krystal
Computer & Security 121(2022)102828
基于攻击图的方法是发现攻击的一种很有前途的方法,近年来人们提出了各种各样的技术。然而,一个关键的限制是,到目前为止开发的方法在其体系结构上是单一的,在其内部模型上是异构的。现有原型的不灵活的自定义数据模型和用代码而不是声明性语言实现规则,一方面使技术的组合、扩展和重用变得困难,另一方面也妨碍了安全知识的重用——包括检测规则和威胁情报。
KRYSTAL通过提出一个基于知识图的模块化框架来应对这些挑战,该框架用于威胁检测、攻击图和场景重构,并基于RDF作为知识表示的标准模型进行分析。这种方法提供了查询选项,促进了内部和外部背景知识的上下文化,以及多种检测技术的集成,包括标签支持、攻击特征和图形查询。
我们在一个公开可用的原型中实现了我们的框架,并演示了它在DARPA透明计算数据集的多个场景中的适用性。我们的评估表明,在我们的框架内结合不同的威胁检测技术提高了检测能力。此外,我们发现RDF来源图是可扩展的,可以有效地支持各种威胁检测技术。
面对复杂的网络攻击,不仅要尽早发现攻击,而且要了解攻击的背景和影响,以选择合适的应对策略。为了保护自己,组织通常依赖于防御,如入侵检测系统。这些系统是有用的,因为它们可以指出妥协和问题的指标,但它们通常也会产生大量误报。为了识别相关警报,有必要调查其背景,这通常需要大量的人工工作和专业知识。随着低级日志数据量的增长,手工分析变得越来越不可行。
在这种背景下,系统级来源图依赖于以图结构表示的审计数据,作为一种具有强大抽象表达能力和相对高效率的有前途的工具,最近在安全研究界引起了相当大的关注。这种起源图通过时间戳定向图表示控制流和数据流之间的关系,在系统中的主体(如进程、线程)和对象(如文件、网络套接字)之间。在此基础上,开发了各种各样的技术来自动检测和连接这些图中的攻击步骤。
这张图是由我们的原型生成的,它捕捉了在给定的时间段内主机上运行的进程、文件读写和发送的数据包②。放大的这张图突出了一个攻击片段,攻击者通过一个畸形的HTTP请求利用了一个脆弱的nginx web服务器。攻击者通过脆弱的web服务器(①②);管理写一个可执行文件/tmp/XIM (③④⑤);启动一个进程,从/etc/passwd(⑥)读取敏感信息,最后通过HTTP将数据泄露到外部网络(⑦)自动构建的来源图将攻击场景总结为一系列相互连接的低级别事件,这为安全分析提供了良好的起点。
尽管有其潜力,基于来源图的分析面临着许多挑战,目前很难将其应用于实际设置。
为了解决这些挑战,我们提出了一个知识图驱动的框架(KRYSTAL),该框架利用语义Web技术进行审计日志分析和战术攻击发现。
本文贡献:
(i)开发了一个标准化的、共享的和可重用的日志事件、检测规则和威胁情报概念。从而对异构源的日志事件进行统一和整合,用背景知识丰富日志事件;
(ii)引入了一个模块化的威胁检测和攻击图重构框架,该框架利用了该模型,并集成了多种先进技术,如标签传播、衰减和衰减、基于签名和图查询;
(iii)生成攻击图,可以通过与背景知识链接来丰富和上下文化;例如,上下文化可以帮助分析人员识别和访问高级攻击场景,以了解它们的重要性、原因和影响。
(iv)提供了一个开源的系统原型4,并在一个建立良好的大规模数据集上对其进行评估
在本节中,我们将介绍知识图作为方法的概念基础。
**知识图谱。**是一个有向标记图G = (V, E),其中V是顶点(节点)的集合,E是边(属性)的集合。单个图通常表示为一个三元组的集合T = < s p o >,其中s是主语,p是谓语,o是宾语。
**RDF, RDF-S,OWL。**资源描述框架(RDF)是表示知识图的W3C标准数据模型。在RDF中,主语是由唯一标识符(URI)或空白节点标识的资源,宾语可以是资源、空白节点或文字(例如,字符串、数字),谓词是在拓扑中定义的属性,必须是URI。RDF-S(资源描述框架模式)是用于知识表示的W3C标准数据模型。它使用一组类和RDFS蕴涵(推理模式)扩展了基本RDF词汇表。OWL (本体网络语言)也是编写本体的W3C标准。我们使用RDF-S和OWL来表示我们的系统调用起源本体。
**语义推理。**OWL和RDF-S的中心思想之一是,它们支持通过知识图进行推理。这是一个很重要的方面,它使我们能够基于现有的事实(实体及其关系)自动推断出新的知识。我们在5.3节中讨论的方法中利用了几个内置的RDF-S和OWL推理规则,它们基于描述逻辑的基础(Horrocks, 2005)。此外,在我们的方法中,语义推理用于简化起源图构建过程中的RDF映射ping(在第6.1节中详细讨论),并降低查询的复杂性,例如,用于攻击重构,即向后链接机制(在第6.3节中讨论)。
**SPARQL。**SPARQL是一种W3C查询语言,用于检索和计算RDF存储的数据。它为聚合、子查询和否定等复杂查询提供了丰富的表达能力。此外,SPARQL通过SPARQL查询联合提供了跨多个分布式数据源表达查询的能力。在安全环境中,这是一个主要的好处,因为与安全相关的信息通常分散在不同的系统和网络中,需要考虑不同的日志源、IT存储库和网络威胁情报源。
基于我们对技术现状的局限性的分析(参见第2节),我们确定了以下一组需求,用于构建知识图驱动的战术攻击发现的模块化框架。
调查和优先处理安全警报(通常包括大量误报)需要广泛的安全领域知识来理解警报的上下文。这就需要使用适当的背景知识将来源图中的信息上下文化,这就需要一个灵活的数据模型。为了克服这些限制,我们的框架的一个关键需求是能够将起源图与所调查系统的背景知识结合起来。
可重用性(攻击模式和结果图)可扩展性(检测、重构和汇总技术)在基于证明的日志分析的现有整体解决方案中并不是设计优先级。为了解决这一限制,开发的框架应该在提供适当性能的同时,能够:
(i)用声明性语言制定和交换检测、警报和攻击图重构的规则
(ii)用标准表示交换证明图的实例
(iii)用标准语言查询证明图
(iv)合并和交换威胁信息
(v)重用和结合分析技术。
连接孤立的事件来重新构建一个完整的攻击场景是理解警报的相关性和影响的重要步骤。在这种情况下,将低水平威胁证据与复杂的多阶段攻击相联系的能力将是非常有益的。而一些现有的方法旨在确定步骤并将其与高级APT阶段关联,但它们没有利用外部来源(如MITRE ATT&CK, 2021年)中丰富的可用网络威胁情报(CTI)信息,该信息提供了常见Vul-弱点和暴露(CVE) (CVE, 2021年)、常见弱点枚举(CWE) (CWE, 2021年)等链接。因此,我们将利用这种连接和提供集成查询功能的能力定义为所开发方法的关键需求。这将促进从低级事件图到高级技术和战术的抽象,为优先级提供额外的信息。
来源图是跟踪信息流的一种高效表示,将对象之间的交互作用表示为事件。每个事件都涉及到一个主体,即一个系统对象(例如进程、线程),它在一个对象(例如文件、套接字、注册表)上执行特定的操作(例如写、读、发送)。由于对象通常出现在多个事件中,所以产生了一个图。
我们提出KRYSTAL本体作为系统调用起源图的一种描述。使用本体的主要好处是能够共享共同的理解,包括概念和结构,使假设明确,促进语义推理,并促进概念重用(Noy和McGuinness, 2001)。此外,利用本体来表示证明图,可以方便地整合背景知识,并在不同的威胁检测方法中统一概念模型。
在开发KRYSTAL本体时,我们采用了一种混合方法,即同时使用自底向上和自顶向下的方法。自底向上,我们从分析应用程序的底层数据结构(例如,审计日志)开始,并确定它们的实体和关系。自顶向下,我们考虑了来自现有网络威胁情报来源的攻击模式(例如MITRE ATT&CK MITRE, 2021年),并将我们的本体与现有的非本体来源模型/模式进行了比较。我们开发的本体能够表示低级的系统调用来源数据,并将其链接到高级的攻击模式(参见6.4节)。
图描述了一个以用户、主机、系统对象等核心概念为中心的KRYSTAL本体的摘录。后者表示系统实体,如进程、文件和套接字。我们将每个系统对象赋值给一个类(由rdfs: class标识)和潜在的子类(由rdfs:subClassOf标识)。每个系统对象都是一个ver- tex v,系统对象之间的关系(如写,isReadBy,发送等)通过边e表示(由owl:ObjectProperty标识)。
KRYSTAL,一个用于在审计数据中发现战术攻击的模块化框架。该框架由三个主要部分组成,即(i)来源图构建,(ii)威胁检测和预警,(iii)攻击图和场景重建。
该组件由两个子组件组成:日志解析和RDF映射。日志解析将原始日志事件从异构主机和操作系统*(例如,auditd从Linux, ETW从Windows, dtrace从FreeBSD)转换成结构化格式(例如,JSON)*。该组件从日志事件中选择并解析重要信息,如系统实体(如进程、文件、套接字等)及其关系(如读、写、执行等)。RDF-mapping将结构化日志数据映射为RDF图表示。具体来说,我们使用了第5.2节中描述的KRYSTAL本体和RML 14(一种声明性rdf映射语言)来映射解析过的审计数据,并将它们转换为定义良好的、基于rdf的来源图。
我们采用两种策略来减小图的大小。首先,我们自动合并由相同URI标识的重复RDF输出(2021),从而消除冗余事件(具有相同主题、属性和对象的事件)。此外,我们跳过了不相关的事件,即在我们的本体中不被考虑的事件。其次,我们使用头字典三元组(HDT) 作为一种图压缩技术,为RDF提供了一种紧凑的数据结构和二进制序列化格式。HDT保持大的图数据的压缩和管理,同时不需要事先解压就可以进行查询操作。我们将在第8节讨论图的约简和压缩结果。
由于统一的知识图谱表示,KRYSTAL框架允许结合和集成各种威胁检测和警报技术。具体方式:
(i)转换和集成已建立的威胁检测和警报技术
(ii)通过转换策划的公共规则(例如Sigma规则)合并基于特征的威胁检测方法
(iii)将已识别的攻击模式链接到高级攻击技术和战术(TTPs映射)。
衰减与衰减是解决“依赖爆炸”问题的技术,当源图中的节点与大量系统对象交互时,就会发生这种问题,导致大量良性事件被标记为攻击的一部分。导致了大量的假阳性警报,使识别相关警报变得困难。标签衰减的目的是通过考虑对象不完善的中介,通过良性过程传播恶意行为来消除这个问题。在前面的例子中(参见图6),例如,低完整性进程p1写一个文件f1,降低了它的完整性。为了避免从那里过度传播到其他对象,良性主体的完整性和机密性标签在传播到另一个良性对象之前被衰减。这可以通过对原始标签值应用附加因子af来实现。
标签衰减是基于这样的假设:以防一个良性主体受到损害并变得可疑,它将在使用可疑输入后很快这样做(例如,读取低完整性文件)。因此,这种技术逐渐提高了低完整性主体的分数,并限制良性对象被传播和标记为可疑对象,特别是对于长时间运行的流程。
基于来源的警报策略根据来源图中多个条件的同时满足来检测攻击。这些条件考虑到数据完整性标签以及与节点相关的信息(例如,权限、用户)。
例如,在以下警报策略下,可以检测到可疑的文件执行
KRYSTAL框架通过将警报策略表示为SPARQL查询,并将它们与来源日志图进行匹配,从而简化了基于来源的警报。
我们使用一种基于签名/规则的检测方法来补充基于来源的机制,该方法利用IoC定义来识别日志事件中的已知点。这说明统一的KG表示通过使用一种通用的声明式查询语言促进了多种方法的结合。
我们的框架自动地将这些Sigma规则规范23转换为SPARQL查询表达式。具体来说,我们在检测属性下标识了两个搜索标识符:
(i)列表包含应用于完整日志消息的字符串,并与逻辑“OR”连接
(ii)映射由键/值对组成
其中键是日志数据中的一个字段,值是一个字符串或整数。映射列表使用逻辑“OR”连接,而映射的所有元素使用逻辑“AND”连接。
我们将列表表示为带有正则表达式匹配的SPARQL过滤器,而映射则表示为三种模式,即主题(S)、谓词§和对象(O)。S是一个日志对象,P是一个日志属性,即日志数据中的键/字段,O是值。与列表类似,我们在SPARQL中使用regex过滤器表示键/值对匹配。此外,我们还将规则元数据映射和转换为RDF格式。
在我们的框架的威胁检测和警报模块中,翻译后的西格玛规则对起源图执行以检测潜在的攻击/威胁。如图7(3)所示,由于执行/tmp/vUgefal进程位于Sigma规则定义的/tmp/文件夹中,我们在源图中检测到一个名为“Program Executions in Suspicious Folder”的警报。
随后,生成的警报将自动链接到后台知识中的ATT&CK知识图中的T1204.002(用户执行:恶意文件)技术(参见图7第(4)部分)。
一旦构建了起源图并提出了警报,接下来的重要步骤是了解警报是如何连接的,并重建潜在的攻击步骤。为此,我们通过
(i) 后向-前向链接
(ii) 图查询
来构造一个攻击图和攻击场景。
用于首先识别攻击的潜在根本原因,然后重构整个攻击步骤。由于基于来源的警报可能会产生许多警报,我们需要对它们进行优先排序,并确定攻击的潜在根本原因警报。这可以通过在向后搜索时分配一个警报分数来实现,即递增路径上每个前次警报的警报分数。
图查询可以根据攻击模式检测源图中的攻击行为。图查询模式可以从已发布的CTI、事件报告、公共恶意软件文档等中观察到的行为或现有信息构建。在此基础上,可以手动构造模式,也可以通过AttacKG (King and Chen, 2003b)等自动提取方法来构造模式。
与安全相关的事件通常是高度上下文特定的,因此,它们的解释需要广泛的背景知识(Ekelhart等人,2018)。这些知识在我们的方法中扮演着重要的角色,可以丰富和提供额外的信息,例如,识别生成的攻击图中的高级攻击步骤。
图10显示了我们的方法的实现架构。我们开发了一个基于java的日志处理工具,称为KRYSTAL引擎,它使用来自Linux auditd , FreeBSD DTrace 31 ,和Windows ETW三个不同日志源的日志数据。我们使用KRYSTAL本体来解析日志数据并将其映射到基于rdf的来源图中。利用Jena32推理机,我们可以在建立起源图的过程中推断出新的知识
此外,我们扩展了现有的SEPSES网络安全知识图,包括MITRE ATT&CK的攻击技术和战术,并将其纳入外部背景知识。此外,我们将现有的IoC Sigma规则转换为SPARQL查询。
我们使用内存中的Jena TDB 33和Stardog企业知识图谱平台,构造攻击图(通过前向链接和图查询),链接内部和外部背景知识(通过SPARQL查询联合),并对生成的攻击图进行可视化。
在下面的应用场景中,我们演示了KRYSTAL框架如何自动构造紧凑的攻击图,用背景知识将其链接和上下文化,最后通过MITRE ATT&CK中定义的TTP将其映射到高级攻击步骤。使用DARPA数据集,其中包含了由一个红队进行的攻击场景,这是DARPA透明计算(TC)计划的一部分。
在评估中,我们使用了DARPA (DAR, 2021)组织的第三届透明计算(TC)项目中红队与蓝队对抗交战的成熟数据集。数据集分成五个类别,即Cadets, Trace, Theia, FiveDirections和ClearScope。每个数据集包括在特定目标主机和平台上的交战期间生成的日志事件。此外,攻击步骤的描述也可以作为基本事实。
表4总结了我们评估的Theia (TH)、Cadets (CD)和FiveDirection (FD)数据集中的五种策略场景。总的来说,这些场景涵盖了三个数据集超过7天的日志数据,其中超过53 GB的JSON格式日志。
在我们的实验中,我们收集了以下评估指标:
表4给出了五种场景下来源图生成与压缩的评价结果。
表4的最后一列显示了每个数据集在HDT (Fernández et al, 2013)格式下生成的来源图的压缩结果。平均而言,压缩后的来源图大约比TURTLE格式生成的来源图小22倍。
我们评估了三个方面来衡量我们方法的运行时性能:
每个实验重复5次,给出平均结果
如表5所示,我们的方法可以从平均每秒20k次事件的日志数据生成基于rdf的来源图。出处生成的最高性能在场景5中实现,37.8k事件/秒。与其他场景相比,FiveDirection在我们的模型中没有考虑到的事件数量更多,导致在源图生成过程中可以排除大量的事件。
我们根据标记源图上的警报策略来衡量检测警报的有效性。我们利用如更改权限、文件执行、文件损坏或数据泄漏等警报策略。此外,我们创建了一个自定义警报Reconn,检测从外部ip到访问敏感文件的进程的连接。
表6总结了所有场景下检测到的警报。总的来说,我们的方法检测到地面真实情况下的所有高级攻击活动,并取得了与侯赛因等人(2020)的评估相似的检测性能。
表7显示了KRYSTAL框架中基于Sigma规则的所有5个场景中触发警报的数量。对于以Linux和FreeBSD作为日志源的场景,翻译后的Sigma规则检测到类似的基于传播的警报检测,而没有任何错误识别的警报。它包括对系统所有者或用户发现、文件或文件夹权限更改、权限升级准备、程序在可疑文件夹中执行等的警报。此外,Sigma规则检测到更多基于传播的方法所遗漏的特定警报,例如bash_profile修改(作为持续阶段的一部分)和数据压缩(作为数据导出阶段的一部分)。
我们的实验表明,知识图基础能够整合来自各种检测技术的结果,并将它们与额外的知识联系起来,并为分析人员提供全面的、多范式的威胁分析的丰富观点。
统一的表示是能够满足第4节中提出的要求的**关键基础。**现有的基于源图的检测和调查方法缺乏统一的数据格式,这阻碍了它们的重用和集成。KRYSTAL用基于W3C标准RDF和OWL的知识图框架填补了这一空白。统一的模型使我们能够结合各种最先进的威胁检测技术,并将它们应用于一个常见的来源图——实现R2。此外,它也使它更容易构造数据集和共享起源图数据。
我们的评估表明,KRYSTAL本体可以用于跨平台的审计数据建模,如Linux (auditd)、FreeBSD (dtrace)和Windows (ETW),并实现R4。总的来说,这将有助于降低进一步研究、繁殖和定量比较的障碍。
最后,我们还发现,统一表示使得将来自内部和外部来源的知识背景化来源图成为可能(R1)。这对于KRYSTAL的能力尤其有用,它不仅可以重建低级攻击图,还可以将它们与MITRE ATT&CK (R3)的高级攻击战术和技术联系起来。
KRYSTAL利用了SPARQL,这是一种基于图的RDF查询语言,在声明式man- ner Kaminski等人(2016)中提供了高表达性并支持复杂查询(如聚合、子查询、否定)。我们发现这种标准化查询语言提供了定义可重用规则、策略和图模式的强大方法(参见R2)。
目前的研究已经产生了大量的原型,每个原型都为特定的检测技术提供了解决方案。相比之下,KRYSTAL能够在单一集成框架(cf. R2)中组合多种不同的威胁检测技术和战术重建方法。该框架允许我们在一个模型中比较和组合不同的技术,而不是孤立地应用不同的技术——比如使用各自的预处理管道。
在生产环境中,安全分析常常需要并涉及来自不同来源的数据。KRYSTAL是建立在语义Web技术之上的,语义Web技术明确地为去中心化而设计。因此,KRYSTAL本质上支持分布式分析(即跨不同机器查询数据)。在第6节和第7节中,我们演示了KRYSTAL如何集成外部信息源,并通过SPARQL查询联合(一种支持以集成方式查询多个数据源的技术)促进分布式分析。
在本文中,我们提出了一个基于知识图的模块化框架KRYSTAL,用于威胁检测、场景重建和战术攻击分析。我们提供了一种基于语义Web技术的开放的、基于标准的来源图表示,可以灵活地结合多种威胁检测技术,并根据内部系统知识和外部网络安全知识将来源数据上下文化。基于KRYSTAL本体,我们提供了一个统一框架下的来源图和攻击图建模基础。本体提供了语义互操作性,并允许用户利用社区知识进行战术攻击分析。此外,我们的框架引入了声明式和模块化的体系结构,以克服单一原型的不灵活性;因此,它支持新方法的快速开发和集成,降低规则开发、可重复性和进一步研究的障碍。
为了评估SPARQL有效表达威胁检测规则的能力,我们实现了几种最先进的技术,包括标签传播、列表:衰减和衰减、基于签名/规则的检测和图查询。我们从完善的DARPA-TC数据集评估了通过多种攻击场景来检测威胁和构建攻击的方法的可行性。评估表明,我们基于本体的RDF来源图在图大小和查询复杂度方面是可伸缩的,而不会牺牲图的缩减、压缩和攻击重构性能。这使得结合多种威胁检测技术成为可能,从而提高了我们评估中的检测能力。例如,我们发现互补的基于规则的威胁检测识别出了被标记传播技术遗漏的威胁。
最后,我们的框架促进了与高级攻击模式的链接,建立了一个高级攻击策略的“杀伤链”,从而产生了一个可导航和可查询的来源图,丰富了安全知识。这可以帮助提高对攻击的理解和态势感知。
作为我们研究的下一步,我们计划集成除审计日志数据之外的多个大规模异构日志源,并以性能优化为目标(例如,更好地探索和可视化)。基于结合检测技术的可能性,我们希望探索一种技术发出的警报如何自动触发其他技术的分析,以获得确认和额外的信息。进一步的研究还将集中在探索其他威胁检测方法,包括异常检测技术,并将它们集成到我们的框架中。最后,我们计划在不同的实现设置中,如分散和分布式场景中,调整和评估攻击图构造方法。