Tactical Provenance Analysis for Endpoint Detection and Response Systems
一、背景
1.刊物/会议级别
本文收录于2020年IEEE S&P,网络安全领域四大顶会之一。DOI Bookmark为10.1109/SP40000.2020.00096
2.作者团队
本文作者中的两位是伊利诺伊大学香槟分校的Wajih Ul Hassan和Adam Bates,另一位为来自诺顿LifeLock研究组(NRG)的Daniel Marino,诺顿LifeLock为一家上市公司,帮助保护消费者的设备、身份、在线隐私以及家居和家庭需求,该研究组成立于2002年6月,旨在通过新的安全和隐私模式来保护世界上的计算设备和信息。NRG在许多前沿技术(例如目标攻击保护、基于声誉的安全、行业领先的rootkit保护、基于云的安全服务)的开发中发挥了领导作用,这些技术现在已经在诺顿LifeLock的许多产品领域商业化。
3.论文背景
本文指出已有的EDR(端点检测和响应)工具存在的三个主要弊端:
1)EDR工具会产生大量的虚假警报,从而为分析人员积压了调查任务;
2)确定这些威胁警报的准确性需要大量的低级系统日志,人工任务繁琐;
3)由于日志占用巨大资源,系统日志通常在进行调查之前就被删除。
其主要贡献为:
1)提出了战术源图(Tactical Provenance Graphs, TPGs)
的概念,研发了RapSheet系统,直接推理EDR系统生成的威胁警报之间因果关系;
2)引入了基于TPG中各个威胁警报之间的时间顺序的威胁评分方法来解决EDR的虚假警报问题;
3)提出了一种新的日志减少方案,维护了一个最低限度的骨架图,该图可以提供现有和未来威胁预警之间的可链接性,将长期保留日志带来的负担减少87%;
4)集成了原型系统RapSheet。
此贡献恰好可以避免现有EDR存在的三个主要弊端。
二、设计思想
本文提出了RapSheet系统的设计思想,主要分为以三下个部分:
1.建立战术源图
1.收集日志:
收集企业中每个主机上的系统日志,这些系统日志捕获了不同系统实体之间的因果关系。 例如,在Linux中,创建子进程的父进程之间的因果关系由捕获对sys_clone()的调用生成的事件表示。 一旦在每个主机上收集了这些系统日志,它们就会被处理成JSON格式。
2.规则匹配
收集日志过后便可以进行规则匹配来发出警报。在本文的实验中使用了Symantec EDR工具提供的一组默认的MITER规则,并通过未涵盖的MITRE技术的附加规则对这些规则进行了补充。 用户可以通过添加其他TTP的新规则扩展系统。
3.建立起源图结构
这一部分是系统新颖之处:每个主机上的系统日志都解析为一个起源图的图结构,起源图数据模型包含两种顶点类型:进程顶点类型和对象顶点类型,其中包括文件,注册表等。连接这些顶点的边标记有事件类型,描述了连接的实体和事件之间发生的关系。
同时,实现了一种汇总技术:合并具有相同操作的两个顶点之间的边,并仅保留具有最新时间戳的一个边。 这可以大大减少出处图的大小,同时仍保留因果分析的正确性。
4.战术级起源分析
这里提出了三个概念和一个算法,并对TPG做了精确定义:
给定一系列触发的警报和主机出处图,在图中找到所有初始感染点(IIP)顶点。 如果IIP顶点对应的过程是多阶段攻击的第一步,那么其余的攻击将被此过程及其后代生成的未来警报捕获,我们可以对相关警报进行分组。
IIP满足以下两个条件:
(i)它对应于生成一个警报事件的过程,
(ii)从起源图中的向后跟踪不包含其他警报事件。
对于每个IIP顶点,生成一个植根于IIP的图形——IIP图,定义如下:
给定一个出处图G <V,E>和IIP Vertexva上发生的警报事件,该IIP Graph G'<V',E'>是一个以Va为根源的图,其中e∈E',它既因警报事件又导致警报事件。
由于该图可能包含多个路径,因此将IIP图转换为一个新图,其中每个顶点都是一个警报事件,边指示警报之间的时间顺序。称这些边为序列边:
两个警报之间存在序列边(ea,eb),并且满足以下任一条件:(a)ea和eb警报是否在同一台主机上、同一源头路径上和同一起始路径上,或(b)同一主机上的ea和eb警报和ea顶点时间戳小于eb,(c)ea有一个connect事件且eb有一个回应的accept事件。
战术级起源图:战术级起源图(TPG)可以定义为一对(V,E),其中V是一组威胁警报事件,而E是顶点之间的一组序列边缘。
TPG图生成算法如下:
Inputs:
Raw provenance graphG(V,E); Alert Events AE //输入为原始起源图和警报时间
Output:
List of Tactical Provenance GraphsList TPG //输出为战术级起源图TPG
AE′←{ae:time(ae)},ae∈AE, sort by timestamp in asc. order //以时间戳升序排列
2:Seen←∅, set of seen alert events
3:List IIP←∅, List of IIP Vertex Graphs
4:for all ae:AE′,ae /∈Seendo
5:Seen←Seen∪{ae}
6://使用了DFS算法从输入事件返回所有前向跟踪路径
7:Paths←ForwardPaths(ae)
8:IIPG←∅, IIP graph
9:for all path:Paths do
10://返回输入起源路径中的所有警报事件
11:alerts←GetAlertEvents(path)
12://在IIP图中只保留那些至少有一个警告的路径
13:if alerts≠∅then
14:IIPG←IIPG∪path
15:Seen←Seen∪alerts
16:ListIIP←ListIIP∪IIPG
17:ListTPG←∅, List of TPGs to return
/*以上,是IIP图是生成过程*/
18:for all IIPG:ListIIP do
19:TPG←∅, tactical provenance graph
20:alerts←GetAlertEvents(IIPG)
21://根据规则之前发生的事件对警报进行排序
22:alertshb←{a:time(a)},a∈alerts
23://循环排序警报,一次两个
24:for allae1,ae2:alertshb do
25:V←ae1
26:V′←ae2
27:TPG←TPG∪(V,V′)//添加序列边缘
28://后期处理TPG以提高可读性
29:TPG←ReadabilityPass(TPG)
30:ListTPG←ListTPG∪TPG
2.威胁评分
本文结合了各个警报的风险评分,采用了一种计分机制,包括两个风险评估指标:“攻击可能性”和“典型严重性”。每一个都按照非常低(1分),低(2分),中(3分),高(4分),非常高(5分)的五类等级进行评分。每个警报的最终得分为:
为了将单个警报得分组合为总体得分,有两种备选方案:
1.基于路径的计分方案
对于每个警报,生成了反向跟踪路径,然后汇总了该路径上发生的分数。然而在某些情况下,基于路径的方法无法捕获攻击的整个上下文。
2.基于图的评分方案
这也是该系统最终采用的方案,其中警报与攻击者通过MITRE定义的战术杀伤链的有序阶段一致。这些有序警报的最长(不一定是连续的)子序列与 tacticla kill chain战术击杀链 的有序阶段一致。 然后,将该子序列中单个警报的分数相乘以得出TPG的总体分数。如果存在多个最长的子序列,则选择产生最高总体分数的子序列。
3.结构图的简化
本文提出以下两个规则,以在保留基于TPG的警报相关性的任何时间修剪源图。
规则1:删除对象顶点O,如果O的向后跟踪图中没有警报事件,并且没有直接连接到O的警报事件边;
规则2:删除进程顶点P,如果i)P的向后跟踪图中没有警报事件,ii)没有警报事件边直接连接到P,iii)P被终止。
文章用了一个例子来说明简化算法:
删除的对象顶点是O2,因为O2的向后跟踪图由顶点{P2,P1}和带有时间戳{t5,t1}的边组成,这些边没有任何警报事件。 因此,可以安全地从图形中删除O2和带有时间戳5的边缘,而不会丢失任何有关当前或将来警报的连接信息。删除的进程顶点,在向后跟踪图中没有警报事件,并且没有任何作为警报事件的突发事件。 因此可以安全地从图中移除过程顶点P3以及具有时间戳记{t2,t3}的边。
这一简化算法可以从两个方面说明其正确性:第一,简化的骨架图生成的TPG不会具有原始源图中不存在的警报相关性,因为RapSheet在还原过程中不会添加任何新的边或顶点。 第二,由RapSheet生成的骨架图不会有任何假阴性,也就是说它将捕获原始出处图中存在的所有警报关联。 这是因为TPG的性质,简化规则可确保在简化时,删除的节点和边不属于任何IIP图。 并且由于向后跟踪仅包含在给定事件之前发生的事件,因此它们不会成为将来的任何IIP图的一部分。
三、实验评估
作者团队评估了RapSheet作为企业环境中的威胁调查系统的功效。
1.实施
本文使用了Apache Tinkerpop图计算框架 ,与Symantec EDR对接,配置了67条警报生成规则,能够收集系统日志,将事件与攻击行为进行匹配以及生成威胁警报。
2.数据集
数据是在一周内从产品开发成员定期使用的主机上收集的。在这些主机上执行的任务包括:Web浏览,软件编码和编译,质量保证测试以及其他常规业务任务。由于使用情况的差异,某些计算机仅使用一天时间,而其他计算机则在数据收集周期间每天记录事件。总共收集了35GB的(轻度压缩)日志以及大约4000万个系统事件。 平均每台主机每天每台机器产生40万个事件。
实验中实施了三个不同的攻击活动,两个基于真实的APT威胁组(APT3和APT29)和一个定制的数据盗窃攻击。 基础EDR在实验期间生成了58,096条警报。人工确定了1,104个警报与模拟攻击者活动有关。
3.有效性
根据生成警报的日志事件是否与模拟攻击者活动相关,将这些警报手动标记为真阳性和假阳性。经过RapSheet系统生成TPG图,并计算威胁分数。作者团队采用了两种评分方法,基于序列的评分,和分数乘法的稻草人方法,ROC曲线如图:
可以看出基于图结构的序列评分在一定程度上优于稻草人方法。
4.响应时间
测量了评估数据集中所有警报的TPG生成查询响应(周转)时间,结果表明,对于80%的警报,RapSheet会在不到10秒的时间内生成源图,且大部分时间都花在了磁盘读取上。对于响应阶段,RapSheet能够在不到1毫秒的时间内,对所有警报中的95%进行战术出处分析并计算威胁得分。
5.图简化情况
34台主机图结构缩减情况如柱状图所示:
平均而言,RapSheet将图形大小减小了63%,日志缓冲区容量增加了2.7倍。说明骨架图可以有效地减少日志开销。图约简在15分钟内完成。 在最坏的情况下花了大约两个小时才能完成。虽然简化图带来了一些额外的存储空间和时间花销,但是好处超过了运行图归约算法的成本。
6.APT攻击活动案例研究
作者团队主要对APT3攻击情形做了描述。RapSheet由IIP图(左)生成了TPG图(右),可以发现攻击情形变得更加清晰:
RapSheet对于APT3的威胁评估分数排在了所有681个威胁的第15位,并且RapSheet找到了以下按时间顺序排列的战术序列:执行,躲避,发现和横向移动。
四、个人总结和研究启发
1.了解到了现有EDR工具的一些弊端,学习了用于将数据来源纳入EDR工具的思路,这种思路非常具有实用性,可以真正应用于商业而不仅仅停留在学术;
2.对我启发最大的是图缩减算法,让我意识到之前自己做过的项目里建立的关于日志的社区图结构,只是单纯地进行了相同节点压缩,而没有进行等效节点削减。这一意识在实际应用中十分重要,因为内存问题是用户比较关心的问题之一。
四、个人总结和研究启发
1.了解到了现有EDR工具的一些弊端,学习了用于将数据来源纳入EDR工具的思路,这种思路非常具有实用性,可以真正应用于商业而不仅仅停留在学术;
2.对我启发最大的是图缩减算法,让我意识到之前自己做过的项目里建立的关于日志的社区图结构,只是单纯地进行了相同节点压缩,而没有进行等效节点削减。这一意识在实际应用中十分重要,因为内存问题是用户比较关心的问题之一。