Nueva Vulnerabilidad «GoFetch» en Chips M-Series de Apple Filtra Claves de Encriptación Secreta

Luis Quiles
Luis Quiles
applem1
Privacidad de información

Una nueva falla de seguridad descubierta en los chips de la serie M de Apple podría ser explotada para extraer claves secretas utilizadas durante operaciones criptográficas.

Denominada GoFetch, la vulnerabilidad se relaciona con un ataque de canal lateral microarquitectónico que aprovecha una característica conocida como prefetcher dependiente de la memoria de datos (DMP, por sus siglas en inglés) para atacar implementaciones criptográficas de tiempo constante y capturar datos sensibles de la caché de la CPU. Apple fue informada de los hallazgos en diciembre de 2023.

Los prefetchers son una técnica de optimización de hardware que predice qué direcciones de memoria accederá un programa en ejecución y recupera los datos en la caché en consecuencia desde la memoria principal. El objetivo de este enfoque es reducir la latencia de acceso a la memoria del programa.

El DMP es un tipo de prefetcher que tiene en cuenta el contenido de la memoria en función de patrones de acceso observados previamente al determinar qué prefetchear. Este comportamiento lo hace propenso a ataques basados en caché que engañan al prefetcher para revelar el contenido asociado con un proceso víctima que de otra manera sería inaccesible.

GoFetch también se basa en los cimientos de otro ataque microarquitectónico llamado Augury que emplea DMP para filtrar datos de manera especulativa.

«El DMP activa (y trata de desreferenciar) datos cargados desde la memoria que ‘parecen’ un puntero», dijo un equipo de siete académicos de 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.

server

«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.»

Como otros ataques de este tipo, la configuración requiere que la víctima y el atacante tengan dos procesos diferentes co-ubicados en la misma máquina y en el mismo clúster de CPU. Específicamente, el actor de amenazas podría engañar a un objetivo para que descargue una aplicación maliciosa que explote GoFetch.

Además, aunque el atacante y la víctima no compartan memoria, el atacante puede monitorear cualquier canal lateral microarquitectónico disponible para él, por ejemplo, la latencia de la caché.

En pocas palabras, 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 susceptible a ataques de extracción de claves.

En otras palabras, un atacante podría utilizar el prefetcher para influir en los datos que se están prefiriendo, abriendo así la puerta para acceder a datos sensibles. La vulnerabilidad tiene implicaciones serias ya que anula completamente las protecciones de seguridad ofrecidas por la programación de tiempo constante contra ataques de canal lateral de temporización.

«GoFetch muestra que el DMP es significativamente más agresivo de lo que se pensaba anteriormente y, por lo tanto, representa un riesgo de seguridad mucho mayor», señalaron los investigadores.

La naturaleza fundamental de la falla significa que no se puede corregir en las CPU de Apple existentes, lo que requiere que los desarrolladores de bibliotecas criptográficas tomen medidas para prevenir condiciones que permitan que GoFetch tenga éxito, algo que también podría introducir una pérdida de rendimiento. Por otro lado, se insta a los usuarios a mantener sus sistemas actualizados.

Sin embargo, en los chips M3 de Apple, se ha encontrado que habilitar el temporizado independiente de datos (DIT) desactiva el DMP. Esto no es posible en los procesadores M1 y M2.

«Apple silicon proporciona temporizado independiente de datos (DIT), en el cual el procesador completa ciertas instrucciones en una cantidad constante de tiempo», señala Apple en su documentación. «Con DIT habilitado, el procesador utiliza el tiempo más largo, de peor caso, para completar la instrucción, independientemente de los datos de entrada».

El fabricante de iPhone también enfatizó que aunque activar DIT evita la fuga basada en tiempo, se recomienda a los desarrolladores «evitar ramificaciones condicionales y ubicaciones de acceso a la memoria basadas en el valor de los datos secretos» para bloquear eficazmente que un adversario infiera el secreto al mantener un control sobre el estado microarquitectural del procesador.

Este desarrollo surge mientras otro grupo de investigadores de la Universidad de Tecnología de Graz en Austria y la Universidad de Rennes en Francia demostraron un nuevo ataque de unidad de procesamiento gráfico (GPU) que afecta a navegadores populares y tarjetas gráficas, aprovechando código JavaScript especialmente elaborado en un sitio web para inferir información sensible como contraseñas.

La técnica, que no requiere interacción del usuario, ha sido descrita como el primer ataque de canal lateral de caché de GPU desde dentro del navegador.

«Dado que la computación de GPU también puede ofrecer ventajas para cálculos dentro de sitios web, los proveedores de navegadores decidieron exponer la GPU a JavaScript a través de APIs como WebGL y el próximo estándar WebGPU», dijeron los investigadores.

«A pesar de las restricciones inherentes del entorno de JavaScript y WebGPU, construimos nuevos primitivos de ataque que permiten ataques de canal lateral de caché con una efectividad comparable a los ataques tradicionales basados en CPU».

Un actor de amenazas podría utilizarlo mediante un ataque drive-by, lo que permitiría la extracción de claves AES o la minería de criptomonedas mientras los usuarios navegan por Internet. Afecta a todos los sistemas operativos y navegadores que implementan el estándar WebGPU, así como a una amplia gama de dispositivos GPU.

Como contramedida, los investigadores proponen tratar el acceso a la tarjeta gráfica del sistema anfitrión a través del navegador como un recurso sensible, requiriendo que los sitios web soliciten permiso a los usuarios (como en el caso de la cámara o el micrófono) antes de su uso.

Share this article :

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Descubre los últimos artículos del blog sobre seguridad cibernética.