La seguridad en Android se ve comprometida gracias a un nuevo sistema de alteración de memoria del procesador gráfico.
Tenemos gran cantidad de información en nuestros smartphones, muchísima. Y lo que nosotros vemos como datos insignificantes, a gran escala son un manjar muy suculento para grandes empresas. Es por eso que la obtención de información es uno de los mecanismos más usados para obtener beneficios. Lo que convierte a nuestros smartphones, en una diana con pantalla.
Han existido, existen y están por existir muchos sistemas de hackeo de Android. Programas, vulnerabilidades y demás sistemas de infección que buscan tomar el control de nuestros smartphones para transmitir la información hacia el exterior. Pues hoy os contaremos más sobre el que parece ser el nuevo quebradero de cabeza de los fabricantes de componentes: GLitch.
Antes de hablar de GLitch toca hablar de Rowhammer
Rowhammer es un sistema de modificación de filas de bits en memoria de acceso rápido (la memoria RAM, por ejemplo). Este mecanismo se aprovecha de la escasa separación en el silicio que compone la memoria de acceso rápido que tenemos en nuestros móviles. ¿Cómo? Rowhammer se traduciría al español como «Golpeador de filas». Y es precisamente eso lo que hace.
Se descubrió que con concretos cambios en filas de memoria adyacentes se puede permutar un bit de la memoria que queremos modificar. Me explico, si tienes una fila X+22 y atacas a la fila X+21, puedes cambiar el valor de un bit de lo que se guarda en la fila X+22. Un ejemplo similar:
Imagina que tienes una fila de monedas dispuestas en cara o cruz. Y que tienes una máquina que tira monedas dispuestas en cara o cruz según un patrón. Esas monedas al caer muy cerca de la fila que ya tienes, hacen que tras ciertos lanzamientos una moneda de la primera fila se cambie de cara a cruz.
Pues eso es Rowhammer. Y es lo que se usa para ejecutar el GLitch. Un programa que accediendo de cierta manera a celdas adyacentes permiten permutar el valor de varias filas de memoria. Y una vez modificado a placer para, por ejemplo, cargar un programa malicioso, cargas de memoria al móvil para infectarlo.
Ahora ya podemos hablar de GLitch
GLitch coge su nombre de WebGL porque usa esta interfaz de programación para renderizar gráficos en la memoria. Con esto se accede a la memoria de acceso rápido de la GPU (procesador gráfico) y se hace Rowhammer en ciertas celdas para modificar los valores (por ejemplo, de gráficos renderizados por el sistema) y cargar un software malicioso.
Este ataque a través de WebGL se puede ejecutar este Rowhammer accediendo a una página web creada con JavaScript. Según los hackers tras GLitch, afirman que en menos de dos minutos pueden vulnerar un dispositivo.
Los investigadores, haciendo uso de ingeniería inversa, han conseguido ejecutar este GLitch en todos los dispositivos con un procesador Qualcomm Snapdragon 800/801. Esto se debe a la cercanía que hay entre CPU y GPU. La prueba se hizo en un Nexus 5 con Firefox instalado. Se debe a que el acceso a ciertos objetos donde se guardan los datos siguen un patrón. Algo que Mozilla ha solventado ya en una actualización.
Tranquilos, sólo funciona en Nexus 5 y móviles con mismo SoC (por ahora)
Este nuevo sistema de implementar Rowhammer para infectar dispositivos sólo funciona en dispositivos Nexus 5 (al menos funcionando en demostración). Un móvil que se dejó de vender en 2015. Aunque también cuentan los investigadores que funcionó en dispositivos con Snapdragon 800/801 e incluso consiguieron hacer algún cambio de bit en un Pixel.
Puede que en un futuro este tipo de ataques pasen a ser universales para todo dispositivo y sea un problema ya que este tipo de ataques se pueden mitigar pero no solucionar del todo si no es con un nuevo componente para la memoria RAM. Pero tranquilos, no hay que ser alarmista y hacer un gorro de papel de aluminio, simplemente es un caso concreto de que todo es vulnerable en la tecnología.