Uno de los mayores problemas de seguridad que existen en los ordenadores de todo el mundo, desde servidores a móviles, pasando por consolas y PC Gaming, es el que se conoce como Rowhammer. Se trata de un problema que afecta a todos los sistemas y los convierte en vulnerables y es el mayor grano en el culo para los fabricantes de memoria. ¿Qué es y en qué consiste?
Que ocurriría si os dijéramos que existe un problema que afecta a más del 80% de los chips de memoria DRAM del mundo y que convierte a todos y cada uno de los sistemas actuales a un tipo de ataque malicioso. Pues bien, este problema potencial lo tienen todos los PC y se ha convertido en poco más que mentar al mismísimo diablo para los fabricantes de memoria.
¿Qué es el Rowhammer?
Hemos de partir del hecho de que un chip de memoria DRAM se compone de una matriz de células de bit donde cada una se compone por un transistor y un condensador, el cual va perdiendo carga con el tiempo. Por lo que continuamente es necesario recargar eléctricamente para que no se pierdan los datos. Por estándar y hasta la década de los 2010, cada fila de bits de memoria tenía un tiempo de refresco, lo que significa refrescar la DRAM.
Pues bien, el ingeniero español Juan Gómez Luna, actualmente se encuentra en la Universidad de Zúrich, junto a su equipo de investigación, descubrieron en 2014 un problema al que bautizaron como Rowhammer y consiste en:
- Sí, accedemos a una fila de bits de forma continuada durante el tiempo de refresco
- Al final acaba ocurriendo que la información de las filas adyacentes cambia.
¿Y qué ocurre cuando se cambian los bits de una fila de datos? Pues que al cambiar algún que otro cero por un uno y viceversa, acaba ocurriendo que la información ya no es la misma, produciendo errores. Dicho problema empezó a hacerse notable en las memoria RAM de 2008 en adelante, y se ha ido haciendo cada vez más creciente. ¿La respuesta de los fabricantes? Dado que son necesarios una serie de martilleos de columna o Rowhammer, menos de 5000, pasaron los de 64 milisegundos entre refresco y refresco a 32 milisegundos y en algunos casos incluso 16. Haciendo que el consumo energético en esta parte se duplicará e incluso cuadriplicará.
¿Por qué es un problema de seguridad?
A través de forzar cambios en ciertas partes concretas de la memoria, un programa malicioso puede acabar haciendo que ciertos parámetros de seguridad del sistema se desactiven. No olvidemos que dentro de la RAM existen dos espacios, el reservado para las aplicaciones y el del sistema operativo, y aunque no podamos acceder a dicha parte, sí que podemos realizar accesos continuos y provocar el Rowhammer y voila, la puerta está abierta.
Imaginad que alguien quiere entrar en vuestra casa, tenéis la llave echada y de repente a base de darle golpecitos a la cerradura por la vibración se girase el mecanismo y tuviese la puerta abierta. Pues ese es el problema del que estamos hablando y se ha convertido en una forma muy popular entre los creadores de aplicaciones maliciosas para acceder a sistemas ajenos y robar datos en los últimos años.
Fue aparecer este problema y el uso de memoria DRAM como potenciales cachés en procesadores desapareció de la noche a la mañana por motivos más que obvios. ¿La solución a este problema? El uso de memoria SRAM que no necesita refresco, pero entonces la capacidad de almacenamiento de la RAM bajaría a 1/4 e incluso 1/8 por chip de memoria, lo que aumentaría costes y sería fatídico para muchas aplicaciones.
Se usa en el mundo del Homebrew de consolas
Debido a que es necesario tener software firmado por el fabricante de un sistema de videojuegos para poder ejecutar programas, el poder acceder a la RAM del sistema para conocer su funcionamiento y ver que está ocurriendo necesita ciertos métodos invasivos diferentes a los convencionales.
Un truco muy habitual es conectar a los pines de la memoria un emisor de señales que se comunica con la RAM como si fuese el procesador para poder leer su contenido, pero también para conocer las funciones de ciertas partes clave de la misma. Así pues, con tal de acceder a las partes más ocultas del sistema y realizar ingeniería inversa se provoca externamente un Rowhammer y de esta manera pueden saber que partes de la memoria son cruciales en su desafió de romper lo que para ellos es un puzzle.
Y no solo se utiliza en consolas, hay retos de los grandes fabricantes de coches donde dan millonadas para ver cuánto tiempo tarda una persona en poder controlar un automóvil de última generación. Precisamente es en dicho mercado donde más se han desarrollado contramedidas a este problema. Dado que ante el auge de los coches inteligentes es muy peligroso que un tercero pueda controlarlo.