如何删除来宾虚拟机使用 RDRAND 指令的能力?

how to remove the ability of a guest VM to utilize the RDRAND instruction?

如果管理程序希望删除来宾 VM 使用 RDRAND指令,必须经过哪些步骤才能实现

是的,Intel VMX 硬件虚拟化有硬件支持 rdrandrdseed 到 VM 退出。

例如,参见 discussion on the Linux kernel mailing list 关于修补 KVM(内置于 Linux 的管理程序):

A guest may not be configured to support RDSEED, even when the host does. If the guest does not support RDSEED, intercept the instruction and synthesize #UD. Also clear the "allowed-1" bit for RDSEED exiting in the IA32_VMX_PROCBASED_CTLS2 MSR.

相关的 VMX 控件是 SECONDARY_EXEC_RDRAND_EXITINGSECONDARY_EXEC_RDSEED_EXITING。 (请参阅 this patch that renamed them in the KVM source code to match what Intel calls them in their x86 Software Development Manuals (SDM),您应该在其中找到有关如何对 VMX 进行编程以执行所需操作的更多详细信息。)

我只是使用了指向 KVM 内容的链接,因为它是 Google 上最先出现的内容,当时我正在检查是否有对此的硬件支持。