威胁狩猎涉及在组织的数字基础设施中寻找现有安全工具无法检测到的威胁和对手。它通过假设对手正在危害环境或已经危害环境来主动寻找环境中的威胁。
威胁追踪者在进行追踪时可以有不同的目标和心态。例如,他们可以在高级威胁行为者可以利用的环境中寻找长期威胁。或者他们可以寻找当前的趋势和被环境对手利用的威胁。
威胁追踪 101
我们如何寻找环境中的威胁?让我们通过示例逐步了解一些步骤。
第1步:研究威胁行为者及其策略。我们应该始终通过研究威胁行为者正在使用的或过去的策略和技术以及它们如何影响我们的组织来开始我们的狩猎。我们应该审查威胁情报、安全警报和安全事件的指标、威胁行为者所利用的技术等。
第2步:提出假设。这个假设可以基于我们正在追捕的对手,例如他们使用的战术、技术和程序(TTP)。让我们考虑一个例子,我们想要利用系统服务作为持久性机制来搜索对手。
假设是什么?
威胁参与者正在创建和启动 Windows 服务,目的是运行可执行文件或脚本文件以实现持久性。
如果攻击组织创建 Windows 服务以在我们的环境中建立恶意软件持久性,我们应该会在端点检测和响应 (EDR)工具中看到该活动。
如果创建 Windows 服务以在我们的环境中建立恶意软件持久性,我们应该会看到 Windows 事件显示从异常 IP 地址登录后创建的服务。
第3步:了解攻击。我们的下一步将重点关注攻击技术是什么以及如何根据我们关注的威胁行为者群体执行攻击技术。
示例需要考虑的问题,可以调整该示例以寻找其他 TTP:
-
对手在系统上创建的服务的名称是什么?
-
该服务是在同一系统还是远程系统上创建的?
-
创建服务之前是否创建了任何用户帐户?
-
该服务的作用是什么?
-
执行需要什么工具和权限?
-
这是由定制、许可或开源工具执行的操作吗?
-
任何离地生活的二元生物都可以执行相同的操作吗?
示例:以下是Group-IB 博客文章中描述的攻击组织创建和执行的服务:
-
binpath=”C:PerfLogsvmserver.exe” sc start LxpSrvc
sc \172.26.16.81 Create SuperIe binPath= “cmd.exe /k c:userspublicSecurityHealthSystray.exe”
-
sc Create syscmd binpath=”cmd/k start”type= own type= interact sc \192.168.111.112 create res binpath=”C:PerfLogsvmserver.exe” sc start LxpSrvc
上述命令在主机 192.168.111.112 和 172.26.16.81 的 Public 和 Perflog 文件夹下创建服务。
第4步:了解此操作创建的工件。这一步是确定我们是否可以使用尽可能多的方法有效检验假设的关键。
通常,会为一种类型的操作创建多种类型的工件。考虑与不同攻击技术相关的工件有助于在检测和搜索查询中创建变化。当威胁行为者试图篡改证据时,它也可能是有益的。如果攻击者删除了一个工件或者未正确记录该工件,那么总有其他东西可以依靠。
需要考虑的事情:
-
在源系统上创建了哪些工件?请注意,源系统是恶意活动发起的系统。
-
在目标系统上创建了哪些工件?请注意,目标系统是目标系统或正在创建服务的系统。
-
哪些文物将是可见的?
-
是否存在连锁事件?请注意,连锁事件意味着威胁行为者正在利用多种与追捕相关的技术;例如,从恶意IP地址登录后创建服务。
-
您的组织有哪些平台可用于搜索这些工件?
-
工件可以轻松删除或修改吗?
让我们以上面的例子来分析寻找服务创建的方法。
我们可以在目标系统上查找的一些工件包括:
-
创建服务时,系统上会生成一些工件。例如,系统中的Windows事件日志或安全事件日志都会记录所生成的事件。根据组织拥有的 EDR,我们可以通过正在创建的服务名称搜索“新服务创建事件”。
-
我们寻求的服务的注册表项和值。
-
如果该服务在系统上创建其他进程,则 Shimcache、Prefetch 和 Amcache 中也可能存在与恶意文件的进程执行相关的工件。我们可以尝试寻找 Prefetch 文件夹下创建的文件。
现在,让我们考虑一下创建服务的 sc.exe 可执行文件的其他功能。
用于创建服务的 Microsoft 可执行文件 sc.exe 还能够在指定服务器上创建远程服务。
在开始狩猎之前,我们可以思考以下问题:
-
攻击者是否横向移动并创建服务?
-
该服务是否是在同一个受感染的系统上创建的?
目标系统工件包括:
-
当在不同的系统上创建服务时,会在目标系统上创建网络登录事件,并创建上述用于服务创建的所有常用工件。
-
为了寻找这些类型的事件,我们可以搜索从私有 IP 地址创建的服务,并将它们与网络登录事件相关联。
源系统工件包括:
-
在提供此服务创建命令的源系统上,可能存在指示备用凭据的使用的登录事件。例如,将创建事件 ID 4648,指示威胁行为者已移动到何处。
以下是可用于创建远程服务的方法之一:
1) 认证
net use 10.x.x.xadmin$ /user:nameofuser
2)创建服务
sc.exe 10.x.x.x create NewServicetest binpath= c:windowssystem32cmd.exe
3) 执行任何操作
有关 sc.exe 的更多信息,请查看这篇Microsoft 文章。
第5步:使用实验室来确定执行特定攻击时会生成哪些事件和工件(可选,但强烈建议获得有效结果)。如果我们的组织有专门的实验室设置,我们可以进行一些红队练习,以查看模拟的威胁参与者活动生成了哪些类型的事件和警报。
需要进行的观察:
-
实施攻击有多容易?例如,在另一次专注于寻找凭证转储的搜索中,了解模拟攻击的难度非常重要,因为可以利用多种方法来执行攻击并确定该转储创建的工件。这不会影响创建的工件,但有时我们没有威胁参与者构建的自定义工具,因此我们可能无法了解正在发生的情况以及我们在 EDR 工具中可以看到的内容。我们可能知道这些功能,但不确定它们如何执行攻击。例如,可以通过从密码存储位置转储 Chrome 浏览器密码、转储安全帐户管理器 (SAM) 注册表配置单元、通过 procdump 转储 lsass 来执行密码转储,
-
当我们执行攻击时,生成了什么类型以及多少检测或警报?如果没有警报,我们可以开始在安全工具中分析事件。如果有警报,我们可以尝试找出检测中的漏洞以及绕过它们的方法。此外,我们可以考虑对手可以使用不同的方法来获得相同的结果。对于本文中的示例,这是指威胁行为者可以在目标系统上创建服务的其他方式。
第6步:审查狩猎的平台和可行性。根据上述步骤的研究和数据,我们需要了解我们的组织拥有哪些平台以及可以在哪里进行搜寻。我们还需要根据我们在环境中记录的数据来确定狩猎是否可行。
第 7 步:开发基本查询。现在我们了解了攻击和工件,就可以开始开发查询了。
可以在 Microsoft 高级威胁防护 (MDATP) 上运行的查询示例包括(请参阅上面的链接和示例,了解为其开发此 EDR 查询的服务名称和操作)
第8步:微调查询。如果查询返回大量结果,我们需要修改查询以查找唯一值或对事件和最大或最小条目求和、按时间排序、显示前 10 个结果、排除在我们组织中观察到的基线事件等。
第9步:进一步行动。如果我们拥有恶意软件样本并了解恶意软件的功能,那么我们可以更进一步,思考威胁行为者如何修改相同的恶意软件,以便在企业安全工具根据当前的危害指标阻止它们后重新使用它。
我们还可以考虑是否可以通过最小的努力来调整相同的恶意软件,以绕过我们创建的或已经存在于我们的基础设施和 EDR 工具上的检测。
第 10 步:可操作的项目。搜寻完成后,威胁搜寻者可以向安全运营中心或计算机安全事件响应团队报告他们发现的任何恶意系统,或者为端点平台创建检测查询。
编译自:IBM