Las tablas ACPI contienen ACPI Machine Language , o AML, que es ejecutado por un intérprete en el núcleo en el arranque. Ciertas tablas ACPI, como el DSDT, son necesarias para admitir eventos de hardware ACPI como reanudar un sistema suspendido. Para acceder a estas tablas, que se almacenan en la memoria flash del BIOS, el núcleo las asigna a la memoria, lo que hace que cualquier acceso a las tablas se vuelva a leer desde el chip flash real cada vez que se produce el acceso. Esto significa que un atacante que modifica el contenido flash del BIOS mientras se está ejecutando un sistema puede activar la carga útil desencadenando un evento ACPI, lo que hace que la AML DSDT maliciosa recién modificada se vuelva a leer desde el flash y se ejecute.
Sé muy poco sobre ACPI, pero este siempre ha sido mi entendimiento. Mis preguntas:
-
¿Estoy seguro de que una tabla ACPI modificada en tiempo de ejecución se ejecutará durante ciertos eventos ACPI?
-
Si esto es cierto, ¿qué eventos específicos pueden desencadenar esto (reanudación, hotplugs, etc.)?
-
¿Qué tablas se releen desde flash? ¿Es sólo el DSDT? El SSDT? ¿Es específico del sistema?
Esto es relevante porque, si mi entendimiento es correcto, permitiría a un atacante que pueda modificar el flash del BIOS evitar la protección TPM SRTM en tiempo de ejecución, incluso si el CRTM es de solo lectura correctamente.