写点什么

带你读论文丨 S&P2019 HOLMES Real-time APT Detection

  • 2023-08-23
    广东
  • 本文字数:14367 字

    阅读完需:约 47 分钟

带你读论文丨S&P2019 HOLMES Real-time APT Detection

本文分享自华为云社区《[论文阅读] (09)S&P2019 HOLMES Real-time APT Detection(溯源图)》,作者: eastmount 。


摘要


本文提出了一种实现了检测高级持久性威胁(Advanced Persistent Threat,APT)新的方法,即 HOLMES 系统。HOLMES 的灵感来自现实世界中 APT 活动的一些共同目标。简而言之,HOLMES 旨在产生一个检测信号,以表明存在的一系列协同活动都是 APT 活动的一部分。本文方法要解决的主要挑战之一是开发一套技术,从而检测信号的鲁棒性和可靠性。


  • 在高级层(high-level),我们开发的技术有效地利用了攻击者活动期间出现的可疑信息流间的相关性。

  • 除检测能力外,HOLMES 还能够生成一个高级图(high-level graph),以实时总结攻击者的行为。该图能给分析人员提供有效的网络响应。

  • 本文方法对真实 APT 评估表明,HOLMES 在检测 APT 攻击是具有高精确率和低误报率。

  • 由 HOLMES 生成的紧凑高层图有效地总结了一个正在进行的攻击事件,并可以帮助实时的网络响应操作。


总之,本文构建了一个可以实时检测高级持续性威胁(APT)的系统——HOLMES。该方法有效利用了攻击者活动期间出现的可疑信息流间的相关性。通过实时汇总攻击者的行为,产生基于杀伤链模型(kill chain)的高级图(high-level graph),实现了将复杂的数据映射为简洁的 APT 攻击阶段,从而有利于防御者更加直观地发现威胁并进行防御。HOLMES 生成的简洁高级图有效总结了正在进行的攻击活动,并可通过可疑信息流的关联来协助实时网络响应工作。


Ⅰ.引言


Introduction 是论文的开头,是极为重要的部分,介绍了为什么要做这份工作,建议大家仔细阅读,尤其是写英文论文的读者。因此,作者将该部分进行了详细描述。


在最早关于 APT 详细报告(FireEye 发布的 APT1)中,安全公司 Mandiant 披露了全球 APT 参与者的目标和活动。这些活动至少从包括 141 个组织的不同行业中窃取数百兆字节的敏感数据(包括商业计划、技术蓝图和测试结果)。他们估计评估组织中恶意软件的平均持续时间为 365 天。从那以后,全球范围内出现了越来越多涉及到一些强大攻击者的 APT 攻击事件,包括国家活动。


APT 攻击的特征可归纳为以下三点:


  • 针对性通常针对特定目标的重要价值资产,一般 JG、能源、金融、部门最容易遭到 APT 攻击。并且针对收集到的常用软件、常用防御策略与产品、内部网络部署等信息,攻击者能编写可以绕过目标系统现有防护体系检查的攻击代码。

  • 持续性为了长期控制重要目标获取更多利益,攻击者通过隐藏实现长期潜伏,同时攻击处于动态发展以应对新的系统漏洞及防御体系的更新,并通过外部被控制的命令与控制(Command and Control,C&C)服务器与目标系统保持通信以及传输数据。

  • 隐蔽性为了避免被安全防护系统检测到,APT 攻击代码的编写者使用各种伪装、隐藏手段,通过修改系统程序,隐藏病毒进程、隐藏文件、隐藏目录的方式实现长期潜伏;通过对恶意程序压缩、加密、变体及加壳等技术手段降低其被检测到的概率;运用动态域名解析实现 C&C 服务器的隐藏与长期生存;通过合法的加密数据通道、加密技术或信息隐藏技术隐蔽地传输数据。

1.杀伤链模型


了解 APT 攻击者的动机和行动在应对这些威胁挑战中发挥着重要作用。为了进一步理解 APT 攻击,Mandiant 报告还提供了一个 APT 生命周期模型(如图 1),也被称为杀伤链(kill-chain),它可以让人们了解 APT 的步骤是如何共同实现目标的。



一个典型的 APT 攻击包含以下阶段:


  • 初始入侵(Initial Compromise):例如网站挂马或鱼叉式钓鱼攻击

  • 建落脚点(Establish Foothold):安装木马后门

  • 权限提升(Escalation Privilege):漏洞利用

  • 内部侦查(Internal Reconnaissance):内部侦察目标系统信息

  • 横向移动(Move Laterally):通过网络的横向移动渗透

  • 保持存在(Maintain Presence):Command and Control(C&C)、Remote Access Trojans(RATs)

  • 完成任务(Complete Mission):泄露敏感信息


APT 攻击者的目标是获取和泄露高度敏感的信息,例如特定专有技术的源代码;或者通过破坏高完整性的资源来使目标受到损害,例如,被 Stuxnet 蠕虫感染了的 PLC,这个目标主要是通过符合图 1 所示的杀伤链来实现的。


简而言之,杀伤链提供了一个理解和映射 APT 攻击者动机、目标和行动的参考。

2.问题说明


企业中现有的 IDS/IPS 系统可能会检测并生成主机上可疑事件的警报。然而,结合这些低级警报,以获得正在运行的 APT 活动的高级图仍然是一个重大挑战。


如今,告警关联通常使用安全信息和事件管理( Security Information and Event Management,SIEM)系统来执行,如 Splunk、Logrheth 和 IBM Qradar。这些系统从多个来源收集日志事件和警告并将它们关联起来。这种相关性通常使用现成的指标,例如时间戳。这些关联方法是有用的,但它们通常缺乏:


  • (a) 对从报警到实际攻击入侵之间存的复杂关系缺乏可解释性。

  • (b) 将不同主机、时间跨度极长(数周或数月)的攻击阶段组合在一起,精确性不高。


本文解决的主要问题是——实时检测正在运行的 APT 活动(由长期跨主机的许多不同阶段组成),并根据来自企业的主机日志(host logs)和 IPS 警报向分析人员提供攻击场景的高级说明。


这个问题有三个主要方面,它们如下:


  • 警报生成(Alert generation):如何生成能反映攻击者行为的报警、并降低噪声从主机低级事件开始跟踪,我们必须有效地生成警报。此外,必须确保不会产生大量的噪声警报。

  • 警报相关性(Alert correlation):如何有效地进行报警关联这里的挑战是将攻击者多个活动的警报组合为可靠信号,表明存在正在进行的 APT 活动。

  • 攻击场景演示(Attack scenario presentation):如何呈现攻击场景正在运行的 APT 活动指标需要传达给网络分析师。为了有效,这种沟通必须很直观,需要在高层总结攻击,以便分析人员迅速意识到这次活动的范围和规模。


我们注意到,虽然攻击者的手段多种多样,但是映射到高层次的攻击步骤之后,其抽象攻击模式基本不变,基于此可以将复杂的数据映射到具体的攻击阶段。

3.本文贡献


为了解决上述所有问题,本文提出了一个称为 HOLMES 的系统。HOLMES 以主机审计数据开始(如 Linux 审计或 Windows ETW 数据),并生成一个检测信号,绘制正在进行的 APT 活动的阶段。在高层次上,HOLMES 将 APT 杀伤链作为解决 APT 检测上述三个方面所涉及技术挑战的关键参考。


ETW 是 Event Tracing for Windows 的简称,它是 Windows 提供的原生的事件跟踪日志系统。由于采用内核(Kernel)层面的缓冲和日志记录机制,所以 ETW 提供了一种非常高效的事件跟踪日志解决方案。


下面将介绍关键思想及其意义,并在第三部分(Ⅲ.方法概述)中有一个详细的技术描述。本文主要贡献如下:


  • 首先,HOLMES 旨在将主机日志中发现的活动以及在企业中发现的任何警报信息直接映射到杀伤链中。这种设计选择允许 HOLMES 在语义上生成接近 APT 攻击者的活动步骤(战术、技术和程序,Tactics,

  • Techniques and Procedures,TTPs)的警报。通过这样做,HOLMES 将警报生成过程提升到攻击事件的步骤级别,而不是在低等级审计日志中刻画它们。因此,我们解决了在生成重要警报方面的一个重要挑战。在实验中,我们发现为期 5 天的审计日志集合包含了大约 300 万个低级别事件,而 HOLMES 从中提取了 86 个可疑的活动步骤。

  • HOLMES 第二个重要思想是使用系统中低级实体(文件、进程等)之间的信息流作为警报关联的基础。请注意,杀伤链中的内部侦察步骤取决于一个成功的初始入侵和建立落脚点。特别是侦察步骤通常使用攻击者在建立落脚点期间安装的命令和控制代理(进程)来启动,从而显示这两个阶段所涉及过程之间的流动。此外,内部侦察通常涉及到运行在落脚点建立阶段下载的恶意软件(文件),以说明文件到进程的流程。同样,成功的横向移动和过滤阶段使用内部侦察阶段收集的数据。因此,通过检测与 APT 步骤相关的低等级事件并使用信息流链接它们,可以构建 APT 攻击者所使用的新兴杀伤链。

  • HOLMES 第三个主要贡献是开发了一个高级场景图(high-level scenario graph,HSG)。HSG 的节点对应于 TTP,而边表示 TTP 中涉及的实体之间的信息流。HSG 为高可信地检测 APT 活动提供了基础。为此,我们开发了几个新的想法。① 首先是 HSG 中祖先覆盖的概念。我们将展示这个概念如何帮助评估 HSG 节点之间的依赖关系强度。然后可以删除弱依赖关系,以消除许多假警报。② 我们开发了降噪技术,进一步淡化了已知与良性活动相关的依赖性。③ 我们开发了排序和优先级技术来删除与 APT 活动无关的大多数节点和边。在第 IV-D、IV-E 和 IV-F 节中详细描述了这些步骤。使用这些技术,我们证明了霍尔姆斯能够清楚地区分攻击场景和良性场景。

  • 最后,HSG 在任何时候都提供了非常紧凑的攻击事件总结,从而为攻击理解做出了重要贡献。例如,从一个包含 1000 万个审计记录的数据集开始,我们能够使用一个仅包含 16 个节点的图来总结一个高级攻击事件。网络分析师可以使用所提出的 HSG 相对容易地快速推断攻击的大局(范围和规模)。

4.评估


HOLMES 通过 DARPA 透明计算程序所生成的数据进行评估,该程序是由一个专业红队在不同平台组成的网络上模拟的多个网络攻击。我们为 Linux、FreeBSD 和 Windows 实现了适当的系统审核数据解析器,以处理其审计数据并转换为通用的数据表示和分析格式。使用系统审计数据的优点是,它是一个可靠的信息来源,并且没有未经授权的篡改(在未妥协的内核的威胁模型下)。


  • DARPA Transparent Computing program


在 9 个真实 APT 攻击场景中评估 HOLMES,以及将它作为一个实时入侵检测工具实验两周,实验显示 HOLMES 能够明确区分攻击场景和良性场景,可以发现网络攻击与高精度和召回(Sec. VI)。

Ⅱ.运行示例


在本节中,我们将介绍本文使用的一个运行示例来说明本文方法。这个例子表示了作为政府机构组织(特别是美国 DARPA)研究计划中的一部分红队攻击。在这次攻击中,存在漏洞的 Nginx Web 服务器在 FreeBSD 系统上运行。其操作(系统调用)在系统审计日志中被捕获。从这个审计数据中构建了一个溯源图(provenance graph),其片段如图 2 所示。该图中的节点表示系统实体(entities),如进程(表示为矩形)、文件(椭圆)、网络连接(菱形)、内存对象(五边形)和用户(星形)。边对应系统调用,并且面向信息流和/或因果关系的方向。请注意,使用参考文献[23]中描述的(优化的)节点版本控制技术,我们的溯源图已被呈现为无循环的。



攻击者的目标是从系统中提取敏感信息。图 2 底部描绘了攻击者的活动,主要包括以下步骤:


  • 初始入侵(Initial Compromise)。 攻击者在监听 80 端口的套接字(S1) 上发送恶意有效载荷。因此,Nginx 使其内存区域 (M1) 的某些部分可执行。 接下来,攻击者通过使用反射自加载漏洞来控制 Nginx 进程。

  • C&C 通信(C&C Communications)。受损的 Nginx 进程与 C&C 服务器建立连接(S2),以接收来自攻击者的命令。

  • 特权提升(Privilege Escalation)。攻击者利用现有漏洞将 Nginx 的特权升级为根目录(U1)。

  • 内部侦察(Internal Reconnaissance)。接下来,攻击者会发出诸如 whoami(P5)和主机名(P6)等命令。红队使用这些命令来模拟对专有数据的访问。攻击者还会读取用户名和密码哈列(F2、F3、F4),并将所有这些信息写入临时文件。

  • 窃取信息(Exfifiltration)。接下来,攻击者将包含收集信息的文件传输到其机器(S3)。

  • 清除痕迹(Cleanup)。攻击的最后一步,攻击者将删除临时文件(F5)以清除任何攻击残余

本示例说明了下面描述的许多关键挑战:

  • 攻击隐蔽(Stealthy Attacks):该统计系统留下痕迹最少,有效载荷在现有的 Nginx 进程中运行,检测这种隐蔽攻击是非常具有挑战性的,因为攻击活动与正常的系统操作可以无缝融合。

  • 大海捞针(Needle in a haystack):一个主机每天也能生成数千万个事件,除小部分外(通常不到 0.01%)都属于良性活动,很难检测到这种罕见事件。

  • 实时检测(Real-time detection):假设 HOLMES 与网络响应系统一起使用,因此需要在几秒钟内检测和总结一场正在进行的事件。实时检测给 HOLMES 使用的技术带来了额外的挑战和限制。


尽管能无缝地融入了良性的背景活动,但在攻击中有两个因素很突出。首先,攻击步骤实现与某些 APT 阶段能力对应。其次,攻击活动通过信息流被连接起来。在下一节中,我们描述 HOLMES 方法的两个关键观察结果。

Ⅲ.方法概述


我们方法背后的核心认知是,尽管具体的攻击阶段在不同的 APT 之间可能存在很大差异,但高级 APT 行为通常符合第一部分中引入的杀伤链模型。我们对数百个 APT 报告的分析表明,大多数 APT 包括这些阶段的子集。更重要的是观察到这些阶段存在因果关系,这种联系是攻击正在展开的一个主要迹象。


注意,每个 APT 阶段的具体表现形式可能变化,例如初始入侵可以通过使用户执行恶意文件的网站挂马或鱼叉式网络钓鱼攻击来执行。无论如何,APT 阶段本身代表了对攻击者意图的高层次抽象,因此即使攻击者使用的操作策略因 APT 而异,它们也必然会表现出来。此外,由于 APT 攻击阶段在逻辑上相互依赖,因此必然在它们之间存在信息流或因果关系,例如信息窃取取决于内部侦察去收集敏感数据。


因此,研究问题是我们能否将检测建立在以下基础上:


  • APT 最基本的高层次行为阶段

  • 并且这些阶段之间的信息流依赖关系


回答这个问题的一个主要挑战是:低级别审计数据与攻击者目标、意图和能力与高级杀伤链(kill-chain)视角之间存在巨大的语义差距。



缩小语义鸿沟(Bridging the Semantic Gap)为了弥合低级系统调用视角和高级杀伤链视角之间的语义差距,构建了一个中间层,如上图 3 所示。映射到这个中间层是基于 MITRE 的 ATT&CK 框架, 它描述了近 200 种行为模式,定义为在野观察到的战术、技术和程序(Tactics,Techniques and Procedures,TTPs)。


每个 TTP 都定义了一种实现特定高级功能的可能方法。例如,可以使用 11 个不同的 TTP 实现在受损 Linux 系统中的持久化能力,每个 TTP 代表 ATT&CK 框架中可能的低级活动序列,例如 rootkit 的安装、修改引导脚本等。这些较低级别的操作更接近审计日志的抽象级别,因此可以根据起源图中的节点和边来描述 TTP。


技术挑战(Technical challenges)


  • 有效地将低级事件流与 TTPs 进行匹配

  • 检测攻击步骤之间的相关性

  • 减少误报


(1) 通过一些创新设计来解决这些挑战。为了使低级别的数据有效地映射到 TTPs,我们将审计日志表示为主内存中的 有向溯源图(directed provenance graph),并且使用系统中低级别实体(如文件、进程等)之间的信息流(Information Flow)依赖关系作为基础,来进行警报关联。TTP 被指定为利用这些依赖关系的模式。


(2) 为了检测到攻击步骤之间的关联性,本文开发了 高级别场景图(high-level scenario graph, HSG),HSG 的节点对应于 TTPs,边表示 TTPs 实体之间的信息流和依赖关系。在 HSG 中定义了以下概念:


  • Ancestral Cover:描述节点之间的依赖关系

  • Noise Reduction:降低与良性活动相关的依赖性

  • Ranking and Prioritization:修剪与 APT 无关的节点和边



(3) 为了减少误报,本文提出的方法是:学习可能会产生误报的良性 TTPs 模式,采用启发式算法;根据其严重程度为图中的节点和路径分配权重,以便可以对 HSG 进行排序,并将排序最高的 HSG 呈现给分析人员。


总之,APT 高级阶段使用一套可以从审计数据中观察到通用战术的操作。这些观察结果提供了一些恶意活动可能正在开展的证据。因此,HOLMES 的主要工作是收集证据,推断它们之间的相关性,并利用这些相关性绘制出整个攻击事件。

Ⅳ.系统设计


系统设计的主要任务是建立威胁模型,因此如何建立审计系统以及如何生成日志数据不在本系统设计的范围之内。此外,本文假设初始系统是安全可靠地。

A.数据收集和表示


该系统使用的审计日志来源于许多主机的不同操作系统:


  • Linux auditd:审计数据

  • BSD dtrace

  • Windows ETW:事件跟踪日志系统


原始审核数据被收集并处理成与操作系统无关的格式。HOLMES 接受的输入的事件(event)包括:


  • principals :用户

  • files:如 I/O 操作、文件创建、文件所有权、权限

  • memory:如 mprotect 和 mmap

  • processes:如进程创建和权限更改

  • network connections:网络连接相关事件


数据表示为称为溯源图(provenance graph)。


  • 图的节点包括主体(进程)和对象(文件、通道、套接字)

  • 边表示这些实体之间的依赖关系,并使用事件名称进行注释


该设计与前人的工作有两个不同之处:


  • provenance graph 是不断变化的:当一条边改变了节点的依赖关系,一个新的节点将会被创建并替换旧节点。这种“版本化”的方法使得在不改变分析结果的情况下可以对图进行修剪,而且这种 versioned graph 是无环的,这可以简化许多图算法。

  • 另一个不同之处是 provenance graph 是存储在主存中的,每个事件所占空间小于 5bytes,这种表示方式可以在较长的时间段内实时消耗事件和构建起源图。

B.TTP 规划


TTP 规范提供了低级别审计事件和高级别 APT 阶段之间的映射,因此这是本文所提出的方法的核心。TTP 代表了具体审计日志和高级 APT 步骤之间的中间抽象层。具体而言,主要依靠两种技术将审计日志数据提升到该中间层:


  • (a) 以安全相关事件的溯源图形式的 OS 中性表示;

  • (b) 使用 TTPs 中涉及的实体之间的信息流依赖关系。


总之,这些技术实现了高级别的恶意行为规范,这些规范在很大程度上独立于许多 TTP 细节,例如使用的特定系统调用、恶意软件名称、创建的中间文件以及用于创建它们的程序等。信息流依赖的使用对于通过使用良性系统进程来实现其目标并隐藏其活动的隐秘 APT 的检测至关重要。


  • 先决条件(Prerequisites):表现为因果关系和和信息流的形式。


最后,为了高效匹配 TTP 且不使用回溯技术(backtracking)。我们发现,大多数 TTP 可以在我们的框架中使用单个事件进行建模,并对所涉及的主题和对象有附加的先决条件。表 4 显示了 TTP 规范示例。



其中,第一列表示 APT 阶段;第二列表示相关的 TTP 名称和所涉及的实体;第三列指定与 TTP 相关联的事件家族;第四列列出了第三列对应的 Event Family 中所包含的事件;最后一列既可以表示该 TTP 的先决条件,也可以表示该 TTP 的先决 TTP。先决条件既可以包含于两个 TTPs 实体之间的关系,而且能够捕获两个 TTP 拥有一个共同 parent 的条件。应用先决条件,我们可以减少误报。

C.HSG 构建


下图显示了一个 HSG。该图的椭圆节点表示匹配的 TTP。在每个椭圆内部,用灰色表示匹配的起源图实体。为了便于说明,还包括 TTP 的名称,每个 TTP 所属的 APT 阶段以及每个 TTP 的严重性级别(低中高)。图的边代表不同 TTP 之间的先决条件。完成两个实体之间的路径的虚线表示前提条件。例如,MakeMemExec TTP 将 Untrusted_Read TTP 作为前提,由两个节点之间的边表示。



HSG 的构建主要是由先决条件驱动的。如果一个 TTP 的所有先决条件都满足了,那么这个 TTP 就会被匹配并且被添加到 HSG 中。这可以随时减少 HSG 中 TTP 的数量,从而可以进行复杂的分析而不会影响实时性能。

D.避免虚假依赖


虚假依赖(spurious dependencies),即活动的攻击者不感兴趣或无关的依赖。我们应该优先考虑较强的依赖关系,尽可能地对弱依赖关系进行剪枝。


(1) 虚假依赖即与攻击活动不相关的依赖


  • 例如,进程 nginx(P2) 写入文件/usr/log/nginx-error.log,然后 cat 进程读取该文件。但是,即使 cat 和日志文件之间存在依赖关系,cat 也与攻击无关,并通过 ssh 独立调用。通常,考虑由攻击活动生成的二次衍生的任何进程,例如一个日志滚动系统,它会复制包含攻击者进程生成的部分条目的日志文件。这些进程虽然代表良性的背景活动,但会在起源图中标记为依赖于攻击者的进程。如果没有及时修剪这些虚假的依赖关系,可能会出现依赖关系爆炸,这会极大地增加 HSG 的整体大小。所以我们的目标是留下强依赖,修剪掉弱依赖。


为了将上述讨论推广到可能存在多个入侵进程的情况,引入了一个信息流 f 上所有进程的祖先实体覆盖(ancestral cover)。


(2) 祖先覆盖 ancestral cover AC(f)


  • f 表示一条信息流路径

  • 仅针对在 f 中的所有进程,不影响非进程节点



(3) 最小祖先覆盖 minimum ancestral cover AC_{min}(f)ACmin​(f)


  • AC_{min}(f)ACmin​(f) 表示攻击者如果想要控制整条信息流路径,那么所需要拿下的最少祖先节点数


(4) 路径因子 path\_factor(N_1,N_2)path_factor(N1​,N2​)


  • 考虑到 N_1N1​ 到 N_2N2​ 的所有信息流路径 f_1,...,f_nf1​,...,fn​,令 m_imi​ 表示 f_ifi​ 的最小祖先覆盖。那么,path\_factor(N_1,N_2)path_factor(N1​,N2​)** 为 m_1,...,m_nm1​,...,mn​ 中的最小值。

  • path_factor 的使用极大地减轻了优先处理受攻击影响信息流导致的依赖性爆炸(dependency explosion)。


PS:该部分细节太多,建议大家去读原文。

E.降噪


攻击检测和取证的审计日志分析中的一个挑战是存在噪音,即与 TTP 规则匹配的良性事件。诸如浏览器、Web 服务器和 ssh 守护进程之类的长周期进程不时会触发 TTP 匹配。为了减少这些误报,结合了基于训练数据的降噪规则。利用两个概念:


  • 良性先决条件匹配

  • 良性数据流数量


(1) 良性先决条件匹配对于每个进程,我们的系统运行在良性的环境中并学习经常遇到的先决条件。在运行过程中,一旦某个被触发的 TTP 的先决条件与我们在训练中得到的条件(benign)相匹配,我们便忽略该 TTP。


这种方法可能会导致漏报(false negative),比如一个恶意事件如果匹配到了良性环境中训练得到的良性先决条件,那么这个恶意事件就可能会被忽略。例如,即便没有任何攻击,在 nginx 的启动阶段也会执行 read /etc/passwd,然而如果我们将该行为列入白名单的话,如果有恶意事件是读取改文件,那么该恶意事件就会被忽略。


(2) 良性数据流数量为了解决上述问题,提出了用字节转移度量的数据流数量的概念。比如从/etc/passwd 到 nginx 的数据流数量等于/etc/passwd 文件的大小。因此,如果观察到更多的字节从/etc/passwd 流向 nginx,那么该信息流可能是攻击的一部分。为了确定信息流数量的临界点,我们在一段时间的良性活动中观察 process-file 和 process-socket 活动。

F.信息关联和检测


对每一个 HSG 定义 严重程度评分(severity score),据此来确定一个 HSG 会构成 APT 攻击的可能性。这项工作分两步进行,如下所述:


(1) 威胁元组(Threat Tuple)首先通过与相应的 HSG 关联的抽象威胁元组来表示攻击者在活动中的进度。特别是对于每个 HSG,威胁元组由 7 个元素<S1, S2, S3, …, S7>组成,其中每个 Si 对应于 APT 攻击阶段的威胁程度。一个 APT 阶段通常会包含许多 APT,选取威胁程度最高的来构成威胁元组。


由于属于某一 APT 阶段的不同 TTP 可能具有不同的严重性级别,因此通常有多个候选者可供选择。在这些候选人中选择最严重级别是很自然的。例如,与图 5 的 HSG 相关联的威胁元组是<M, L, H, H, —, H, M>。这个元组包含 6 个条目,因为它所匹配的 TTP 属于 6 个不同 APT 阶段。这些条目是根据杀伤链中 APT 级别的顺序排列的。例如元组的第一个条目是 M,因为图中属于 Initial_Reconnaissance 最严重的 TTP 具有严重性 M。



(2) HSG 排名和优先级(HSG Ranking and Prioritization)为了给 HSG 排序,首先根据下图将 Threat Tuple 转化为数值类型,接下来将代表 7 个 APT 阶段的分数合并为一个整体的分数。特别是根据通用漏洞评分系统(CVSS)中包含的转换表(下表)将威胁元组的每个元素映射为一个数值,CVSS 是一个由商业、非商业和学术领域的安全专业人员协作创建的中立行业标准。考虑到他们感知到的威胁与对抗威胁的历史,替代评分选择可以由企业进行。


合并规则基于以下两个准测:


  • 灵活性和定制化

  • 该分数要能够反映 APT 攻击步骤是如何展开的



为元组中的每一个 entry 设置一个权重,其中,n 表示 APT 攻击的步骤数,wi 和 Si 分别表示步骤 i 的权重和威胁程度,T 表示阈值。如果在步骤 i 中没有 TTP 出现,我们将 Si 设置为 1。


Ⅴ.系统实现


下图是整个 HOLMES 系统架构。


A.构建溯源图的流消耗


为了实现平台的独立性,将来自不同操作系统的审计数据规范化为通用数据表示(common data representation, CDR)。为基于 CDR 的审计记录发布到流处理服务器(Kafka),并从流服务器消耗来进行实时分析和检测。


使用 SLEUTH(USENIX’17)系统进行数据流消耗,利用因果关系跟踪和起源图构造。

B.规则匹配引擎和 HSG 构建


规则匹配引擎在溯源图上进行操作,并且将 TTP 规则作为输入。论文中用到的 TTPs 规则在 Table8 中展示。为了匹配到一个 TTP,规则匹配引擎将规则表中的每一条规则和它的先决条件进行迭代。这个环节的主要挑战是:对于每一个 TTP 来说,都要检查之前匹配的 TTPs 的先决条件和他们之间的路径因子。



为了避免大量的计算,我们不使用回溯法而是使用 增量匹配法。这种方法存储先前计算的结果,并沿着图匹配和传播指向这些结果的指针。当一个 TTP 被匹配时,我们在 HSG 中创建相应的节点,并创建一个指向该节点的指针。同时这个指针将会指向所有与该 TTP 有依赖关系的低级别实体。


例如 path_factor 的计算,假设 N1(起源图中的实体)和 N2、N1 和 N3 之间已经建立了依赖,当节点 N2 与 N3 之间出现了信息流时, 我们需要重新计算 N1 和 N3 之间的 path_factor,以取 path_factor 的最小值。计算的过程中之前 N1 和 N2 的计算结果便可复用。


这种基于指针的两层之间的关联方法可能存在开销和复杂性较大的问题。但实际情况是,大量的低级别实体指向一个 TTP,每个低级别实体只有一个指向 TTP 的指针,而每个 TTP 有多个维护多个指向它的指针,因此并没有出现随着起源图的增加而开销和复杂度急剧提升的情况

C.噪声过滤和检测引擎


噪声过滤引擎识别的是良性的 TTP 匹配,所以它被排除在 HSG 之外。它以从正常行为中学习到的模型为输入,模型包含了与良性活动匹配的 TTPs 以及从操作系统中读写操作的字节数阈值。


当规则匹配系统匹配到一个 TTP 时,它的入口和先决条件就会在这个模型中搜索,如果在模型中存在一个入口包含了所有的先决条件和匹配事件,那么所有的被转移的字节数就会与良性阈值进行比对。低于良性阈值该 TTP 则被过滤,否则在 HSG 中创建一个该 TTP 对应的节点。最后检测引擎计算不同 HSGs 的“权重和”,当其超过检测阈值时,就发出警报。

Ⅵ.实验评估


实验评估是在由 DARPA 组织的红蓝对抗中完成,通过评估计算出 HOLMES 最佳的阈值,并衡量 HOLMES 的表现。最终,将 HOLMES 部署在真实环境中,在没有先验知识的情况下来检测红队的 APT 攻击。在我们的现场实验后,这个数据集已经在公共领域[26]发布,以刺激在这一领域的进一步研究。


A.数据


评估所用的数据如表 10 所示,包含了跨三个操作系统 7 台主机的 9 个 APT 攻击场景,时间跨度为 20 天,其中包含了攻击数据和良性数据,攻击数据在数据总量中少于 0.001%。



简而言之,红队攻击场景中的攻击目标和活动涵盖了那些备受瞩目的 APT 活动。这些活动包括典型的 APT 活动,如浏览器诱导驱动器的初始入侵、后门注入、特权提升、内部侦察、敏感资产过滤以及清理攻击足迹。在这些攻击中,复杂的攻击向量,如反射加载、Webshell 和内存模块加载,它们被红队用来评估 HOLMES 对 APT 攻击的鲁棒性。


为了构建降噪模型,我们使用了 4 天的良性审计数据。这些程序包括浏览器(如火狐)、Web 服务器(如 Nginx)和各种守护进程(如 postfix、syslogd)。

B.设定


在行动之前,每个主机都有一些接下来会被攻击者利用的漏洞软件。为了进一步混合正常日志和攻击日志,红队同时也会进行良性的活动。


HOLMES 会订阅 7 个 Kafka 的 topics(每个主机一个 topics)来消耗数据流以进行实时地分析和预测。为 TTPs 的先决条件设置 path_thres=3,设置 APT 阶段 i 的权重 weight=(10+i)/10。

C.结果显示


表 11 总结了 9 个攻击场景的检测情况。第二列显示检测过程中匹配每个 HSG 的威胁元组,第三列显示相应的威胁分数,第四列显示了执行攻击场景机器在所有良性场景中的最高得分。这些良性场景可能包含相应攻击场景中的确切程序。


良性 HSG 的最高得分为 338(方案 3),攻击 HSG 的最低得分为 608(方案 5.2),这与对系统没有造成伤害的不完全攻击有关。 这说明 HOLMES 已经将攻击场景和良性场景分成了两个不相交的集群,并明确区分了它们。



学习降噪规则和路径因子的影响如图 12 所示。此图显示了所有良性和攻击 HSG 在分析了所有七个阶段后构建的威胁分数。这些分数在三种不同的设置下显示,很明显,攻击 HSG 和良性 HSG 之间有较大的差距。


D.寻找最优阈值


如下图所示,使用准确率和召回率来寻找最佳阈值。其中 F-score 表示准确率和召回率的调和平均值,注意到在[338.25, 608.26]时,F-score 达到最大,区间的两个端点分别表示良性活动的最高分数和恶意活动的最小分数,因此阈值应该在该区间内选取。


在取 n 次方根之后我们发现,F-score 取得最大值时,在[338.25, 608.26]之间调整阈值获得不同的 threat scores,此时对应平均严重程度的收敛区间为[2.01, 2.16],我们取其中位数 2.09。


E.性能


  • Graph Size 图 15 显示了数千条边(左)的起源图和边数(右)的 HSG 的生长趋势的比较。在边缘测量的图尺寸比是 1875:1,即在从起源图映射到 HSG 的过程中减少了 1875 倍。

  • Memory UseHOLMES 在 8 核 CPU 上测试,每个速度 2.5GHz 和 150GB 内存。图 16(左)显示具有审计记录数量 HOLMES 的内存消耗。它显示了内存消耗的近线性增长,因为该系统在内存中的审计记录。图 16(右)显示了支持多少主机的可扩展性到数百台主机的企业。很明显,随着主机数量的增加,我们可以在内存中保持完整的溯源图的持续时间就会减少。注意,x 轴和 y 轴都是按 log-2 比例排列的。

  • Runtime 本文测量了消耗记录、构建溯源图、构建 HSG 和检测 APTs 的 CPU 时间。


F.真实场景实验


将系统放在模拟的企业环境中,在对攻击没有先验知识的情况下,由红队发起 APT 攻击。图 18 显示了 HOLMES 在本实验中构造的攻击 HSG 和良性 HSG 的累积分布函数。



  • 误报(False Positive)

  • 将系统放在两周的良性活动环境中,没有发现误报。

  • 漏报(False Negative)

  • TTP 之间的隐式因果关系:对于避免系统调用的信息流,HOLMES 无法直接查看系统实体之间的因果关系。 但是,如果攻击的其余部分通过系统调用展开,则 HOLMES 仍将重构部分攻击。此外,作为一种主动规避技术,攻击者可能会利用多个入口点来生成分离的子图。

Ⅶ.相关工作


HOLMES 对实时警报生成、警报相关性和场景重建等问题做出了贡献。HOLMES 模型中的一个核心思想是构建和使用高级攻击场景图作为上述所有问题的潜在基础。下面,我们将讨论上述所有领域的相关工作。


A.警报生成(Alarm Generation)基于主机的入侵检测方法(Host-based intrusion detection approaches)主要分为以下三类:


  • misuse-based(滥用) :检测与已知攻击相关的行为

  • anomaly-based(异常) :从正常行为中学习模式,并检测偏离该模式的行为

  • specification-based(规范) :根据专家指定的策略检测攻击,依赖专家知识


本文属于 misuse-based,但本文方法超越了传统的滥用检测(传统基于规则)。


  • HOLMES 使用了先决条件-结果的模式,当匹配的 TTP 中涉及的实体之间存在信息流依赖性时,这些先决条件-结果模式将被匹配。


B.警报关联 IDS 生成的警报对于人工操作员而言太多且级别很低。 需要开发一些技术来总结这些低级别警报并减少其数量。一些方法使用警报相关性,通过对相似警报进行聚类并确定警报之间的因果关系来执行检测。


  • 目前的方法依赖运行在用户空间的第三方应用生成的日志,而且基于像时间戳之类的统计特征,这样并不能很好的检测时间跨度很长的 APT 攻击。因此 HOLMES 在不同的攻击步骤之间建立了信息流,使用了内核审计数据。

  • 警报关联的另一项工作依赖于警报在时间上的接近程度。 相比之下,HOLMES 依靠信息流和因果关系来关联警报,因此即使在执行步骤非常缓慢的情况下,也能够检测到攻击。


C.场景重建许多研究是基于生成和使用系统调用级别的日志(system-call levellogs)来进行的。大多数的方法是从一个给定的恶意事件开始去追溯导致该事件的原因。相比之下,HOLMES 使用系统事件跟踪来执行实时检测,在检测框架中具有以高水平攻击步骤形式的集成取证能力,而不需要检测。


最近的研究已经使用了系统调用级别的日志来进行实时分析。SLEUTH 提出了基于标签的攻击检测和就地取证的技术。HOLMES 在侦探方面取得了一些重大进展。


  • 首先,它展示了如何利用最小祖先覆盖的概念来解决依赖爆炸问题,并开发了一种有效的增量计算算法。

  • 其次,侦探的场景图与起源图处于抽象相同,这对于许多分析人员来说可能太低,而且在 HSG 中缺乏可操作的信息。

  • 最后,溯源图在长期运行的攻击中可能会变得太大,而 HOLMES 则通过使用降噪和优先级技术生成紧凑的 HSG。


D.攻击粒度有时,审计日志的粗粒度会限制对信息流的推理。例如,如果具有之前加载过敏感文件的进程受到攻击,则攻击者可以在不使用系统调用的情况下在其内存区域内搜索敏感内容。HOLMES 会将该文件窃取行为与该进程的其他动作相关联,比如敏感文件读取。

Ⅷ.结论


本文提出了一个实时 APT 检测系统 HOLMES,它关联了可能用于执行每个 APT 阶段的战术、技术和程序(TTPs)。HOLMES 生成一个高级图实时总结攻击者的步骤。我们评估 HOLMES 对 9 个真实的 APT 威胁,并将其部署为一个实时入侵检测工具。实验结果表明,HOLMES 能以高精度、低误警率成功地检测到 APT 活动。


S&P 是安全最好的会议,能发 S&P 的论文都是最优秀的论文之一。下面先引用 安全学术圈 的总结,推荐大家关注它们。


  • 首先,HOLMES 旨在将主机日志中发现的活动以及企业中发现的任何告警直接反应到杀伤链中。这种设计允许 HOLMES 生成告警,这些告警在语义上接近 APT 活动者的活动阶段(TTPs)。通过这样做,HOLMES 将告警生成过程提升到攻击活动步骤的级别,而不是在低级别审计日志的形式。在实验中发现为期五天的审计日志集合包含大约 3M 的低级别事件,而 HOLMES 仅从中提取 86 个可疑活动阶段。

  • HOLMES 的第二个重要思想是使用系统内低级别实体(文件,进程等)之间的信息流作为告警关联的基础。请注意杀伤链中的内部侦察阶段取决于成功的初始入侵和立足点建立。特别地,侦察阶段通常使用攻击者在立足点建立期间安装的 CC 代理(进程)来启动,从而展示两个阶段中涉及的进程之间的信息流。此外,侦察通常涉及在立足点建立阶段运行下载的恶意软件(文件),说明文件到进程的信息流。同样,成功的横向渗透阶段以及窃取阶段,会使用侦察阶段收集的数据。因此通过检测与 APT 阶段相关的低级别事件并使用信息流将它们关联起来,可以构建 APT 活动者使用的杀伤链。

  • HOLMES 的第三个主要贡献是开发高层次场景图(HSG)。HSG 的节点对应于 TTP,并且其边表示 TTP 中涉及实体之间的信息流。HSG 为检测 APT 的高可信度提供了基础。首先是使用了 HSG 中祖先实体覆盖的概念帮助评估 HSG 节点之间依赖关系的强度。然后可以修剪弱依赖项以消除许多错误告警。其次是开发了降噪技术,进一步降低已知与良性活动相关的依赖项。第三是使用优先级排序技术,以删除与 APT 活动无关的大多数节点和边。使用这些技术证明了 HOLMES 能够明确区分攻击和良性场景。

  • 最后,HSG 提供了一个任意时刻都存在的简洁可视摘要,从而为理解攻击做出了重要贡献。例如,从 10M 审计记录的数据集开始,能够使用仅 16 个节点的图表来总结高级攻击活动。网络分析师可以使用现有的 HSG 快速推断出攻击的总体情况(范围和幅度)。


个人感觉这篇文章真的非常棒,融合杀伤链、ATT&CK 和 TTPs 的图结构用于 APT 攻击检测我也曾想过,但本文模型的完整性、实验、故事叙述非常值得我们学习,尤其是很多细节部分(如剪枝、降噪、HSG 构建)。同时,本文应用于真实场景实践都非常棒。

号外!



华为将于 2023 年 9 月 20-22 日,在上海世博展览馆和上海世博中心举办第八届华为全联接大会(HUAWEICONNECT 2023)。本次大会以“加速行业智能化”为主题,邀请思想领袖、商业精英、技术专家、合作伙伴、开发者等业界同仁,从商业、产业、生态等方面探讨如何加速行业智能化。


我们诚邀您莅临现场,分享智能化的机遇和挑战,共商智能化的关键举措,体验智能化技术的创新和应用。您可以:


  • 在 100+场主题演讲、峰会、论坛中,碰撞加速行业智能化的观点

  • 参观 17000 平米展区,近距离感受智能化技术在行业中的创新和应用

  • 与技术专家面对面交流,了解最新的解决方案、开发工具并动手实践

  • 与客户和伙伴共寻商机


感谢您一如既往的支持和信赖,我们热忱期待与您在上海见面。


大会官网:https://www.huawei.com/cn/events/huaweiconnect


欢迎关注“华为云开发者联盟”公众号,获取大会议程、精彩活动和前沿干货。


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

生于云,长于云,让开发者成为决定性力量

评论

发布
暂无评论
带你读论文丨S&P2019 HOLMES Real-time APT Detection_人工智能_华为云开发者联盟_InfoQ写作社区