作为VirtualBox的长期用户,最近购买了一台配备英特尔i7 720QM的新笔记本电脑,我发现它支持vt-d。
与此同时,我发现 vt-d 带有TXT,这是对 i386 架构的一种硬件安全附加。我有两个问题:
- 为什么 vt-d 与 TXT 耦合?
- TXT 如何增强安全性?
作为VirtualBox的长期用户,最近购买了一台配备英特尔i7 720QM的新笔记本电脑,我发现它支持vt-d。
与此同时,我发现 vt-d 带有TXT,这是对 i386 架构的一种硬件安全附加。我有两个问题:
可信执行技术与现代英特尔芯片组上可用的一系列安全功能相结合。受信任的平台模块 (TPM) 和其他类似 DRM 的功能也包含在此捆绑包中。这背后的原因是由于抽象,这通常归因于软件架构。所有这些功能背后的共同点是限制软件的访问权限,因为它们将共享复杂性,因此它们变得耦合。
这就引出了下一个问题How does TXT enhance security?
TXT 的一个非常重要的特性是隔离来宾虚拟机使用的内存。如果来宾 vm 有一个恶意内核试图访问主机或另一个来宾拥有的内存怎么办?TXT 是防止这种情况发生的非常有效的方法。纯软件虚拟机也有这个重要的特性,但是开销更大。TXT 还可以控制谁可以访问鼠标/键盘和大容量存储设备等硬件外围设备。
来自Joanna Rutkowska 的博客:(我承认我在这里滑到了我理解的边缘......)
当您使用 TXT 加载管理程序时,SENTER 指令将首先在管理程序映像周围应用 VT-d 保护,然后进行测量,然后才加载它,而 VT-d 保护仍然存在。
还有她更完整的解释:
...让我们做以下假设:
1)OS/VMM 正确使用 IOMMU 来隔离网卡
2)一旦攻击者控制了 NIC 固件,攻击者还可以修改持久存储(EEPROM),其中保留此固件。Loic 在私人电子邮件交流中证实了这一点。
3) 系统通过SRTM 实现可信启动,即只使用BIOS 和TPM,不使用Intel TXT。现在,攻击者可以修改 EEPROM 中的固件,这将使攻击者能够在平台重启后存活下来。卡的固件将在启动过程的早期开始执行,绝对是在 OS/VMM 加载之前。现在,受感染的 NIC,因为它能够对主机内存进行 DMA,可以在 VMM 的映像被(受信任的)操作系统加载程序(例如受信任的 GRUB)测量和加载之间的短时间内破坏 VMM 的映像,但还是在 VMM 有机会为自己设置适当的 IOMMU/VT-d 保护之前。
因为它需要隔离以确保测量值不会被任何东西(例如启用 DMA 的设备)操纵(TOCTOU类型的攻击)。
如果您愿意,您可以将其视为 I/O 和中断的防火墙 - 显然,它不是,但您明白了。VT-d 只是英特尔用来描述他们的IOMMU的术语。AMD 称之为 AMD-Vi。这个单元的作用是控制设备内存访问(DMA)和中断重映射。
我必须描述它的最佳方式是使用 PCI 直通示例。这是我的 - 简单化 - 解释:
如果您将启用 DMA 的设备专用于特定的虚拟机,比如说您的网卡,那么在没有适当的 VT-d 保护的情况下,该虚拟机将可以访问完整的主机内存。VM 将能够通过网卡 DMA 的视图突破 VM 容器。回想一下,DMA 提供直接和完整的内存访问(这包括主机/vmm 内存)。如果正确实现了 VT-d,则网卡将只能访问分配给它的 VM 内存,而没有其他权限。是的,如果这有帮助的话,某种 I/O 防火墙。
TXT 将仅使用 VT-d 围绕它需要评估的内容构建隔离:测量代码,将这些测量值发送到一些 TPM 保护寄存器 (PCR) 以供以后使用,例如远程证明、开封操作。
有关 VT-d 的更多信息,请参阅此内容。
第二个问题非常棘手,因为 TXT 带来了新的安全功能(见下文),而不是安全本身。根据这些功能的使用方式,可以以不同的方式创建安全性——这取决于我们的想象力。PrivateCore vCage就是一个很好的例子。
有关 TXT 的更多信息,请参阅本文。