El último agujero de seguridad de Android no lo puede arreglar ni la propia Google
Rowhammer es el primer fallo de hardware explotado por software, y en El Androide Libre te contamos todo lo que debes saber sobre ello.
24 octubre, 2016 17:58Los fallos de seguridad están a la orden del día, y en principio no hay nada de lo que preocuparse. No existe el sistema cien por cien seguro, lo importante es que el fabricante lance una actualización rápido que acabe con el problema de raíz. Pero la cosa no es tan sencilla cuando el fallo está en cómo funciona tu ordenador, no en cómo está escrito el código que usa tu ordenador.
Puede que hayáis escuchado hablar de Rowhamer.js, un agujero de seguridad que muchos describen como irreparable. Se trata de un fallo encontrado en la forma de trabajar en la memoria. Es decir, es el primer ataque que, con software, es capaz de explotar un fallo en el hardware.
Esto significa que no existe un código que reparar, porque el problema está en las piezas. Es un ataque muy listo y aterrador, pero también complicado de lanzar. Y es, en parte, culpa de nuestro deseo por conseguir dispositivos más rápidos.
Rowhammer, un fallo inteligente y aterrador
Antes de empezar a hablar de Rowhammer, tenemos que hablar de la DRAM, RAM dinámica para los amigos. DRAM es el tipo de memoria temporal -basada en condensadores- que usan nuestros móviles y ordenadores. Estos condensadores tienen dos estados: sin energía es un 0, y con carga de energía es un 1.
Lo genial de la DRAM es que tenemos la tecnología para poner millones de condensadores en un sólo chip. Cuantos más condensadores tengamos en estas filas y columnas, nuestro procesador podrá procesar operaciones más rápido. Pero los condensadores tan juntos tienen un problema: pueden «filtrarse» y transmitir su carga a los condensadores que tiene alrededor, cambiando su estado y corrompiendo la memoria por el camino.
Rowhammer se dedica a inundar la memoria con datos para corromperla y conseguir acceso completo
En base a este fallo existe una técnica, llamada ‘row hammer’, que se dedica a inundar una fila con datos, una y otra y otra vez. Esto hace que la memoria se corrompa, y permite al atacante acceder a partes de la memoria a las que un programa normal y corriente no tiene acceso.
La cosa se pone aún más interesante cuando, con el trabajo de investigadores de seguridad de Google, se descubrió que esta corrupción podía servir para acceder a toda la memoria. Leer lo que haya, e incluso reescribir archivos del sistema, empezó a ser una posibilidad. La única pega es que el código tenía que estar en local, el ordenador ya tendría que estar infectado.
Como bien describe Alex Jean-Pharuns para Motherboard, esta técnica sería como dar portazos en la puerta de un vecino, hasta que la puerta que quieres se abre con las vibraciones. Se trata de un ataque muy bien pensado y complicado, con la desventaja de que resulta complicado de lanzar en el ordenador de una víctima.
El fallo se hace más peligroso aún con JavaScript
¿Recordáis que el fallo descubierto por Google sólo funcionará si el código está en el ordenador? Pues, gracias a JavaScript, este peligro se extiende a todo Internet. Esto es gracias al trabajo de tres investigadores con Rowhammer.js, una prueba de concepto en la que el ataque es capaz de escapar del ‘sandbox’ del navegador para hacerse con la memoria de nuestro ordenador.
Podéis leer muchos más detalles sobre el ataque en el estudio que han publicado, pero las conclusiones son claras. Ya no es necesario que el código de Rowhammer esté en el ordenador atacado, puede estar en un servidor. JavaScript es utilizado por el 94.1% de páginas web según W3Techs. Y cualquiera de estas páginas podría aprovechar esta nueva amenaza para cargar contra nuestra memoria.
Drammer: así afecta Rowhammer a Android
Pero todo esto se pone aún más interesante cuando aparece Drammer. Hasta ahora, los smartphones no se preocupaban demasiado por esto de Rowhammer: el ataque requiere la presencia de componentes de memoria avanzados, los cuales no están todavía presentes en nuestro móvil. Pero sorpresa, alguien ha encontrado la forma de hacer funcionar Rowhammer en Android.
El video que tenéis encabezando esta sección es una prueba de concepto, y nos muestra cómo se usa Drammer para conseguir acceso root a un Nexus 5 actualizado. Muchos lo celebrarán pensando que es una buena noticia, pero no lo es: conseguir acceso de administrador es un riesgo de seguridad. En el segundo 0:15 empieza a bombardear la memoria, en el 0:30 comienza a escribir en la memoria, y en el 0:50 consigue el acceso root.
No todos los teléfonos son vulnerables, y esto puede deberse a que no todos los teléfonos están hechos con los mismos chips
Este código puede ser combinado con otras vulnerabilidades conocidas -como Stagefright- para conseguir objetivos más ambiciosos. Por suerte -o por desgracia-, no es tan sencillo. El equipo ha conseguido ejecutar esta vulnerabilidad con éxito en diferentes teléfonos, pero no todas las remesas de un mismo teléfono son siquiera vulnerables.
Por ejemplo, respecto al Nexus 5, y como podemos leer en Ars Technica, 12 de 15 cayeron ante el ataque. Sólo 1 de 2 Galaxy S5 fueron vulnerables. Estas «excepciones» pueden deberse a que no todos los teléfonos de una misma marca están hechos con los mismos chips: algunas remesas pueden cambiar de proveedores en su fabricación, y algunos de estos fabricantes podrían haber construído chips más resistentes a estos ataques.
Los investigadores esperan publicar una aplicación en Google Play que, instalada, averigue si nuestro dispositivo está afectado. Todos los datos serán recogidos de forma anónima para construir una base de dispositivos afectados.
¿Y por qué no debería preocuparme?
Antes de nada, confirmamos lo que habéis leído en el principio del artículo. Al ser un fallo en las piezas, no se puede lanzar un parche que lo arregle sin más. No se puede sacar un parche de seguridad mensual y decir «problema solucionado», no es tan sencillo.
Google ha respondido, aunque no tiene una solución permanente
Google, por la parte de escritorio, actualizó Chrome en 2015 con muchos cambios que evitaban la posibilidad de explotar esto. Por la parte de Android es más complicado. La actualización de seguridad de noviembre incluirá mejoras para mitigarlo, pero Google sigue trabajando en una solución definitiva a largo plazo.
Además, los investigadores del estudio de Drammer confían en que su trabajo ayude a solucionar este problema más rápido, «a pesar de la respuesta relativamente lenta de los fabricantentes».
En cualquier caso, Drammer no es un fallo que debería preocuparte. No está claro ni qué dispositivos están afectados, ya es difícil de por sí explotarlo con éxito. Y si tienes el teléfono actualizado con los últimos parches de seguridad, mejor que mejor.