Featured image of post HOLMES: Real-time APT Detection through Correlation of Suspicious Information Flows

HOLMES: Real-time APT Detection through Correlation of Suspicious Information Flows

2019 SP

期刊 2019 SP
作者 Sadegh M. Milajerdi, Rigel Gjomemo, Birhanu Eshete, R. Sekar, V.N. Venkatakrishnan
状态 阅读完
摘要 在本文中,我们介绍了 HOLMES,这是一个实现高级和持续威胁 (APT) 检测新方法的系统。 HOLMES 的灵感来自现实世界 APT 的几个案例研究,这些案例突出了 APT 参与者的一些共同目标。简而言之,HOLMES 的目标是产生一个检测信号,表明存在一组协调的活动,这些活动是 APT 活动的一部分。我们的方法解决的主要挑战之一是开发一套使检测信号稳健可靠的技术。在高层次上,我们开发的技术有效地利用了攻击者活动期间出现的可疑信息流之间的相关性。除了检测能力之外,HOLMES 还能够生成实时总结攻击者行为的高级图表。分析师可以使用该图来进行有效的网络响应。对我们的方法针对一些现实世界的 APT 的评估表明,HOLMES 可以高精度和低误报率检测 APT 活动。 HOLMES 生成的紧凑的高级图表有效地总结了正在进行的攻击活动,并可以协助实时网络响应操作。

# 思维导图

# 研究内容

# 贡献

  1. HOLMES 旨在将主机日志中发现的活动以及企业中发现的任何警报直接映射到杀伤链。
  2. HOLMES 的第二个重要思想是使用系统中低级实体(文件、进程等)之间的信息流作为警报关联的基础。
  3. HOLMES 的第三个主要贡献是开发了高级场景图 (HSG)。 HSG的节点对应于TTP,边代表TTP中涉及的实体之间的信息流。
  4. HSG 随时提供非常紧凑、直观的活动摘要,从而为攻击理解做出重要贡献。

# 挑战

  • 隐蔽性(恶意活动难以被察觉)
  • 低阳性(恶意活动占比较少)
  • 实时性(恶意活动难以实时被检测)

为了克服这些挑战,请注意,尽管无缝地融入良性后台活动,但与攻击有关的两个因素仍然很突出。首先,攻击步骤实现了与某些APT阶段相对应的能力。其次,攻击活动通过信息流相互联系。在下一节中,我们将根据这两个关键观察来描述HOLMES方法。

# 杀伤链模型

image.png 初始入侵(Initial Compromise):例如网站挂马或鱼叉式钓鱼攻击 建落脚点(Establish Foothold):安装木马后门 权限提升(Escalation Privilege):漏洞利用 内部侦查(Internal Reconnaissance):内部侦察目标系统信息 横向移动(Move Laterally):通过网络的横向移动渗透 保持存在(Maintain Presence):Command and Control(C&C)、Remote Access Trojans(RATs) 完成任务(Complete Mission):泄露敏感信息

# 研究方法

# 思路目标

  • APT 最基本的高级行为步骤
  • 这些步骤之间的信息流依赖关系

挑战:低级审计数据与攻击者目标、意图和能力的高级杀伤链视图之间存在巨大的语义差距

# 弥合语义差距

image.png

# 关键技术

  1. 高效匹配(使用审计日志的表示形式作为主内存中的有向来源图)
  2. 关联关系(构建高级场景图HSG)
  3. 减少误报
    1. 学习可能产生误报 TTP 的良性模式;
    2. 根据严重性为图中的节点和路径分配权重的启发式算法,以便对 HSG 进行排名,并将排名最高的 HSG 呈现给分析师

# 总结

APT 的高级阶段是使用可从审计数据中观察到的一套通用策略来实施的。这些观察结果表明,某些恶意活动可能正在发生。那么,HOLMES的工作就是收集证据并推断它们之间的相关性,并利用这些相关性来规划整个攻击活动。

# 系统设计

# A.数据收集和表示

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

  • provenance graph是不断变化的:当一条边改变了节点的依赖关系,一个新的节点将会被创建并替换旧节点。这种“版本化”的方法使得在不改变分析结果的情况下可以对图进行修剪,而且这种versioned graph是无环的,这可以简化许多图算法。
  • 另一个不同之处是provenance graph是存储在主存中的,每个事件所占空间小于5bytes,这种表示方式可以在较长的时间段内实时消耗事件和构建起溯源图。

# B.TTP规范

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

  1. 以安全相关事件的溯源图形式的OS中性表示;
  2. 使用TTPs中涉及的实体之间的信息流依赖关系。

# C.HSG构建

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

# D.避免虚假依赖

解决HSG中依赖关系爆炸问题

  1. 祖先覆盖

确定该流代表强信息流还是弱信息流相当于确定流中的实体是否共享受损的祖先。如果它们共享受损的祖先,那么它们就是攻击者活动的一部分,并且它们之间存在很强的依赖性,必须优先考虑。否则,我们认为依赖性很弱,并在分析中不再强调它。 image.png

  • f 表示一条信息流路径
  • 仅针对在f中的所有进程,不影响非进程节点
  1. 最小祖先覆盖

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

  1. 路径因子

$path_factor(N_1,N_2)$,考虑从$N_1$到$N_2$的所有信息流路径$f_1,…,f_n$,$m_i$表示为$f_i$的最小祖先覆盖覆盖。那么,$path_factor(N_1,N_2)$就是$m_1,…,m_n$中的最小值。 路径因子的使用通过优先考虑受攻击者影响的流,极大地减轻了依赖爆炸

# E.降噪

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

# 良性先决条件匹配

对于每个进程,系统都会学习当系统在良性环境中运行时频繁触发的先决条件。在运行时,当触发的 TTP 的先决条件与训练期间遇到的先决条件匹配时,系统会忽略该匹配。

# 良性数据流数量

良性先决条件匹配方法可能会导致漏报(false negative),比如一个恶意事件如果匹配到了良性环境中训练得到的良性先决条件,那么这个恶意事件就可能会被忽略。例如,即便没有任何攻击,在nginx的启动阶段也会执行read /etc/passwd,然而如果我们将该行为列入白名单的话,如果有恶意事件是读取改文件,那么该恶意事件就会被忽略。 为了解决上述问题,提出了用字节转移度量的数据流数量的概念。比如从/etc/passwd到nginx的数据流数量等于/etc/passwd文件的大小。因此,如果观察到更多的字节从/etc/passwd流向nginx,那么该信息流可能是攻击的一部分。为了确定信息流数量的临界点,我们在一段时间的良性活动中观察process-file和process-socket活动。

# F.信息关联和检测

对每一个HSG定义严重程度评分(severity score)

  1. 威胁元组

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

  1. HSG 排名和优先级

$\prod_i^n(S_i)^{w_i}\geq{\Tau}$ n表示APT攻击的步骤数,wi 和 Si 分别表示步骤i的权重和威胁程度,T表示阈值。如果在步骤i中没有TTP出现,我们将Si设置为1。 【问题:wi设置较为主观,同时依赖Si的合理性】

# 实验

# 来源图构建的流消耗

为了实现平台独立性,来自不同操作系统的审计记录被标准化为通用数据表示(CDR),并为各种系统实体提供共享抽象。为了简化审计数据处理,基于 CDR 的审计记录被发布到流处理服务器(Kafka),并通过从流处理服务器消费来进行实时分析和检测。 Md Nahid Hossain, Sadegh M. Milajerdi, Junao Wang, Birhanu Eshete, Rigel Gjomemo, R. Sekar, Scott Stoller, and V.N. Venkatakrishnan. SLEUTH: Real-time attack scenario reconstruction from COTS audit data. In 26th USENIX Security Symposium (USENIX Security 17), pages 487–504, Vancouver, BC, 2017. USENIX Association. 使用SLEUTH(USENIX’17)系统进行数据流消耗,利用因果关系跟踪和起源图构造。 image.png

# 规则匹配引擎和HSG构建

此任务的一个特别具有挑战性的部分是检查每个 TTP 的先前匹配的 TTP 的先决条件和路径因子。为了在不回溯的情况下(避免大量运算)解决这一挑战,我们使用增量匹配方法来存储先前计算的结果,并沿着图匹配和传播指向这些结果的指针。

# 噪声过滤和检测引擎

# 评估

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

# 得分结果

image.png

# 性能评估

Graph Size HSG Size Memory Use Runtime

# 真实场景

  1. 误报(False Positive)

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

  1. 漏报(False Negative)

TTP之间的隐式因果关系:对于避免系统调用的信息流,HOLMES无法直接查看系统实体之间的因果关系。 但是,如果攻击的其余部分通过系统调用展开,则HOLMES仍将重构部分攻击。 多个入口点:作为一种主动规避技术,攻击者可能会利用多个入口点来生成分离的子图。 HOLMES会跟踪每个单独的入口点,直到满足我们的检测阈值为止,并且当不相交的子图之间存在信息流时,它们会关联TTP。 但是,可能需要一些其他分析来完全关联攻击步骤,这些攻击步骤来自不同的入口点,并且之间没有信息流。

Licensed under CC BY-NC-SA 4.0
使用 hugo 构建 🖤 Stack
版权声明:Licensed under CC BY-NC-SA 4.0「署名-非商业性使用-相同方式共享 4.0 国际」