ACPI et routine de traitement de la SMI: des limites à l'informatique de confiance?Loic Duflot

Un certain nombre d'initiatives internationales visent à promouvoir des plates-formes dites de confiance sur lesquelles un minimum de composants (processeur, chipset, moniteur de machines virtuelles) est maîtrisé, le reste des composants étant doté de privilèges réduits qui ne leur permettent pas d'effectuer des opérations critiques au plan de la sécurité. En particulier, les initiatives Intel TxT et AMD Presidio visent à exclure le BIOS de cet ensemble maîtrisé. C'est pourtant le BIOS qui fournit la routine de traitement de la SMI et les tables ACPI, des primitives en charge de la configuration et de l'alimentation de la plate-forme, auxquelles la zone maîtrisée doit faire confiance pour fonctionner. Dans cet article, nous étudions dans quelle mesure il est raisonnable de faire confiance à ces deux composants. Nous verrons en particulier que, malgré les mesures de protection mises en oeuvre, il est possible à un attaquant de leur ajouter des fonctions cachées, à des fins d'escalade de privilèges. La contribution principale de ce papier est de proposer un mécanisme novateur pour modifier la routine de traitement de la SMI, et de décrire comment implémenter des fonctions cachées intégrées dans une table ACPI dont l'exécution sera déclenchée par un stimulus externe (dans notre exemple, lorsque l'attaquant débranchera deux fois consécutivement le câble d'alimentation d'une machine portable).