Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

使用 Windows Defender Credential Guard 保护特权凭据

使用 Windows Defender Credential Guard 保护特权凭据

Mar 17, 2023

一旦单个 Active Directory 凭据遭到泄露,可能会导致整个企业范围内对服务器、应用程序、虚拟化平台以及用户文件的未经授权访问。凭据容易受到攻击的原因之一,是 Windows 将凭据存储在本地安全机构 (Local Security Authority, LSA) 中,而 LSA 是内存中的一个进程。

因此,制定一套能够保护 Windows 账户不被攻破的安全策略至关重要——尤其是那些拥有更高权限、可访问公司系统和机密信息的特权账户。幸运的是,Microsoft 提供了一种安全工具,可帮助防止在 Active Directory 域中发生凭据(credential)盗窃: Windows Defender Credential Guard。本文将解释其工作原理。

Windows Defender Credential Guard 简介

Windows Defender Credential Guard 是 Microsoft 在 Windows 10 Enterprise 和 Windows Server 2016 中推出的一项安全功能。Credential Guard 利用基于虚拟化的安全性以及 隔离的 内存管理 以确保 只有特权系统软件才能访问域凭据。通过在虚拟化环境中运行相关进程,用户登录信息与操作系统的其余部分隔离开来,并且域凭据受到保护,免受攻击。Credential Guard 可保护 NTLM 密码哈希、Kerberos 票据、本地登录凭据与 Credential Manager 域凭据,以及远程桌面连接。不要将 Credential Guard 与 Device Guard 混淆;Device Guard 可防止未经授权的代码在你的设备上运行。

不过,启用此功能会带来一定的代价。启用 Windows Defender 后,你域中的 Windows 服务器和设备将无法再使用诸如 NTLMv1、Digest、CredSSP 和 MS-CHAPv2 等旧式(legacy)认证协议,也无法使用 Kerberos 非受限委派以及 DES 加密。

Credential Guard 能防御 Mimikatz 吗?

外部威胁行为者可以通过向 LSA 查询内存中的机密信息,从而获得对终端的特权访问权限,然后再破坏哈希或票据。Credential Guard 有助于保护你的组织免受 Pass-The-HashPass-The-Ticket 攻击。这类攻击用于在横向移动期间夺取并提升权限,因此,所有运行 Windows 平台并使用现代身份验证协议的终端和服务器都应启用 Credential Guard。

不过,不幸的是,即使无法查询隔离版 LSA,Credential Guard 也无法完全防护类似 Mimikatz 这类工具。原因在于 Mimikatz 能够捕获正在输入的凭据。Mimikatz 的作者在一条 tweet 中提到:如果恶意行为者控制了某个终端,并且在机器被接管之后有特权用户登录,那么他们就有可能获取凭据并提升自身权限。

Credential Guard 也无法防护那些使用自己凭据来访问 IT 资产的 Windows 内部人员,而不是试图窃取其他账户的凭据。例如,Credential Guard 无法阻止一名心怀不满、但对公司 IP 拥有合法访问权限的员工在离开组织之前将其复制。

启用 Windows Defender Credential Guard

先决条件

Credential Guard 使用 Windows 虚拟机监控程序,因此运行它的所有 Windows 设备都必须满足以下要求:

  • 64 位 CPU
  • 支持基于虚拟化的安全性
  • 安全启动

此外,Trusted Platform Module(TPM)更受推荐,因为它可实现与硬件的绑定;支持 1.2 和 2.0 版本,无论是独立芯片还是固件。

启用凭据保护(Credential Guard)

Windows Defender Credential Guard 默认未启用,因为它无法在仍依赖传统身份验证协议的 Windows 设备上运行。要在你的域中启用它,你可以使用 Intune 或 组策略

选项 1:使用 Intune 启用 Credential Guard

在 Intune 门户中,导航到 Endpoint Security > Account Protection。然后创建策略,选择以下配置设置:

  • 平台:Windows 10 及更高版本
  • 配置文件:帐户保护(预览)
Microsoft Endpoint Manager showing creation of an Endpoint security Account protection profile for Windows 10 and later.

图 1. 创建帐户保护配置文件

为策略命名。然后,在配置设置步骤中,将 Turn on Credential Guard 的值设置为 Enable with UEFI lock。这可确保无法远程禁用 Credential Guard。

Screenshot of Microsoft Endpoint Manager showing

图 2. 配置帐户保护配置文件

选项 2:使用组策略启用 Credential Guard

或者,你可以使用 Group Policy Manager 来启用 Credential Guard。创建一个 GPO,然后转到 Computer Configuration > Administrative Templates > System > Device Guard。接着将 Turn on Virtualization Based Security 设置为 Enabled(如下所示)。

Group Policy Editor showing

图 3. 使用组策略启用 Credential Guard

验证已启用

一旦使用 Intune 或组策略启用了 Credential Guard,你应该能在所有分配了该策略的计算机上看到 Lsalso.exe 进程正在运行。

Windows Task Manager, Details tab, highlighting the Lsalso.exe process identified as Credential Guard.

图 4. 验证已启用 Credential Guard

Credential Guard 实战

如果未启用 Credential Guard,攻击者可以使用 mimikatz 查询当前存储在 LSA 进程中的凭据,从而获取远程登录到该计算机的账户的 NTLM 哈希,如下所示。

A Mimikatz terminal displays NTLM password hashes, with one highlighted in yellow.

图 5. 未启用 Credential Guard 时,mimikatz 可以收集存储在内存中的哈希。

然而启用 Credential Guard 后,会使用隔离的 LSA 进程来存储凭据。因此,当我们再次使用 mimikatz 查询同一台服务器时,在转储结果中不会获得 NTLM 哈希。

A command-line interface showing Mimikatz output with user logon credentials and NTLM hashes.

图 6. 启用 Credential Guard 后,mimikatz 无法收集存储在内存中的哈希。

如下面所示,Credential Guard 也能有效防御 Pass-the-Ticket 攻击。

A Mimikatz console window showing Kerberos ticket data for user

结论

对于任何安全主管部门来说,必须将限制恶意行为者在你的域中进行横向移动并提升权限所使用的攻击路径作为首要优先事项。Credential Guard 可通过使用基于虚拟化的安全性和隔离的内存管理来保护凭据,从而抵御攻击。

分享到

了解更多

关于作者

Asset Not Found

Joe Dibley

安全研究员

Netwrix 的安全研究员,并且是 Netwrix Security Research Team 的成员。Joe 是 Active Directory、Windows 以及各类企业软件平台与技术方面的专家;他/她研究新的安全风险、复杂的攻击技术,以及相应的缓解措施与检测方法。