Drammer, un exploit para hacerse root en Android mediante un fallo... ¡en el hardware!

La memoria DRAM que tiene nuestras computadoras, incluido los smartphones, es un tipo de memoria volátil que utiliza millones de transistores y condensadores que se dividen en celdas de filas y columnas. Cada uno de estos condensadores tiene un estado de carga para almacenar el valor de un bit (1 con carga y 0 sin carga). Dado que están muy próximos entre sí (micro o nano escala) es posible afectar al estado de los condensadores contiguos cambiando el estado de los más cercanos una y otra vez (bit flipping), como si se tratase de las vibraciones de un martilleo continuo. 

Hace un par de años se habló de la técnica llamada 'row hammer' que se aprovechaba de eso: inundar una fila o columna entera de datos una y otra vez para afectar a las celdas de memoria contiguas cambiando su estado.

Sin embargo, parecía que aplicar está técnica era sólo factible con componentes de hardware muy específicos con fallos o que podían repelerse mediante capacidades avanzadas de gestión de memoria.

Pero nada más lejos de la realidad... un grupo de investigadores acaba de demostrar que este ataque puede llevarse a la práctica ahora mediante código javascript (rowhammer.js) capaz de escapar del sandbox del navegador y hacerse con la memoria del ordenador e incluso en nuestros smartphones.
De aquí surge Drammer que permite además llevar a cabo esta técnica en smartphones. En el siguiente vídeo podéis como en apenas un minuto se consigue acceso root en un Nexus 5 con Android 6.0.1:

La solución contra este ataque se presenta complicada puesto que, como comentamos, se trata fundamentalmente de un problema de hardware, así que veremos hasta que punto son efectivas las mitigaciones que vayan publicando en los próximos días. En cualquier caso es algo serio, más aún si se combina con otros vectores de ataque como Stagefright o BAndroid.

Respecto a los dispositivos afectados en este caso no se espera que se publique listados estáticos ya que hay dispositivos que aún siendo el mismo modelo podrían tener distintos componentes y por lo tanto unos podrían ser vulnerables y otros no. Los investigadores prometen una aplicación en Google play que podremos instalar en nuestros dispositivos para comprobar de forma específica si son vulnerables a Drammer o no. Estaremos atentos.

Paper: Rowhammer.js: A Remote Software-Induced Fault Attack in JavaScript
Drammer: https://www.vusec.net/projects/drammer/

Comentarios

  1. Y ellos como saben que transistor está al lado de otro? Eso no sale en ningún lado, la única forma que se me ocurre es trabajando en la misma empresa que hace las memorias.

    ResponderEliminar

Publicar un comentario