4. BIOS与UEFI安全配置基线
在AMD EPYC服务器上,BIOS/UEFI固件是操作系统加载之前最先执行的代码,它决定了平台信任链的起点。如果固件层被篡改或配置失当,后续在操作系统内做的加固措施都可能被绕过。本节围绕Secure Boot、BIOS写保护、管理员密码策略、启动顺序锁定和固件更新策略五个方面,说明如何在EPYC平台上建立可落地的固件安全基线。
Secure Boot:从固件到OS的信任链
Secure Boot(安全启动)依赖UEFI规范定义的密钥体系,在EPYC平台上通常由AMD Platform Security Processor(PSP)参与固件验证。其核心是四类密钥:Platform Key(PK)代表平台所有者,Key Exchange Key(KEK)用于授权签名数据库更新,db存放允许启动的镜像签名,dbx存放已被吊销的签名。启动时固件逐级校验引导加载程序签名,校验失败则拒绝执行。
实际配置中,建议先确认当前状态,再决定是否替换为自签名密钥。以常见服务器管理接口为例,可通过Redfish读取Secure Boot状态:
GET /redfish/v1/Systems/1/SecureBoot
{
"SecureBootEnable": true,
"SecureBootCurrentBoot": "Enabled",
"SecureBootMode": "UserMode"
}
若返回SetupMode,说明PK尚未写入,此时可导入自签名证书。生产环境推荐使用企业自签PK/KEK,并将经过签名的引导程序与驱动加入db,同时把已知有漏洞的旧版引导程序哈希写入dbx。需要特别注意的是,一旦启用Secure Boot,未签名的内核模块或自定义引导程序将无法加载,必须在变更前完成签名或替换方案,否则服务器可能无法启动。
BIOS写保护与管理员密码策略
BIOS写保护用于阻止运行时对固件存储区的非法写入。EPYC平台通常提供两种机制:一是通过BIOS设置中的“Flash Write Protect”或“BIOS Lock”选项,将SPI闪存写使能信号锁定;二是利用芯片组提供的SMM保护,防止操作系统通过SMM接口修改固件。建议在完成所有固件配置后开启写保护,并在变更窗口内临时关闭,变更完成后立即恢复。
管理员密码策略需要区分两个层级:BIOS管理员密码(Admin Password)用于进入固件设置界面,开机密码(Power-On Password)用于阻止未授权启动。基线建议如下:管理员密码长度不少于12位,包含大小写字母、数字和符号;启用密码失败锁定,例如连续3次错误后锁定5分钟;禁止使用厂商默认密码或空密码。在批量部署场景中,可通过Redfish的Bios资源统一设置:
PATCH /redfish/v1/Systems/1/Bios/Settings
{
"Attributes": {
"AdminPassword": "********",
"PasswordLockout": "Enabled",
"PasswordLockoutThreshold": 3
}
}
需要强调的是,密码策略必须与带外管理(BMC)密码策略协同。很多入侵路径是先通过BMC获得控制权,再关闭BIOS写保护并刷入恶意固件。因此BMC应使用独立强密码,并启用双因素认证。
启动顺序锁定与固件更新策略
启动顺序锁定用于防止攻击者通过外部介质引导未授权系统。基线要求:将内置硬盘或NVMe设为第一启动项,禁用网络启动(PXE)或将其置于最后;禁用USB启动,或在需要时通过管理员密码临时启用;启用“Boot Order Lock”选项,使启动顺序在下次启动时不被修改。对于EPYC平台,还应在BIOS中确认“Secure Boot”与“Boot Order Lock”同时生效,避免只锁顺序不锁签名。
固件更新策略应遵循“可验证、可回滚、有记录”的原则。更新前,从AMD或服务器厂商官网获取对应EPYC型号的固件包,并核对SHA-256哈希与数字签名;更新时优先使用带外管理接口的固件更新功能,避免在操作系统内直接刷写;更新后重启并检查固件版本、Secure Boot状态和启动顺序是否保持。建议维护一份固件基线表,记录每个机型的目标版本、更新日期和校验值。例如:
| 机型 | BIOS目标版本 | BMC目标版本 | 校验方式 | 更新窗口 |
|---|---|---|---|---|
| EPYC 9004 双路 | 2.10 | 1.45 | SHA-256 + 签名 | 季度维护 |
| EPYC 7003 单路 | 1.80 | 1.32 | SHA-256 + 签名 | 季度维护 |
配置检查与验证
完成上述配置后,应通过以下方式验证基线是否生效:重启进入BIOS设置界面,确认Secure Boot为Enabled、Boot Order Lock为Enabled、USB启动为Disabled;使用dmidecode -t bios查看固件版本和发布日期;在操作系统内执行mokutil --sb-state确认Secure Boot处于启用状态;通过Redfish读取SecureBoot和Bios资源,核对关键属性与基线表一致。若发现某项被意外修改,应立即排查BMC访问日志和固件更新记录,确认是否存在未授权操作。
固件安全基线不是一次性工作,而是需要与变更管理、漏洞管理和审计流程结合的持续过程。只有把Secure Boot、写保护、密码策略、启动顺序锁定和更新策略作为一个整体来维护,才能确保EPYC平台从加电那一刻起就处于可信状态。