Un grupo de investigadores ha descubierto una enorme vulnerabilidad de seguridad que afecta a los chips M1, M2 y M3 que Apple monta en sus últimos ordenadores. Esta vulnerabilidad, llamada GoFetch, roba información criptográfica de la caché del procesador, lo que permite a un programa atacante construir una clave criptográfica a partir de los datos robados, permitiendo a la aplicación acceder a datos sensibles cifrados.
Por si las vulnerabilidades no son lo suficiente importantes de por sí, al parecer no se puede corregir este problema mediante hardware, es decir, que cuando llegue una solución -si es que llega- no será de raíz en la fabricación de los chips, sino que llegará a través de software / firmware.
Cómo hace GoFetch para robar tus datos
GoFetch se aprovecha de un fallo de seguridad que se había pasado por alto en los procesadores de Apple, y como su nombre sugiere todo gira en torno al prefetcher dependiente de memoria de datos (DMP) de la última generación. Este prefetcher solo se encuentra en los procesadores M1, M2 y M3 de Apple, así como en los Intel Raptor Lake, si bien para estos últimos existe esta vulnerabilidad por algún motivo que se desconoce.
Lo que hace esta vulnerabilidad es permitir que el contenido de la memoria se cargue en la caché del procesador antes de que sea necesario. El prefetcher cargará material clave en la caché de la CPU con un valor de puntero que se utiliza para cargar otros datos. A veces, el DMP confunde el contenido de la memoria y carga datos inapropiados en la caché de la CPU, permitiendo como decíamos antes que una aplicación acceda a ellos.
El mayor problema de esta vulnerabilidad que afecta a los nuevos ordenadores de Apple es que neutraliza por completo los efectos de seguridad de la programación en tiempo constante (esto es un algoritmo de cifrado de mitigación pensado para evitar los ataques relacionados con la caché del procesador). El resultado es que las aplicaciones que utilizan GoFetch pueden «engañar» al software de cifrado para que meta datos confidenciales a la caché, a donde la aplicación puede acceder para «robarlos».
Es una vulnerabilidad muy seria
Como ya hemos mencionado, esta vulnerabilidad es bastante grave, ya que afecta a todo tipo de algoritmos de cifrado (incluyendo las poderosas claves de 2.048 bits que se usan hoy en día). Pero lo peor es que, por desgracia, parece que no hay una forma de parchear este problema a nivel de hardware, y la única forma de mitigar sus efectos es mediante soluciones basadas en software que ralenticen el rendimiento de cifrado y descifrado del procesador. Técnicamente, los desarrolladores podrían forzar que su software de cifrado se ejecutara solo en los núcleos de eficiencia, que no tienen este prefetch.
La única excepción es el último procesador M3 de Apple, que supuestamente incorpora una especie de interruptor que los desarrolladores pueden activar y desactivar para anular el prefetcher. Sin embargo, por el momento nadie sabe cuánto rendimiento se perderá al hacer esto, y por lo que sabemos personalmente podría entorpecer bastante el rendimiento.
Como hemos mencionado al principio, esta vulnerabilidad solo afecta (que se sepa) a los procesadores M1, M2 y M3 de Apple, y no a los Intel Core de 13ª y 14ª generación a pesar de que tienen también prefetcher; esto demuestra que es algo que debería de poder solucionarse a nivel de hardware, así que es probable que para las próximas generaciones de procesadores de Apple (¿M4?) esté ya corregido.
Por el momento, Apple no ha publicado ninguna fecha de lanzamiento de una solución al problema, pero debido a su gravedad es de esperar que no tarden mucho en hacerlo.