受保护的结构部署快速入门
本主题介绍什么是受保护的结构、其要求以及部署过程摘要。 有关详细部署步骤,请参阅为受保护的主机和受防护的 VM 部署主机保护者服务。
首选视频? 请观看 Microsoft Virtual Academy 课程使用 Windows Server 2016 部署受防护的 VM 和受保护的结构。
什么是受保护的结构
受保护的结构是一种 Windows Server 2016 Hyper-V 结构,能够保护租户工作负载免受主机上运行的恶意软件和系统管理员的检查、盗用和篡改。 这些虚拟化租户工作负载(提供静态和动态保护)称为受防护的 VM。
受保护的结构的要求是什么
受保护的结构的要求包括:
运行不受恶意软件影响的受防护的 VM 的位置。
这些称为“受保护的主机”。 受保护的主机是 Windows Server 2016 Datacenter 版 Hyper-V 主机,仅当它们可以向称为主机保护者服务 (HGS) 的外部机构证明它们以已知的、受信任的状态运行时,才能运行受防护的 VM。 HGS 是 Windows Server 2016 中的新服务器角色,通常部署为三节点群集。
验证主机是否处于正常状态的方法。
HGS 执行证明,测量受保护的主机的运行状况。
将密钥安全地发布到正常的主机的过程。
HGS 执行密钥保护和密钥发布,将密钥发布回正常的主机。
自动安全预配和托管受防护的 VM 的管理工具。
(可选)可以将以下管理工具添加到受保护的结构:
- System Center 2016 Virtual Machine Manager (VMM)。 建议使用 VMM,因为它提供了额外的管理工具,而不仅仅是使用 Hyper-V 和受保护的结构工作负载附带的 PowerShell cmdlet。
- System Center 2016 Service Provider Foundation (SPF)。 这是 Windows Azure Pack 和 VMM 之间的 API 层,也是使用 Windows Azure Pack 的先决条件。
- Windows Azure Pack 提供了一个好用的图形 Web 界面来管理受保护的结构和受防护的 VM。
在实践中,必须预先做出一个决定:受保护的结构使用的证明模式。 HGS 可通过两种方法(两种相互排斥的模式)来测量 Hyper-V 主机是否正常。 初始化 HGS 时,需要选择模式:
- 主机密钥证明(或密钥模式)不太安全,但更容易采用
- 基于 TPM 的证明(或 TPM 模式)更安全,但需要更多配置和特定硬件
如有必要,可以使用已升级到 Windows Server 2019 Datacenter 版本的现有 Hyper-V 主机以密钥模式部署,然后在支持的服务器硬件(包括 TPM 2.0)可用时转换为更安全的 TPM 模式。
了解各部分内容之后,接下来我们演练一个部署模型示例。
如何从当前的 Hyper-V 结构转到受保护的结构
假设你当前有一个 Hyper-V 结构(如下图所示的 Contoso.com),并且你想要构建一个受 Windows Server 2016 保护的结构。
步骤 1:部署运行 Windows Server 2016 的 Hyper-V 主机
Hyper-V 主机需要运行 Windows Server 2016 Datacenter 版本或更高版本。 如果要升级主机,可以从 Standard 版本升级到 Datacenter 版本。
步骤 2:部署主机保护者服务 (HGS)
然后安装 HGS 服务器角色并将其部署为三节点群集,如下图中的 relecloud.com 示例所示。 这需要三个 PowerShell cmdlet:
- 要添加 HGS 角色,请使用
Install-WindowsFeature
- 要安装 HGS,请使用
Install-HgsServer
- 要使用所选的证明模式初始化 HGS,请使用
Initialize-HgsServer
如果现有的 Hyper-V 服务器不满足 TPM 模式的先决条件(例如,它们没有 TPM 2.0),可以使用基于管理员的证明(AD 模式)初始化 HGS,这需要 Active Directory 信任结构域。
在我们的示例中,假设 Contoso 最初采用 AD 模式部署,以便立即满足合规性要求,并计划在购买合适的服务器硬件后转换为更安全的基于 TPM 的证明。
步骤 3:提取标识、硬件基线和代码完整性策略
从 Hyper-V 主机提取标识的过程取决于所使用的证明模式。
对于 AD 模式,主机的 ID 是其已加入域的计算机帐户,该帐户必须是结构域中指定安全组的成员。 指定组中的成员身份是确定主机是否正常的唯一决定因素。
在这种模式下,结构管理员全权负责确保 Hyper-V 主机的运行状况。 由于 HGS 不参与有关允许或不允许运行哪些组件的决策,因此恶意软件和调试器将按设计运行。
但是,由于 VM 的工作进程 (VMWP.exe) 是轻型受保护进程 (PPL),因此受防护的 VM 会阻止尝试直接附加到进程(例如 WinDbg.exe)的调试器。 不会阻止其他调试技术(例如 LiveKd.exe 使用的技术)。 与受防护的 VM 不同,加密支持的 VM 的工作进程不作为 PPL 运行,因此传统调试器(例如 WinDbg.exe)将继续正常运行。
换言之,AD 模式不会以任何方式使用 TPM 模式所采用的严格验证步骤。
对于 TPM 模式,需要满足三项要求:
- 每个 Hyper-V 主机上的 TPM 2.0 的公共认可密钥(或 EKpub)。 要捕获 EKpub,请使用
Get-PlatformIdentifier
。 - 硬件基线。 如果每个 Hyper-V 主机都相同,则只需要一个基线。 如果不相同,则每类硬件都需要一个基线。 基线采用可信计算组日志文件(或 TCGlog)的形式。 TCGlog 包含主机从 UEFI 固件到内核,一直到主机完全启动的位置所执行过的所有操作。 要捕获硬件基线,请安装 Hyper-V 角色和主机保护者 Hyper-V 支持功能,并使用
Get-HgsAttestationBaselinePolicy
。 - 代码完整性策略。 如果每个 Hyper-V 主机都相同,则只需要一种代码完整性策略。 如果不相同,则每类硬件都需要一个基线。 Windows Server 2016 和 Windows 10 两者都采用了一种新的形式来强制实施代码完整性策略,称为“虚拟机监控程序强制执行的代码完整性 (HVCI)”。 HVCI 提供强有力的强制措施,并确保仅允许主机运行受信任的管理员允许其运行的二进制文件。 这些指令包含在添加到 HGS 的代码完整性策略中。 在允许每个主机运行受防护的 VM 之前,HGS 会测量这些主机的代码完整性策略。 要捕获 CI 策略,请使用
New-CIPolicy
。 然后,必须使用ConvertFrom-CIPolicy
将策略转换为其二进制形式。
就运行它的基础结构而言,以上就是创建受保护的结构的所有步骤。 接下来,可以创建受防护的 VM 模板磁盘和屏蔽数据文件,以便可以简单安全地预配受防护的 VM。
步骤 4:为受防护的 VM 创建模板
受防护的 VM 模板通过在已知的可信时间点创建磁盘签名来保护模板磁盘。
如果模板磁盘后来被恶意软件感染,其签名将不同于原始模板,后者将被受防护的 VM 的安全预配过程检测到。
可通过针对常规模板磁盘运行受防护的模板磁盘创建向导或 Protect-TemplateDisk
来创建受防护的模板磁盘。
每种都包含在适用于 Windows 10 的远程服务器管理工具中的受防护的 VM 工具功能中。 下载 RSAT 后,运行以下命令以安装受防护的 VM 工具功能:
Install-WindowsFeature RSAT-Shielded-VM-Tools -Restart
可信管理员(如结构管理员或 VM 所有者)需要通常由托管服务提供商提供的证书来对 VHDX 模板磁盘进行签名。
磁盘签名通过虚拟磁盘的 OS 分区进行计算。 如果 OS 分区发生任何更改,签名也会更改。 因此,用户可以通过指定适当的签名来重点标识他们信任的磁盘。
在开始之前,请查看模板磁盘要求。
步骤 5:创建屏蔽数据文件
屏蔽数据文件(也称为 .pdk 文件)捕获有关虚拟机的敏感信息,例如管理员密码。
屏蔽数据文件还包括受防护的 VM 的安全策略设置。 创建屏蔽数据文件时,必须选择以下两种安全策略之一:
已屏蔽
最安全的选项,可消除许多管理攻击途径。
支持加密
较低级别的保护仍可提供能够加密 VM 的合规性优势,但允许 Hyper-V 管理员执行诸如使用 VM 控制台连接和 PowerShell Direct 之类的操作。
可以添加可选管理组件,例如 VMM 或 Windows Azure Pack。 如果希望在不安装这些组件的情况下创建 VM,请参阅分步操作:在没有 VMM 的情况下创建受防护的 VM。
步骤 6:创建受防护的 VM
创建受防护的虚拟机与创建普通虚拟机差别不大。 在 Windows Azure Pack 中,体验甚至比创建普通 VM 更简单,因为只需提供名称、屏蔽数据文件(包含其余专用化信息)和 VM 网络。