Intel x86 Root of Trust: pérdida de confianza



Imagen: shutterstock

Aquí llega el momento en que los arquitectos de sistemas, ingenieros y expertos en seguridad de Intel pueden haber temido más: se encontró un error en el área de memoria no escribible (ROM) del motor de gestión y seguridad convergente de Intel, y este error arroja dudas sobre Todos los esfuerzos de la compañía para crear la raíz de la confianza y la base de la seguridad en sus plataformas.

Y el punto aquí no es ni siquiera que los errores del firmware (firmware), que están "conectados" en la memoria integrada de Mask ROM de microprocesadores y conjuntos de chips, no pueden repararse, sino que el error encontrado destruye la cadena de confianza de toda la plataforma en su conjunto, permitiendo comprometer su base de hardware.

Los expertos de Positive Technologies encontraron un error de hardware en el hardware de Intel, así como un error en el firmware de Intel CSME, que se manifiesta en una etapa muy temprana de este subsistema, en su ROM de arranque (ROM de arranque). Se sabe que es Intel CSME el que proporciona la autenticación inicial de un sistema basado en chips Intel, descargando y verificando el resto del firmware de las plataformas modernas. Por ejemplo, Intel CSME, al interactuar con el microcódigo de la CPU, garantiza la autenticidad del firmware UEFI BIOS a través de la tecnología BootGuard. Además, Intel CSME descarga y verifica el firmware del Controlador de administración de energía, que controla el suministro de voltaje a cada unidad de hardware en chips Intel.

Pero lo que es más importante, es Intel CSME el responsable de la base criptográfica de dichas tecnologías de protección de hardware desarrolladas por Intel y utilizadas en todas partes, como DRM, fTPM e Intel Identity Protection. El firmware Intel CSME implementa un sistema de certificación remota para sistemas de confianza llamado EPID (Enhanced Privacy ID), que le permite identificar de forma única y anónima cada instancia específica de un sistema informático (computadora), encontrando muchas aplicaciones útiles, como proteger el contenido digital, garantizar la seguridad de las transacciones financieras, certificación de internet de las cosas. Además, el firmware Intel CSME tiene un módulo de software TPM que le permite usarlo para almacenar claves de cifrado sin un chip TPM adicional, que está lejos de cualquier computadora.

E Intel ha tratado de hacer que esta raíz de confianza sea lo más segura posible. El sistema de seguridad de las plataformas Intel está diseñado de tal manera que incluso un error de ejecución de código arbitrario en cualquiera de los módulos de firmware Intel CSME no conlleva el riesgo de perder la clave raíz de seguridad (también conocida como Chipset Key), sino que solo pone en peligro las funciones específicas de las cuales el módulo vulnerable es responsable cuando Esto le permite mitigar fácilmente el riesgo cambiando las claves de cifrado utilizando el mecanismo de número de versión seguro de SVN. Esto se demostró claramente en 2017, cuando se encontró un error de ejecución de código arbitrario en el módulo de firmware BringUP (bup), descrito en Intel SA-00086. Luego, Intel simplemente realizó la regeneración de claves al aumentar el SVN, y así evitó fácilmente el riesgo de comprometer las tecnologías basadas en EPID.

Pero desafortunadamente, no hay sistemas de seguridad perfectos y, como cualquier otro, la arquitectura de seguridad de Intel tiene su talón de Aquiles: ROM de arranque. Un error en la ROM en las primeras etapas de ejecución realmente le permite controlar el proceso de lectura de la clave del chipset y generar todas las demás claves de cifrado. Una de estas claves se usa para cifrar una matriz de datos de Blob de valores de control de integridad (ICVB). Con esta clave, puede falsificar el código de cualquiera de los módulos de firmware Intel CSME, y el sistema de autenticación no podrá reconocer la falsificación. Esto equivale a filtrar la clave privada de firma digital del firmware Intel CSME, pero para esta plataforma en particular.

Por el momento, la situación con EPID se ve mitigada por el hecho de que la clave del chipset se almacena dentro de la plataforma (en memoria OTP especial, memoria programable de una sola vez) en forma cifrada y para comprometer completamente la EPID, también es necesario extraer la clave de hardware en la que se almacena la clave del chipset, que está cifrada en almacenamiento especial SKS (almacenamiento de clave segura). Pero esta clave no es exclusiva de la plataforma, sino una para toda la generación de chipsets Intel. Y dado que un error encontrado en la ROM le permite interceptar la ejecución del código hasta bloquear el mecanismo de generación de la clave de hardware en SKS, y el error en la propia ROM no se puede solucionar, creemos que esto es solo una cuestión de tiempo, cuando se extraerá esta clave. Y luego vendrá el caos completo: se falsificará la identificación del hardware, se extraerá el contenido digital, se descifrará la información cifrada de los medios permanentes.
Por lo tanto, los expertos de Positive Technologies encontraron un error en la ROM de arranque Intel CSME en todos los conjuntos de chips y SoC de Intel lanzados actualmente, excepto Ice Point (décima generación de procesadores). Este error le permite extraer la clave del chipset, así como manipular parte de la clave de hardware y el proceso de su generación, sin permitir, sin embargo, en este momento obtener directamente su componente de hardware (cableado en SKS). Además, este error en ROM le permite organizar la ejecución de código arbitrario en el nivel de privilegio cero de Intel CSME.

Con más detalle describiremos los detalles técnicos en un libro blanco completo dedicado a este error, que planeamos publicar un poco más tarde. Cabe señalar que después de que nuestros especialistas se pusieron en contacto con Intel PSIRT con un informe sobre este error, Intel informó que el error ya era conocido ( CVE-2019-0090) Intel entiende que es imposible corregir un error en la ROM en equipos ya lanzados y, por lo tanto, simplemente bloquean todas las formas posibles de su funcionamiento. El parche para CVE-2019-0090 corrige solo uno de los posibles vectores de ataque, a través del concentrador de sensores integrado (Integrated Sensors Hub, ISH). Creemos que hay potencialmente muchas formas de explotar esta vulnerabilidad en la ROM. Algunos de ellos pueden requerir acceso local, algunos físicos. Para abrir ligeramente el velo del secreto, digamos algunas palabras sobre la vulnerabilidad en sí:

  1. , boot ROM: IOMMU MISA (Minute IA System Agent), SRAM ( ) Intel CSME DMA-, . , , .
  2. Intel CSME boot ROM (page directory), IOMMU. , , SRAM DMA- (DMA CSME, ) SRAM Intel CSME.
  3. Los parámetros de MISA IOMMU se restablecen cuando se realiza el restablecimiento para Intel CSME, que después del restablecimiento comienza la ejecución nuevamente desde la ROM de arranque.

Por lo tanto, cualquier dispositivo de plataforma que pueda realizar transacciones DMA en la memoria estática Intel CSME y al mismo tiempo reiniciar Intel CSME (o simplemente esperar que Intel CSME se active) puede modificar las tablas del sistema de las páginas Intel CSME y, por lo tanto, interceptar ejecución.

Publicado por Mark Ermolov, Especialista líder, Tecnologías de SO y Soluciones de hardware, Tecnologías positivas.

All Articles