Un nuevo ataque de canal lateral llamado «GoFetch» afecta a los procesadores Apple M1, M2 y M3 y puede usarse para robar claves criptográficas secretas de los datos en el caché de la CPU según informó en el mes de marzo Bleeping Computer.
El ataque se dirige a implementaciones criptográficas de tiempo constante que utilizan captadores previos dependientes de la memoria de datos (DMP) que se encuentran en las nuevas CPU de Apple. Esto le permite recrear las claves criptográficas privadas para varios algoritmos, incluidos OpenSSL Diffie-Hellman, Go RSA, CRYSTALS Kyber y Dilithium desde la memoria caché de la CPU.
GoFetch fue desarrollado por un equipo de siete investigadores de varias universidades de EE. UU., quienes informaron sus hallazgos a Apple el 5 de diciembre de 2023.
Sin embargo, como se trata de una vulnerabilidad basada en hardware, no hay forma de solucionarla en las CPU afectadas. Si bien sería posible mitigar las fallas mediante correcciones de software, esto afectaría el rendimiento de las funciones criptográficas de estas CPU.
Detalles de GoFetch
El ataque GoFetch tiene como objetivo los captadores previos dependientes de la memoria de datos, una característica de la CPU diseñada para mejorar el rendimiento de la computadora al ejecutar código.
Un captador previo se entrena mediante accesos previos a la memoria al recuperar datos, lo que le permite predecir qué datos necesitará la computadora a continuación. Luego, estos datos se recuperan por adelantado de partes más lentas de la memoria a regiones de memoria más rápidas, como la memoria caché de la CPU.
Si la predicción es precisa, los datos ahora están disponibles rápidamente, lo que aumenta el rendimiento de la computadora. Si la suposición es incorrecta, la CPU simplemente solicita los datos correctos como de costumbre.
El ataque GoFetch se centra en un captador previo más nuevo llamado captador previo dependiente de la memoria de datos (DMP). Este captador previo también se puede entrenar en el acceso previo a la memoria, pero también puede examinar los valores de datos en la memoria para determinar qué se debe captar previamente en el caché.
DMP está disponible en los chips de silicio de Apple y en las CPU Raptor Lake de 13.ª generación de Intel. Sin embargo, los investigadores dicen que la implementación de Intel es más restrictiva y previene el ataque.
El ataque se centra en implementaciones criptográficas que tardan la misma cantidad de tiempo en ejecutarse independientemente de la entrada (tiempo constante), lo cual es una medida de seguridad para evitar fugas de datos confidenciales.
Específicamente, los investigadores encontraron una falla en la implementación del sistema DMP por parte de Apple que viola las buenas prácticas de tiempo constante.
«Hicimos ingeniería inversa de DMP en CPU de la serie m de Apple y descubrimos que el DMP activa (e intenta desreferenciar) datos cargados desde la memoria que» parece «un puntero», se lee en el resumen del ataque .
«Esto viola explícitamente un requisito del paradigma de programación de tiempo constante, que prohíbe mezclar datos y patrones de acceso a la memoria».
Los atacantes pueden crear entradas especiales que hacen que el captador previo elimine la referencia de datos, que aparecerán como punteros si ciertos bits de la clave secreta se adivinan correctamente.
A continuación, observan si DMP se activa o no, infiriendo gradualmente fragmentos de la clave secreta. Con suficientes repeticiones del proceso, se puede reconstruir toda la clave criptográfica secreta.
Los investigadores confirmaron que los procesadores M1 son susceptibles a este esquema y, considerando que M2 y M3 tienen un comportamiento de captación previa similar, es probable que también sean vulnerables.
Se pueden encontrar más detalles sobre el ataque GoFetch en el artículo técnico publicado por los investigadores, y más adelante se lanzará una prueba de concepto de exploit.
¿Qué deberíamos hacer los propietarios de un equipo con procesador Apple Silicon?
Desafortunadamente, como la debilidad es parte de la implementación del captador previo de datos dependiente de la memoria integrado directamente en las CPU de Apple, no hay forma de mitigar el ataque con una solución de hardware.
Los investigadores dicen que es posible desactivar DMP en algunas CPU, como la M3, eliminando el comportamiento de captación previa en el que se basa GoFetch. Sin embargo, esto no es posible en M1 y M2.
Otras medidas de defensa para los desarrolladores incluyen el cegamiento de entradas y el enmascaramiento de activación de DMP, que ofuscan los resultados de las entradas del atacante en el nivel de DMP.
Si bien Apple podría introducir mitigaciones en macOS como un parche de software, causaría problemas de rendimiento, como vimos en correcciones de software anteriores para ataques de canal lateral.
Como usuario de Apple, no hay mucho que pueda hacer aparte de practicar hábitos informáticos seguros. Eso significa actualizar periódicamente su sistema operativo y software e instalar únicamente software de canales oficiales y fuentes confiables para evitar infecciones de malware.
El ataque GoFetch no requiere acceso físico para su explotación, por lo que si el atacante puede ejecutar código en la máquina de destino, por ejemplo, a través de una infección de malware, puede ejecutarlo de forma remota.
Bleeping Computer se puso en contacto con Apple para solicitar un comentario sobre el peligro de GoFetch y si planea implementar actualizaciones de seguridad, pero un portavoz se limitó a compartir la página de Apple Developer que describe una mitigación.