在亚马逊 EC2 上启用微软 Defender 凭证卫士

作者: 希拉·布瑟 | 2023

这篇博客文章由 亚马逊云科技 首席解决方案架构师 Jason Nicholls 撰写。

在这篇文章中,我们向您展示如何在运行微软 Windows 服务器的亚马逊弹性计算云 (亚马逊 EC2 )上启用 Windows Defender 凭 据保护( 凭据保护 )。在 Amazon EC2 Windows 实例上启用凭据防护后,可保护敏感的用户登录信息不被从操作系统 (OS) 内存中提取。

微软 Windows 将身份验证令牌等凭证材料存储在 本地安全机构 (LSA) 中,这是微软 Windows 操作系统中的一个进程,负责强制执行系统的安全策略。传统上,这些证书存储在 LSA 的进程内存中,操作系统的其余部分可以访问,因此特权用户可以提取这些证书。使用复杂密码、限制特权帐户使用以及培训用户不要在多个系统 中使用相同的密码等 措施 限制使用从 LSA 提取的证书,但客户希望将这些证书与操作系统的其他部分隔离开来。

启用凭据保护后,LSA 被基于 Windows 虚拟化的安全性 (VBS) 隔离。VBS 是一套 Windows 安全机制,它们使用硬件虚拟化功能创建隔离的计算环境来存储用户凭据,称为隔离 LSA。操作系统的其余部分无法访问隔离的 LSA。

先决条件

Credential Guard 需要 支持 基于虚拟化的安全 (VBS) 和 统一可扩展固件接口 (UEFI) 安全启动的虚拟化技术。 或者,Credential Guard 可以利用可信平台模块 (TPM) 来进一步保护证书。在本演练中,我们将使用 NitrotPM ,这是一款 符合 TPM 2.0 标准 ISO/IEC 11889:2015 )的虚拟模块,用于增强隔离 LSA 的安全性。

启动您的实例

预配置为启用 UEFI 安全启动的 Windows 亚马逊系统映像 (AMI) 列表可在我们的 “启动支持 UEFI 安全启动的实例” 指南中找到。 您可以使用 亚马逊云科技 命令行接口 (亚马逊云科技 CLI) d es cribe-images 命令 验证您的 AMI 是否支持 UEFI 安全启动和 NitroTPM,如下所示:

aws ec2 describe-images --image-ids ami-0123456789

为 AMI 启用 UEFI 安全启动和 NitroTPM 时,输出中会分别出现 “ tpmSupp ort”: “ v2.0 ” 和 “bootMode”: “ uefi ”,例如以下示例。

{
   "Images": [
      {
         ...
         "BootMode": "uefi",
         "TpmSupport": "v2.0"
      }
   ]
}

在启动 AMI 之前,使用 d es cribeInstanceTypes API 调用验证 您要启动的 实例类型 是否支持 UEFI 启动模式并使用 Nitro 系统 。使用 亚马逊云科技 CLI 并按如下方式调用描述实例类型:

aws ec2 describe-instance-types --instance-types [INSTANCE_TYPE] --region [REGION]

其中,INSTANCE_TYPE 是 文档 中定义的支持的实例类型 ,示例为 c5.large,区域为支持的 亚马逊云科技 区域。

命令的输出应将 nitro 显示 为虚拟机管理程序,并将 uefi 列 为支持的启动模式。例如:

{
   "InstanceTypes": [
   {
      ...
      "Hypervisor": "nitro",
      ...
      "SupportedBootModes": [
                "legacy-bios",
                "uefi"
      ]
   }
}

使用 亚马逊 EC2 控制台 亚马逊云科技 命令行接口 (亚马逊云科技 CLI) 启动启用 了 “uefi” 启动模式的亚马逊 EC2 实例。启用凭证保护需要管理员访问 Amazon EC2 实例。

演练:

使用亚马逊 EC2 启用证书保护启动亚马逊 EC 2 Windows 实例

使用预配置的 Windows AMI 启动亚马逊 EC2 Windows 实例,该实例可在 支持 UEFI 安全启动的 实例类型 上使用微软 Windows 安全启动密钥启用 UEFI 安全启动。

您可以使用 Amazon EC2 控制台 中的启动向导 或通过 亚马逊云科技 CLI 运行实例 命令 来启动可以支持证书保护的实例。您需要一个兼容的 AMI ID 来启动您的实例,该ID对于每个 亚马逊云科技 区域都是唯一的。您可以使用以下 链接 在 Amazon EC2 控制台中发现和启动具有亚马逊提供的兼容 AMI 的实例:

在已启动的实例 上@@ 启用凭据防护

现在您知道如何创建启用了 UEFI 安全启动支持的 AMI,让我们创建一个 Windows 实例并配置凭据防护。

可以使用 组策略 Windows 注册表 或 Windows Defender Device G uard 和 Windows Defender 凭据防护硬件就绪工具 (DG 准备工具)来启用凭据防护 。在这篇文章中,我们将向您展示如何使用Windows注册表和DG准备工具启用凭据保护。

选项 1:通过 Windows 注册表启用凭据保护

使用启动 模式 设置为 “ uef i” 的 AMI 启动 亚马逊 EC2 实例 。必须预先配置 Windows AMI 才能使用我们之前定义的微软 Windows 安全启动密钥启用 UEFI 安全启动。 连接到 实例后,使用 Windows 系统信息工具 检查证书防护是否未在实例上运行:

  1. 选择 “ 开始” ,键入 msinfo32.exe ,然后选择 “ 系统信息” 。
  2. 选择左侧 的 “ 系统摘要”。
  3. 确认未 启用基于虚拟化的 安全性。

Figure 1 Overview of System Information in Windows 图 1 Windows 中的系统信息概述

Figure 2 System Information confirming that Credential Guard is Not Enabled

图 2 确认未启用 Credential Guard 的系统信息

4。选择 “ 开始” 打开 Windows 命令 行管理 程序 ,键入 cmd.exe,然后 按 Enter。

5。从 Windows 命令行管理程序运行以下命令,使用 Windows 注册表启用凭据防护:

REG ADD "HKLM\System\CurrentControlSet\Control\DeviceGuard" /v EnableVirtualizationBasedSecurity /t REG_DWORD /d 1 /f

REG ADD "HKLM\System\CurrentControlSet\Control\DeviceGuard" /v RequirePlatformSecurityFeatures /t REG_DWORD /d 1 /f

REG ADD "HKLM\System\CurrentControlSet\Control\LSA" /v LsaCfgFlags /t REG_DWORD /d 2 /f

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Capabilities\" /v "HyperVEnabled" /t REG_DWORD /d 1 /f

Figure 3 Update the Windows Registry to enable Credential Guard 图 3 更新 Windows 注册表以启用凭据防护

6。更改完成后,重启实例。

7。备份实例后,重新连接到该实例并选择 “ 启动” ,键入 msinfo32.exe ,然后选择 “ 系统信息 ”。

8。选择左侧 的 “ 系统摘要”。

9。请注意, 基于虚拟化的 安全性现已更改为 “ 正在运行” ,并且已启用 安全启动 据防护。

Figure 4 Overview of System Information showing Credential Guard is Enabled 图 4 显示已启用 Credential Guard 的系统信息概述

Figure 5 System Information shows Credential Guard is now Enabled 图 5 系统信息显示凭据防护现已启用

选项 2:通过 DG 就绪工具启用凭证防护

选项 1 需要与您的 Windows 实例进行远程桌面会话。选项 2 通过 PowerShell 运行,可以按此处所述在 远程桌面会话 中完成,也可以通过远程 PowerShell 会话来完成。

使用启动 模式 设置为 “ uef i” 的 AMI 启动 亚马逊 EC2 实例 。必须预先配置 Windows AMI 才能使用我们之前定义的微软 Windows 安全启动密钥启用 UEFI 安全启动。 连接到 实例后,启动 PowerShell 会话:

  1. 选择 “ 开始” ,键入 PowerShell ,然后单击 Windows Power Shell。

Figure 6 Start PowerShell via the Start Bar 图 6 通过起始栏启动 PowerShell

2。运行以下命令下载 DG 准备工具:

wget https://download.microsoft.com/download/B/D/8/BD821B1F-05F2-4A7E-AA03-DF6C4F687B07/dgreadiness_v3.6.zip -outfile dgreadiness.zip
        
        
        

Figure 7 Download the DG-Readiness tool 图 7 下载 DG 准备工具

  1. 使用 PowerShell 中的 “ 展开存档” 功能 解压缩下载的 zip 文件
Expand-Archive -Path C:\Users\Administrator\dgreadiness.zip -DestinationPath C:\dgreadiness
  1. 将 DG 准备工具移至当前文件夹

复制 C:\dgreadiness\dgreadiness_v3.6\ dg_readiness_Tool_v3.6.ps1。\

Figure 8 Copy the DG-Readiness tool to the current folder 图 8 将 DG 就绪工具复制到当前文件夹

  1. 运行带有-Ready 选项的 DG 就绪工具,确认证书保护已禁用,如下所示:
DG_Readiness_Tool_v3.6.ps1 -Ready

Figure 9 Using the DG-Readiness tool to confirm Credential Guard is not enabled 图 9 使用 DG 就绪工具确认未启用 Credential Guard

  1. 使用-Enable -CG 选项启用凭据防护,如下所示:
DG_Readiness_Tool_v3.6.ps1 -Enable -CG
  1. 重启实例
  2. 重启后重新连接到实例,并通过运行以下命令确认 Credential Guard 现在正在运行:
DG_Readiness_Tool_v3.6.ps1 -Ready

Figure 10 DG Readiness Tool shows Credential Guard is enabled and running 图 10 DG 准备工具显示凭据防护已启用并正在运行

结论

通过在亚马逊 EC2 Windows 实例上支持 Windows Defender Credential Guard,客户可以创建操作系统其他部分无法访问的隔离计算环境。凭据防护需要 UEFI 安全启动支持。凭证卫士可以利用 NitroTPM 来进一步保护证书。

要了解有关 Credential Guard 支持的更多信息,请访问 文档