Paper Note - HOLMES:基于可疑信息流的实时APT检测

HOLMES系统采用实时汇总攻击者行为的方法,通过构建基于杀伤链模型的高级图,实现复杂数据向APT攻击阶段的直观映射,帮助防御者快速识别威胁。


原文标题:HOLMES: Real-time APT Detection through Correlation of Suspicious Information Flows

原文作者:Sadegh M. Milajerdi, Rigel Gjomemo, Birhanu Eshete, R. Sekar, V.N. Venkatakrishnan

原文来源:S&P2019

原文链接:https://arxiv.org/pdf/1810.01594.pdf

1 简介

本文构建了一个可以实时检测高级持续性威胁(Advanced Persistent Threat, APT)的系统——HOLMES。该系统可以通过实时汇总攻击者的行为,产生基于杀伤链模型(kill chain)的高级图(high-level graph),实现了将复杂的数据映射为简洁的APT攻击阶段,从而有利于防御者更加直观地发现威胁并进行防御。

1.1 杀伤链模型

杀伤链模型用来描述APT的生命周期,可以让人们更加直观的认识到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:Exfiltration of Confidential Information

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

1.2 研究现状

当前从报警关联(alert correlation)的角度来进行APT入侵检测,使用的大多数都是像Splunk、LogRhythm、IBM QRadar这样的SIEM(Security Information and Event Management )系统,从不同的主机上收集日志来关联它们,此类系统存在的问题包括:

(1)对于从报警到攻击实例之间的复杂关系缺乏可解释性

(2)将不同主机、时间跨度极长的攻击步骤聚合在一起,精确度不高

1.3 本文创新点

(1)能够实时检测系统,产生APT报警

(2)能够实时产生高级别的攻击图来描述攻击者的行为,协助防御者进行实时地安全响应

1.4 解决的主要问题

HOLMES的要解决的问题是将日志和报警信息映射到杀伤链模型上,提供实时、直观、可视化的攻击场景图,并且能将大量的审计数据抽象为少数的几个攻击节点。

具体实现上的问题包括:

(1)如何生成能反映攻击者行为的报警、并降低噪声

(2)如何有效地进行报警关联

(3)如何呈现攻击场景

2 方法提出

实现目标是将原始的日志和报警映射到语意上与APT接近的活动步骤TTPs(Tactics,Techniques and Procedures),然后再映射到Kill Chain

(1)系统设计的主要挑战:低级别的审计数据与高级别的kill-chain之间存在巨大的语意鸿沟。因此基于MITRE’s ATT&CK框架构建了一个中间层来缩小语意鸿沟。ATT&CK中以TTPs的方式定义了200多种行为模式,每个TTP定义了一种实现特定高级功能的可能方法。
在这里插入图片描述
(2)为了使低级别的数据有效地映射到TTPs,本文将审计日志表示为有向起源图(directed provenance graph),并且使用系统中低级别实体(如文件、进程等)之间的信息流(Information Flow)作为基础,来进行警报关联.

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

  • Ancestral Cover:描述节点之间的依赖关系
  • Noise Reduction:降低与良性活动相关的依赖性
  • Ranking and Prioritization:修剪与APT无关的节点和边

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

(5)评估数据来自DARPA Transparent Computing #3 的Host Audit Data,使用了9个真实的APT场景进行体统评估,并将系统放在真实环境中运行了2周来评估检测效果。

3 系统设计

系统设计的主要任务是建立威胁模型,因此如何建立审计系统以及如何生成日志数据不在本系统设计的范围之内。

3.1 数据收集和表示

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

  • Linux auditd
  • BSD dtrace
  • Windows ETW

原始数据被收集并处理成与OS无关的格式,输入的**事件(event)**包括:

  • principals :用户
  • files:例如I/O操作、文件创建、文件所有权、权限
  • memory:例如mprotect和mmap
  • processes:例如进程创建和权限更改
  • network connections

数据以图的形式来表示,我们称之为起源图(provenance graph)。图中的节点包括subjects(processes)和objects(files、pipes、sockets),边表示实体之间的依赖关系。该设计与前人的工作有两个不同之处:

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

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

3.2 TTP规范

TTP规范提供了低级别审计事件和高级别APT步骤之间的映射,因此这是本文所提出的方法的核心。

TTP代表了具体审计日志和高级APT步骤之间的中间抽象层。我们依靠两种主要技术将审计日志数据提升到该中间层:

  • provenance graph
  • TTPs实体之间的信息流依赖

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

为了TTP匹配的效率,不能使用backtracking(回溯)。我们发现,大多数TTP可以在我们的框架中使用单个事件进行建模

TTP规范举例:
在这里插入图片描述

其中,第四列列出了第三列对应的Event Family中所包含的事件;最后一列既可以表示该TTP的先决条件,也可以表示该TTP的先决TTP。先决条件既可以包含于两个TTPs的两个实体之间的关系,而且能够捕获两个TTP拥有一个共同parent的条件。应用先决条件,我们可以减少误报。

3.3 HSG构建

图中的椭圆表示匹配的TTPs,椭圆内部是匹配的起源图实体;边表示不同TTPs之间的先决条件。
在这里插入图片描述

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

3.4避免虚假依赖

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

  • 假如某个日志轮换系统复制了某个日志文件,文件中包含了攻击者产生的部分信息。这种进程虽然代表了良性活动,但也会在起源图中被标记为与攻击进程存在依赖。如果此类依赖不被修剪的话,将会使HSG变得很大。

所以我们的目标是留下强依赖,修剪掉弱依赖。一般地,在起源图中考虑有一条表示信息流的路径连接的两个实体,如果这两个实体拥有相同的恶意祖先,我们就说

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

  • f表示一条信息流路径

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

∀ p ∈ f ∃ a ∈ A C ( f ) a = p \forall p \in f \exists a \in A C(f) \quad a=p pfaAC(f)a=p or a a a is an ancestor of p p p

(3)最小祖先覆盖 minimum ancestral cover A C min ⁡ ( f ) A C_{\min }(f) ACmin(f)

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

(3)路径因子 path − _{-} factor ( N 1 , N 2 ) \left(N_{1}, N_{2}\right) (N1

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值