Microcode Decryptor, una herramienta que permite decodificar el microcódigo de procesadores Intel

julio 27, 2022 , 0 Comments

Un grupo de investigadores de seguridad del equipo de uCode dieron a conocer la liberación del código fuente del proyecto «Microcode Decryptor» y que permite hacer exactamente lo que sugiere el nombre: es una herramienta, que consta de tres scripts de Python y está disponible en GitHub.

Microcode Decryptor permite decodificar el microcódigo de algunos procesadores Intel como Atom, Pentium y Celeron basado en microarquitecturas Goldmont y Goldmont Plus, lo que abre la puerta a diferentes escenarios, como comprender cómo Intel ha implementado ciertas funciones del procesador o ha implementado varias funciones y arreglos de seguridad.

La técnica Red Unlock desarrollada por los mismos investigadores en 2020 se puede utilizar para extraer el microcódigo cifrado. La posibilidad propuesta de descifrar el microcódigo permite explorar la estructura interna del microcódigo y los métodos para implementar instrucciones de máquina x86. Además, los investigadores recuperaron el formato de actualización del firmware, el algoritmo de cifrado y la clave utilizada para proteger el microcódigo (RC4).

Para determinar qué clave de cifrado usar, se utilizó una vulnerabilidad en Intel TXE para habilitar un modo de depuración no documentado, cuyo nombre en código es «Red Unlock» por los investigadores. En el modo de depuración, logramos cargar un volcado con un microcódigo en funcionamiento directamente desde la CPU y extraer el algoritmo y las claves de él.

Microcode Decryptor solo permite descifrar el microcódigo, pero no permite cambiarlo, ya que la integridad del microcódigo se verifica adicionalmente mediante una firma digital basada en el algoritmo RSA.

En cuanto al cómo fue posible el desarrollo de Microcode Decryptor, mencionan que se produjo hace tres años cuando Goryachy y Ermolov encontraron una vulnerabilidad crítica, indexada como Intel SA-00086, que les permitía ejecutar el código de su elección dentro del núcleo independiente de chips que incluía un subsistema conocido como Intel Management Engine.

Intel solucionó el error y lanzó un parche, pero debido a que los chips siempre se pueden revertir a una versión de firmware anterior y luego explotar, no hay forma de eliminar la vulnerabilidad de manera efectiva.

Posterior a ello (hace cinco mese), el trío de científicos pudo usar la vulnerabilidad para acceder a un modo de servicio integrado en los chips Intel, en un guiño a la película The Matrix, los investigadores llamaron a su herramienta para acceder a este depurador previamente indocumentado Chip Red Pill, porque permite a los investigadores experimentar el funcionamiento interno de un chip que generalmente está fuera de los límites.

Un portavoz de Intel dijo que:

«no debería haber ningún riesgo de seguridad» como resultado de la disponibilidad de la herramienta. De hecho, la compañía dijo que permitir que más personas revisen el microcódigo de Intel podría ayudar al fabricante de chips a identificar más vulnerabilidades en el futuro. Para cualquiera que tenga éxito en hacerlo, eso significa potencialmente ganar algo de dinero a través del programa de recompensas por errores de Intel.

«La capacidad de los investigadores para analizar el microcódigo podría permitir el descubrimiento de nuevas vulnerabilidades. Dado que este microcódigo ha sido expuesto, Intel invita a los investigadores a participar en el programa de recompensas por errores de microcódigo en caso de que se descubra algún problema», nos dijeron.

Por su parte los desarrolladores de esta herramienta comentaron que

«la oportunidad de leer el microcódigo de la CPU podría ayudar a comprender cómo Intel implementó tecnologías como Intel Trusted Execution Technology ( TXT ) o mitigó vulnerabilidades graves como Meltdown y Spectre.»

Yermolov, uno de los otros científicos, agregó que la disponibilidad de la herramienta significa que las personas ahora pueden explorar XuCode, una variante de código x86 en modo de 64 bits utilizada para implementar partes de Intel SGX que se descarga como una actualización de microcódigo. SGX es la tecnología de Intel para crear enclaves de memoria seguros: estas son áreas protegidas en las que otros programas y usuarios, incluso el sistema operativo o el hipervisor, no pueden interferir.

XuCode es bastante interesante: las instrucciones específicas de x86 para administrar enclaves SGX son tan complejas que se dividen en secuencias de instrucciones XuCode que realizan las operaciones necesarias.

Estas instrucciones de XuCode son estándar para la arquitectura x86 de 64 bits con algunas extensiones y el procesador las divide en microoperaciones x86 regulares. Cuando una aplicación usa una instrucción SGX de alto nivel, el procesador puede saltar a su XuCode para trabajar.

Estas secuencias de XuCode se almacenan en microcódigo y ahora se pueden extraer con los scripts de Python anteriores y analizarse con kits de ingeniería inversa x86 estándar.

Finalmente si estás interesado en poder conocer más al respecto sobre la herramienta, puedes consultar los detalles en el siguiente enlace.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.