Un reciente descubrimiento revela una nueva vulnerabilidad de seguridad en los chips de la serie M de Apple, conocida como "GoFetch", que permite la extracción de claves secretas utilizadas en operaciones criptográficas. Esta vulnerabilidad aprovecha un tipo de ataque side-channel microarquitectónico que se dirige específicamente a implementaciones criptográficas de tiempo constante. Investigadores informaron a Apple sobre este problema en diciembre de 2023.
Los prefetchers son una técnica de optimización de hardware que anticipa las direcciones de memoria que un programa utilizará, trayendo esos datos a la caché correspondiente para reducir la latencia de acceso a la memoria del programa. El "data memory-dependent prefetcher" (DMP) es un tipo de prefetcher que se basa en patrones de acceso previamente observados para determinar qué datos prefetcheados realizar. Sin embargo, esta función lo vuelve vulnerable a ataques basados en la caché, permitiendo la captura de datos sensibles desde la caché de la CPU.
GoFetch se basa en el principio de otro ataque microarquitectónico conocido como "Augury", que emplea el DMP para filtrar datos.
Un equipo de académicos de varias universidades explicó que el DMP activa y desreferencia datos cargados desde la memoria que parecen un puntero, violando un requisito del paradigma de programación de tiempo constante que prohíbe mezclar datos y patrones de acceso a la memoria.
Este tipo de ataque requiere que tanto la víctima como el atacante ejecuten dos procesos diferentes en la misma máquina y en el mismo clúster de CPU. Aunque el atacante y la víctima no compartan memoria, el atacante puede monitorear cualquier canal lateral microarquitectónico disponible, como la latencia de la caché.
En resumen, GoFetch demuestra que incluso si una víctima separa correctamente los datos de las direcciones siguiendo el paradigma de tiempo constante, el DMP generará acceso a la memoria dependiente del secreto en nombre de la víctima, lo que la hace vulnerable a ataques de extracción de claves.
Los investigadores destacaron que este defecto fundamental no puede corregirse en las CPU de Apple existentes, lo que requiere que los desarrolladores de bibliotecas criptográficas tomen medidas para prevenir condiciones que permitan el éxito de GoFetch, aunque esto podría afectar el rendimiento. Se recomienda a los usuarios mantener sus sistemas actualizados.
En los chips M3 de Apple, la activación del timing independiente de datos (DIT) ha demostrado desactivar el DMP, aunque esto no es posible en los procesadores M1 y M2. Apple ha destacado la importancia de que los desarrolladores eviten ramas condicionales y ubicaciones de acceso a la memoria basadas en el valor de los datos secretos para bloquear efectivamente que un adversario infiera el secreto.