IOMMU 是否防止 DMA 攻击?

信息安全 dma 攻击
2021-08-26 04:30:58

IOMMU 实际上做了什么,它管理设备的内存访问,就像 MMU 对进程所做的那样,还是更简化的事情并且不提供虚拟化/访问控制?

所以基本上我的问题是:IOMMU 是否减轻了 DMA 攻击?

1个回答

这是一个低级程序员的观点:是的,IOMMU 可以缓解 DMA 攻击。IOMMU 确定 RAM 设备的哪一部分可以访问。如果 IOMMU 不允许设备映射内存的特定部分,则该部分内存不会受到来自或通过该设备的直接攻击。

在实践中,有效利用 IOMMU 可能很困难。根据机器架构的不同,IOMMU 的灵活性可能比 MMU 更小,粒度更粗,因此操作系统无法始终实现最优的安全策略。设备可以在同一总线上多路复用,这样具有不同要求和不同信任级别的不同设备具有共同的 IOMMU 配置,需要妥协。

因此,拥有 IOMMU 会有所帮助,但这并不是一种自动防御。而且,实际上从系统管理员的角度来看,拥有 IOMMU 是不够的,重要的是操作系统如何配置它。