HOLMES:基于可疑信息流关联的实时APT检测

Abstract

在本文中,我们介绍了Holmes系统,它实现了一种新的检测高级和持续性威胁(APT)的方法。Holmes的灵感来自于现实世界APT的几个案例研究,这些案例突出了APT的一些共同目标。简而言之,Holmes的目标是产生一个探测信号,表明存在一组协调一致的活动,这些活动是APT活动的一部分。我们的方法解决的主要挑战之一涉及开发一套使检测信号健壮和可靠的技术。从高层次上讲,我们开发的技术有效地利用了攻击者活动期间出现的可疑信息流之间的关联。除了它的检测能力,Holmes还能够生成一个高级图表,实时总结攻击者的行动。分析师可以使用此图表进行有效的网络响应。对一些真实APT的评估表明,Holmes能够以高精度和低误警率检测APT活动。Holmes制作的紧凑的高级图表有效地总结了一场正在进行的攻击行动,并可以帮助实时网络响应行动。

I. INTRODUCTION

在第一批关于高级和持续性威胁的详细报告(名为APT1[8])中,安全公司Mandiant披露了全球APT参与者的目标和活动。这些活动包括从不同行业的至少141个组织窃取数百TB的敏感数据(包括业务计划、技术蓝图和测试结果)。他们估计恶意软件在目标组织中的平均持续时间为365天。从那时起,越来越多的有案可查的APT涉及全球舞台上的强大行为者,包括民族国家行为者。

了解APT行为者的动机和行动在应对这些威胁的挑战中起着至关重要的作用。为了进一步加深这一理解,Mandiant的报告还提供了APT生命周期模型(图1),也被称为杀伤链,它允许人们获得关于APT步骤如何共同实现其参与者目标的观点。典型的APT攻击包括成功渗透successful penetration(例如,下载驱动或鱼叉式网络钓鱼攻击)、侦察reconnaissance、命令和控制(C&C)通信command and control (C&C) communication(有时使用远程访问特洛伊木马(RA TS))、权限提升privilege escalation (通过利用漏洞)、在网络中横向移动lateral movement through the network、泄露机密信息exfiltration of confidential information等。简而言之,杀戮链为理解和映射APT参与者的动机、目标和行动提供了参考。

自第一份Mandiant报告发表以来,APT已经变得更加复杂。多年来,各种利用漏洞的细节有所不同,但高级步骤基本保持不变。在调查了大约300份APT报告[3]时,我们观察到:

·APT攻击者的目标要么是获取和渗漏高度机密的信息,例如特定专有技术的源代码;要么是通过损害高度完整性的资源(例如Stuxnet蠕虫中被破坏的PLC)来损害受害者,以及

·这一目标主要是通过符合图1所示杀伤链的步骤来实现的。

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

最先进的技术。目前,通常使用安全信息和事件管理(SIEM)系统(如Splunk[10]、LogRhythm[7]和IBM QRadar[6])执行警报关联。这些系统从多个来源收集日志事件和警报,并将它们关联起来。这种相关性通常利用现成的指示符,例如时间戳。这些关联方法很有用,但通常缺乏(A)对警报和实际入侵实例之间存在的复杂关系的了解,以及(B)将长时间(数周或某些情况下为数月)在不同主机上发生的攻击步骤组合在一起所需的精确度。

问题陈述。本白皮书要解决的主要问题是实时检测正在进行的APT活动(包括在很长一段时间内跨多个主机的许多不同步骤),并根据来自企业的主机日志和IPS警报向分析师提供攻击场景的高级解释。

这个问题主要有三个方面,分别是:

1.警报生成:从主机的低级别事件跟踪开始,我们必须以高效的方式生成警报。我们如何生成警报,试图将攻击者可能正在采取的任何重要步骤纳入考虑范围?此外,必须注意确保我们不会产生大量噪音警报。

2.警报关联:这里的挑战是将这些来自攻击者多个活动的警报组合成一个可靠的信号,表明存在正在进行的APT活动。

3.攻击场景演示:需要将正在进行的APT战役的指标传达给人类(网络分析师)。为了有效,这种交流必须是直观的,需要在高水平上总结攻击,以便分析师迅速认识到行动的范围和规模。

方法和贡献。我们在本文中介绍了一个名为Holmes的系统,它解决了上述所有方面的问题。Holmes从主机审计数据(例如,Linux auditd或Windows ETW数据)开始,并产生一个检测信号,该信号描绘出正在进行的APT活动的各个阶段。在更高的层面上,福尔摩斯新颖地使用了APT杀伤链作为关键参考,以解决APT检测的上述三个方面涉及的技术挑战。我们将在下面描述我们的主要想法及其意义,详细的技术描述见第三节。

首先,Holmes的目标是将主机日志中发现的活动以及企业中发现的任何警报直接映射到杀伤链。这种设计选择允许Holmes生成语义上接近APT参与者的活动步骤(“战术、技术和程序”(TTP))的警报。通过这样做,Holmes将警报生成过程提升为在攻击活动的步骤级别工作,而不是在低级别审核日志中显示。因此,我们解决了生成重要警报的重要挑战。在我们的实验中,我们发现,五天的审计日志收集包含大约3M个低级别事件,而Holmes只从中提取了86个可疑活动步骤。

福尔摩斯的第二个重要思想是利用低级实体(文件、进程等)之间的信息流,在系统中作为报警关联的基础。要看到这一点,请注意,杀戮链中的内部侦察步骤取决于成功的初步妥协和立足点的建立successful initial compromise and establishment of a foothold。具体地说,侦察步骤通常是使用攻击者在建立立足点期间安装的命令和控制代理(进程)启动的,因此显示出两个阶段中涉及的进程之间的流。此外,侦察通常涉及运行在立足点建立阶段下载的恶意软件(文件),这说明了文件到进程的流程。同样,成功的侧向运动阶段和渗出阶段都使用侦察阶段收集的数据。因此,通过检测与APT步骤相关的低级事件并使用信息流将它们联系起来,就有可能构建APT参与者使用的新兴杀伤链。

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

最后,HSG提供了一个非常紧凑的、可视化的战役时刻总结,从而为理解攻击做出了重要贡献。例如,从一个包含10兆审计记录的数据集开始,我们可以用一个只有16个节点的图表来总结一次高级攻击活动。网络分析人员可以使用所呈现的HSG来相对容易地快速推断攻击的总体情况(范围和规模)。

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

评价福尔摩斯在九种?真实贴切的攻击场景nine real-life APT attack scenarios,以及运行它作为实时入侵检测工具在现场实验中跨越了两个星期,表明福尔摩斯能够明显区分攻击和良性的场景,可以发现网络攻击精度高和回忆(Sec VI)。

II. A RUNNING EXAMPLE

在本节中,我们将提供一个贯穿本文的运行示例来说明我们的方法。这个例子代表了一个红队作为政府机构(特别是美国国防部高级研究计划局)研究项目的一部分实施的攻击。在这次攻击中,一个脆弱的Nginx web服务器运行在FreeBSD系统上。它的操作(系统调用)在系统审计日志中被捕获。从这个审计数据中,我们构建一个来源图,图2中显示了它的一个片段。图中的节点表示系统实体,如进程(以矩形表示)、文件(椭圆形)、网络连接(菱形)、内存对象(五边形)和用户(星形)。边对应于系统调用,并面向信息流和/或因果关系的方向。注意,使用参考文献[23]中描述的(优化的)节点版本控制技术,我们的起源图已经被渲染为非循环的。

攻击者的目标是从系统中窃取敏感信息。攻击者的活动如图2底部所示,包括以下步骤:

1.最初的妥协Initial Compromise。攻击者在监听80端口的套接字(S1)上发送恶意负载。因此,Nginx使其内存区域(M1)的某些部分是可删除的。接下来,攻击者通过使用反射式自加载漏洞来控制Nginx进程。

2.命令和控制(C&C)通信。被破坏的Nginx进程建立一个连接(S2)到C&C服务器来接收攻击者的命令。

3.特权升级。攻击者利用现有漏洞将Nginx的权限升级为root (U1)。

4.内部侦察。接下来,攻击者发出whoami (P5)和hostname (P6)等命令。红队使用这些命令来模拟对机密/专有数据的访问。攻击者还读取用户名和密码散列(F2, F3, F4),并将所有这些信息写入一个临时文件。

5.泄露。接下来,攻击者将包含收集到的信息的文件传输到她/他的机器(S3)。

6.清理。在攻击的最后一步,攻击者删除临时文件(F5)以清除任何攻击残余。

这个例子说明了下面描述的许多关键挑战:

隐形的攻击。这种攻击对系统的影响很小。攻击的第一步,Nginx服务器的初始攻击,是在主存中执行的,不会留下任何可见的痕迹,比如下载的文件。此外,有效负载运行在现有的Nginx进程中。检测这种隐形攻击是非常具有挑战性的,攻击者的活动与正常的系统运行无缝融合。

大海捞针。即使是一个主机每天也可以生成数千万个事件。除了非常小的一部分——通常远低于0.01%——这些都是良性活动。(图2的顶部部分显示了审计日志中良性活动的一个小子集。)如果没有很高的误报率,就很难发现如此罕见的事件。更重要的是,从呈现给分析人员的攻击摘要中过滤掉这些良性事件非常具有挑战性。

实时检测。我们设想将福尔摩斯与网络响应系统结合使用,因此有必要在几秒钟内检测并总结一场正在进行的行动。实时检测对福尔摩斯使用的技术提出了额外的挑战和限制。

要克服这些挑战,请注意,尽管无缝地融合到良性的背景活动中,但有两个因素与攻击有关。首先,攻击步骤获得了与APT阶段相对应的能力。其次,攻击活动通过信息流进行连接。在下一节中,我们将基于这两个关键的观察结果描述HOLMES方法。

III. APPROACH OVERVIEW

我们的方法背后的核心观点是,尽管具体的攻击步骤在不同的APT之间可能有很大的差异,但高级APT行为通常符合第一节中介绍的相同的杀伤链(图1)。我们对来自[3]的数百份APT报告的分析表明,大多数APT由这些步骤的子集组成,如果不是全部的话。更重要的是,我们观察到这些步骤需要因果联系,这种联系是攻击正在展开的主要迹象。

请注意,每个APT步骤的具体表现可能有所不同,例如,最初的妥协可能作为由用户执行的驱动程序下载或带有恶意文件的鱼叉式网络钓鱼攻击来执行。无论如何,APT步骤本身代表了攻击者意图的高级抽象,因此即使攻击者使用的操作策略在APT之间有所不同,它们也必须表现出来。此外,信息流或因果关系必须存在于它们之间,因为APT步骤在逻辑上是相互依赖的,例如,泄露依赖于内部侦察来收集敏感数据。

因此,研究的问题是,我们能否把我们的发现建立在

1.APT最基本的高级行为步骤,以及

2.这些步骤之间的信息流依赖关系。

回答这个问题的一个主要挑战是,低级审计数据与攻击者目标、意图和能力的高级杀伤链视图之间存在巨大的语义鸿沟。

弥合语义鸿沟

为了弥合低级系统调用视图和高级杀伤链视图之间的语义鸿沟,我们构建了一个中间层,如图3所示。到该中间层的映射基于MITRE的A TT&CK框架[2],该框架描述了在野外观察到的近200种行为模式,定义为战术、技术和过程(TTP)。

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

Technical challenges.实现图3中总结的方法的主要技术挑战是:

1.低级事件流与TTP的有效匹配,

2.检测攻击步骤之间的相关性,以及

3.减少误报。

我们通过一些设计创新来解决这些挑战。为了高效匹配,我们将审计日志的表示使用为主存中的有向起源图(Section IV),这将允许高效匹配。此图还对存在于系统实体(如进程和文件)之间的信息流依赖项进行编码。ttp被指定为利用这些依赖关系的模式。例如,为了匹配 维护持久性maintain persistence TTP,从匹配 初始妥协initial compromise TTP到 maintain persistence TTP的流程中必须存在信息流依赖项。

为了检测攻击步骤之间的相关性,我们构建了一个高级场景图(HSG)作为起源图的抽象。HSG中的每个节点代表一个匹配的TTP,边缘代表这些匹配的TTP之间的信息流和因果关系。图3的中间层用黑体表示的节点和边表示HSG。(图5为运行示例的HSG。)为了确定HSG中节点之间的边缘,使用TTPs之间和APT阶段的先决-结果模式the prerequisite-consequence patterns。

为了减少假阳性的数量(例如,不代表攻击的hsg),我们使用以下组合:(a)学习可能产生假阳性TTPs的良性模式,(b)根据严重性为图中的节点和路径分配权重的启发式,以便对hsg进行排序,并将排名最高的hsg呈现给分析师。

总而言之,APT的高级阶段使用了一套可以从审计数据中观察到的常见策略。这些观察结果提供了证据,表明一些恶意活动可能正在展开。HOLMES的工作就是收集各种证据,推断出它们之间的相关性,并利用这些相关性来规划全面的攻击行动。

IV . SYSTEM DESIGN

与之前大多数依赖于操作系统审计数据的工作[12]、[18]、[34]、[39]一样,我们将操作系统内核和审计引擎视为可信计算基础(TCB)的一部分。换句话说,对操作系统内核、审计系统及其产生的日志的攻击不在我们的威胁模型的范围之内。我们还假设系统在一开始是良性的,因此最初的攻击必须来自企业外部,使用远程网络访问、可移动存储等手段。

A. Data Collection and Representation

我们的系统依赖于从可能运行不同操作系统(OS)的多个主机检索到的审核日志。对于Linux,审核数据的来源是auditd,而对于BSD,它是DTrace,对于Windows,它是ETW。收集此原始审核数据并将其处理为操作系统中立的格式。这是福尔摩斯接受的输入格式。该输入捕获与主体(用户)、文件(例如,I/O、文件创建、所有权和许可的操作)、存储器(例如,mProtection和mmap)进程(例如,创建和特权改变)以及网络连接相关的事件。尽管默认的审计系统会带来不小的管理费用,但最近的研究表明,管理费用可以降低[12]、[46]。

数据被表示为一个图,我们称之为起源图。此图的总体结构类似于许多以前的取证分析工作[27]、[34]、[39]:图中的节点包括主体(进程)和对象(文件、管道、套接字),边表示这些实体之间的依赖关系,并用事件名称进行注释。还有一些重要的区别:我们的主题和对象都是版本化的。如果引入边改变了节点的现有依赖关系(即祖先节点的集合),则在添加该边之前创建节点的新版本。版本化支持优化,可以删除审计日志中的大部分事件,而不会改变取证分析的结果[23]。而且这个版本化的图是无环的,可以简化很多图算法。关于起源图的另一个重要点是,它被设计成存储在主存中。我们在以前的工作[22]和[23]中开发了一个高度紧凑的起源图表示,平均而言,审计日志中的每个事件需要不到5字节的主内存。这种表示方式允许在较长时间内实时地使用事件和图形构造。正是在这个来源图上,我们的分析查询了与我们的TTP规范匹配的行为。

B. TTP Specification

TTP规范提供了低级审计事件和高级APT步骤之间的映射。因此,它们是我们的方法的核心组成部分。在本小节中,我们将描述TTP设计中的三个关键选择,它们支持有效和精确的攻击检测。

回想一下,在我们的设计中,TTPs代表了具体审计日志和高级APT步骤之间的中间抽象层。具体来说,我们依赖于两种主要技术来将审计日志数据提升到这个中间层:(a)以起源图的形式表示安全相关事件的操作系统中性表示,以及(b)使用TTPs中涉及的实体之间的信息流依赖关系。综上所述,这些技术实现了恶意行为的高级规范,这些规范在很大程度上独立于许多TTP细节,例如所使用的特定系统调用、恶意软件的名称、所创建的中间文件以及用于创建它们的程序等。在这方面,我们的基于信息流的TTP规范方法比使用来自入侵检测系统文献的误用规范[32],[47]更通用。信息流依赖的使用对于通过使用良性系统过程来实现其目标来隐藏其活动的隐形接入点的检测是至关重要的。

除了详细说明TTP的步骤,我们还需要了解它的先决条件。先决条件不仅有助于减少误报,还有助于理解TTP在APT活动的更大背景下的作用。在我们的TTP规范中,前提条件采用APT阶段之间的因果关系和信息流的形式。

最后,TTP匹配需要是高效的,并且不需要像回溯这样昂贵的技术。我们发现,大多数TTPs可以在我们的框架中使用单个事件进行建模,并对所涉及的主题和对象附加前提条件。

表4显示了一个TTP规则规范的例子,在Section v中出现了额外的规则。在表4中,第一列表示APT阶段,第二列表示关联的TTP名称和与TTP相关的实体。第三列指定与TTP关联的事件族。为了便于说明,在第四列中显示了这个系列中包含的一些特定事件,但请注意,它们不是TTP规则的一部分。(事件类只定义一次,并在所有TTP规则中重用。)

第五列表示与每个TTP相关的严重级别。我们使用这个严重级别对系统提出的警报进行排序,对最严重的警报进行优先排序。我们目前的严重级别分配是基于由US-CERT和DHS与MITRE[4]协作定义的通用攻击模式枚举和分类(CAPEC)列表,但可以根据特定企业的需要进行定制。我们还提供了另一种自定义机制,通过这种机制,每个严重性级别可以映射到一个分析师指定的权重,该权重反映了部署上下文中不同APT阶段的相对重要性。

最后一列指定要匹配的TTP规则的先决条件。前提条件可以指定要匹配的TTP的参数的条件,例如第一行的Untrusted_Read TTP的套接字参数S。前提条件还可以包含以前匹配的ttp及其参数的条件。例如,Make_Mem_Exec(P, m) TTP的先决条件列包含一个条件∃U trusted Read(?,P')。只有当先前的进程P匹配了Untrusted_Read TTP,并且两个TTP中涉及的进程的path_factor(在下面定义)小于指定的阈值时,才满足这个前提条件。

先决条件可以捕获两个ttp中涉及的实体之间的关系,例如进程上的父子关系,或文件之间的信息流。它们还可以捕获两个ttp共享一个共同的父节点的情况。使用先决条件,我们能够删除许多假阳性,即类似于TTP的良性活动。

C. HSG Construction

图5显示了运行示例的HSG。此图的节点表示匹配的ttp,并在图中以椭圆表示。在每个椭圆内,我们用灰色表示匹配的来源图实体。为了便于说明,我们还包括了TTP的名称,每个TTP所属的APT阶段,以及每个TTP的严重级别(低、中或高)。图的边表示不同ttp之间的先决条件。完成两个实体之间路径的虚线表示先决条件。例如,Make_ Mem_Exec TTP有一个Untrusted_Read TTP(作为先决条件),由两个节点之间的边表示。

HSG的构建主要是由先决条件驱动的:如果满足HSG的所有先决条件,则匹配TTP并将其添加到HSG。这一因素减少了HSG在任何时候的测试点(TTP)数量,使得在不影响实时性能的情况下进行复杂的分析成为可能。

初始妥协->建立立足点->提高权限->-内部侦查->泄露信息->清理信息

D. Avoiding Spurious Dependencies

所谓虚假依赖,指的是对攻击者活动的不感兴趣和/或不相关的依赖。例如,在图2中,进程nginx(P2)写入文件/usr/log/nginx-error.log,cat进程稍后读取该文件。但是,尽管CAT和日志文件之间存在依赖关系,但CAT与攻击无关,并通过ssh独立调用。更一般地,考虑使用攻击活动产生的次要伪像的任何进程,例如,日志轮换系统复制包含攻击者进程产生的部分条目的日志文件。虽然这些进程代表良性的后台活动,但它们将在来源图中标记为依赖于攻击者的进程。如果不及时删除这些虚假的依赖关系,可能会出现依赖爆炸,从而极大地增加HSG的大小。因此,呈现给分析师的最终结果可能充满了良性活动,这可能会导致分析师错过嵌入在大图中的关键攻击步骤。出于这个原因,我们优先考虑较强的依赖关系,而不是较弱的依赖关系,尽可能地删除较弱的依赖关系。

直观地说,如果Pd是Pa的后代进程,我们可以说进程Pd对进程Pa有很强的依赖性。类似地,如果Pa或其子进程写入某个文件或套接字,则该文件或套接字对进程Pa具有很强的依赖性。更一般地,考虑两个实体以及它们之间在起源图中的路径,该路径指示它们之间的信息。确定该流表示强信息流还是弱信息流等同于确定流中的实体是否共享受危害的祖先。如果它们共享受损的祖先,则它们是攻击者活动的一部分,并且它们之间存在很强的依赖性,必须对其进行优先排序。否则,我们认为依赖性是弱的,并在我们的分析中淡化它。

为了将上述讨论推广到可能存在多个受损进程的情况,我们引入以下概念,即信息流路径f上所有进程的祖先覆盖AC(F):

∀p ∈ f ∃a ∈ AC(f) a = p or a is an ancestor of p

请注意,f中的非进程节点不会影响上面的定义。最小祖盖ACmin(F)是最小尺寸的祖盖。直观地说,ACmin(F)表示攻击者为了完全控制信息流路径 f 而必须妥协的最小祖先数(即利用漏洞的次数)。例如,再次考虑从攻击者控制下的nginx进程到cat进程的流。因为这两个进程没有共同的祖先,所以它们之间路径的最小祖先覆盖的大小为2。因此,为了控制cat进程,攻击者必须为cat开发一个额外的漏洞。这要求攻击者首先在cat中找到漏洞,然后创建相应的漏洞,最后将该漏洞写入日志文件。通过选择大小为1的祖先覆盖,我们捕捉到了这样一个事实:与nginx及其后代执行攻击活动的攻击相比,这种涉及cat的攻击的可能性要小得多。

我们现在可以定义前面讨论TTPs时提到的路径因子(N1,N2)的概念。直观地说,它捕捉到了攻击者对从n1到N2的流量的控制程度。基于上述使用最小祖先覆盖作为依赖强度度量的讨论,我们定义path_factor如下。考虑所有信息流路径f1,...,fn从N1到N2,并让mi成为fi的最小祖先封面尺寸。那么,path_factor(N1,N2)就是m1,...,mn中的最小值。

注意,如果进程N2是N1的子进程,那么在N1到N2之间只有一条边。因为n1是N2的祖先,所以这条路径的最小祖先覆盖层的大小为1。相比之下,从nginx到cat的(唯一)路径最小的祖先覆盖大小为2,所以path_factor(nginx,cat) = 2。

在第五节中,我们描述了一个有效的path_factor计算。根据我们的经验,通过对受攻击者影响的流进行优先级排序,路径路径的使用极大地缓解了依赖关系爆炸。

E. Noise Reduction

分析用于攻击检测和取证的审计日志的挑战之一是噪声的存在,即匹配TTP规则的良性事件。长期存在的进程(如浏览器、web服务器和SSH守护进程)会不时触发TTP匹配。为了减少这些误报,我们结合了基于训练数据的降噪规则。我们利用两个概念:(1)良性的先决条件匹配和(2)良性的数据流数量。

基于良性前提的降噪。对于每个进程,我们的系统学习了系统在良性环境中运行时频繁触发的先决条件。在运行时,当被触发的TTP的先决条件与训练期间遇到的先决条件匹配时,我们将忽略该匹配。

基于数据流量的降噪。基于良性前提条件的过滤可能会导致漏报:恶意事件可能不会被注意到,因为它与在学习阶段观察到的行为相匹配。例如,即使没有任何攻击,nginx也会在启动阶段读取/etc/passwd。但是,如果我们将/etc/passwd的所有nginx访问列入白名单,则受损的nginx服务器的后续读取将不会被注意到。

为了解决这个问题,我们加强了学习,以合并大量的信息流(以传输的字节为单位)。例如,可以从/etc/passwd文件流向nginx的信息量等于该文件的大小,因为nginx只读取该文件一次。因此,如果观察到更多字节从/etc/passwd流向nginx,则此流可能是攻击的一部分。为了确定信息量的截止点,我们在良性设置下观察了一段时间内的进程文件和进程-套接字对。

F . Signal Correlation and Detection

在给定一组HSG的情况下,我们如何区分哪些构成攻击的HSG具有很高的置信度?我们通过为每个HSG分配严重程度分数来应对这一挑战。该分配在下面进一步描述的两个步骤中进行。

威胁元组。首先,我们通过与相应的HSG相关联的抽象威胁元组来表示攻击者在战役中的进展。特别地,对于每个HSG,威胁元组是一个7元组<S1,S2,S3,…,S7>其中每个Si对应于HSG的索引i处的APT阶段的严重程度。我们基于对野生APT的广泛调查选择了7元组[3],但其他选择也是可能的。

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

HSG排序和优先级排序。

为了对HSG进行排名,我们首先将威胁元组转换为数值。具体地说,我们首先根据通用漏洞评分系统(CVSS)中包含的转换表(表7)将威胁元组的每个元素映射到一个数值。CVSS是一个供应商中立的行业标准,通过商业、非商业和学术部门的安全专业人员协作创建[5]。企业可以根据其感知到的威胁和过去的威胁历史,做出可选的评分选择。

接下来,我们将7个APT阶段的数字分数合并为一个总分数。我们用来计算这个分数的公式是根据两个主要标准设计的:(1)灵活性和定制化,(2)APT步骤的相关性反映在步骤展开时分数的放大。为了满足这些标准,我们将权重与转换后的威胁元组中的每个条目相关联,并计算威胁元组的加权乘积作为分数。这些权重可由系统管理员配置,并可用于将特定阶段的检测优先于其他阶段。

使用一个训练集,我们进行了几个实验,并比较了使用其他方案的结果,例如加权和、指数和和几何和。对于每个方程,我们测量了归一化后良性子图得分和攻击子图得分之间的平均差值,发现加权乘积的结果最好。因此,我们使用以下标准来标记APT攻击:

这里,n是APT级的数量,Wi和Si分别表示阶段I的权重和严重性,τ是检测阈值。如果在阶段I中没有出现TTP,则设置Si=1。

V.  IMPLEMENTATION实施

用于起源图构建的流消耗。图6显示了HOLMES的体系结构。为了实现平台独立性,来自不同操作系统的审计记录被规范化为一个公共的数据表示(CDR),并为不同的系统实体提供共享的抽象。为了简化审计数据处理,基于CDR的审计记录被发布到流处理服务器(Kafka),实时分析和检测通过使用流服务器进行。我们使用我们的SLEUTH系统[22]进行流消耗、因果关系跟踪和起源图构建,因此我们在这里不详细描述这些步骤。

策略匹配引擎和HSG构建。策略匹配引擎将TTP规则规范作为输入,并对起源图进行操作。表8显示了当前Holmes实现中使用的一组代表性的TTP规则规范。为了匹配TTP,在构建起源图时,策略匹配引擎会迭代规则表中的每个规则及其先决条件。这项任务的一个特别具有挑战性的部分是,对于每个TTP,检查关于先前匹配的TTP的前提条件和路径因子。事实上,先前匹配的TTP可能位于图的较远区域,并且路径因子值可能取决于必须遍历的长路径。我们注意到,在以前关于攻击取证的工作[22]、[28]、[34]、[39]中,一种常见的做法是从TTP匹配点进行反向跟踪,以达到初始的折衷点。不幸的是,在实时设置中,这是一个计算量很大的策略,因为起源图可能包含数百万个事件。

为了在不回溯的情况下解决这一挑战,我们使用了增量匹配方法,该方法存储先前计算和匹配的结果,并沿着图形传播指向这些结果的指针。当匹配可能在其他TTP中显示为先决条件的特定TTP时,我们在HSG中创建相应的节点并指向该节点的指针。该指针接下来被传播到依赖于该匹配TTP的实体的所有低级实体。

path_factor的计算方法与此类似。具体地,给定被表示为HSG中的节点的匹配TTP,为具有对匹配TTP的实体的依赖性的起源图的节点递增地计算path_factor。假设N1作为生成与TTP匹配的事件的进程,path_factor(n1,n1)最初被赋值为1。随后,当一条边path_factor(N1,N2)被添加到起源图中,如果N2是一个非进程节点,或者至少有一个与N1有共同祖先的进程,则(N1,N2)将为1。否则,path_factor值增加1。在从N2到N3发生信息流的情况下,当N2和n3都已经具有来自N1的依赖流时,构建n3的新版本,并且path_factor(N1,N3新)被设置为由两个流计算的path_factor中的最小值。请注意,在基于这个版本控制系统构建的非循环起源图中,path_factor(N1,N2)一旦设置就不会改变。最后,当遇到对应于TTP事件的事件时,我们可以重用指向先决条件TTPs的指针和预先计算的path_factor(如果它们可用的话)。

对于两层(起源图和HSG)这种基于指针的关联,一个预期的瓶颈是随着起源图随着时间的推移而增加的空间开销和复杂性。我们的操作观察是,通常情况下,大量实体指向同一组TTP;这种现象不是随机的,实际上是进程树中指针从父进程传播到其所有后代的结果。事实上,随着分析的进行,很少会添加新的指针。通常,关键的实现洞察力是维护一个将起源图的实体映射到HSG的TTP的中间对象。因此,起源图中的每个实体只有一个指向中间映射器的指针,而映射器对象包含指针集。

噪声过滤和检测引擎。噪声过滤引擎识别良性TTP匹配,从而可以将它们从HSG中排除。它将良性运行中学习到的正常行为模型作为输入。该模型包含良性运行中匹配的TTP的映射,以及在这些运行中从系统对象读取或写入系统对象的字节数阈值。当策略匹配引擎匹配新的TTP时,将在此模型中搜索该TTP的实体和先决条件。如果模型中存在包含所有先决条件和匹配事件(具有相同实体名称)的条目,则将对照良性阈值检查传输的字节总数。如果传输的字节总数低于良性阈值,则过滤出与匹配的TTP对应的节点;否则,将与其对应的节点添加到HSG。最后,检测引擎计算不同HSG的加权和,并在该值超过检测阈值时发出警报。

VI. EXPERIMENTAL EVALUATION实验评估

我们的实验评估是在一个政府机构(具体地说,美国国防部高级研究计划局)组织的红队对蓝队对抗交战中进行的。我们首先根据预先获得的数据集对福尔摩斯进行评估(第VI-A、VI-B、VI-C、VI-D部分)。使用此评估,我们计算VI-E节中HOLME的最佳阈值,并测量其在VI-F部分中的性能。最后,在第六-G部分,我们探讨了在我们事先不知道红队何时或如何实施袭击的情况下,福尔摩斯作为现实世界实时探测系统的适用性。经过我们的现场实验,这个数据集已经在公共领域发布[26],以刺激这一领域的进一步研究。

A.数据集

Attacks.表10总结了我们用于评估的数据集。该表显示了来自7台主机、跨越3个操作系统平台的9个APT场景。每个平台有三个场景。总的来说,这些流涵盖了分别使用auditd、DTrace和ETW从Ubuntu、FreeBSD和Microsoft Windows收集的20天的审计日志。每个流都包含例行系统活动和攻击活动的内核审核日志。攻击不到审计数据量的0.001%。流5和流7各自包含两个独立的APT攻击,而其余流分别包含一个APT攻击。

简而言之,红队攻击场景中的敌对目标和活动涵盖了引人注目的APT战役。这些包括典型的APT活动,如浏览器诱发的驱动式初始入侵、后门注入、特权升级、内部侦察、敏感资产的泄露和攻击足迹的清除。在这些攻击中,一个红队使用了复杂的攻击向量,如反射加载、web-shell能力和内存模块加载来评估HOLMES对APT攻击的鲁棒性。

Benign data.为了构建降噪模型,我们使用了从目标主机流出的4天良性审计数据。这些程序包括浏览器(例如Firefox)、web服务器(例如Nginx)和各种守护程序(例如postfix、syslogd)。

B. Setup

在交战之前,每台机器都安装了一些易受攻击的软件,这些软件后来会被利用。为了进一步混合普通日志和攻击日志,red team还在攻击的同时在目标主机上执行良性活动。日常的系统活动包括,但不限于,浏览网页,检查电子邮件,软件升级,使用PowerShell(在Windows)管理任务,运行需要管理权限的程序,等等。HOLMES订阅了7个Kafka主题(每个主机一个主题)来使用审计流并实时执行分析和检测。关于审计跟踪持续时间的百分比增长,已发布的记录数量(以百万计)如图9(左)所示。注意,HOLMES消耗的速度和Kafka服务器的发布速度一样快。图9(右)显示了发布到每个Kafka主题的记录的增量增长。

我们为HOLMES配置了表8中提到的TTPs,并为TTPs的先决条件设置了path_thres = 3,为APT阶段I设置了权重= (10 +i)/10,这考虑到了APT阶段后期的权重略高。

C. Results in a Nutshell

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

分配给良性HSG的最高分是338(场景-3),分配给攻击HSG的最低分是608(场景-5.2),这与对系统没有伤害的不完全攻击有关。这表明HOLMES已经将攻击和良性场景分成了两个不相交的簇,并对它们进行了明确的区分。

学习降噪规则和路径因子的影响如图12所示。此图显示了在分析所有7个流之后构建的所有良性和攻击hsg的威胁评分。这些分数显示在三种不同的设置下:默认是同时启用学习和路径因子计算,不启用学习,不启用路径因子。从图中可以明显看出,在学习因子和路径因子的作用下,侵袭性hsg与良性hsg之间有较大的差距。在没有学习或路径因素的情况下,我们会注意到噪音的增加,从而导致误报或误报。The 10th percentile, first quartile, and median of
default box are all colliding on the bottom line of this box (score= 2.1).默认框的第10百分位、第一个四分位数、中位数都在这个框的底线上碰撞(分值= 2.1)。这意味着超过50%的威胁分值为2.1,这是因为许多HSG只有一个严重程度较低的Untrusted ReadTTP

方框覆盖从第一至第三个四分位数,而中间的条形表示中位数,触须从第10至第90百分位延伸。

D. Attack Scenarios

我们现在描述一个由HOLMES检测到的附加攻击场景。由于篇幅的原因,我们在附录中包括了其余场景的细节和相关数字。我们注意到场景-7.2在第二节中讨论,它的起源图和HSG的一部分分别在图2和图5中显示。

Scenario-1: Drive-by Download.在这种攻击场景中(见图13),用户使用易受攻击的Firefox浏览器访问恶意网站。结果,一个名为net的文件被丢弃并在受害者的主机上执行。该文件在执行后连接到C&C服务器,并向攻击者提供反向外壳。然后,攻击者启动一个shell提示符并执行诸如hostname、whoami、ifconfig、netstat和uname等命令。最后,恶意可执行文件将信息过滤到C&C服务器的IP地址,然后攻击者删除掉的恶意文件。

从图13可以看出,在Initial Compromise APT阶段,执行不可信文件,其将TTP与临界严重性级别相匹配。此图的最终威胁元组看起来像所有APT阶段的<C,M,−,H,−,H,M>(参见表11)。因此,转换后的量化值为<10,6,1,8,1,8,6>,这将导致威胁分值等于1163881。

E. Finding the Optimal Threshold Value寻找最佳阈值

为了确定最佳阈值,我们通过改变阈值来测量查准率和召回率,如图14所示。F-Score是查准率和查全率的调和平均值,在区间[338.25,608.26]处最大,这是从良性子图的最高分数到攻击子图的最小分数的范围。因此,通过选择该范围内的任何阈值,Holmes在测试数据集中明确区分攻击和良性子图,准确率和召回率均等于1。

为了找到最佳值,我们首先通过获取威胁分值的n次方根,n等于将威胁分值转换为线性标度。转换后的值显示每个APT步骤对总体威胁分值的平均贡献,它是[1,10]范围内的值。由于到目前为止我们测试的所有数据集都属于单个主机,因此我们排除了横向移动步骤(W5)的权重,这导致n=8.3。在得到n次方之后,最大F分数的区间将变为[2.01,2.16]。最后,我们将此范围的中间部分(2.09)视为在良性设置下,每个APT步骤被允许对总体威胁分值做出贡献的平均严重程度。

F . Performance

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

Memory Use.HOLMES的测试是在8核CPU上进行的,每个CPU的速度为2.5GHz, RAM为150GB。图16(左)显示了HOLMES的内存消耗和审计记录的数量。它显示了内存消耗的线性增长,因为我们的系统操作内存中的审计记录。图16(右)显示了对于一个拥有数百台主机的企业,HOLMES可以支持多少台主机(关于内存消耗)的推断。很明显,随着主机数量的增加,在内存中保持完整起源图的时间会减少。注意,x轴和y轴都是log-2。

Runtime.当来自Kafka服务器的审计记录实时可用时,HOLMES会消耗并分析这些记录,为了对其性能进行压力测试,我们假设所有的审计记录都是一次性可用的。然后,我们测量了CPU消耗记录、构建起源图、构建HSG和检测apt的时间。我们将“CPU利用率”定义为所需CPU时间与场景总持续时间的比率。在图17中,条形图显示了每个场景的CPU利用率,而直线图显示了如果CPU是限制因素,那么HOLMES可以支持多少台主机(与这些场景的审计跟踪时间相当)。这个图表显示我们的单个CPU可以支持拥有数百台主机的企业。

G. Live Experiment

为了探索HOLMES如何响应嵌入在主要良性事件流中的攻击,我们将其作为实时检测系统进行了评估。本次实验历时2周,在此期间,HOLMES对Windows、Linux或BSD运行的多个系统的审计日志进行实时收集和分析。本实验模拟了一个企业,使用web服务器、E-mail服务器、SSH服务器、SMB服务器等提供文件共享访问的安全关键服务。与之前的数据集类似,这次实验中进行了大量的正常活动,red team进行了一系列的攻击。然而,这一次,我们事先配置了所有参数,并且事先不知道redteam计划的攻击。此外,我们有跨主机的内部连接,这使得APT阶段5(横向移动)对攻击者来说是一个可能的动作。为此,我们将检测阈值设置为图18显示了Holmes在本实验期间构建的攻击和良性HSG的累积分布函数。请注意,有一些代表良性HSG威胁值的分数已经绕过了阈值。我们在下面将它们解释为假阳性,然后讨论一些潜在的假阴性情况。

False Positives. 我们注意到由于系统管理员建立了SSH连接,所以出现了一些错误警报。这些连接来自不受信任的IP地址,随后,Holmes会汇总系统管理员通过SSH连接发出的所有操作的严重程度分数。在某些情况下,威胁分值会绕过我们的阈值。解决方案是为执行身份验证的服务器(如ssh)定义自定义标记策略,以便此类服务器的子项不会被标记为不受信任[22]。

为了进一步评估我们的系统是否存在错误警报,我们还在另外两周的良性活动期对其进行了评估。在此期间,进行了一系列不同的正常活动(包括通过包管理器进行软件更新和升级),福尔摩斯没有产生错误警报。

根据我们的结果,我们认为,考虑到福尔摩斯给企业带来的好处,福尔摩斯的假阳性率是可以接受的。安全分析员可以手动检查提升的警报,并消除错误构建的HSG。

False Negatives.虽然我们在实验中没有观察到任何假阴性,但在这里我们讨论福尔摩斯可能遗漏的潜在场景。

TTP之间的隐式因果关系:对于避免系统调用的信息流,Holmes对系统实体之间的因果关系没有直接可见性。然而,如果攻击的其余部分通过系统调用在可见性下展开,福尔摩斯仍将部分重建攻击。

多个入口点:作为一种主动规避技术,攻击者可能会利用多个入口点,从而导致分离的子图。Holmes跟踪每个单独的入口点,直到满足我们的检测阈值,并且当它们之间存在信息流时,从不相交的子图中关联TTP。然而,可能需要一些额外的分析来完全关联攻击步骤,这些攻击步骤来自不同的入口点,并且之间没有信息流。

VII. RELATED WORK

论文细读:HOLMES:Real-time APT Detection through Correlation of Suspicious Information Flows相关推荐

  1. [论文阅读] (09)SP2019 HOLMES Real-time APT Detection through Correlation of Suspicious Information Flow

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  2. 深度学习论文: Task-Specific Context Decoupling for Object Detection及其PyTorch实现

    深度学习论文: Task-Specific Context Decoupling for Object Detection及其PyTorch实现 Task-Specific Context Decou ...

  3. [论文笔记] Line-CNN: End-to-End Traffic Line Detection With Line Proposal Unit

    [论文笔记] Line-CNN: End-to-End Traffic Line Detection With Line Proposal Unit IEEE TITS 2019 YangJian 简 ...

  4. 论文解读:Improved Neural Relation Detection for Knowledge Base Question Answering

    论文解读:Improved Neural Relation Detection for Knowledge Base Question Answering   本文解决KBQA中的子问题--Relat ...

  5. 《Rumor Detection By Exploiting User Credibility Information,Attention and Multi-task Learnning 》解读

    由于本人的文采并不是很好,所以之前一直对写博客有点抵触感.为了表达能力,这次真的拼了.... 我是做nlp方向的,目前是研一.最近刚确定了谣言检测这个方向,接下来解读的是我看关于谣言检测的第一篇文章, ...

  6. 论文《DeepHawkes: Bridging the Gap between Prediction and Understanding of Information Cascades》阅读

    论文<DeepHawkes: Bridging the Gap between Prediction and Understanding of Information Cascades>阅 ...

  7. 论文研读:Automatic Temporal Segment Detection and Affect Recognition From Face and Body Display

    摘要:情感的呈现包含一系列的时域分割:开启(onset).峰值(apex).结束(offset).在过去15年中(论文发表于2009年),计算机界对情感识别进行了大量的研究,但是大多数方法都有两点局限 ...

  8. 论文浅尝 | Improved Neural Relation Detection for KBQA

    Yu M, Yin W, Hasan K S, etal. Improved Neural Relation Detection for Knowledge Base QuestionAnswerin ...

  9. 图像显著性论文(四)—Context-Aware Saliency Detection

    一直想默默的学习,不去理会太多东西,但是外界的影响还是蛮大的,各种找工作,实习,自己还待在实验室研究自己喜欢的东西,心情有点浮躁,又想赶快学好后可以亮一下剑,又感觉理论的东西不能太多急躁,要学扎实,还 ...

最新文章

  1. 你想要的生物信息知识全在这——生信宝典文章目录
  2. 【网络传输与RTC】
  3. C# 离线使用nuget
  4. Java 面向对象的设计原则
  5. 新浪微博***事件分析
  6. 计算机网络技术-----==一些东西
  7. JS将/Date(1446704778000)/转换成string
  8. 页面间传值的新思路--PreviousPage
  9. Zabbix对接AD域
  10. PAT 1059 Prime Factors[难]
  11. python.pandas数据清洗(数据填充与条件删除)
  12. 小学数学计算题随机出题软件
  13. 千年新论:马谡的错误在于盲目创新,正确做法是死板教条
  14. 中国SaaS市场将快速增长,或形成“小而美”林立格局
  15. 探索硅谷奇迹的本质--周末荐书之《硅谷之谜》
  16. CentOS7下 SVN版本控制的安装(包括yum与非yum)的步骤记录。
  17. word 编辑过程中变为只读_Word字体无法更改设置不起作用的几种情况
  18. 声纹识别概述(1)初识
  19. C语言统计数字出现次数
  20. 【物联网】微信小程序接入阿里云物联网平台

热门文章

  1. 鸿蒙秘境怎么玩,鸿蒙秘境
  2. 全排列问题(AcWing 823. 排列)
  3. 2020下半年新机最新消息_2020下半年3款重磅新机:三星Note20被吹爆,华为Mate40差点意思...
  4. 大数据挖掘机器学习人工智能的维恩图战争
  5. cba篮球暂停次数和时间_篮球比赛一节有几次暂停?
  6. js日历核心计算方法
  7. 关于计算机运行管理模式,浅谈学校计算机机房管理及维护运行模式.docx
  8. 牛客练习赛41 b 666RPG (01背包)
  9. 爬虫之京东5g手机爬虫+谷歌浏览器打开窗口使用
  10. R 运行中文文件使乱码的解决方案(案例示例)