长亭百川云 - 文章详情

TTP威胁情报驱动威胁狩猎

天御攻防实验室

55

2024-07-13

今天跟大家分享一下专业网络安全厂商如何利用TTP情报狩猎APT。建议大家仔细阅读,否则无法理解其中的精髓!

术语定义:

1.TTP(战术、技术和程序或过程,Tactics, Techniques, and Procedures),是指攻击者的战术、技术和程序,描述了攻击者"如何"实现其目标。说白了就是攻击者的行为习惯。

2.IoC(入侵指标或失陷指标,Indicators of Compromise),是指在系统或网络中观察到的,可能指示潜在入侵事件的可操作的证据。

3.威胁情报(Threat Intelligence)是关于威胁行为体的基于证据的知识。比如,威胁行为体的行为模式。

作为一家网络安全厂商,我们通常在事件发生后或在网络中发现恶意活动的一些证据后被呼叫。因此,我们得到了一些线索。我们得到了一些我称之为事件响应IoC的东西。

我们得到了一个恶意软件名称、一个恶意软件哈希值。我们可能得到了威胁行为体的暂存目录,威胁行为体在泄露之前存储工具或收集的数据的地方。

因此,我们得到了那个事件响应已知的IoC,我们将使用它来扫描整个环境。这将使我们能够识别具有该证据碎片的每个系统。

它不一定是恶意软件,它甚至可以只是一个目录或文件名,无所谓。我们将能够识别具有特定证据碎片的每个端点。

然后我们将深入研究这些。因此,我们首先要做的是时间线分析。我们得到了一个恶意软件,它在这个时间被写入。

我们将使用这个作为关键点,看看之前发生了什么,之后发生了什么。通常,我们能够了解攻击者如何横向移动,如何外联,在那个阶段在端点上执行了什么样的操作。

它是否部署了新的恶意软件?它是否设法提升了权限?它是否横向移动到其他端点?

这将帮助我们找到额外的证据碎片、额外的恶意活动证据,我们将再次用它来扫描环境。

在移动到那个迭代过程之前,当我们识别出一个被入侵的系统时,我们还会应用TTP的IoC。

因此,我们对我们在多个事件中看到的战术和技术进行了编码,以发现额外的未知内容。

因此,现在,当我们进行时间线分析时,我们主要利用时间接近度。然而,如果我们需要找到一个事件(可能在之后发生,比如,如果威胁行为体删除了日志,我们无法看到),我们将部署TTP的IoC来寻找与那个特定时间无关的证据。 

因此,一旦我们完成了对端点的分析,我们可能会有更多的IoC,我们将再次扫描环境。这导致我们在扫描、深入分析、扫描、深入分析之间进行迭代。

我们可以这样做几天、几周,取决于事件的规模。但其目的确实是充分了解活动的全部范围,并回答调查的关键问题。

事件响应的真正目的不是要在一个端点上找到每一个小元素。目的是真正了解整个环境中发生了什么,威胁行为体是如何进入环境的,问题的根源是什么,事件的范围是什么,有多少端点被入侵,使用了什么类型的恶意软件,使用了什么类型被入侵的账户,等等。

真正的整体目的是确定范围、根本原因、最早的入侵时间,攻击是否仍在进行,了解威胁行为体是否设法窃取了一些数据或获得了关键数据的访问权限。

但也包括与威胁行为体识别和归因相关的所有内容。如果我们知道我们正在处理哪个威胁行为体,我们就真正有能力应用特定的IoC和我们从这个特定威胁行为体那里看到的特定TTP。

这确实加速了整个调查过程。有一天,我在处理一个案例,我们发现了一个与APT39相关的恶意软件。我的APT分析师为我提供了我们获得的所有APT39的IoC。

很明显,其中一些会产生大量误报。但由于该环境已被APT39入侵,它确实使我们能够快速发现额外的证据碎片,并加快整个调查进程。

因此,威胁行为体归因对于了解动机以及威胁行为体使用的TTP真的很关键。所有这些信息将真正帮助我们进入根除阶段,然后改进网络。

但我们究竟如何找到APT呢?正如我所说,我们将使用情报,即关于威胁行为体TTP的知识。我认为情报的三个关键部分是:

1.  准确性,否则它会误导调查。

2.  及时性。显然,如果我们不了解一种新技术,例如,要找到它会更加困难。因此,我们需要获得及时的情报,例如从红队那里获得输入,这通常非常有价值。 

3.  可操作性。我认为最困难的部分是,有很多人、很多组织倾向于进行威胁狩猎或利用那些IoC、情报,但他们没有将TTP以一种可扩展、可操作的方式进行编码,以便在调查中或主动地使用。

我是说,你可能都知道痛苦金字塔(Pyramid of Pain)。从威胁行为体的角度来看,改变哈希值、域名、IP地址非常容易。这就是我们真正倾向于关注TTP、IoC的地方,以找到未知的新的恶意活动碎片。

我总是喜欢重申一点,IoC是入侵的主机或网络层面的证据。有时组织会忘记,如果威胁行为体使用PSExec来进行恶意活动以部署恶意软件,那个证据碎片必须用于调查。

如果PSExec被管理员在整个环境中使用,可能会更难理解什么是合法的,什么不是。

但随着帐户被入侵等等,在活动时间线中,可能会更容易。因此,IoC不仅仅是恶意元素或恶意工具,它也可能是威胁行为体使用的合法工具。

那么,威胁狩猎究竟是什么呢?它实际上是使用情报主动识别之前的入侵或正在进行的入侵的过程。我们需要狩猎那些已经绕过我们控制的威胁行为体。

在那个阶段,我们期望我们的控制措施运作良好。但无论如何,威胁行为体和所有红队成员都会一直绕过EDR。那么,我们可以利用什么样的缺陷,在哪里可以设法识别威胁行为体?

我们需要有一个灵活、可扩展和可重复的过程,以确保我们可以每三个月重复一次威胁狩猎,例如,针对特定的TTP。

我会说有两种情况。我将讨论这两种情况,但我主要关注第一种,即在事件响应期间进行某种威胁狩猎,寻找额外的证据碎片。

因此,在事件响应期间,我们有什么类型的IoC?我们可以利用什么类型的IoC?

我认为第一个是我提到的已知坏的IoC。基本上,这是我们调查的起点。非常简单。

第二个我们仍然可以使用,但我们主要会发现普通的恶意软件,即使我们可能会发现一些与正在进行的攻击有关的工具或证据碎片,也是已知的原子IoC。

我今天真正想讨论的是,TTP的IoC都是已经编码的IoC。因此,它可能是威胁行为体滥用的已知的暂存目录。

威胁行为体往往非常懒惰。他们经常用一个非常短的名称来命名他们的工具。因此,如果你在最常见的Windows二进制文件中寻找短的二进制文件,如回收站、公共文件夹等,对于两个或三个名称的可执行文件,我告诉你,它将非常容易分类。

显然,组织中的任何人都可以将文件命名为pp.exe。因此,很容易进行分类。如果你只扫描两个或三个字符,在你的环境中没有那么多工具。如果你开始进行白名单,你可能会错过一些东西,但你可能会加快你的流程。

因此,我们将讨论如何编码这些TTP。

最后一点是,通过进行堆叠来发现未知内容。通过进行堆叠,我们将收集整个环境中的特定工件。

例如,我们将收集整个环境中的所有服务来发现异常值。我的意思是,在你的Windows服务器中,大多数服务应该是大致相同的,特别是如果你设法建立基线的话。发现异常值非常容易。

因此,通过进行堆叠,我们经常发现恶意活动的碎片、新类型的恶意软件、威胁行为体使用的新技术。

那么,我们如何找到恶意软件的一个简单例子呢?我的意思是,非常非常基本。我们有一个事件响应工作。

我们得到了恶意软件1和一些TTP,威胁行为体入侵了凭据等。扫描整个环境,识别具有该已知恶意软件的所有系统非常容易。

但我们如何找到恶意软件2呢?恶意软件2在某种程度上与调查有关,我们可以通过调查该系统轻松发现它,我们将看到横向移动到该特定系统的证据。

然后我们将转移到那个系统,通常那个系统的活动时间线会突出显示恶意软件3。但是,恶意软件3可能与此无关,有两种技术。

第一种是真正扫描环境并寻找异常值。或者真正扫描我们的TTP。

例如,查找所有短期二进制文件或在整个环境中查找所有奇怪的服务,对不起,任务名称。这可能使我们能够找到与事件无关的额外证据碎片。

因此,如果我们转向理论,事实上,如果我们转向实践,一个简单的例子就是有害的恶意服务。我的意思是,我们都知道什么是恶意服务,它只是在后台运行等等,但是攻击喜欢恶意的,喜欢使用服务来保持持久性,并提升权限。

我们看到的是,根据去年Mandiant的调查,这是五个最常见的子技术。因此,在我们所有的调查中,这是五个最常见的技术。我们看到服务执行基本上出现在所有调查的26%中。

因此,如果你开始寻找恶意服务,你可能会发现一些坏东西。那么,我们如何真正编码和构建这些TTP的IoC来查找恶意服务呢?

如果我们只关注一种特定类型的恶意软件,我们都知道信标仍然非常喜欢,事实上我仍然不知道为什么,但信标在Cobalt Strike中仍然被广泛使用。

我们在去年所有调查的10%中看到了它。

有一个Cobalt Strike中信标使用的减少,最可能是因为大多数EDR非常擅长检测Cobalt Strike和所有信标活动。

现在,大多数大型EDR非常擅长检测这一点。尽管我们看到信标的使用减少,但它仍在我们去年调查的大约10%的所有调查中使用。

因此,我们仍然可以构建用例。我们仍然看到APT组织使用它。不要问我为什么。经济驱动的威胁行为体也在使用它。

那么,我们如何在环境中识别Cobalt Strike信标呢?

因此,我们知道,如果你想横向移动并部署另一个信标并使用你的跳转PS exec信标命令,默认情况下,这将在远程端点上创建一个包含七个字符的服务名称的工件。

显然,你可以更改它,但默认情况下是这样。我们仍然看到威胁行为体,在这种情况下,我不会说可能是高级威胁行为体,但我们仍然看到威胁行为体使用Cobalt Strike的默认配置。

因此,我们可以做的是,我们知道在目标端点上创建了一个服务。在这种情况下,如果我们查看Windows系统事件日志7045,我们可以查找具有七个字符名称和特定路径的系统名称。

因此,我们可以对其进行编码,然后在我们所有的调查中使用它,或者只在一个任务中使用它。让我们继续。

作为蓝队成员,我们需要尝试理解并始终考虑的是,红队成员总是在进化。例如,如果你只看Cobalt Strike的新版本,例如,自从Cobalt Strike 4.1以来。

服务名称已经改变。不是那个本地IP地址,而是我们得到了一个系统目标IP地址。因此,如果我们只依赖以前的TTP的IoC,我们将找不到太多活动。

这就是为什么我们总是倾向于尝试理解威胁行为体如何发展,红队成员如何发展,以某种方式慢慢调整和修改TTP的IoC以找到APT木马。否则,我们会错过它。

然而,我的意思是,这只是一个非常简单的例子,说明我们如何编码CS,这基本上可以扩展到所有TTP。

通过查看整个环境并使用堆叠技术,我们可以真正快速地识别一些快速获胜,真正更好地了解环境,如果我们被即时响应攻击,这也会加快调查速度。

因此,如果你想做堆叠来真正识别异常值,我们将收集,例如,在这种情况下,整个环境中的所有服务。我们在入侵评估期间就是这样做的。

在一次入侵评估中,根据组织的行业垂直领域和位置,我们怀疑APT41在网络中。然而,在那个阶段,我们没有发现任何入侵的证据。

通过分析所有服务并在服务中寻找异常值,我们实际上设法找到了APT41。我将向你展示如何做到这一点。

因此,我们收集了所有服务。我们将它们堆叠起来。显然,我们开始寻找异常值。我们开始寻找系统中基本上出现1、2、3或4次的服务的异常值。

如果我们找不到更多,我们可以寻找更多。然后,它就像基本的分析和分类一样简单。因此,我不得不编辑那个服务名称。

但看看那个服务名称,开始做一些基本的分类活动。任何事件响应人员首先要做的就是在Google上搜索它。

在这种情况下,该系统看起来非常合法。大约有30,000多个结果。有关于与该服务相关的DLL的信息。它似乎是Windows 10的默认服务。

在那个阶段,我们可以继续前进。我的意思是,这也是困难所在。在某个时候,我们是否继续深入研究,或者我们继续深入研究那个特定的工件?

在这种情况下,我的一位同事继续深入研究,发现与该服务相关的DLL与他在Google上看到的不同。

然后,这只是一个快速搜索。这就是为什么我对所有学生说,当我教书时,Google是你最好的朋友。如果你得到了大量的结果,你认为它是合法的,那是一个很好的方法来说它是合法的。

当你开始搜索某些东西,一个DLL链接到一个假定已知的服务,却没有结果,那就是一个大禁忌。因此,那个DLL被严重混淆,最终成为APT41使用的后门。

然而,正如我所说,威胁行为体在不断发展。如果我们以服务和恶意服务为例,大多数组织依赖两种类型的证据和事件日志。

他们将依赖Windows系统事件日志7045或安全事件日志4697来查找正在创建的新服务。去年,我与我的一位红队成员进行了一次紫色团队演练。

我们测试了大量的技术来创建新服务并进行横向移动。然后,他开始使用一种叫做SC Shell的新技术。当时我不知道这项技术。

我不知道。他只是告诉我,是的,我刚刚设法通过那个服务运行我的恶意软件。我找不到任何这种活动的证据。就像,我没有可见性。

然后我开始研究了一下,我意识到SC Shell并没有创建新的服务。它只是在服务中修改二进制文件路径。

我们只是远程打开服务,更改二进制文件路径,运行可执行文件,然后恢复原始文件路径。因此,如果我们深入研究任何新创建的服务,我们将一无所获。

这就是我认为我们需要不断改进的地方。在这种情况下,我只是找到了两个与该活动相关的证据碎片。它们实际上没有记录在我的客户环境中。

我的意思是,Windows注册表被修改这将创建大量的日志,从成本角度来看,收集这些日志将非常具有挑战性。

因此,我们只需要了解,我们能检测到吗?也许我们不能。如果我们不能,至少我们知道我们在哪里有可见性差距。

如果我们发现有一天恶意软件通过我们的服务运行,但由于这个日志差距,我们不明白原因,至少我们知道有一种方法可以绕过它。

那么,我们如何利用这个TTP IoC呢?看到APT组织有点懒惰,我感到很惊讶。

因此,即使他们在边缘设备上发现新的漏洞,例如,新的漏洞,就像我们看到的A国威胁行为体入侵了如此多的防火墙等等。

当他们入侵网络时,当他们移动到网络中时,老实说,他们往往有点懒惰。在我之前提到的那个组织的入侵评估期间,我们怀疑APT41在网络中。

但一开始我们找不到多少。我们设法找到他们的一种方法是简单地寻找小型二进制文件和文件名。

有趣的是,第一个编辑过的文件路径基本上是用于管理目的的所有工具的目录。我们在这个项目中看到的是,在环境中查找,在那里放置其恶意软件。

实际上,那不是恶意软件。那是一个用于转储凭据的合法工具。他只是用不同的名称重命名它。我们就是这样发现它的。

他修改了哈希值。这就是为什么哈希值是未知的。然后,他只是使用一个普通的Windows目录,非常常见,来存放他的侦察活动的所有输出。

而且,仅仅因为他们使用短二进制文件和短文件名,找到它就变得非常容易。这是另一个例子。

那是APT39的例子,它是在那次勒索软件事件期间在客户环境中被识别的。因此,在那次勒索软件事件期间,我们只是深入研究,我们很幸运,因为受勒索软件影响的一个系统有APT39活动的证据。

通过应用TTP的IoC,通过在某些特定目录中查找可执行文件,通过在该系统上查找特定的服务或特定的任务,这使我们找到了Windows安全文件夹中一些不寻常的可执行文件。

例如,我一开始并不真正理解为什么是ps.exe,但我无法真正理解为什么它被重命名了。显然,这是APT39的一个特点。事后我们知道了。

我们确定的一个被重命名的恶意软件,短文件名,基本上是ssh2neller,我们发现了一些日志的证据,2017年的活动证据,也就是在调查之前的五年。

除此之外,我认为当我们发现一个证据时,我们就会再次深入研究,采用那个迭代过程。我认为今天的关键要点是,拥有一个假设违规的心态很重要。

尽管威胁行为体不断创新,但目前已知的战术和技术有很多。其中大多数都可以使用编码,大多数都可以创建威胁狩猎任务。我们可以在他们入侵你的组织之前找到它们。

因此,我们真正知道他们是如何操作的。有时,我与试图在系统或环境中寻找特定技术并为该特定TTP创建任务的组织合作,而这种技术从未被看到过。

这就是为什么我总是建议查看正在使用的主要TTP,开始对它们进行狩猎。当你有了良好的基础,你就可以寻找更多棘手的TTP。

再次强调,让我们尝试瞄准那些TTP的IoC,而不仅仅关注原子IoC。使之成为一个可重复、可扩展和可衡量的过程。我们需要从某个地方开始。

因此,显然很难在整个ATT&CK框架中进行任务。但首先要寻找快速获胜,为此创建狩猎任务。你可以重复它们。

这就是为什么知道你可以在环境中检测到哪些技术很好,你也缺少日志。组织应该比任何人都更了解环境。他们应该比威胁行为体更了解环境。

他们应该知道他们在哪里存在可见性差距。因此,在设计威胁狩猎流程和能力之后,只需确保他们拥有正确的日志。通过利用情报,这就是为什么他们真的需要了解环境。

你可以确定对于所有的TTP,什么类型的日志被创建,如果你有可见性差距,如果你有检测逻辑差距,或者如果一切都被记录下来,它被检测到,但它被错误地分类。

我与一些组织合作,他们创建了很好的日志。首席信息安全官总是想不断提高其日志能力,这很好。我们为他们做了一次紫色团队演练。

他们检测到几乎90%的所有TTP,我们测试了90多种技术。他们记录了几乎所有的TTP。其中大部分都被检测到了。

但蓝队成员从未在其环境中看到过APT,从未看到过恶意活动。而且几乎无法识别任何东西,或者很少能识别。

有了这些,这也是你如何基本上理解,好的,我的差距在哪里?在这种情况下,如果你意识到你只需要培训人员,因为你有很好的可见性,你可以在紫色团队期间培训人员,然后你可以使用那个紫色团队,那个红队活动来开始测试你的狩猎规则。

附录A:

堆栈计数/堆叠(Stack Counting/Stacking)是一种常用的威胁狩猎技术,其基本思路是:对特定类型的数据进行计数统计,然后分析统计结果中的异常值或极值,从而发现可能的威胁。

具体操作通常包括以下步骤:

1. 确定目标数据类型:首先需要确定要分析的数据类型,如进程名、文件名、网络连接等。这个选择通常基于对环境的了解和潜在威胁的假设。

2. 收集和筛选数据:从各种数据源(如端点日志、网络日志等)收集目标类型的数据,并进行必要的筛选,以降低数据量和提高数据质量。筛选可以基于时间范围、主机类型等条件。

3. 统计各值的出现频次:对筛选后的数据进行处理,统计每个唯一值(如每个进程名)出现的次数。这一步通常使用脚本或工具自动完成。

4. 分析统计结果:将统计结果按频次排序,识别出现频次异常高或异常低的值。这些异常值很可能对应一些异常或恶意的行为。

5. 调查异常情况:针对检测出的异常值进行进一步调查,如分析相关主机的其他数据、查阅威胁情报等,以确认是否存在威胁,并了解可能的原因。

举个例子,狩猎者怀疑某恶意软件在特定时间段内感染了部分主机。他可以从这些主机的进程创建日志中,提取该时间段内的进程名,统计每个进程名出现的次数。如果某个非常规的进程名(如随机字符串)在多个主机上出现频次很高,那很可能就是那个恶意软件进程。

需要注意的是,堆叠分析的有效性在很大程度上取决于数据的质量和分析者的经验。数据量太大或太杂则会给分析带来困难;而对环境和威胁缺乏了解,则可能难以有效设置筛选条件和解释结果。因此,堆叠分析通常需要与其他技术(如聚类、分组等)配合使用,并需要丰富的领域知识作为支撑。

推荐阅读

闲谈

  1. 中国网络安全行业出了什么问题?

  2. 国内威胁情报行业的五大“悲哀”

  3. 安全产品的终局

**
威胁情报**

1.威胁情报 - 最危险的网络安全工作
2.威胁情报专栏 | 威胁情报这十年(前传)
3.网络威胁情报的未来
4.情报内生?| 利用威胁情报平台落地网空杀伤链的七种方法
5.威胁情报专栏 | 特别策划 - 网空杀伤链
**
APT**

  1. XZ计划中的后门手法 - “NOBUS”

  2. 十个常见的归因偏见(上)

  3. 抓APT的一点故事

  4. 揭秘三角行动(Operation Triangulation)一

  5. 闲话APT报告生产与消费

  6. 一名TAO黑客的网络安全之旅

  7. NSA TAO负责人警告私营部门不要搞“黑回去”

**
入侵分析与红队攻防**

  1. 入侵分析与痛苦金字塔

  2. 资深红队专家谈EDR的工作原理与规避

**
天御智库**

  1. 独家研判:五眼情报机构黑客纷纷浮出水面

  2. 美军前出狩猎并不孤单,美国网络外交局优先事项分析

  3. 《国际关系中的网络冲突》

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2