Tactical Provenance Analysis for Endpoint Detection and Response Systems
S&P-2022
伊利诺伊大学香槟分校
Hassan W U, Bates A, Marino D. Tactical provenance analysis for endpoint detection and response systems[C]//2020 IEEE Symposium on Security and Privacy (SP). IEEE, 2020: 1172-1189.
目录
- 0. 摘要
- 1. 引言
- 2. 背景和动机
- A. Data Provenance
- B. MITRE ATT&CK and EDR tools
- C. 动机举例
- 3. 系统概况
- A. 威胁模型
- B. 设计目标
- C. 方法
- 4. 系统设计
- A. 日志收集
- B. 规则匹配
- C. 来源图数据
- D. 战术来源分析
- 5. 威胁分数分配
- A. 基于路径的评分方案的局限性
- B. 基于图的评分方案
- 6. 图缩减
- 7. 评估
0. 摘要
端点检测响应(EDR)工具通过将系统事件与已知的对抗行为进行匹配来提供对复杂入侵的可见性。然而,当前的解决方案面临三个挑战:(1)大量误报;(2)依赖人工;(3)存储负担
本文将数据来源( data provenance)的优势引入EDR工具,引入了战术起源图(Tactical Provenance Graphs,TPGs)的概念:
- 不是对低级系统事件依赖性进行编码,而是对 EDR 生成的威胁警报之间的因果依赖性进行推理,提供紧凑的可视化,加速人工分析速度
- 为了解决误报,引入了一种威胁评分方法,该方法根据 TPG 中存在的各个威胁警报之间的时间顺序来评估风险
- 与保留笨重的系统日志相比,我们维护了一个最低限度足够的骨架图,可以提供现有和未来威胁警报之间的链接。
- 真实环境评估RapSheet,真实恶意的TPG排名高于误报的TPG、骨架图将日志保留的长期负担降低了高达 87%
1. 引言
为了解决威胁警报疲劳问题,我们提出了基于对相关 TPG 的分析对威胁警报进行分类的方法。 APT 攻击通常符合“杀伤链”,攻击者执行顺序操作以实现其目标。我们的主要想法是,可以利用 APT 活动中出现的这些连续攻击阶段来执行风险评估。我们在威胁评分分配算法中实例化了这个想法,该算法检查 TPG 内威胁警报的时间和因果顺序,以识别 APT 攻击动作的序列。之后,我们根据识别的序列为该 TPG 分配威胁分数,并使用该威胁分数对 TPG 进行分类。
我们提出了一种新颖的日志缩减技术,它不是存储日志中存在的所有系统事件,而是维护一个最低限度足够的骨架图。这个骨架图保留了足够的上下文(系统事件),不仅可以识别现有警报之间的因果关系,还可以识别未来可能触发的任何警报。尽管骨架图降低了系统日志的保真度,但它们仍然保留了生成用于威胁评分分配、风险评估和高级攻击可视化的 TPG 所需的所有信息。
2. 背景和动机
A. Data Provenance
……
B. MITRE ATT&CK and EDR tools
EDR 工具在企业中有四个主要用途:1) 检测潜在的安全事件,2) 可扩展的日志摄取和管理,3) 调查安全事件,以及 4) 提供补救指导。为实现这些功能,EDR 工具在每个主机上记录详细的低级事件,包括进程启动和网络连接。通常,此数据本地存储在终端主机上。可能感兴趣的事件可能会被推送到中央数据库以进行警报和进一步分析,在此期间可能会从端点提取其他事件以提供取证上下文。
C. 动机举例
以APT29为例,具体说明了EDR工具存在的假阳性倾向、生成上下文困难、存储效率低下三个问题。
3. 系统概况
A. 威胁模型
我们对环境做出以下假设。首先,我们假设 EDR 工具正在收集企业中每个终端主机上的系统日志。接下来,我们假设 APT 攻击在 EDR 开始监视受害主机后开始。我们假设底层 EDR 工具没有受到损害,并且系统日志在调查时是正确的(没有被攻击者篡改)。然而,防篡改日志记录解决方案 [54]、[55] 可以帮助减轻日志完整性假设。最后,本文不考虑硬件木马、侧信道和后门攻击。
B. 设计目标
- 多阶段攻击解释。该系统应提供紧凑的可视化来描述攻击活动的不同高级阶段
- 因果警报分类。系统应根据严重程度对威胁警报进行分类
- 长期日志保留。我们的调查和分类技术必须能够在不牺牲准确性的情况下进行长时间的攻击活动
- 广泛适用。我们为警报分类和日志管理开发的技术应符合 EDR 工具用例。我们的技术应该适用于大多数 EDR 工具已经收集的通用系统日志
- 兼容性。该系统应该能够与任何商品主机一起工作,而无需更改底层操作系统或 EDR 工具
- 可扩展。只要底层 EDR 工具检测到这些 TTP,我们的算法就应该能够与任何对抗性 TTP 知识库一起使用
C. 方法
首先,RapSheet 对系统日志进行规则匹配,以识别匹配 MITRE ATT&CK 行为的事件。每个规则匹配都表示可能威胁行为的警报。接下来,我们从日志中生成一个来源图数据库。在图生成过程中,我们注释了与TTPs相匹配的边。一旦完成带有警报注释的来源图的构建,我们将生成一个战术来源图 (TPG),它是从来源图派生的一个图,显示因果相关的警报是如何排序的。
要生成 TPG,我们首先确定初始感染点 (e initial infection point,IIP) 顶点,即时间轴中生成威胁警报的第一个顶点。然后我们使用前向跟踪找到 IIP 顶点的后代中的所有警报。最后,无关的系统事件从这个后代图中移除,形成我们所说的 IIP 图。
我们的威胁评分分配算法背后的关键思想是使用所有因果相关警报(即 IIP 图中的所有警报)之间的时间顺序来对符合 MITRE ATT&CK 杀伤链的警报进行排名。但是,不同路径上警报的排序信息在 IIP 图中不会立即显现出来。为了解决这个问题,我们执行了一个 happens-before 分析,以找到 IIP 图中存在的不同警报之间的时间顺序,这为我们提供了一个 TPG。图 4b 显示了 APT29 攻击场景的 TPG。
之后,我们的威胁评分分配算法从 TPG 中找到符合 MITRE 杀伤链的有序警报子序列,并使用这些来分配警报优先级的严重性评分。
4. 系统设计
A. 日志收集
对于 Linux 主机,我们的底层 EDR 使用 Linux 审计框架 ,而对于 Windows,它使用 ETW 以及自定义系统调用钩子(hook)。
B. 规则匹配
我们使用 Symantec EDR 工具提供的一组默认 MITRE 规则,并用尚未涵盖的 MITRE 技术的附加规则补充这些规则。用户可以通过为额外的 TTP 添加新规则来轻松扩展我们的系统。EDR 供应商提供的一些规则会针对 MITRE ATT&CK 未涵盖的行为生成警报,出于这项工作的目的,我们将忽略这些行为。
图 2 中注释为警报 B 的威胁警报符合以下规则(为清楚起见简化了语法)
C. 来源图数据
我们的起源图数据模型如图 5 所示。我们有两种类型的顶点:进程顶点类型和客体顶点类型,包括文件、注册表等。连接这些顶点的边标有描述之间关系的事件类型和时间戳。此外,进程顶点标有开始和终止时间,这使我们能够在分析过程中检查进程是否仍然存在。此外,图构建还结合了之前的技术,该技术合并具有相同操作的两个顶点之间的边,并且仅保留具有最新时间戳的一条边。这种技术已被证明可以减少来源图的大小,同时仍然保持因果分析的正确性。
D. 战术来源分析
给定触发警报列表和主机来源图,我们在图中找到所有初始感染点 (IIP) 顶点。我们将 IIP 定义为满足两个条件的顶点:(i) 它对应于生成警报事件的进程,以及 (ii) 来自该事件在起源图中的反向跟踪不包含其他警报事件。对于每个 IIP 顶点,我们生成一个以 IIP 为根的图。我们称其为 IIP 图并将其定义如下:
IIP 图捕获同一路径上事件之间的时间顺序。然而,在推理整个攻击活动时,我们并不关心,例如,哪个攻击者控制的进程采取了给定的行动。相反,我们希望捕获 IIP 图中包含的所有警报的时间顺序,这可以更好地反映攻击者的意图。因为这个图可能包含多条路径,所以我们需要一种方法来捕获不同路径上边之间的顺序。为了实现这一目标,我们将 IIP 图转换为一个新图,其中每个顶点都是一个警报事件,边表示警报之间基于发生前关系的时间顺序。我们称这些边为序列边,它们的定义如下:
对于发生在同一台机器上的事件,我们可以使用事件时间戳来生成序列边。对于不同机器上的事件,我们可以利用机器之间的通信来产生happens-before关系(在一台机器上发送数据包之前的事件肯定发生在另一台机器接收到数据包之后发生的事件之前)。最后,我们生成一个图,我们称之为战术起源图,其正式定义如下:
然而,战术起源图可能不像分析师希望的那样简洁,因为 MITRE 技术可能会在类似事件上重复匹配,例如写入多个敏感文件的进程或向多个恶意 IP 地址发送网络消息的进程。这可以在战术起源图中添加冗余警报事件顶点。为了整理 TPG,我们执行后处理步骤,在该步骤中,如果警报顶点由同一进程触发,则我们将归因于同一技术的警报顶点聚合起来。
5. 威胁分数分配
许多 MITRE ATT&CK 技术描述包括对常见攻击模式枚举和分类 (CAPEC)知识库中模式的元数据引用。 CAPEC 模式条目有时包括两个风险评估指标:“攻击可能性”和“典型严重性”。其中每一项都按照非常低、低、中等、高、非常高的五类等级进行评级。第一个指标捕获特定攻击模式成功的可能性,同时考虑攻击先决条件、所需的攻击者资源以及可能实施的反制措施的有效性等因素。第二个指标旨在捕捉成功实施攻击的后果有多严重。在可用的情况下,我们使用 MITRE 发布的信息将这些分数分配给各个警报。
对于某些 MITRE 技术,没有提供 CAPEC 参考,或者提供的 CAPEC 参考没有可能性和严重性分数。在这些情况下,我们求助于 EDR 供应商提供的单独的严重性评分,该评分标准化为我们的 15 分制。我们将每个指标的描述性值转换为 1 到 5 的数值范围,并将两个指标组合在一起。这部分自定义赋分的权重更高,意味着可能是更高级的攻击。最终威胁评分为: T S ( technique ) = ( 2 ∗ S e v e r i t y S c o r e ) + L i k e l i h o o d s c o r e TS(\text{technique})=(2*Severity Score)+Likelihoodscore TS(technique)=(2∗SeverityScore)+Likelihoodscore 例如,称为注册表运行键/启动文件夹 (T1060)的 MITRE 技术指的是称为修改注册表运行键 (CAPEC-270)的攻击模式,它分配了“中等”攻击可能性和“中”的严重性。因此,我们为检测技术 T1060 的警报分配9分 TS(T1060) = 2 * 3+3=9。(满分15)
接下来,我们将解释我们用于将单个警报分数组合成整体威胁分数的不同方案。
A. 基于路径的评分方案的局限性
我们首先尝试了一种基于分组和评分警报的方法,对于每个警报,我们生成了向后跟踪路径,然后汇总了该路径上发生的分数。我们尝试了不同的聚合方案,不幸的是,我们在实验过程中意识到,在某些情况下,基于路径的方法并未捕获攻击的整个上下文。
B. 基于图的评分方案
为了捕获候选警报的更广泛上下文,我们为候选警报生成了 TPG,它是从以候选人的后向追踪来源路径中最浅层警报为根的子图派生的。TPG 中的序列边形成图的组成警报的时间顺序序列。我们发现这些有序警报的最长(不一定连续)子序列与 MITRE 战术杀伤链的阶段顺序一致。然后,我们将此子序列中各个警报的分数相乘,为 TPG 提供总分。如果有多个最长的子序列,我们选择产生最高总分的那个。更正式地说:
T
S
(
T
P
G
)
=
max
T
i
∈
T
∏
T
j
i
∈
T
i
T
S
(
T
j
i
)
TS(\mathrm{TPG})=\max\limits_{\mathbf{T}^i\in\mathfrak{T}}\prod\limits_{T_j^i\in\mathbf{T}^i}TS(T_j^i)
TS(TPG)=Ti∈TmaxTji∈Ti∏TS(Tji)
T
\mathfrak{T}
T是 TPG 中所有最长子序列的集合,与时间和杀伤链阶段排序一致。
6. 图缩减
对于我们的图缩减算法,我们假设了起源图和反向追踪图。我们还假设起源图中的所有警报事件都与至少一个流程顶点有关。基于这些特性,我们提出以下两个规则来在任何时间点修剪起源图,同时保留基于 TPG 的警报相关性:
规则#1:删除对象顶点 O 当且仅当 O 的反向跟踪图中没有警报事件并且没有直接连接到 O 的警报事件边。
规则#2:删除进程顶点 P 当且仅当:i) P 的反向跟踪图中没有警报事件,ii) 没有直接连接到 P 的警报事件边,以及 iii) 进程 P 终止。
标有 P 的顶点表示进程,而标有 O 的顶点表示对象顶点。红色边表示警报,绿色顶点表示减少时的实时进程,边用有序时间戳 t1 到 t9 标记。灰色顶点和边显示根据规则#1 和规则#2 移除的候选对象。
对象顶点减少的唯一候选对象是 O2,因为它满足规则#1 的所有条件。 O2 的反向跟踪图由顶点 {P2, P1} 和带有时间戳的边 {t5, t1} 组成,它们没有任何警报事件。因此,我们可以安全地从图中删除 O2 和时间戳为 t5 的边,而不会丢失当前或未来警报的任何连接信息。
进程 P3 已终止,在其反向跟踪图中没有警报事件,并且没有任何事件边缘是警报事件。因此,我们可以安全地从图中删除过程顶点 P3 以及具有时间戳 {t2, t3} 的边。
通过将这两个归约规则应用于给定的起源图,RapSheet 生成了一个节省空间的骨架图,它仍然可以识别警报之间的所有因果依赖关系。
7. 评估
我们使用 Apache Tinkerpop图计算框架作为我们的来源图数据库。
用 6K 行 Java 代码实现了三个 RapSheet 组件(战术图生成、威胁评分分配和图缩减)。
从在Symantec内运行的 34 台主机收集了系统日志和威胁警报。日志和警报由 Symantec EDR 生成,它配置了 67 条警报生成规则。
数据是在一周内从产品开发团队成员经常使用的主机上收集的。在这些主机上执行的任务包括网页浏览、软件编码和编译、质量保证测试和其他日常业务任务。
总共收集了 35GB 的(轻度压缩)日志和大约 4000 万个系统事件。
我们向三个不同的主机注入了攻击行为。攻击行为对应三种不同的攻击活动,两种基于现实世界的 APT 威胁组(APT3 和 APT29),一种是定制的数据窃取攻击。底层 EDR 在实验期间生成了 58,096 个警报。手动分析后确定 1104 个警报与模拟攻击者活动相关。
RapSheet 将这些警报与 681 个 TPG 相关联。其中,5 个由真实警报组成,676 个仅包含虚假警报。
我们尝试了两种不同的评分方案。对于第一个方案,我们使用稻草人方法将 TPG 中存在的所有警报的威胁分数相乘,为每个 TPG 分配分数。然而,由于 TPG 可能包含重复的警报,我们通过组合具有相同 MITRE 技术、过程和对象顶点的警报来标准化分数。对于第二个方案,我们使用了第五节中描述的评分方法。
当我们设置一个阈值(用垂直红线显示)来捕获 100% 的真阳性时,我们可以去除 97.8% 的错误 TPG,因为所有真实攻击 TPG 的得分都明显高于大多数错误警报 TPG。在此阈值下,RapSheet 的 FPR 为 2.2%。
对于 80% 的警报,RapSheet 在不到 10 秒的时间内生成了来源图。RapSheet 能够在不到 1 毫秒的时间内对 95% 的所有警报执行战术来源分析并计算威胁分数
RapSheet 将图大小减少了 63%,将日志缓冲区容量增加了 2.7 倍。在 80% 的主机上,图形缩减在 15 分钟内完成。在最坏的情况下,一台主机需要大约两个小时才能完成。