Description
Mais qu’est donc l’IOMMU ? Input/Output Memory Management Unit en français, Unité de Gestion des Entrées/Sorties en Mémoire
C’est une sorte de pare-feu matériel, pour les ports PCI, et VGA.
Architectures concernées
- Intel - dont l’option VT-d doit être activée dans le BIOS, ainsi que sa prise-en-charge dans le kernel.
- AMD a aussi son propre mode AMD-V pour I/O Virtualization Technology, ou SVM , ainsi que GART pour gérer les cartes AGP, et fonctionnels avec les CPU AMD Opteron, AMD Athlon 64, AMD Turion 64…
- IBM a la sienne : Calgary PCI-X
- ARM a sa propre unité appelée SSMU
- XenServer a sa propre fonction “PCI passthrough” ou l’équivalent pour les cartes VGA, à savoir “VGA passthrough” …
Configuration
Hormis le fait de posséder l’une des architectures sus-nommées, il vous faut avoir à minima un kernel Linux 2.6…
activez l’option dans le BIOS de votre machine !
Vous pouvez forcer son usage, ce qui est recommandé, en éditant votre fichier :
/etc/defaut/grub
/boot/grub/menu.lst
- et en ajoutant l’option
iommu=force
sur la ligneGRUB_CMDLINE_LINUX
…
Mettez à jour grub
!
Documentation
⇒ Un très bon document a été écrit pour le SSTIC en 2010, à ce propos en disant de celle-ci :
Ce document nommé “Analyse de l’efficacité du service fourni par une IOMMU” décrit comment cette unité de gestion matérielle interagit avec le système GNU/Linux, et comment malheureusement il est possible de la “leurrer” pour mener des attaques réseaux, par exemple, à partir d’une interface Firewire, mais aussi mène à réfléchir sur son bon usage.
=> Un autre document démontrant une attaque possible par le biais d’une interface FPGA sur PCI-E.
=> Une troisième source d’informations intéressantes : Le “NP Linux Configuration” !
Wikipedia
- List_of_IOMMU-supporting_hardware WP : liste de matériels gérant IOMMU.