Vulnerabilidad «GoFetch» en chips de la serie M de Apple
Vulnerabilidad «GoFetch» en chips de la serie M de Apple

Vulnerabilidad «GoFetch» en chips de la serie M de Apple

Se ha descubierto una nueva vulnerabilidad en los chips de la serie M de Apple, denominada «GoFetch». Esta vulnerabilidad permite a un atacante extraer claves secretas utilizadas en operaciones criptográficas.

Características técnicas de la vulnerabilidad

El ataque se basa en canales laterales microarquitectónicos. «GoFetch» aprovecha una función llamada «data memory-dependent prefetcher» (DMP) para optimizar el acceso a la memoria en procesadores.

El DMP analiza patrones de acceso previos para determinar qué datos prefetcheados realizar. El ataque «Go,Fetch» se basa en los principios del ataque microarquitectónico conocido como «Augury», que también utiliza DMP para filtrar datos.

Un equipo de siete académicos explicó que el DMP activa (y intenta desreferenciar) datos cargados desde la memoria que parecen ser punteros, violando así un requisito del paradigma de programación de tiempo constante.

Condiciones para aprovechar la vulnerabilidad

Para aprovechar «GoFetch», tanto el atacante como la víctima deben ejecutar dos procesos diferentes en la misma máquina y en el mismo clúster de CPU. El atacante podría inducir a la víctima a descargar una aplicación maliciosa que utilice esta vulnerabilidad.

Aunque no comparten memoria, el atacante puede monitorear canales laterales microarquitectónicos como la latencia de la caché para obtener información sensible.

Impacto y limitaciones

La vulnerabilidad «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.

Los investigadores destacaron que la naturaleza fundamental de este defecto impide su corrección en las CPUs de Apple existentes.

Mitigaciones recomendadas

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 señaló que su silicio proporciona «timing independiente de datos» (DIT), en el cual el procesador completa ciertas instrucciones en una cantidad de tiempo constante, independientemente de los datos de entrada.

El fabricante también subrayó 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.