Analyse de l'efficacité du service fourni par une IOMMUEric Lacombe,Fernand Lone Sang,Vincent Nicomette,Yves Deswarte

Aujourd'hui, il est difficile d'assurer la protection d'un noyau de système d'exploitation. Les attaques visant à le corrompre peuvent provenir de sources diverses. La plupart utilisent le processeur comme vecteur d'accès à la mémoire du noyau. Cependant, depuis un certain nombre d'années, nous voyons apparaître des attaques impliquant des périphériques, en particulier depuis le bus FireWire. Pour se protéger de ces derniers, une IOMMU est nécéssaire. C'est un composant matériel permettant à un système d'exploitation de contrôler l'accès des périphériques à la mémoire principale. Cet article s'intéresse à la robustesse des services fournis par une IOMMU vis-à-vis des attaques DMA. Nous rappelons, pour commencer, l'intérêt d'embarquer une IOMMU dans les chipsets actuels pour protéger le noyau du système d'exploitation. Ensuite, nous concentrons notre attention sur la technologie Intel VT-d qui implémente une IOMMU. Nous analysons l'efficacité du service qu'elle fournit puis nous détaillons la mise en oeuvre qui en est faite sous Linux. Cela nous amène à identifier quelques faiblesses dans cette technologie. Nous détaillons une de ces faiblesses que nous illustrons par une preuve de concept. Enfin, nous formulons quelques recommandations permettant d'empêcher son exploitation.