【问题标题】:Does the VMX mode have the capability to detect previously non-trappable sensitive instructions?VMX 模式是否有能力检测以前不可捕获的敏感指令?
【发布时间】:2018-03-19 12:29:57
【问题描述】:

VMX 模式是否为虚拟化系统架构师提供了检测以前无法捕获的敏感指令的能力?

【问题讨论】:

  • 你的意思是像CPUID?我想是的。

标签: x86 intel cpu-architecture processor


【解决方案1】:

不,不是在所有情况下。相反,VMX 模式会改变其中一些指令的行为,使其不敏感。

以下是几个敏感指令在 VMX 非 root 模式下的行为示例:

  • SMSW:在 VMX 模式下它不会捕获,但它会替代 VMM 为某些位的实际值指定的值。
  • POPF:指令的行为没有改变,但控制 中断可以被 VMCS 中的控件覆盖,以防止 访客更改为 IF 不会影响 VMM 或其他访客。

此参考在第 28 页上有一个敏感 x86 指令列表:https://www.cs.cmu.edu/~410-s14/lectures/L30_Virtualization.pdf。 Intel SDM 第 3 卷第 25 章详细描述了每条指令的行为变化。

【讨论】:

    【解决方案2】:

    我会说是的。根据this Virtualization and Virtual Machines presentation 的第 13 至 17 页,硬件虚拟化似乎是解决该问题的一种尝试。

    pdf @prl posted 在幻灯片 45 上还说:

    如果客户内核运行敏感指令,硬件会向 VMM 执行“VM 退出”,指示被捕获的指令

    【讨论】:

    • @pleft:对我来说似乎很好。这篇文章并不是说“在这个地址寻找答案”,它确实提供了对所问问题的直接答案。奇怪的是,它甚至包括所提供链接中的重要部分。
    • 是的,硬件虚拟化就是专门解决这个问题的,但它并没有通过捕获所有敏感指令来解决这个问题,如我回答中的示例所示。
    • 我引用的幻灯片集是一个概述,而不是精确的描述或规范。
    猜你喜欢
    • 2017-07-24
    • 1970-01-01
    • 2014-09-28
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2013-07-09
    相关资源
    最近更新 更多