除了标题中的问题外,我还想补充以下问题:
如果这是可能的话,这是否意味着仅仅将受感染的PCIe声卡插入到几乎任何一台PC上,它可能已经被破坏了,尽管IOMMU已经启用和正确的配置了,例如在BIOS中实际设置它并在Linux中设置intel_iommu=on/amd_iommu=on?这是假设其他一切都是干净的,除了声卡。
发布于 2018-12-21 09:58:28
IOMMU将不会对此进行保护,除非与测量的启动相结合。虽然IOMMU将保护不受恶意DMA,但这只适用于它已经初始化。特别是,由于启用测量引导是必要的,因此需要一个TPM。有两种可测量的引导,称为SRTM和DRTM。前者在系统启动时测量固件一次,而后者在运行时测量一部分软件。为了免受早期DMA攻击的影响,有必要使用DRTM,而不是仅仅使用SRTM进行测量。这通常需要手动配置。
由于IOMMU配置表(DMAR)是在未受保护的内存区域中初始化的,因此在早期引导期间该IOMMU易受攻击。在加载配置和启用IOMMU之间的短时间内,恶意设备可能会修改它们,从而使它应该提供的保护无效。在一篇关于绕过IOMMU保护的研究论文中解释了这一点。
如果您使用已安装的恶意或已损坏的PCIe卡启动系统,则只有这样做才有风险。如果在系统打开时插入一个插件,或者在系统打开时插入现有卡(例如通过JTAG),则适当配置的IOMMU应足以防止设备发出恶意DMA请求。这需要功能DMA重定向表,即DMAR,它是与BIOS一起包含的ACPI表。如果DMAR出现故障,这通常是某些笔记本的情况,系统可能无法在通过intel_iommu=on或amd_iommu=force启用IOMMU的情况下正确启动。
https://security.stackexchange.com/questions/200173
复制相似问题