Ecco un punto di vista del programmatore di basso livello: sì, un IOMMU può mitigare gli attacchi DMA. L'IOMMU determina a quale parte dei dispositivi RAM può accedere. Se IOMMU non consente a un dispositivo di mappare una particolare parte della memoria, allora quella parte della memoria è immune agli attacchi diretti da o attraverso questo dispositivo.
In pratica, fare leva efficacemente sull'IOMMU può essere difficile. A seconda dell'architettura della macchina, l'IOMMU può avere meno flessibilità e una granularità più grossolana della MMU, in modo che il sistema operativo non possa sempre implementare la politica di sicurezza ottimale. I dispositivi possono essere multiplexati sullo stesso bus in modo tale che diversi dispositivi con requisiti diversi e diversi livelli di affidabilità abbiano una configurazione IOMMU comune, che richiede compromessi.
Quindi avere un IOMMU aiuta, ma non è una difesa automatica. E, in termini pratici dal punto di vista dell'amministratore di sistema, avere un IOMMU non è sufficiente, ciò che importa è come il sistema operativo lo configura.