Aislamiento en microcontroladores ARM Cortex-M3: un supervisor ligero para la Blue Pill

Fuentes: Experiments with isolation on Blue Pill

Este artículo describe la construcción de un supervisor minimalista para una placa Blue Pill basada en el microcontrolador ARM Cortex-M3, un chip que carece de TrustZone, MMU y otras primitivas de virtualización propias de procesadores de escritorio. El objetivo es proporcionar aislamiento entre un firmware de confianza y aplicaciones cargadas en tiempo de ejecución, en un entorno donde las técnicas habituales de hipervisor no están disponibles. Para ello se aprovechan las únicas primitivas de protección del hardware: la MPU regional de hasta 8 zonas, los modos de ejecución privilegiado y no privilegiado, los dos punteros de pila (MSP y PSP) y la instrucción SVC como única vía de retorno al código privilegiado. La arquitectura resultante divide el sistema en dos bloques sellados por la MPU: un bootloader-supervisor que arranca primero, configura la MPU, posee la tabla de vectores, el watchdog y todo el hardware, y entrega el control a una aplicación que ejecuta sin privilegios en su propia región de flash y RAM, con acceso únicamente a los periféricos declarados en un manifiesto firmado en tiempo de compilación. El supervisor monitoriza la salud de la aplicación mediante un watchdog independiente y depura el contexto ante comportamiento anómalo. El modelo resulta eficaz frente a aplicaciones que se corrompen o que intentan acceder a periféricos no autorizados, pero no protege contra bypasses de DMA, ataques físicos ni inyecciones de fallo, que requieren contramedidas adicionales.