Bootstrap

基于审计日志和图神经网络的入侵检测及溯源Threatrace: Detecting and tracing host-based threats in node level through prove


Learning / 基于审计日志和图神经网络的入侵检测及溯源)

图神经网络(Graph Neural Network): THREATRACE 利用了 GraphSAGE,这是一种归纳型图神经网络,它可以学习数据溯源图中每个良性实体的角色,并在监测到异常时迅速响应。这种技术的使用提供了一个在无监督学习场景下工作的强大框架。

摘要

像程序攻击、恶意软件植入和高级持续性威胁(APT)这样的基于主机的威胁在现代攻击者中很常见。最近的研究提出利用数据溯源中丰富的上下文信息来检测主机中的威胁。数据溯源是从系统审计数据构建的有向无环图。在溯源图中,节点代表系统实体(例如进程和文件),边代表信息流的方向中的系统调用。然而,以往的研究提取整个溯源图的特征,对与威胁相关的实体数量较少的情况不敏感,因此在搜寻隐匿威胁时性能较低。

我们提出了THREATRACE,这是一个基于异常的检测器,可以在没有先验攻击模式知识的情况下,在系统实体级别检测主机威胁。我们定制了GraphSAGE,一个归纳式图神经网络,来学习每个良性实体在溯源图中的角色。THREATRACE是一个实时系统,能够扩展监视长期运行的主机,并能够在早期阶段检测到基于主机的入侵。我们在三个公共数据集上评估了THREATRACE,结果表明,THREATRACE优于三种最先进的主机入侵检测系统。

关键词—基于主机的入侵检测、图神经网络、数据溯源、多模型框架。

I. 引言

如今,攻击者倾向于在大型企业和政府的重要主机上执行入侵活动。他们通常利用零日漏洞在目标主机上隐秘而持续地发动入侵活动,这使得很难被检测到。

最近的研究提出利用数据溯源中丰富的上下文信息进行基于主机的入侵检测。与原始系统审计数据相比,数据溯源包含更丰富的上下文信息,有助于区分长期威胁行为和良性活动。

一些基于异常的方法使用图核算法动态建模整个图,并通过聚类方法检测异常图。然而,在隐蔽入侵活动下的系统溯源图可能与良性系统的类似,因此利用图核算法提取整个图的特征对图中少量异常节点不敏感。而且,基于图核算的方法也缺乏定位异常节点的能力,这对追踪异常行为和修复系统至关重要。

重点放在通过检测溯源图中的异常路径来猎捕恶意软件。然而,一些复杂威胁(例如APT)将其活动分成几个部分,而不是呈现为完整路径,这使得路径级方法难以检测到。

基于误用的方法通常定义一些攻击模式,并使用它们来匹配异常行为。考虑到现代攻击者频繁利用零日漏洞,基于误用的方法缺乏检测未知威胁的能力。

我们提出了THREATRACE,一种基于异常的检测器,能够有效地在节点级别检测隐蔽而持续的基于主机的威胁。THREATRACE以数据溯源为输入源,并定制了归纳图神经网络框架(GraphSAGE)来学习数据溯源中丰富的上下文信息。GraphSAGE是一种图神经网络(GNN),设计用于各种与图相关的工作,并在许多领域取得成功。我们利用其学习节点在溯源图中角色的能力来进行节点级别的威胁检测。

利用GraphSAGE进行威胁检测具有挑战性:1)如何在没有先验攻击模式知识的情况下训练模型?2)如何解决数据不平衡问题?

我们定制了一种新颖的基于GraphSAGE的框架来解决这些挑战。与以往的图级别检测方法不同,THREATRACE学习了系统数据溯源图中每个良性节点的角色,以捕获隐蔽的异常行为而无需先验攻击模式知识。我们设计了一个多模型框架来学习不同类型的良性节点,从而解决数据不平衡问题并有效提高检测性能。

THREATRACE是一个实时系统,可以在长期运行的系统中部署,并具有可接受的计算和内存开销。它能够在入侵的早期阶段检测主机入侵,并找到异常行为的位置。我们在三个公共数据集上评估了THREATRACE,并证明了它可以以较快的处理速度和可接受的资源开销有效检测到主机威胁,即使在整个系统溯源中的比例很小。我们的论文的贡献总结如下:

新颖的节点级威胁检测。据我们所知,THREATRACE是第一个将基于主机的威胁检测问题形式化为溯源图中异常节点检测和追踪问题的工作。基于问题陈述,我们提出了一个新颖的基于GraphSAGE的多模型框架,以节点级别检测隐蔽威胁。

高检测性能和新颖能力。我们在三个公共数据集中评估了THREATRACE的检测性能,并将其与三种最先进的APT检测方法进行了比较。在这些数据集中,THREATRACE表现优异。我们进一步评估了THREATRACE在主机上的威胁追踪能力。结果表明,THREATRACE能够成功检测和追踪异常元素。

完整的系统和开源。我们实现了一个开源的基于主机的威胁检测系统。

本文的结构如下。第二部分介绍相关工作。第三部分介绍我们工作的背景和动机。第四部分介绍威胁模型。第五部分总体介绍THREATRACE。第六部分介绍实验,第七部分讨论一些问题和局限性。最后在第八部分总结本文。

II. 相关工作

我们研究了基于溯源的威胁检测和异常追踪问题。因此,我们在这些领域讨论了相关工作。

基于溯源的威胁检测。最近,数据溯源在主机威胁检测领域备受关注,可以分为基于误用和基于异常的方法。

基于误用的方法根据已知攻击模式学习异常行为。Holmes侧重于基于专家对现有TTPs(战术、技术和程序)的知识,在溯源图中匹配先前定义的攻击,从而生成警报、相关性和情景重构。Poirot根据其他系统发现的一系列指标进行威胁检测,并依赖现有网络威胁报告的专家知识构建攻击图,然后通过比较溯源图和攻击图来检测威胁。这些方法难以检测未知的威胁,因为它们无法包含在TTPs和网络威胁报告中。

基于异常的方法学习良性行为模型,并根据与模型偏离的异常检测异常。StreamSpot提出通过分析信息流图来检测入侵。它本地抽象图的特征以学习良性模型,并使用聚类方法检测异常图。Unicorn进一步提出了一种基于WL核方法的方法来提取整个图的特征,学习演化模型以检测异常图。尽管Unicorn通过上下文化的图分析和演化模型具有比StreamSpot更好的性能,但由于图核方法的限制,它们难以检测隐匿的威胁。IPG将每个主机的溯源图嵌入,并基于自动编码器方法报告可疑主机。作为一种图级别的方法,IPG与StreamSpot和Unicorn具有相同的局限性。Log2vec提出基于异常日志检测的主机威胁检测。它使用日志构建异构图,根据图嵌入提取日志向量,并根据聚类检测恶意日志。与基于溯源的方法不同,溯源图中的节点是系统实体而不是日志。ProvDetector旨在通过探索溯源图来检测恶意软件。ProvDetector将溯源图中的路径嵌入,并使用局部异常因子方法来检测恶意软件。除了恶意软件外,基于主机的威胁行为更为多样化。因此,仅从溯源图的路径中挖掘威胁是不够的。Pagoda侧重于同时考虑检测准确性和检测时间来检测基于主机的入侵。在Pagoda的框架中,需要一个规则数据库,这与THREATRACE不同。

除了溯源外,还有其他用于基于主机的异常检测的数据源。[22]通过建模正常程序跟踪并使用聚类方法进行异常检测来检测隐蔽的程序攻击。[23]将每个状态建模为有限状态自动机(FSA)从特定调用点调用系统调用。然而,既程序跟踪又系统调用都不适合于隐蔽威胁的检测,因为它们缺乏上下文信息。[24]以认证实体图为输入来检测APT的横向移动。认证图中的节点代表机器或用户。然而,这种方法无法检测单个主机内的入侵活动。

异常追踪。在监视主机时部署入侵检测系统时,追踪异常行为而不仅仅是发出警报至关重要。THREATRACE在检测到异常时使用节点分类框架直接追踪异常。基于异常的最先进检测器在检测到系统溯源图异常时会触发警报。然而,它们无法追踪异常的位置。能够追踪异常位置的检测器通常是基于误用的,如Holmes和Poirot,它们需要先验关于异常图模式的知识。Nodoze是另一种识别溯源图中异常路径的方法,但与前述检测器不同,Nodoze是一个次级诊断工具,需要来自其他检测器的警报作为输入。当前基于异常的威胁检测器的警报不适用于Nodoze,因为它们是图级别的,缺乏详细信息。RapSheet是另一个次级诊断系统,使用其他基于TTPs的EDR(端点检测和响应)的警报,并在构建的战术溯源图中过滤误报。SLEUTH执行基于标签和策略的攻击检测,并基于标签的根本原因和影响分析来构建场景图。PrioTracker对每个事件的罕见性进行量化,以区分异常操作和正常系统事件,并提出一种用于及时攻击因果分析的前向跟踪技术。MORSE研究了重新追踪攻击者步骤中的依赖爆炸问题。MORSE框架的攻击检测部分与SLEUTH系统相同。SLEUTH和MORSE的攻击检测部分都是基于误用的。ATLAS提出了一种基于序列的学习方法来检测威胁和构建攻击故事。与基于误用的方法不同,ATLAS使用攻击训练数据通过时间顺序序列来学习攻击步骤的共现关系。以上介绍的方法提出了各种方法来追踪入侵并构建攻击故事。THREATRACE可以在没有知识库或攻击训练数据的情况下追踪异常。然而,它无法构建攻击故事。我们计划在未来的工作中研究基于异常的方法与攻击故事构建之间的差距。

欢迎关注:https://blog.csdn.net/hanhanwanghaha

III. 背景和动机

A. 数据溯源

近年来,数据溯源被提议作为用于基于主机的威胁检测的更好数据源。它是从系统审计数据构建的有向无环图,表示系统中主体(例如进程)和对象(例如文件)之间的关系。数据溯源包含丰富的上下文信息,用于威胁检测。

B. GraphSAGE

GraphSAGE是一个通用的归纳式图神经网络框架,用于有效地生成具有节点特征信息的节点嵌入。与传统的推导式方法不同,后者从单个固定图中嵌入节点,归纳式GraphSAGE学习嵌入函数,并在不断变化的图上操作。及时性是预防入侵的重要因素。因此,作为一种归纳式图神经网络方法,GraphSAGE适用于通过分析流式溯源图执行威胁检测。GraphSAGE已被证明能够学习有关节点在图中角色的结构信息。由于篇幅限制,我们将对对该理论分析感兴趣的读者推荐至文献[11]。

C. 动机示例
在这里插入图片描述

图1:一个溯源图的简单示例,其中包含基于主机的入侵行为。

我们提供一个示例(见图1)来说明最先进的威胁检测工作的局限性以及我们方法的直觉。该示例是从DARPA TC THEIA实验[29]生成的。黑色节点是与入侵活动相关的节点。图中的攻击持续了两天。攻击者利用Firefox 54.0.1后门植入了名为/home/admin/profile的文件到受害主机中。然后,它以具有根权限的进程运行,连接到攻击者操作控制台b.b.b.b:80。植入了名为/var/log/mail的文件,并将其提升为具有根权限的新进程。最后,攻击者对c.c.c.c进行了端口扫描。

最先进的威胁检测工作的局限性。检测示例中所述威胁仍存在一些挑战,这导致了最先进的威胁检测工作的局限性。

P1:规则。对于基于误用的[2],[3],[9]主机入侵检测方法,存在一些规则。规则对于基于误用的方法至关重要,并且基于MITRE Att&CK的TTP规则通常被使用。然而,选择规则集很困难。因为许多MITRE ATT&CK行为只是有时恶意的[9],如果规则是宏观的,将产生许多误报警报。相反,微观规则很难检测零日攻击。

P2:隐蔽攻击者。基于异常的方法Unicorn [7]和StreamSpot [6]使用图核算法动态建模整个图,并通过聚类方法检测异常图。然而,入侵可能是隐蔽的,这意味着入侵活动下的系统溯源图可能类似于良性系统的图。在这个示例中,有数百万个良性节点和不到30000个异常节点。异常节点的比例少于1%,这导致攻击图与良性图之间存在高相似性。因此,基于图核的方法[6],[7]对小异常节点不敏感。ProvDetector [8]提出在图中选择几条最稀有的路径,并通过它们的嵌入检测异常路径。ProvDetector在恶意软件检测方面取得了出色的性能。然而,除了恶意软件外,还有更复杂的入侵。在这个示例中,由节点1生成了成千上万条边,这给路径级别的检测方法带来了挑战。

P3:异常追踪。基于异常的[6],[7]方法对整个图进行建模,缺乏追踪异常行为位置的能力,这对于追踪异常行为并修复系统至关重要。在这个示例中,这些方法只能为整个图发出警报,而不能指示特定的攻击实体(例如/home/admin/profile)。

P4:扩展溯源。将溯源图存储在内存中的方法[3],[6]在长期运行的系统上缺乏可伸缩性,因此实用性较低。

我们方法的基本思想

我们方法背后的核心见解是,即使对于试图隐藏其行为的隐蔽入侵活动而言,其对应恶意活动的节点仍然与良性节点具有不同的行为。在图1中,异常的进程节点1 /var/log/mail与远程IP节点有数千个连接边,这与良性的进程节点2 /usr/bin/fluxbox不同。这一现象启发了我们将主机入侵检测问题形式化为异常节点检测问题的工作。我们定制了一个基于GraphSAGE的框架来完成节点检测任务。图1的这次攻击的检测结果将在第VI-C节中作为案例研究呈现。动机示例也用于说明我们方法的设计。我们将在第V节多次回顾这个示例。

IV. 威胁模型

在本文中,我们专注于检测和追踪由入侵活动引起的主机中的异常实体。我们假设对手具有以下特征:

• 隐蔽性。攻击者有意隐藏其恶意活动,试图将其行为与大量良性背景数据混合,使受害系统看起来像是良性模式。

• 持久性。攻击倾向于持续很长时间。

• 频繁使用零日漏洞利用。攻击者倾向于使用零日漏洞利用攻击系统。因此,我们假设没有任何用于训练的攻击模式。

• 在溯源图中有攻击模式。为了完成与良性活动不同的恶意活动,攻击者的行为应该在溯源中留下一些攻击模式。这些攻击模式会使攻击者节点的局部结构与具有相同标签的良性节点不同。例如,在图1中,攻击者的进程节点1的局部结构与良性进程节点2明显不同。另一个例子是,一个从未与文件交互过的进程突然开始读取和写入文件,可能是攻击者控制的异常进程。请注意,受到溯源图粒度的限制,一些威胁超出了THREATRACE的检测范围。我们在第VII节中讨论了这种限制。

当一个运行系统中的实体没有与之相关的恶意活动时,我们将其定义为良性实体。当一个实体的行为与良性实体不同时,通常是由于某些入侵活动造成,我们将其定义为异常实体。THREATRACE的目的是通过监视主机和分析溯源图上的节点来检测异常实体。

我们还假设以下内容的正确性:1)溯源收集系统的正确性;2)GraphSAGE学习节点在图中的角色结构信息的能力,这在[11]中已经得到证明。

V. 设计

在本节中,我们介绍了THREATRACE的设计。主要组件如图2所示,并分别如下所述。我们在指定的子节中进一步详细说明它们。

在这里插入图片描述

图2:THREATRACE中组件的概述。
1:数据溯源生成器;
2:数据存储;
3:模型;
4:警报和追踪。

(§V-A)数据溯源生成器。该组件以流模式收集系统的审计数据,并将其转换为数据溯源图,以进行后续分析。

(§V-B)数据存储。该组件将数据分配到磁盘和内存中。我们将整个图存储在磁盘中以保留历史信息,并在内存中维护一个大小有限的子图用于训练和检测。这种存储策略保证了THREATRACE的可扩展性(P4)和动态检测能力。

(§V-C)模型。这是THREATRACE的核心组件。我们使用由前两个组件产生和分配的图数据作为输入,并输出异常节点。

理想的异常节点检测具有挑战性:

C1:我们假设在训练阶段没有先验的攻击知识。因此,我们无法以传统的二元分类模式训练模型。

C2:基于主机的威胁检测存在数据不平衡问题[18]。在执行过程中,异常节点在溯源图中可能所占比例很小。因此,更容易产生误报,可能扰乱判断并引发“威胁疲劳问题”[30]。

C3:异常节点与良性节点之间的差异可能不够大(例如,图1中的节点4和5),这可能导致假阴性。

为了解决这些挑战,我们定制了一个基于GraphSAGE的多模型框架,以学习溯源图中没有异常数据的不同类别的良性节点(P1,C1)。然后,我们根据预测节点类型与实际类型之间的偏差检测异常节点。通过这种方式,THREATRACE可以检测到在隐蔽入侵活动中溯源图中所占比例很小的异常节点(P2),并直接定位它们(P3)。我们提出了一种基于概率的方法,可以减少误报和漏报(C2,C3)。

(§V-D)警报和追踪。我们从前一个组件中获取异常节点,并确定是否在此组件中引发警报并跟踪异常。我们设置了等待时间阈值和容差阈值以减少误报,并确定是否为监视系统引发警报。由于THREATRACE在节点级别检测威胁,我们直接跟踪异常节点的局部邻域中的异常行为位置。

A. 数据溯源生成器

与其他许多基于溯源的威胁检测方法一样[2]、[3]、[6]、[7],我们使用一个外部工具Camflow [31]来构建一个带有时间顺序的单一全系统溯源图。Camflow对信息流捕捉提供了强大的安全性和完整性保证。

B. 数据存储

此模块旨在将前一个模块的图数据分配到磁盘和内存中以供后续使用。在流式模式下,我们将传入的节点和边添加到存储在磁盘上的整个图中。我们还在内存中维护一个由活跃节点、相关节点以及它们之间的边构成的子图。我们将活跃节点定义为用于训练或检测的图中的实体。可以在两跳内到达活跃节点的节点称为相关节点,其中包含训练或检测的历史信息。图3展示了内存中的子图示例。训练和执行阶段,子图维护策略不同,具体内容见§V-C。

在这里插入图片描述

图3:内存中子图维护的示例。 蓝色节点表示活跃节点,灰色节点表示相关节点。

C. 模型

这是THREATRACE的核心组件。我们根据基于主机的威胁的特点设计了框架和方法。
特征提取。在不学习攻击模式的情况下实现检测异常节点的目标是具有挑战性的(C1)。传统的异常检测任务通常使用良性和异常数据在监督模式下训练一个二元分类模型。然而,由于我们假设在训练阶段没有关于攻击模式的先验知识,我们不能用二元标签数据训练我们的模型。GraphSAGE有一个非监督节点分类模式,但它不适用于威胁检测,因为它假设靠近的节点具有相似的类别。在一个溯源图中,靠近的节点可能有不同的类别(例如,两个靠近的节点可能是一个进程和一个文件)。

由于GraphSAGE的非监督模式不适合威胁检测,我们定制了一种特征提取和标签分配方法,允许THREATRACE在没有异常数据的情况下以监督模式训练模型,并学习每个良性节点的局部结构信息。我们将节点的标签设置为其节点类型,并将其特征提取为与其相关的不同边类型的数量分布。GraphSAGE模型在监督模式下使用标签数据进行训练,学习良性节点的不同角色。特征提取方法基于我们模型背后的核心洞见,即与恶意活动有关的节点与我们在训练阶段学习的良性节点的行为不同。因此,如果在执行阶段一个节点被错误分类,这意味着其角色与它应有的不同。即,它可能是一个异常节点,拥有与良性节点不同的恶意任务。

特定的提取过程如下。我们首先计算不同节点类型(例如,文件、进程、套接字)和边类型(例如,读、写、fork)的数量,分别记为Nn和Ne。在训练之前,我们还设定了节点类型和边类型的映射函数Mv: Σ → N和Me: Σ → N,将节点类型和边类型映射到从0到Nn−1和0到Ne−1的整数范围。我们学习一个函数L: V → {0, …, Nn−1},为所有v∈V分配标签,标签为L(v) = Mvv(v))。我们学习一个函数F: V → N2*Ne,为所有v∈V分配特征,特征为F(v) = [a0, a1, …, aNe−1, aNe, aNe+1, …, aNe*2−1],其中:

ai =
\begin{cases}
#{e ∈ In(v) : i = Me(χe(e))}, & \text{对于 } i ∈ {0, ..., Ne − 1} #{e ∈ Out(v) : i = Me(χe(e)) + Ne}, & \text{对于 } i ∈ {Ne, ..., Ne * 2 − 1}
\end{cases}
(1)

通过我们的特征提取方法,图1中良性节点2和异常节点1的特征分别是[0,0,0,0,0,0,0,2,1,0,0,0,0,0]和[0,0,0,0,0,0,0,0,0,1,1,1,1,25301],在最后一个维度上有显著的差异。

训练方法。在训练阶段,我们将整个训练图分割为多个子图。每个子图由一定数量(本文中设为150000)的随机选定的活跃节点、它们的相关节点以及它们之间的边组成。不同子图中活跃节点的集合是不重叠的。然后,模型依次通过每个子图G进行训练。我们不需要使用整个图进行训练,只需要在内存中存储一个大小有限的子图,这可以保证可扩展性。

我们的模型基于GraphSAGE,它使用一个前向传播(FP)算法来聚合节点祖先的信息。GraphSAGE模型使用图信息G = (V, E, χv, χe, Te)、特征分配函数F、跳数K、邻域函数N: V → 2V,以及GraphSAGE模型的参数(一组权重矩阵Wk,对所有k∈{1, …, K};聚合函数AGGREGATEk,对所有k∈{1, …, K};非线性激活函数σ;批模式参数Batch size)作为输入,并输出每个节点v的向量表示zv。参数(例如聚合函数,在我们的检测器中是平均聚合器)用于聚合和处理节点祖先的信息。zv是一个Nn-维向量,而zv中最大元素的索引表示预测的类别。Batch size(BS)的选择影响运行时开销,并且我们在第VI-E节中对其进行评估。K表示每个节点聚合信息的祖先的大小。我们在本文中将K设为2,以平衡表示能力和运行时开销。这也是我们将相关节点定义为可以在两步内到达活跃节点的节点的原因(见第V-B节)。注意我们的模型中有K-1个隐藏层,因为聚合发生在两层之间:第一次聚合发生在输入层到隐藏层之间,第二次聚合发生在隐藏层到输出层之间。FP算法会重复进行多次。每次迭代后,我们计算zv的交叉熵损失并调整权重矩阵Wk,对所有k∈{1, …, K}。

通过FP和调优过程,模型通过探索特征和局部结构来学习良性节点不同类别的表示。

在隐秘的入侵活动中,系统图谱中异常节点的比例可能很小。因此,可能更容易产生干扰判断的误报(C2)。出于入侵检测场景的特点,我们定制了一个多模型框架来减少误报。在入侵检测场景中:1)不同类型节点的数量非常不平衡(例如,可能有数千个进程节点而只有一个stdin节点)。这种关键的不平衡特性使单一模型难以学习那些比例较小节点的表示。2)具有相同类型的节点可能有不同的任务(例如,图1中的fluxbox进程2和bash进程3),这使得用一个模型将这些节点分类为一个类别变得困难。因此,只训练一个能区分所有良性节点类别的模型是不现实的。

我们认为一个节点v具有一个主导标签L(v) = Mvv(v))和一个隐藏标签L̂(v)。隐藏标签代表其特定的功能,这仅仅是一个概念。

该概念仅用于区分具有相同主导标签的节点,并且我们不知道它的值。我们训练多个子模型来学习那些比例较小的节点以及具有相同主导标签但不同隐藏标签的节点的表示。多模型框架的训练方法如算法1所示。我们维护一个列表X,其中存储了未能正确分类的节点。它初始化为训练子图中的所有活跃节点。在训练了一个子模型(第6-13行)之后,我们在这个模型中验证X的节点(第15-21行),并从X中删除正确分类的节点。X中剩余的节点将用于训练新的子模型。我们重复这个过程,直到X中没有节点为止,这意味着子图中的每个节点都被用来训练了一个学习其表示的子模型。
在这里插入图片描述


多模型框架的训练方法算法1:

输入:子图G = (V, E, χv, χe, Te);特征映射函数F : V → N2*Ne;标签映射函数L : V → {0, …, Nn};跳数K;前向传播算法迭代次数epoch

输出:子模型数量cnt;子模型集合{M0, M1, …, Mcnt−1}

从V中移除已正确分类的活跃节点;
X ← V中的活跃节点;
cnt ← 0;
当X非空时执行
V̂ ← 所有v∈X的K跳邻域中的节点;
对于k = 1…epoch执行
Ĝ ← (V̂, E, χ̂v, χe, Te);
z ← FP(Ĝ, F, K, AGGREGATEk, Wk, σ);
// z是所有v∈V̂的表示
ẑ ← z∀v∈X;
loss ← 交叉熵(ẑ, L(X));
Wk ← 反向传播(loss);
结束
M ← softmax(ẑ);
对于v ∈ X执行
Cv ← Mv中最大元素的索引;
v ← Mv中第二大元素的索引;
如果Cv = L(v)且Mvcv/Mvv > Rt,则
从X中移除v;
结束
结束
Mcnt ← 当前训练的子模型;
cnt ← cnt + 1
结束


我们设计了一种基于概率的方法来进一步降低误报的风险(第18-20行)。通过使用已训练的子模型验证X的节点,我们得到一个|X| * Nn的概率矩阵M,其中:

在这里插入图片描述
对于集合X中的每个节点Xi,我们将Ci和Ĉi标记为Mi中最大元素和第二大元素的索引。简单的方法认为当Ci = L(Xi)时,节点Xi已被正确分类。然而,考虑这样一种情况:MiCi并不显著大于Mii,这意味着这个子模型对正确分类节点Xi的置信度不高。因此,我们设定一个阈值R,并认为当以下条件成立时,节点Xi被这个子模型正确分类:在这里插入图片描述

在训练阶段,THREATRACE生成的子模型越多,R越高,这在执行过程中导致误报更少。通过设计多模型框架和基于概率的方法,THREATRACE实现了较低的误报率(C2)。评估在§VI-D中提出。

注意,因为我们将整个训练图分割为多个子图,我们需要多次执行算法1,这可能导致子模型过多。因此,我们采用启发式方法(第1行)。我们在现有的子模型中验证子图G,并从V中移除正确分类的活跃节点。这是基于多模型框架已经学习了这些被移除节点的表示的洞见。通过应用预过滤策略,我们减少了X中活跃节点的初始数量,进一步减少了子模型的数量。从宏观上讲,我们对训练集中的图应用类似的启发式方法。我们只在当前的多模型框架无法正确分类的节点存在时,才使用一个图进行训练。这是增量工作,可以防止产生“过多”的子模型。

通过设计多模型框架和基于概率的方法,THREATRACE实现了较低的误报率(C2)。评估在§VI-D中提出。

执行方法。在执行阶段,我们在内存中维护一个子图Ĝ。Ĝ原本是空的,并不断添加新到达的节点和边。来自边的目标节点及其2跳后代定义为活跃节点。后代和相关节点从磁盘上的整个图中获取。我们设定一个参数,称为子图大小(SS)。当新到达的边的数量达到SS时,我们使用Ĝ进行检测,并开始在内存中构建一个新的子图。注意,SS不是Ĝ中边的数量,因为我们额外从磁盘上的图中添加了一些边。通过流式执行模式,我们可以动态检测系统当前的活跃实体并保证长期的可扩展性。

我们设计了一个多模型框架和基于概率的训练方法来减少误报。然而,误报(C3)也是另一个挑战。为了解决这个问题,我们还在执行阶段提出了一种基于概率的方法。对于一个被检测出来的异常节点v,我们在子模型中迭代检测,并获得每个子模型的概率列表Mv。我们将Cv和Ĉv标记为节点v最有可能属于的类别的最大和第二大概率。因为v是一个异常节点,其行为与良性节点不同,它可能不会在每个子模型中以高概率被分类到任何类别。然而,存在一个风险,它可能仍然会在其中一个子模型中被正确分类到其主导标签L(v),仅仅因为这个子模型中其他类别的概率较低。一旦被正确分类,检测器就会产生一个误报。因此,在执行阶段,我们也使用阈值R,并只在满足以下条件时考虑节点v被正确分类:

在这里插入图片描述

这意味着,当方程4满足时,子模型高度确信地将节点v分类为正确的类别。如果v在每个子模型中都不满足方程4,我们考虑它是一个异常节点。对于执行过程中的异常节点,较高的R意味着检测器将它们视为良性的标准更为严格,这减少了误报(C3)。对于良性节点,因为有更多的子模型以更高的R来训练分类良性节点,误报的增加少于误报的减少。注意,这并不意味着R应该设置得尽可能高,因为当R太高时模型难以收敛。我们在§VI-D中详细讨论了R的选择。此外,虽然我们在每个子模型中迭代检测V̂中的节点,但V̂的大小在减少。因此,子模型的数量对处理速度的影响不大。我们在§VI-E中评估了THREATRACE的处理速度。

多模型框架的最终预测。如果一个节点在至少一个子模型中被正确分类,就被检测为良性。否则,它将被检测为异常。

D. 警报与追踪

该组件接收前一组件传来的异常节点,并将它们存储在一个队列Q中。我们设置了一个时间阈值T,并动态维护队列Q,而不是直接对监控系统发出警报。这是因为THREATRACE以流模式检测异常节点,能够在早期阶段发现威胁,同时在训练阶段通过整个图学习节点的角色,以学习丰富的上下文信息。因此,良性节点可能在达到其最终阶段之前被检测为异常。我们首先将异常节点存储在Q中,并为其设置一个等待时间阈值T以达到其最终阶段。如果在时间T内它没有变为良性,我们就将其从Q中弹出,并将其视为一个异常节点。一个节点在流模式下可能会被多次检测。因此,一个异常节点起初可能被检测为良性,当它开始进行恶意活动时,它将再次被检测为一个活跃节点。当异常节点的数量超过一个容忍阈值T̂时,该阈值表示可能产生的最大误报数量,THREATRACE会为系统发出警报,并追踪异常节点的2跳祖先和后代中的异常。我们将在第VI-D节讨论T和T̂的选择。

VI. 评估

我们使用三个公开数据集对 THREATRACE 进行评估,这些数据集经常被最先进的基于主机的威胁检测器用于评估。我们关注以下几个方面:

  1. 与最先进检测器相比的威胁检测性能。(§VI-A、VI-B、VI-C)
  2. 参数的影响。(§VI-D)
  3. 追踪异常行为的能力。(§VI-C)
  4. 在入侵的早期阶段检测异常行为的能力。(§VI-C)
  5. 运行时和系统资源开销。(§VI-E)
  6. 对抗自适应攻击的鲁棒性。(§VI-F)

这里我们介绍了数据集、实验设置以及对比工作的实现。在 §VI-A、VI-B 中,我们将 THREATRACE 与 Unicorn、ProvDetector 和 StreamSpot 进行比较,它们是三个最先进的基于异常的主机威胁检测器,使用了各自的数据集:StreamSpot 和 Unicorn SC-2 数据集。对于 StreamSpot 和 Unicorn,我们使用开源项目对它们进行了实现。它们的结果几乎与原始论文中的结果一致。对于 ProvDetector,我们重新实现了基于原始论文的方法。对于 ProvDetector,我们无法与原始论文中的性能进行比较,因为我们没有用于评估的论文私有数据集。我们没有将 THREATRACE 与其他相关的最先进检测器进行比较,因为:1)基于误用的检测器需要先验专家知识来构建模型;2)源输入不是数据来源。这些方法在 §II 中介绍过。我们展示了 THREATRACE 在两个数据集中都可以实现更好的检测性能(Q1)。在 §VI-D 中,我们评估了特别设计的参数对威胁检测性能的影响(Q2)。在 §VI-C 中,我们使用 DARPA TC 数据集进一步评估了 THREATRACE 追踪异常的能力(Q3),以及在入侵的早期阶段检测到持续入侵的能力(Q4)。我们在 §VI-E 中根据执行速度和系统资源开销评估了 THREATRACE 的运行时性能(Q5)。我们在 §VI-F 中评估了对抗自适应攻击的鲁棒性(Q6)。表 V、VI、IV 展示了实验数据集的概况。在 §VI-A、VI-B、VI-C、VI-F 中实验的手动设置参数见表 I。我们根据每个子节实验中的检测和运行时性能设置了这些参数。每个子模型都具有相同的 GraphSAGE 超参数。具体来说,我们将大多数超参数设置为默认值,并将隐藏层的神经元数量设置为32,这大约是 Unicorn SC-2 数据集中特征数量的一半。由于我们设置了 K = 2,表示每个节点从中聚合信息的祖先的大小,因此子模型只有一个隐藏层。我们在 §VI-D 中测试了参数的影响。
在这里插入图片描述

A. StreamSpot 数据集

我们将 THREATRACE 与两个最先进的检测器 StreamSpot 和 Unicorn 进行了比较。

数据集。StreamSpot 数据集(表 II)是 StreamSpot 自己的数据集,可以公开获取。它包含了从五个良性场景和一个攻击场景中衍生出的 6100 信息流图。我们使用与 Unicorn 相同的验证策略,将数据集随机分成一个包含 755 个良性图的训练集,以及一个包含 25*5 个良性图和 25 个攻击图的测试集。我们没有与 ProvDetector 进行比较,因为 StreamSpot 数据集中的边缺乏时间戳属性,这是 ProvDetector 所必需的。我们重复这个过程并报告平均评估结果。

结果。如表 V 所示,THREATRACE 在这个数据集中可以实现完美的检测性能。我们深入分析了这个数据集,发现攻击场景的 100 个图通常可以分为两类,分别包含 95 和 5 个图。第二组中的 5 个图与其他 95 个图明显不同。它们更类似于 Youtube 场景的图,这意味着第二组中的威胁更加隐蔽。当受害者浏览网站时,会发生驱动下载攻击,这与 Youtube 场景类似。对于基于图核的方法来说,很难检测到这 5 个图,这也许解释了为什么 Unicorn 在这个数据集中有很高的检测性能,但仍然无法检测到每个异常图。这个结果证明了 THREATRACE 检测隐蔽入侵活动的能力。

B. Unicorn SC-2 数据集

这个数据集是 Unicorn 自己的数据集,比 StreamSpot 数据集更复杂。我们使用它来比较 THREATRACE 的检测性能与 Unicorn 和 ProvDetector。我们不能使用 StreamSpot 进行比较,因为它无法处理大量的边缘。

数据集。我们遵循与 Unicorn 相同的 5 折交叉验证:使用 4 组(每组包含 25 个图)良性图进行训练,以及第 5 组良性图和 25 个攻击图进行验证。我们使用流式模式来重放验证图并动态检测它们。对于 THREATRACE,我们评估了不同的邻域大小的检测性能,设置为 1 和 2(默认)。我们重复此过程并报告平均评估结果。

结果。如表 VI 所示,当 K = 2 时,THREATRACE 的性能更好,这表明充分的邻域信息学习有助于检测。我们在 §VII 中进一步讨论了 K 的设置。THREATRACE 可以在使用自己的数据集时实现比 Unicorn 更好的检测性能。Unicorn 的性能较低的原因在其论文中已经介绍 [7]:攻击者对系统有先验知识,因此行动比其他数据集的攻击者更隐蔽。我们还发现,THREATRACE 在大多数攻击图中仅引发不到 10 个节点的警报,这表明了该数据集的隐蔽特性。在该数据集中的比较结果进一步证明了我们的动机,即基于图核的方法难以检测到隐蔽威胁。此外,THREATRACE 的假阳性比 Unicorn 和 ProvDetector 更少,这对缓解“威胁疲劳问题”至关重要。
在这里插入图片描述

C. DARPA TC Dataset

在这里插入图片描述

图4:案例研究。红色实体是THREATRACE检测到的实体。

我们使用DARPA TC数据集评估THREATRACE检测和追踪长期运行入侵的能力。在最后两个小节中的数据集没有节点的地面真实数据,因此我们无法使用它们来评估THREATRACE的异常追踪能力。

数据集。DARPA TC数据集(表IV)是由DARPA透明计算项目的第三次红队对蓝队的对抗活动生成的。这次对抗活动持续了两周,来源采集工具捕获了整个系统的来源数据,从开始到结束。来源数据和地面真实数据是公开可用的。因此,我们使用地面真实数据标记异常节点并评估THREATRACE检测它们的性能,这展示了跟踪异常的能力。我们删除了部分数据集,因为一些图是在异常事故中生成的,比如主机的中断和关机。我们使用良性图中的节点来训练我们的模型,并使用包含威胁的图中的节点进行评估。因为当检测到一个节点作为异常时,我们会检查其2跳的祖先和后代来跟踪其位置(§V-D),我们定义了以下指标:

真阳性。检测到的异常节点是异常的,或者其中一个2跳的祖先和后代被检测为异常。

在这里插入图片描述

这些节点被定义为真阳性,因为我们可以在警报追踪期间追踪到它们。
• 假阳性。被检测为异常的良性节点,并且其2跳祖先和后代中没有异常节点。这些节点被定义为假阳性,因为我们在警报追踪期间无法追踪到任何异常节点。
• 真阴性。其他良性节点。
• 假阴性。其他异常节点。
我们假设手动检查节点的2跳祖先和后代的正确性。由于该数据集中节点的平均2跳祖先和后代数为1.8,因此追踪异常的人力成本是可以接受的。由于来源图中的一个节点表示系统中的一个实体,因此手动检查其行为并不困难。
结果。表VII中的结果显示了THREATRACE检测异常节点的性能,即异常追踪的能力。考虑到该数据集的高度不平衡特性,结果是可以接受的。我们无法在节点级别将THREATRACE与StreamSpot、Unicorn和ProvDetector进行比较,因为它们不进行异常节点检测。图级别实验的检测结果显示在表VIII中。结果表明,THREATRACE和比较方法都具有良好的检测性能。一个解释是,DARPA数据集中的攻击者花费时间寻找漏洞,这些漏洞在图中留下了明显的行为。
在这里插入图片描述

案例研究。我们将动机示例(图1)作为案例研究,进一步描述THREATRACE的异常追踪能力。它在图4中被简化为攻击图。攻击持续了两天,受害者是一台Ubuntu 12.04 x64主机。攻击者利用Firefox 54.0.1后门使用了一个恶意网站c.c.c.c:80。当受害者连接到该网站时(1),一个drakon植入程序开始在内存中运行,并导致与攻击者操作员控制台b.b.b.b:80的连接(2)。由于地面真实文件中关于drakon植入程序的信息不足,图中未显示该程序。攻击者进一步将libdarkon.so和drakon可执行二进制文件写入受害主机的磁盘(3)。然后,攻击者利用特权升级执行能力执行drakon,导致一个具有root特权的进程远程shell(4)。新的远程shell进程连接到具有root访问权限的新操作员控制台a.a.a.a:80(4),攻击者暂时停止了他们的活动。两天后,攻击者在磁盘上写入了一个微型apt,并将其提升为具有root权限的新进程scan.exe(5)。最后,攻击者对d.d.d.d进行了端口扫描(6)。
在这种情况下,THREATRACE触发了对darkon可执行二进制文件、远程shell、特权升级执行、恶意IP a.a.a.a:80、微型apt及其进程scan.exe以及被扫描的IP对象d.d.d.d的警报。由于故意延长了攻击持续时间,异常节点仅占整个来源图的一小部分(不到1%),因此THREATRACE仍然能够在长期运行的系统中检测和跟踪异常。此外,THREATRACE成功检测到了攻击的一些早期步骤,如darkon和特权,这表明THREATRACE具有在早期阶段检测和防止入侵的能力。我们还注意到,THREATRACE未能检测到攻击的一些组件,如libdarkon.so和恶意IP地址b.b.b.b:80和c.c.c.c:80。我们发现,在攻击期间,这些组件没有显示出显著的影响:它们更像是辅助角色。这在一定程度上解释了THREATRACE未能检测到这些攻击部分。幸运的是,通常没有必要检测入侵活动的每个部分。在这种情况下,THREATRACE检测到了一些重要的组件,例如darkon可执行二进制文件,这已足以在入侵的早期阶段检测并停止入侵。

D. 不同参数的影响

与Unicorn SC2数据集相比,THREATRACE显示了检测性能的提升。我们进一步使用Unicorn SC-2数据集来研究专门设计用于基于主机的威胁检测的参数如何影响检测性能。我们测试的参数包括SS、BS、R、T、Tˆ。表I中的值构成了基线,在Unicorn SC-2数据集中获得了令人鼓舞的检测和运行时性能。在测试其中一个参数时,我们将其他参数保持与基线相同。
• 子图大小(SS)。 SS是我们为数据存储模块设置的参数(§V-B)。如图5(a)所示,它对检测性能几乎没有影响。THREATRACE以流模式检测来源图。当前系统执行的子图在内存中更新,并在其大小达到SS时传输到检测模块。因此,SS会影响子图的到达间隔,这可能会影响我们为良性节点达到最终阶段设置的时间。此外,随机分割的数据集也可能会对结果产生影响。与检测性能相比,SS对运行时性能的影响要大得多(§VI-E)。
• 批处理大小(BS)。 BS是我们为模型模块设置的参数(§V-C)。如图5(b)所示,BS对检测性能几乎没有影响,这可能是由于随机分割的数据集导致的。我们将其在运行时性能中的影响评估为§VI-E。
• R。 这是我们为训练阶段设置的速率阈值。如图5©所示,当R从1.0增加到1.5时,检测性能有所提高。从1.5到2.0,R对检测性能没有明显影响。然而,当超过2.0时,性能趋于下降。
• T和Tˆ。 这两个参数影响警报和追踪模块(§V-D)。结果如图5(d)(e)所示,可以通过T和Tˆ的功能来解释。T是我们为良性节点达到最终阶段设置的等待时间阈值。在实时流检测模式中,一个良性节点可能在其达到最终阶段之前被检测为异常。因此,更大的T意味着我们“给了更多的演化时间”给良性节点,并导致更高的精度,更低的召回率和FPR。请注意,尽管它减少了假阳性的数量,但也降低了THREATRACE尽可能早地检测入侵的能力:它需要更多的时间等待异常节点,然后才会发出警报。当T = 150时,对异常图引发警报的平均时间为434.45秒,而当T增加到600时,这一时间变为874.32秒。Tˆ是THREATRACE为监视系统引发警报的容忍阈值。更大的Tˆ意味着更少的假阳性和更多的假阴性,从而导致更高的精度,更低的召回率和FPR。
对不同参数的评估显示了THREATRACE对基于主机的威胁检测的特殊设计如何影响检测性能。每个参数的结果都可以通过设计原理来解释。我们可以利用不同参数的功能来优化THREATRACE的性能,这在§VII中进行了讨论。

E. 运行时开销

我们研究了在Unicorn SC2数据集中THREATRACE执行过程中的处理速度、CPU利用率和内存使用情况。本节重点介绍了THREATRACE在执行阶段的运行时性能。在此子节中的实验在一台配备16个虚拟CPU和64GiB内存的Ubuntu 16.04.6 LTS机器上进行。我们重新实现了Unicorn和ProvDetector,并在同一台机器上对它们进行了评估。我们重复了实验并报告了平均结果。
处理速度。我们评估了整个检测器的处理速度,该检测器由四个组件组成。图6(a)(b)显示了不同参数下THREATRACE的处理速度。我们测试了不同子图大小(SS)和批处理大小(BS)下THREATRACE的处理速度。
红线是我们之前讨论的三个数据集中生成的最大边速度(M)。绿线和橙线分别是Unicorn和ProvDetector的最大处理速度。结果显示,即使在最差的情况下,THREATRACE的处理速度仍然比M快。在最佳情况下,THREATRACE的速度大约比Unicorn和ProvDetector快五倍和三倍。我们测试了一个参数,并将其他参数设置为表I中的基线。
• 批处理大小(BS)。 BS是我们为模型模块设置的参数(§V-C)。如图6(a)所示,随着BS的增加,THREATRACE的处理速度呈增长趋势,并趋于稳定。
• 子图大小(SS)。 SS是我们为数据存储模块设置的参数(§V-B)。如图6(b)所示,随着SS的增加,运行时性能有所提高。

在这里插入图片描述

图5:不同参数下的检测性能。

CPU利用率和内存使用情况。图6©(d)展示了不同SS和BS下THREATRACE的CPU利用率和内存使用情况。绿线和橙线是Unicorn和ProvDetector的基线结果。结果显示,随着BS的增加,CPU利用率倾向于变大,并在BS = 10时达到最大值。之后,它变小。就SS而言,当SS增加时,CPU利用率呈下降趋势。BS和SS的变化对内存使用情况没有显著影响。THREATRACE的CPU利用率和内存使用情况比Unicorn和ProvDetector更大。这主要是因为THREATRACE是一种基于深度学习的方法,需要比传统方法更多的计算资源。这是THREATRACE的一个限制,我们计划在未来的工作中研究减少计算资源的问题。
我们没有呈现THREATRACE在其他参数下的运行时开销,因为它们只影响检测性能。同时,BS和SS对检测性能的影响很小。这种独立和不敏感的特性提供了调整THREATRACE的便利性。

在这里插入图片描述

图6:不同参数下的运行时性能评估。每个参数的评估都是在其他参数保持不变的情况下进行的。

F. 自适应攻击

攻击方法学。THREATRACE是一个基于图的检测系统。因此,我们借鉴了现有的针对基于图的检测器的对抗攻击[34],[35],[36]的思想,开发了一种自适应攻击,称为基于优化的规避攻击。这种攻击的目的是使异常节点在执行阶段规避THREATRACE的检测。具体来说,因为THREATRACE在误分类时将节点判断为异常,攻击者的目的是使异常节点被正确分类以避免检测。攻击者需要找到异常节点特征的扰动,该特征是由节点与其邻居之间的边构造的。请注意,我们假设攻击者通过植入一些异常节点(如恶意软件、远程Shell、异常动态链接库)已经篡改了系统。因此,攻击者可以控制异常节点的相关边。扰动应尽可能小,以保持异常节点的原始功能并减少成本。简言之,假设x是原始被THREATRACE检测到的异常节点的特征,基于优化的规避攻击的目标是将特征改变为xˆ以规避检测,并且约束条件是

在这里插入图片描述
,其中δa限制了扰动。为了构造节点的对抗特征xˆ,我们假设攻击者了解了在§V中提到的THREATRACE的特征提取方法。对于THREATRACE的其他背景知识,我们研究了两种基于背景知识的攻击者。

(1)拥有训练数据的攻击者。这类攻击者拥有训练数据。基于优化的规避攻击可以通过训练数据完成,分为两步进行。第一步是在训练数据中找到一个良性节点xb,它与异常节点x最为相似且具有相同的类别。具体地,
在这里插入图片描述

第二步是解决优化问题,这并不困难:
在这里插入图片描述

(2)了解THREATRACE模型的攻击者。这类攻击者了解THREATRACE的模型,包括训练后的参数和超参数。因此,攻击者可以直接基于模型的损失来解决优化问题。具体地,
在这里插入图片描述

Loss(x̂) 是THREATRACE的损失函数,指示一个样本是否被正确分类。对于一个异常样本,攻击者需要使THREATRACE将其正确分类以规避检测。因此,loss(x̂)应尽可能小。这个问题可以通过基于梯度的方法轻松解决。THREATRACE由几个子模型组成。为了简单起见,我们选择第一个子模型作为规避的目标模型。

对于这两类攻击者,一旦成功求解x̂,攻击者就控制异常节点按照新的边分布与系统中的其他节点交互,使其特征变为x̂。

鲁棒性评估与分析。我们使用Unicorn SC2数据集进行评估。首先,我们选择THREATRACE检测到的异常节点作为基准样本,然后应用基于优化的规避方法计算每个异常节点的 x̂。之后,我们改变对抗样本的相关边以改变它们的特征提取。结果显示在图7中。对于拥有训练数据的攻击者来说,模仿训练数据几乎不会影响检测性能。对于了解THREATRACE模型的攻击者,随着 δa 的增加,规避效果会增强。然而,与原始结果相比,误报率是可以接受的(从0.04增加到0.07),这表明THREATRACE对基于优化的规避攻击具有良好的鲁棒性。

VII. 讨论与限制

在本节中,我们讨论了THREATRACE的一些问题、限制和未来的工作。

封闭世界假设。基于主机的威胁检测本质上是一个分类问题。它基于封闭世界假设[37],[38],这个假设认为训练集中包含了每一种良性行为,剩余的都是异常。然而,在现实生活中,很难保证所有良性案例都被涵盖。封闭世界假设和现实情况之间的冲突使得设计理想的检测器变得困难。与其他异常检测器一样,THREATRACE也面临这个问题。我们不能保证在模型中学习到每一个良性节点,特别是考虑到当前系统的快速发展。然而,系统管理员可以定期使用更新的系统良性数据溯源来更新模型。这是一项增量工作,不需要重新训练之前的模型,因此不需要太多时间(第五节C部分)。

对抗性攻击。本文的鲁棒性目标是对抗我们在第六部分F节研究的规避攻击。还有其他可能导致THREATRACE失败的自适应攻击,如投毒攻击[39]和图后门[40]。未来的工作可以研究对更多攻击的鲁棒性。一些增强GNN鲁棒性的先进方法可以在[41],[42]中找到。它们不适用于THREATRACE,因为它们专注于图卷积网络的鲁棒性,这些是不同于我们的感应模型的传导模型(第三部分B节)。

评估。在基于主机的威胁检测领域,公共数据集通常是在人工构建的环境中生成的[32],[33],因此可能不代表实际工作负载。红队对抗蓝队参与生成的数据[29]部分接近实际情况。为社区生成一个能反映真实情况下典型工作负载的公共数据集,并考虑到隐私和保密性,是非常重要的。我们计划在未来的工作中研究这个问题。

系统开销。在部署期间维持稳定的系统开销是必要的。我们展示了THREATRACE具有快速的处理速度和可接受的系统开销(见§VI-E节)。然而,如果在实际中宿主的性能相对较低,我们需要调整BS(批大小)和SS(子图大小)来平衡检测的及时性和系统开销。在最坏的情况下,我们可能不得不进行离线检测。

威胁疲劳问题[30]。通过减少误报来避免“威胁疲劳问题”是很重要的。虽然我们试图通过多模型框架和基于概率的方法来减少误报,但THREATRACE在DARPA TC数据集中仍然产生了许多误报。这可能与良性节点的大量数量有关(见表IV)。当图中有很多节点时,THREATRACE在控制误报数量方面有限制,我们寻求减轻这种现象的方法。在实践中,企业或政府通常有一份可靠软件的列表。我们建议管理员维护一个白名单,记录与那些可靠软件相关的系统实体。此外,如果误报的实体被检查为良性并且被认为将来可靠,也可以将其加入白名单。白名单是最近工作中减少误报的典型方法[3],[9]。除了白名单之外,管理员还可以使用误报来训练更多的子模型,从而避免将来出现相同的误报。

无监督。THREATRACE需要良性数据进行训练。在实际中,管理员可以在系统无威胁运行时(例如,只能使用和访问可信软件和网站)收集数据溯源。

数据溯源的粒度。THREATRACE属于基于溯源的方法。某些威胁(例如,文件中的恶意代码和基于线程的威胁)不会在溯源图中展示攻击模式,因为文件的文本信息和线程活动的细粒度对于数据溯源来说太细了,从而导致检测失败。这是基于溯源方法的一个共同限制。提高数据溯源的粒度或利用另一种新颖的数据源来检测基于宿主的威胁是我们未来的工作。

VIII. 结论

我们介绍了THREATRACE,这是一个实时的基于宿主的节点级威胁检测系统,它使用整个系统的溯源图作为输入来检测和追踪隐秘的入侵行为。THREATRACE利用多模型框架基于它们的特征以及节点之间的因果关系来学习系统中良性节点的不同角色,并基于检测异常节点的同时定位它们来检测隐秘入侵行为。评估结果表明,THREATRACE成功地以高检测性能、处理速度和可接受的系统资源开销检测并定位隐秘威胁。

原文地址:https://arxiv.org/pdf/2111.04333.pdf
源代码:https://github.com/threaTrace-detector/threaTrace

;