• 03/05/2024 12:14

Una vulnerabilidad irreparable en el chip de Apple filtra claves de cifrado secretas

Tiempo estimado de lectura: 2 minutos, 11 segundos

Un reciente hallazgo ha revelado un nuevo problema de seguridad en los chips de la serie M de Apple, el cual podría ser explotado para extraer claves secretas utilizadas en operaciones criptográficas.

Conocida como «GoFetch«, esta vulnerabilidad está vinculada a un tipo de ataque side-channel microarquitectónico que aprovecha una función llamada «data memory-dependent prefetcher» (DMP), dirigida específicamente a implementaciones criptográficas de tiempo constante, permitiendo la captura de datos sensibles desde la caché de la CPU. Los investigadores informaron a Apple sobre estos hallazgos en diciembre de 2023.

Los prefetchers son una técnica de optimización de hardware que anticipa qué direcciones de memoria utilizará un programa en el futuro cercano, trayendo esos datos a la caché correspondiente desde la memoria principal para reducir la latencia de acceso a la memoria del programa.

El DMP, en particular, es un tipo de prefetcher que considera el contenido de la memoria basándose en los patrones de acceso previamente observados, para determinar qué datos prefetcheados realizar. Este comportamiento lo vuelve vulnerable a ataques basados en la caché, los cuales engañan al prefetcher para revelar el contenido asociado con un proceso víctima que, de otra manera, debería ser inaccesible.

GoFetch se basa en los principios de otro ataque microarquitectónico conocido como «Augury«, el cual emplea DMP para filtrar datos.

Un equipo de siete académicos de diversas universidades, entre ellas la Universidad de Illinois en Urbana-Champaign, Universidad de Texas, Instituto de Tecnología de Georgia, Universidad de California en Berkeley, Universidad de Washington y Universidad Carnegie Mellon, explicaron que el DMP activa (e intenta desreferenciar) datos cargados desde la memoria que ‘parecen’ un puntero, violando así 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. En este sentido, el atacante podría inducir a la víctima a descargar una aplicación maliciosa que aproveche GoFetch.

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.

Un atacante podría utilizar el prefetcher para influir en los datos que se prefetchean, abriendo así la puerta para acceder a datos sensibles. Esta vulnerabilidad tiene graves implicaciones ya que anula las protecciones de seguridad ofrecidas por la programación de tiempo constante contra los ataques de canal lateral de tiempo.

Los investigadores destacaron que la naturaleza fundamental de este defecto impide su corrección 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 reducir el rendimiento. Se recomienda a los usuarios mantener sus sistemas actualizados.

Sin embargo, 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.

«El silicio de Apple proporciona timing independiente de datos (DIT), en el que el procesador completa ciertas instrucciones en una cantidad de tiempo constante, independientemente de los datos de entrada».

Señala Apple en su documentación

El fabricante de iPhone 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.

Más información:

https://arstechnica.com/security/2024/03/hackers-can-extract-secret-encryption-keys-from-apples-mac-chips/

https://www.prefetchers.info/

https://gofetch.fail/

https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms#Enable-DIT-for-constant-time-cryptographic-operations

La entrada Una vulnerabilidad irreparable en el chip de Apple filtra claves de cifrado secretas se publicó primero en Una al Día.


Artículo de Hispasec publicado en https://unaaldia.hispasec.com/2024/03/una-vulnerabilidad-irreparable-en-el-chip-de-apple-filtra-claves-de-cifrado-secretas.html?utm_source=rss&utm_medium=rss&utm_campaign=una-vulnerabilidad-irreparable-en-el-chip-de-apple-filtra-claves-de-cifrado-secretas