Skitter-Creek-Bath-Salts: manipulación de la traducción DRAM para destapar regiones ocultas del procesador

Fuentes: Skitter-Creek-Bath-Salts: rewriting DRAM translations to unlock hidden CPU regions

El proyecto de código abierto skitter-creek-bath-salts, alojado en GitHub, demuestra cómo reescribir los registros de traducción del controlador de memoria DRAM permite eludir capas de protección del procesador como el Platform Security Processor (PSP) de AMD, el modo de gestión del sistema (SMM), el microcode y los estados de bajo consumo C6. La técnica aprovecha que las direcciones físicas son, en la práctica, una sugerencia: un solo cambio de bit en el bank-swizzle-mode del controlador DRAM basta para que los datos apunten a coordenadas de memoria distintas sin que el núcleo, el firmware ni el chipset lo detecten.

El repositorio, desarrollado y probado en CPUs AMD de la familia 16h —la última generación con documentación pública de los registros del controlador DRAM y sin bloqueo hardware—, expone que las generaciones 17h y posteriores ya no documentan esa información. Los autores sostienen que la lógica de las transformaciones es extrapolable a ARM, RISC-V y otras arquitecturas.

El proyecto funciona en el nivel más profundo de la jerarquía de memoria (capa MCT/DCT), donde una dirección física se reescribe por última vez en coordenadas DRAM antes de llegar al módulo DIMM. Como las vallas de seguridad del procesador custodian direcciones físicas y no coordenadas DRAM, alterarlas derriba los mecanismos construidos sobre ellas. El repositorio incluye guías para desbloquear el PSP, el SMM, la DRAM C6 y el microcode de la CPU, acompañadas de diagramas del recorrido de una dirección virtual hasta la celda DRAM.