GLitch: El ataque de Rowhammer que usa la GPU para comprometer un teléfono Android
Un equipo de académicos de la Universidad Vrije de Ámsterdam ha desarrollado una nueva técnica de piratería que utiliza unidades de procesamiento gráfico (GPU) integradas y soporte para WebGL para llevar a cabo un ataque de Rowhammer.
La técnica es novedosa en la forma en que es el primer ataque de Rowhammer en aprovechar las GPU para atacar la memoria de un ordenador.
Pasados ataques de Rowhammer
Un Rowhammer es cuando un atacante bombardea filas de celdas de memoria RAM con constantes operaciones de lectura y escritura que hacen que las celdas de memoria cambien su carga eléctrica, lo que modifica inherentemente los bits de datos almacenados de 1 a 0 y viceversa, alterando la información guardada en la memoria.
Este tipo de ataque salió a la luz en 2014 y fue posible porque en su obsesión por crear RAMs más grandes, los vendedores metian celdas de memoria demasiado cerca unas de otras, lo que permitía el efecto "bit flip".
Desde el primer trabajo de investigación de Rowhammer, los académicos han continuado publicando sobre el tema. Los investigadores descubrieron que:
⊷ Los ataques de Rowhammer funcionan contra las tarjetas de memoria DDR3 y DDR4
⊷ Pueden utilizar ataques de Rowhammer a través de JavaScript y no necesariamente a través de malware especializado
⊷ Podrían atacar los equipos Windows atacando a Edge con un ataque de Rowhammer
⊷ Podrían utilizar Rowhammer para hacerse cargo de instaladas en los proveedores de alojamiento en la nube
⊷ Podrían usar un ataque de Rowhammer para rootear dispositivos Android
⊷ Podrían pasar por alto las protecciones contra Rowhammer instauradas después de la divulgación de los primeros ataques
El ataque GLitch
Hoy, el Grupo de Seguridad de Sistemas y Redes de Vrije Universiteit Amsterdam (VUSec) ha encontrado otra forma de ejecutar un ataque de Rowhammer, y dicen que este lleva menos tiempo realizarlo en comparación con las técnicas más antiguas.
Codificada como GLitch, esta técnica es una combinación de ataque de canal lateral y ataque de Rowhammer, de acuerdo con el equipo US-CERT, que emitió hoy una nota de vulnerabilidad.
Los académicos usaron el canal lateral para determinar el diseño de la memoria física, y luego usaron el ataque de Rowhammer para voltear bits e inyectar comandos maliciosos en la memoria RAM.
Para realizar el ataque de canal lateral, los académicos aprovecharon los navegadores y su compatibilidad con el estándar WebGL.
"Las capacidades precisas de sincronización proporcionadas por WebGL pueden permitir que un atacante determine la diferencia entre los accesos DRAM almacenados en caché y los accesos DRAM no guardados en caché", explicaron Will Dormann y Trent Novelly de US-CERT.
"Esto puede permitir que un atacante determine las áreas contiguas de la memoria DRAM física. El conocimiento de las regiones de memoria contigua se utiliza en una serie de ataques microarquitectónicos, como Rowhammer", dijeron.
Las GPU son mejores en los ataques de Rowhammer que las CPU
Para realizar el ataque real de Rowhammer, esta vez los expertos usaron GPU. Las razones por las que eligieron las GPU en lugar de las CPU para llevar a cabo su ataque se deben a que las GPU tienen sistemas de caché de datos más sencillos, con protecciones más simples que también son más fáciles de eludir.
GLitch solo funciona en plataformas donde CPU y GPU comparten la misma memoria, generalmente dispositivos más pequeños como teléfonos inteligentes y tablets.
Para su trabajo de investigación, el equipo VUSec eligió ejecutar un ataque GLitch en Chrome y Firefox corriendo en un dispositivo Android.
Un ataque GLitch toma solo dos minutos
La técnica GLitch no solo fue exitosa sino que también fue más rápida que los ataques anteriores de Rowhammer, tomando solo dos minutos comprometer el dispositivo, un período de tiempo que se considera aceptable para un hack moderno, ya que esto es lo que generalmente llevaría a un usuario a lee un artículo en un sitio de noticias.
Además, los ataques GLitch también son fáciles de realizar, ya que solo requieren la carga de código JavaScript malicioso en el dispositivo de un usuario, código JavaScript que puede ocultarse fácilmente en una página web normal sin que el usuario lo note.
Los investigadores dijeron que solo probaron su código de prueba de concepto en un teléfono inteligente Google Nexus 5, pero el código de explotación debería funcionar en todos los dispositivos que usan un Snapdragon 800 y 801 system-on-chip (SoC). Los investigadores planean lanzar más PoCs en el futuro.
La buena noticia es que, de acuerdo con US-CERT, "Google Chrome y Mozilla Firefox han lanzado actualizaciones que desactivan temporizadores de alta precisión en el navegador". Estas actualizaciones parecen ser las mismas mitigaciones que tanto Google como Mozilla han implementado para proteger contra la explotación de los defectos de Meltdown y Spectre.
Más detalles sobre la técnica GLitch están disponibles en el documento de investigación "Grand Pwning Unit: Accelerating Microarchitectural Attacks with the GPU".