上个月,我们举办了一场网络研讨会,使用 Elastic Security 搜寻持久性,我们在会上研究了一些攻击者在野外用来在其受害者环境中保持存在的技术。对于涵盖的每项技术,我们都解释了
- 攻击性技术如何工作
- 为什么这项技术对攻击者来说通常是成功的
- 防御者如何使用 Elastic Security 有效地搜寻和检测恶意行为
在这个由两部分组成的博客系列中,我们将分享在网络研讨会期间涵盖的详细信息,目标是帮助安全从业人员提高他们对这些攻击性持久性技术的可见性,并帮助削弱这些攻击对其组织的效力。
第一部分将解释什么是持久性以及为什么攻击者需要它。我们将介绍事件查询语言 (EQL),然后展示其在威胁搜寻中的实际用例。我们将研究对手用来保持持久性的一种常用技术,即 Windows Management Instrumentation (WMI) 事件订阅 (T1084)。我们还将分享 Elastic Security 用户如何在其环境中搜寻和检测此技术的使用情况。
在第 2 部分中,我们将探讨攻击者在野外使用的另外两种持久性技术:BITS 作业 (T1197) 和计划任务 (T1053)。这篇后续文章将介绍使用这些技术的真实示例,以及我们如何使用 Elastic Security 搜寻、检测和阻止它们。
Elastic Security 的保护团队负责研究、理解和开发针对攻击者行为的检测和防御,以便在发生损害或损失之前阻止攻击。对于没有全职安全运营团队的组织,Elastic Security 包含针对对手技战术、恶意软件和勒索软件和网络钓鱼等攻击的开箱即用保护。
什么是持久性以及为什么攻击者需要它?
当我们考虑入侵的常见组成部分(例如图 1 中描绘的组成部分)时,攻击者可能已经花费了大量精力进行侦察、获取初始访问权限以及在其目标环境中建立据点。一般来说,对手通常希望保持存在,以便在系统重启或用户密码更改等对其访问造成中断时幸存下来。有效的持久性机制将在常规基础上或满足特定条件(例如用户登录或应用程序启动事件)时执行攻击者的恶意代码。
在许多情况下,获取对组织网络的访问权限比维护持久性更难。正是出于这个原因,攻击者继续使用本文中介绍的持久性技术 — 并且取得了很大的成功。当安全行业提到“滞留时间”时,指的是当对手获得对系统的访问权限开始到您检测到他们结束的时间段。持久性有助于延长滞留时间,在此期间对手可以努力实现其目标。
目前,63 种持久性技术记录在 MITRE ATT&CK® 对手行为知识库中。乍一看,这个数字似乎令人生畏,但对手对持久性的需求可能是他们的致命弱点,这为防御者提供了宝贵的机会来检测和清除其环境中的攻击者。
通过学习这些攻击性策略、技术和规程 (TTP),并以您环境中的端点和网络活动为基准,您有机会在入侵早期、在发生任何损害或损失之前检测到攻击者。安全运营团队不懈地努力检测 ATT&CK 矩阵中捕获的技术,搜寻并编写警报逻辑,以便最大限度地提高其企业的可见性和覆盖率。为了帮助减少入门障碍并启用这些团队,我们创建了 EQL 并将其发布到社区。
什么是事件查询语言 (EQL)?
此博客文章中的查询可用于威胁搜寻和检测,它们是用 EQL 编写的 — EQL 是一种强大而直观的查询语言,使从业人员可以轻松搜索复杂的对手行为。
要了解有关 EQL 的更多信息,您可以阅读EQL 入门博客文章或查看EQL 分析库,其中包含 200 多种免费的安全分析,这些分析已映射到 MITRE ATT&CK 矩阵中记录的技术。EQL 是 Elastic Endpoint Security 的核心组件,并且正在添加到 Elasticsearch,以便在 Elastic SIEM 中使用。
现在,让我们通过演示各种搜寻和检测此技术的方法来分析攻击者在野外使用的 WMI 事件订阅技术。我们决定介绍此技术,因为该技术在攻击者中很受欢迎,并且传统安全控件的检测率很低。
通过 Windows Management Instrumentation (WMI) 事件订阅实现持久性 (T1084)
WMI 是 Microsoft 对基于 Web 的企业管理 (WBEM) 的实现,它是一组用于管理企业环境中信息和系统的技术。WMI 是 Windows 端点的内置功能,它允许管理员和攻击者交互和管理操作系统的许多不同功能。可以通过 WMI 查询和管理网络接口、电源设置、服务状态以及已安装的软件或补丁等组件。
早在 2008 年,攻击者就开始滥用 WMI 来实现不同的目标,例如在端点之间横向移动、枚举端点上正在运行的进程以及保持持久性。攻击者可以通过滥用操作系统的内置功能来“以地为生”,这通常会导致比他们将恶意软件引入受害者环境的检测风险更低。
对手偏爱基于 WMI 的持久性已不是什么秘密,因为
- 许多组织无法监视或调查 WMI
- 开箱即用的 WMI 可见性有限,可能需要第三方实用程序才能有效地传达 WMI 的使用方式
- WMI 是 Windows 的一个组成部分,来自此数据源的大量弱信号可能会使不熟悉这些攻击类型的分析师应接不暇
与大多数攻击性技术一样,在组织能够可靠地检测 WMI 滥用之前,对手不太可能改变他们的行为。
了解 WMI 事件订阅及其如何被滥用
简单来说,WMI 事件订阅可以在满足特定条件时触发操作。WMI 事件订阅由三个组件组成。
- EventFilter(事件筛选器) - 指定要测试的条件,例如用户成功身份验证、特定时间和星期几的发生等。
- EventConsumer(事件使用者) - 指定在满足 EventFilter 条件时要执行的操作,例如执行 Windows 命令或脚本、删除所有卷影副本、重启服务等。
- FilterToConsumerBinding(筛选器到使用者绑定) - 将 EventFilter 链接到 EventConsumer 实例。
下图 2 显示了 Sysinternals Autoruns 的输出,这是 Microsoft 提供的一个免费工具,可用于检查 Windows 端点上的各种持久化位置,也称为自动启动执行点 (ASEP)。Autoruns 显示了一个名为 checkforupdates 的持久 WMI 事件订阅。需要注意的是,有时会配置良性的 WMI 事件订阅,但不应过多。警惕新的 WMI 事件订阅的创建,并定期搜索新的订阅可能是一项低成本、高回报的活动。
以下显示了 Autoruns 结果中的完整 WMI 查询语言 (WQL) 查询。Autoruns 为我们方便地枚举了恶意条目创建位置 root\Subscription 命名空间中的 WMI __EventFilter 类。解释此 WQL 查询,当系统正常运行时间在 240 到 325 秒之间时,将满足 EventFilter 条件。EventConsumer 是一个 Empire PowerShell 脚本,当满足此 EventFilter 条件时将执行。
总而言之,已配置 WMI 事件订阅以在端点启动后不久执行恶意 PowerShell 脚本。这使攻击者能够在受害者的环境中保持持久性,并在系统重启后继续存在。
SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System' AND
TargetInstance.SystemUpTime >= 240 AND
TargetInstance.SystemUpTime < 325
图 3 - 显示 WMI EventFilter 条件的 WMI 查询语言 (WQL) 查询
搜寻和检测恶意 WMI 事件订阅
图 4 中的 EQL 查询显示了如何搜索由同一唯一进程 ID (PID) 生成的三个 WMI 事件序列。此查询通过使用 join 函数展示了 EQL 的优势之一。这使我们能够匹配任意顺序的事件序列。如果不按唯一 PID 将这三个 WMI 事件绑定在一起,搜索它们可能不会返回有意义的结果。此查询匹配在恶意软件执行并创建新的 WMI 事件订阅以实现持久性时,由同一进程连续创建 WMI EventFilter、EventConsumer 和 FilterToConsumer 绑定时的情况。此查询可用于监视和检测 WMI 的滥用。
join by unique_pid
[wmi where properties.Operation == "*IWbemServices::PutInstance*EventFilter*"]
[wmi where properties.Operation == "*IWbemServices::PutInstance*EventConsumer*"]
[wmi where properties.Operation == "*IWbemServices::PutInstance*FilterToConsumerBinding*"]
图 4 - 用于搜索连续创建 WMI EventFilter、EventConsumer 和 FilterToConsumerBinding 的 EQL 查询
上面的 EQL 查询可以保存为 Elastic Endpoint Security 中的自定义规则,以便分析师在每次进程创建新的 WMI 事件订阅时收到警报(图 5)。
Resolver 是与 Elastic Endpoint Security 中的警报交互的主要界面,使用户能够可视化进程的血统以及相关事件,例如 DNS、文件、网络、WMI 和 PowerShell 等。它还提供一键式响应操作来解决警报。
单击 Resolver 中 powershell.exe 旁边的 WMI 事件类型,使用户能够查看该进程生成的 WMI 事件。图 7 显示了当使用 powershell.exe 创建新的 WMI FilterToConsumerBinding checkforupdates 时记录的 WMI 事件。
Elastic Endpoint Security 还包括基于模板的搜索,降低了经验不足的分析师的入门门槛,并允许轻松地收集和分析整个组织端点上的数据。目前有 25 个类别的持久性数据可以使用基于模板的搜索进行收集和分析。
执行搜索后,有多种方法可以对数据进行排序或聚合,例如按频率或文件路径。这有助于分析师快速对他们的端点进行基准测试,并识别异常情况以进行进一步调查。
图 9 描述了持久性搜索的筛选结果,其中配置了相同的恶意 WMI 事件订阅。Elastic Security 枚举了端点上的持久性位置,并使用户能够应用过滤器来识别异常或可疑工件以进行进一步分析。搜寻团队通常会假设传统的被动和主动安全控制是不可靠的,并且会主动搜寻恶意持久性机制,以寻找在其环境中活动的攻击者。
Elastic Security 附带了针对 WMI 滥用的开箱即用检测。图 10 显示了当创建恶意 WMI 事件订阅时,Elastic Endpoint 生成并发送到 Elastic SIEM 的信号。
用户可以选择在 Elastic SIEM 中的时间轴中查看信号。时间轴使分析师能够在其数据中搜索类似活动、收集和记录证据,并轻松地将潜在事件转发到票务和 SOAR 平台。本系列的第 2 部分将介绍时间轴的工作流程和功能。
从 Elastic Stack 的 7.6 版本开始,SIEM 应用程序带有一个检测引擎,使安全团队能够创建自己的自定义规则。例如,当创建新的 WMI EventFilterToConsumer 绑定时,Windows 10 会记录事件 ID 5861。图 12 显示了如何在 Elastic SIEM 中创建自定义规则,以在 winlogbeat-* 索引模式中搜索 winlog.record_id: 5861。我们可以为新规则配置描述、严重性和风险评分,并将规则映射到 MITRE ATT&CK 矩阵中的相关技术。此信息将帮助分析师进行分类,并确定在发生规则条件时要采取的步骤。
Elastic SIEM 是 Basic 订阅的一部分,目前包括 92 个利用 Windows、Linux、网络和 APM 日志记录的检测。我们将在 Elastic Stack 的新版本中继续添加新规则。
在本节中,我们了解了如何滥用 WMI 事件订阅来实现持久性,以及如何使用 Elastic Endpoint 和 SIEM 的组合来搜寻和检测此技术。重要的是要注意,我们只触及了 WMI 如何工作以及攻击者可以使用它的多种方式的皮毛。
WMI 可在攻击的每个阶段使用,例如在端点之间横向移动、进行本地和企业侦察以及窃取数据。Elastic Security 已发布针对许多利用 WMI 的技术的检测。
结论
在这篇博文中,我们研究了一种攻击者用来在目标环境中保持存在的常用技术。攻击者武器库中的技术数量起初可能看起来令人生畏,但我们展示了一种公式化的方法,可以有效地检查、搜寻和检测技术。通过围绕对手的策略建立理解,您可以识别有趣的模式、行为和工件,这些模式、行为和工件可以用来发挥您的优势。
Elastic Security 使搜寻持久性变得容易。Elastic Endpoint Security 和 SIEM 的功能(以及开箱即用提供的保护)降低了分析师的入门门槛,提供了对端点活动的详细可见性,并使组织能够大规模地预防、检测和响应恶意行为。
要了解有关威胁搜寻的更多信息,请下载 《Elastic 威胁搜寻指南》的免费副本。