Credential Guard(凭据保护)是Windows Server 2016及更高版本内置的一项核心安全功能,它通过虚拟化安全(VBS)技术将敏感凭据隔离在一个受保护的虚拟容器中运行,从而有效防止Pass-the-Hash、Pass-the-Ticket、NTLM中继攻击等凭据窃取行为。如果你的Windows服务器还没有启用这项功能,那么你的域环境中的管理员密码哈希、Kerberos票据等核心凭据正处于被横向移动攻击轻易获取的风险之中。启用Credential Guard的方法并不复杂,但需要满足硬件和系统前提条件,本文将从原理、前置要求、启用步骤、验证方法、常见问题到最佳实践,给你一份完整的操作指南。

Credential Guard到底在防什么

在传统的Windows系统中,LSASS(本地安全机构子系统服务)进程负责处理用户登录、密码验证、票据签发等核心安全操作。攻击者一旦获得系统级权限,就可以直接从LSASS进程内存中dump出明文密码、NTLM哈希、Kerberos票据等敏感数据。这就是为什么很多企业在遭受一次入侵后,攻击者能轻松在整个域内横向移动——因为凭据一旦泄露,就可以被反复利用。

Credential Guard的核心思路是:把LSASS中负责凭据处理的关键组件(LSAISO)放进一个基于Hyper-V虚拟化技术创建的隔离容器(Virtualization-based Security,简称VBS)中运行。这个容器与主操作系统完全隔离,即使主系统被完全攻陷,攻击者也无法直接触及容器内的凭据数据。简单来说,就是给你的凭据加了一层"防弹玻璃"。

启用Credential Guard的硬件前提条件

不是所有服务器都能开启Credential Guard,你需要先确认以下硬件条件是否满足:

第一,CPU必须支持并启用虚拟化扩展。Intel平台需要VT-x和VT-d,AMD平台需要AMD-V和AMD-Vi(IOMMU)。你可以在BIOS/UEFI中检查这些选项是否已开启。很多服务器默认是关闭的,尤其是在追求性能稳定性的场景下。

第二,CPU必须支持64位二层地址翻译(SLAT),Intel叫EPT(Extended Page Tables),AMD叫RVI(Rapid Virtualization Indexing)。这个功能是VBS运行的基础,几乎所有近十年的服务器CPU都支持。

第三,系统内存建议至少4GB,推荐8GB以上。因为VBS会占用一部分内存来运行隔离容器,内存不足会导致功能无法正常加载。

第四,系统盘必须是GPT分区格式,且支持UEFI启动模式。传统的MBR+Legacy BIOS组合不支持VBS。

你可以用以下PowerShell命令快速检查硬件兼容性:

Get-ComputerInfo -Property "HyperV*", "DeviceGuard*", "VirtualizationFirmwareEnabled"

如果返回结果中VirtualizationFirmwareEnabled为True,说明虚拟化已在固件层面启用。

启用Credential Guard的具体操作步骤

确认硬件满足条件后,有两种方式启用Credential Guard:通过组策略(GPO)或通过注册表/PowerShell直接配置。推荐在域环境中使用组策略统一部署,在单机场景下用PowerShell更快捷。

方法一:通过组策略启用(域环境推荐)

打开组策略管理控制台(gpmc.msc),创建或编辑一个适用于目标服务器OU的GPO。路径为:计算机配置 → 管理模板 → 系统 → Device Guard → 开启基于虚拟化的安全性。将"开启基于虚拟化的安全性"设置为"已启用",然后在下拉选项中选择"仅启用Credential Guard"。

同时,你还需要确保另一个策略项也正确配置:计算机配置 → 管理模板 → 系统 → Device Guard → 将凭据隔离配置为"已启用"。这两个策略缺一不可,前者开启VBS框架,后者指定使用Credential Guard模式。

方法二:通过PowerShell直接启用(单机或快速部署)

以管理员身份运行PowerShell,执行以下命令:

Enable-WindowsOptionalFeature -Online -FeatureName "Hyper-V-Hypervisor" -NoRestart
Enable-WindowsOptionalFeature -Online -FeatureName "IsolatedUserMode" -NoRestart

然后通过注册表指定Credential Guard模式:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v EnableVirtualizationBasedSecurity /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios" /v CredentialGuard /t REG_DWORD /d 1 /f

执行完后必须重启服务器才能生效。重启后系统会自动加载VBS并创建隔离容器。

如何验证Credential Guard是否成功启用

重启后,不要急着确认"成功",先用以下方法做验证:

方法一:打开PowerShell,运行:

Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard

查看返回结果中的VirtualizationBasedSecurityStatus和CredentialGuardStatus字段,如果都显示为1或"Running",说明功能正常。

方法二:运行msinfo32,在系统信息中找到"基于虚拟化的安全性"一项,查看"正在运行"的保护项是否包含"凭据保护"。

方法三:使用事件查看器,导航到应用程序和服务日志 → Microsoft → Windows → DeviceGuard → Operational,查看是否有相关的启动成功事件。

如果验证失败,最常见的原因是BIOS中虚拟化未开启、不满足SLAT要求、或者系统是MBR分区。需要逐一排查。

启用Credential Guard后的注意事项和常见问题

启用Credential Guard不是"设置完就不管了",有几个关键问题需要注意:

第一,性能影响。VBS会占用少量CPU和内存资源,在高负载服务器上可能有1%-3%的性能损耗。对于绝大多数业务场景这个影响可以忽略,但如果是对延迟极度敏感的实时系统,需要提前评估。

第二,某些旧版软件或驱动可能不兼容VBS。尤其是一些依赖直接访问LSASS的安全软件、旧版反病毒程序、某些备份代理等。启用前建议在测试环境验证关键业务软件的兼容性。

第三,Remote Credential Guard(远程凭据保护)需要额外配置。如果你希望通过RDP远程连接时也能保护凭据,需要在客户端和服务端同时启用Remote Credential Guard,这涉及到更复杂的配置,包括Windows Defender Remote Credential Guard策略和网络级别身份验证(NLA)的配合。

第四,Credential Guard不等于万能。它主要防的是凭据窃取和横向移动,对于其他攻击向量如漏洞利用、供应链攻击、社会工程等并无直接防护作用。它是纵深防御体系中的重要一环,但不能替代补丁管理、最小权限原则、网络分段等基础安全措施。

与其他安全功能的协同配合

Credential Guard的最佳效果是在与其他安全机制协同工作时体现的。以下几项建议一并实施:

启用Windows Defender Credential Guard策略:在GPO中配置"配置Windows Defender Credential Guard",设置为"已启用"并选择"带UEFI锁定的启用"。这样可以防止攻击者在启动阶段篡改VBS配置。

结合LAPS(本地管理员密码解决方案)使用:LAPS让每台机器的本地管理员密码随机且唯一,配合Credential Guard可以确保即使本地凭据被窃取也无法横向利用。

实施特权访问工作站(PAW):管理员日常操作应在受保护的专用工作站上进行,而不是在普通办公机上,从源头减少凭据暴露面。

开启SMB签名和加密:防止NTLM中继攻击进一步利用已获取的凭据。即使Credential Guard保护了凭据不被窃取,网络层面的防护也不能松懈。

不同Windows Server版本的支持情况

Credential Guard从Windows Server 2016开始支持,但各版本有差异:

Windows Server 2016:支持Credential Guard,但功能相对基础,建议升级到最新补丁版本以获得更好的稳定性。

Windows Server 2019:完整支持,且在安全性和兼容性上有明显改进,是目前推荐的部署版本。

Windows Server 2022:原生支持,默认配置更倾向于安全优先,VBS相关功能集成度更高。

需要注意的是,Windows Server 2012 R2及更早版本不支持Credential Guard。如果你还在运行这些旧版本,升级系统本身就是比启用Credential Guard更紧迫的安全任务。

总结和行动建议

Credential Guard是Windows Server平台上性价比极高的一项安全功能——它不需要额外采购任何软件,不需要改变业务架构,只需要正确配置就能大幅提升凭据安全等级。对于任何运行域环境的企业来说,这应该是安全基线配置的必选项。

建议的实施路径是:先在少量测试服务器上验证兼容性,确认无业务影响后,通过组策略批量推送到生产环境,然后持续监控事件日志和系统状态。安全不是一次性的动作,而是持续运营的过程。Credential Guard给你筑起了一道墙,但你还需要确保这道墙始终完好、始终有人在看守。