第 6 章 使用 AMD SEV SNP 在公有云平台上配置 RHEL
要防止基于 VM 的攻击并减少内存完整性违反情况,请在公有云上的 Red Hat Enterprise Linux (RHEL)实例上配置带有安全嵌套的 Paging (SEV-SNP)的 AMD 安全加密虚拟化。AMD SEV-SNP 将虚拟机数据与虚拟机监控程序和云服务供应商隔离。
6.1. AMD SEV SNP 概述 复制链接链接已复制到粘贴板!
带有安全嵌套分页(SEV-SNP)的 AMD 安全加密虚拟化旨在提高存储在公共云平台上的虚拟机(VM)和数据的安全性。
AMD 处理器提供三种基于硬件的安全机制: SEV、SEV-ES 和 SEV-SNP。
- SEV: SEV 机制加密虚拟机(VM)内存,以防止虚拟机监控程序访问虚拟机数据。
- SEV-ES : SEV with Encrypted State (SEV-ES)通过加密 CPU 注册状态来扩展 SEV。这种机制可防止虚拟机监控程序访问或修改虚拟机 CPU 注册。尽管在 hypervisor 和虚拟机之间提供隔离,但它仍然容易受到内存完整性攻击的影响。
- SEV-SNP: SEV-SNP 是 SEV-ES 的增强,它添加了内存完整性保护和虚拟机加密。这种机制可防止虚拟机监控程序修改页表来重定向虚拟机内存访问。它可防止重播攻击和内存篡改。
- SEV SNP 组件
-
Secure Processor: AMD
EPYC处理器集成了一个安全处理器(SP)子系统。AMD SP 是一个专用的硬件组件,用于管理密钥和加密操作。 内存完整性 :内存管理单元(MMU)利用页表将虚拟地址转换为客户机物理地址。
- SEV-SNP 使用嵌套页表将客户机物理地址转换为主机物理地址。
- 定义后,嵌套的页表不会被虚拟机监控程序或主机更改。这可防止虚拟机访问不同的页面,从而保护内存的完整性。
- SEV-SNP 使用此方法提供对虚拟机内存的重播攻击、内存完整性违反情况和恶意修改的保护。
-
内存加密 :AMD
EPYC处理器隐藏内存加密密钥,该密钥在主机和虚拟机中保持隐藏。 验证 的测试报告 :CPU 生成的报告以授权加密格式包含 RHEL 实例信息。此报告确认 RHEL 实例和 AMD 处理器的初始 CPU 和内存状态的真实性和可靠性。
注意即使虚拟机监控程序创建虚拟机的主内存和 CPU 注册状态,它们在初始化该虚拟机后仍为隐藏且无法访问。
- AMD SEV SNP 安全引导过程
初始化和测量 :启用 SEV-SNP 的 hypervisor 设置虚拟机的初始状态。
- 这个 hypervisor 将固件二进制文件加载到虚拟机内存中,并设置初始注册状态。
- AMD Secure Processor (SP)测量虚拟机的初始状态,并提供验证虚拟机初始状态的详细信息。
firmware : 虚拟机启动 UEFI 固件。固件可能包含有状态或无状态的虚拟可信平台模块(vTPM)实现。
- 有状态 vTPM 在虚拟机重启和迁移过程中维护持久性加密状态。
- 无状态 vTPM 在不持久性的情况下为每个虚拟机会话生成一个新的加密状态。
- 虚拟机特权级别(VMPL)技术将 vTPM 与客户机隔离。
- VMPL 在不同虚拟机组件和 hypervisor 之间提供硬件强制的特权隔离。
vTPM: 对于有状态 vTPM 实现,UEFI 固件可能会在测试时执行远程测试。
- 这取决于您的云服务供应商。attestation 会解密 vTPM 的持久状态。
vTPM 还测量引导过程的事实
- 安全引导状态
- 用于签名引导工件的证书
- UEFI 二进制哈希
shim :当 UEFI 固件完成初始化过程时,它会搜索扩展的固件接口(EFI)系统分区。
- UEFI 固件从那里验证并执行第一个阶段引导装载程序。
-
对于 RHEL,这是
shim。shim程序允许非 Microsoft 操作系统从 EFI 系统分区加载第二阶段引导装载程序。 -
shim使用红帽证书来验证第二阶段引导装载程序(grub)或 Red Hat Unified Kernel Image (UKI)。 -
GRUB或UKI解压缩、验证并执行 Linux 内核和初始 RAM 文件系统(initramfs)和内核命令行。 - 这个过程可确保 Linux 内核在可信和安全的环境中加载。
initramfs :在
initramfs中,如果完全磁盘加密技术,vTPM 信息会自动解锁加密的 root 分区。-
当根卷可用时,
initramfs会将执行流传输到根卷。
-
当根卷可用时,
attestation :VM 租户会获取系统的访问权限。他们可以执行远程测试,以确保虚拟机是未被调整的机密性虚拟机(CVM)。
- attestation 基于 AMD SP 和 vTPM 的信息执行。
- 这个过程确认 RHEL 实例和 AMD 处理器的初始 CPU 和内存状态的真实性和可靠性。
- TEE :此过程创建受信任的执行环境(TEE),以确保引导虚拟机处于可信和安全的环境中。