1. 课程导入与安全基线认知
在数据中心里,一台双路 AMD EPYC 服务器可能同时承载几十个虚拟机、数百个容器,以及数据库、密钥服务、AI 推理等敏感负载。攻击者一旦从某个被攻陷的容器或带外管理口进入,横向移动的代价极低。因此,讨论 EPYC 平台的安全,不能只停留在"打补丁"层面,而要建立一套可度量、可验证、可复现的安全基线,并让访问控制成为这套基线的执行骨架。
一、AMD EPYC 安全体系全景
AMD EPYC(以 Zen 架构的 EPYC 7002/7003/9004 系列为代表)的安全能力分布在多个层次,从芯片内部一直延伸到平台与操作系统。理解这些层次,是后续所有基线项的前提。
最底层是 AMD Secure Processor(AMD-SP,早期称 PSP),它是 SoC 内一个独立的 ARM 微控制器,运行签名固件,负责安全启动、密钥管理与固件验证。围绕它展开的核心机制包括:
- AMD Secure Boot:对 BIOS/UEFI 固件镜像逐级验签,防止固件被篡改;
- AMD Memory Guard / SME:安全内存加密,用芯片内密钥对 DRAM 数据加密,抵御物理内存读取与冷启动攻击;
- SEV / SEV-ES / SEV-SNP:面向虚拟化的加密虚拟化,SNP 进一步提供虚拟机内存完整性保护与证明(Attestation);
- AMD-V 与 IOMMU:硬件虚拟化与设备 DMA 隔离,是访问控制中"设备不能越权访问他人内存"的基础;
- fTPM / TPM 2.0:可信平台模块,用于度量启动链、存储密钥与远程证明。
这些机制并非孤立开关,而是形成一条信任链:AMD-SP 验证固件 → 固件度量并配置 SME/SEV → 引导加载程序与内核延续度量 → 最终由操作系统与虚拟化层执行访问控制策略。任何一环被关闭或降级,整条链的可信度都会下降。
二、什么是安全基线
安全基线(Security Baseline)是一组经过验证、可重复施加、可检查判定的安全配置集合。它回答三个问题:平台应当处于什么状态?如何确认它确实处于该状态?偏离后如何纠正?
与"最佳实践建议"不同,基线必须可判定。例如"启用 SEV-SNP"不是基线项,而"在 KVM 主机上,所有生产虚拟机均以 sev-snp 模式启动,且 /sys/kernel/debug/sev/status 显示 SNP 已启用"才是可检查的基线项。基线项通常包含四个要素:检查对象、期望值、检查方法、偏离处置。
在 EPYC 平台上,基线大致分为四类:
| 类别 | 典型基线项 | 检查入口 |
|---|---|---|
| 固件与启动 | Secure Boot 开启、BIOS 写保护、禁用未用调试口 | BIOS 设置、dmidecode、fTPM PCR |
| 内存与虚拟化 | SME 开启、SEV-SNP 可用、IOMMU 强制隔离 | dmesg、sevctl、内核启动参数 |
| 操作系统加固 | 内核锁定、模块签名、SELinux enforcing | sysctl、getenforce、auditd |
| 访问与审计 | 最小权限、SSH 密钥认证、审计日志留存 | sshd_config、auditctl、日志平台 |
三、访问控制在服务器平台中的定位
访问控制不是独立模块,而是把上述硬件能力"翻译"为业务可用的权限边界。在 EPYC 服务器上,它至少覆盖四个平面:
- 带外管理平面:BMC/IPMI/Redfish 接口,一旦被攻破可直接控制整机,必须独立网段、强认证、禁用默认账户;
- 主机管理平面:SSH、串口、本地控制台,决定谁能登录宿主机;
- 虚拟化平面:KVM/QEMU 与 libvirt 权限、虚拟机间隔离、设备直通(VFIO)的 IOMMU 分组;
- 数据平面:SME/SEV 保护的内存与虚拟机内存,确保即使宿主机被部分攻陷,租户数据仍受保护。
这四个平面共享同一套身份与授权逻辑。实践中常见的错误是:主机 SSH 做了密钥认证,但 BMC 仍使用出厂密码;或者启用了 SEV,却把虚拟机磁盘放在宿主机可读的共享存储上。访问控制的价值,正在于把这些"局部正确、整体失效"的缺口补齐。
四、课程目标与学习路径
本课程围绕"认知—配置—验证—排障"展开,目标是让学员能够独立完成一台 EPYC 服务器的安全基线落地,并能对偏离项做出判断。学习路径分为四个阶段:
- 认知阶段(第1–6章):理解 EPYC 安全体系、基线定义、访问控制模型与威胁面;
- 配置阶段(第7–16章):掌握 Secure Boot、SME/SEV-SNP、IOMMU、TPM 度量、内核加固与账户权限的具体配置;
- 验证阶段(第17–24章):使用
sevctl、tpm2-tools、auditd、lynis等工具核查基线,并解读输出; - 排障与运营阶段(第25–30章):处理启动失败、性能回退、证明失败等典型问题,建立持续核查机制。
作为起点,建议先在一台测试机上完成一次"基线快照":记录当前 BIOS 版本、Secure Boot 状态、SME/SEV 可用性、SELinux 模式与 SSH 配置。例如:
# 查看 SEV 能力与当前状态(示例输出,实际以平台为准)
$ sudo sevctl status
SEV: ENABLED
SEV-ES: ENABLED
SEV-SNP: ENABLED
Platform State: WORKING
# 查看内存加密是否生效
$ sudo dmesg | grep -i -E "sme|sev"
[ 0.000000] AMD Memory Encryption Features active: SME SEV SEV-ES SEV-SNP
# 查看强制访问控制状态
$ getenforce
Enforcing
这些输出就是后续所有基线检查的"参照原点"。当某台机器的输出与快照不一致时,差异本身就是排查线索。下一阶段,我们将从威胁模型出发,明确 EPYC 平台到底要防谁、防什么,从而让基线项有明确的取舍依据。