皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

AMD 为 Linux 内核新增 ESMTP 增强SMT防护,强化EPYC虚拟机安全隔离

AMD 工程师今日向Linux内核邮件列表提交补丁系列,正式启动‌增强型SMT防护(ESMTP)‌功能的上游适配工作,为搭载SEV-SNP加密虚拟化技术的EPYC服务器平台虚拟机提供更强的安全隔离能力。

这是ESMTP特性首次在Linux内核邮件列表公开亮相。回溯信息显示,AMD官网今年早些时候就已发布ESMTP技术白皮书,但当时并未引发行业广泛关注。结合本次内核适配的时间节点判断,ESMTP是AMD第六代EPYC 9006 “Venice”系列服务器处理器的专属硬件安全特性。

Linux内核中现有的核心调度机制,仅能通过软件调度策略保障同一物理核心的两个SMT兄弟线程归属同一台虚拟机;而ESMTP作为硬件级防护机制,可直接在硬件层面强制约束:SMT兄弟线程要么处于主机模式空闲状态,要么仅运行同一客户机的虚拟CPU。该特性的核心目标,就是缓解近年围绕同步多线程(SMT,对应Intel超线程技术)暴露的各类侧信道攻击风险。

AMD 为 Linux 内核新增 ESMTP 增强SMT防护,强化EPYC虚拟机安全隔离
今日提交的内核补丁系列对增强型SMT防护的核心定义如下:

增强型SMT防护(ESMTP)允许启用SEV-SNP的虚拟机强制约束:当该虚拟机的任意一个vCPU处于客户机运行态时,对应物理核心上的所有SMT兄弟线程,要么处于主机模式空闲状态,要么仅运行该虚拟机自身声明为合法兄弟线程的vCPU。该机制可彻底消除与不可信主机线程、其他客户机共享核心资源带来的侧信道攻击风险。

与通过内核调度令牌实现共驻策略的软件核心调度不同,ESMTP是由硬件强制生效的安全规则:对应的兄弟线程掩码直接存储在虚拟机控制块VMSA中。当ESMTP保护的vCPU在该物理核心上处于活跃状态时,主机侧完全无法在兄弟线程上运行任意内核态、用户态或中断处理任务。

KVM与客户机系统会共同完成VCPU_SIBLING_MASK的配置,将该虚拟机的所有vCPU划入同一安全组,组内任意两个vCPU可合法共驻在同一物理核心。结合ASID地址空间标识校验机制,处于客户机运行态的vCPU对应的兄弟线程,将始终只能是同一虚拟机的其他vCPU,或是处于主机模式的空闲线程。

除Linux内核补丁外,ESMTP的完整上游适配还需要同步提交QEMU与OVMF的配套补丁。该特性仅在开启SEV-SNP安全加密虚拟化功能时才可使用。

需要特别说明的是,ESMTP会带来一定性能开销,因此默认不会启用,仅面向对SMT兄弟线程安全有强需求的场景开放,比如公有云部署、运行不可信工作负载的环境:

ESMTP采用用户主动选择启用的模式,因为该机制会引入性能损耗:VMRUN虚拟机运行指令会主动等待,直到对应兄弟线程运行受信任的vCPU任务,或是进入主机空闲状态。

AMD公开的ESMTP技术白皮书篇幅很短,仅对应两项核心逻辑补丁。结合现有信息判断,该特性将作为AMD EPYC 9006系列服务器处理器的专属硬件安全能力正式落地。

转自 AMD Preparing Linux For Enhanced SMT Protection “ESMTP” For EPYC VMs – Phoronix