Análisis de malware

El Rowhammer: la evolución de un ataque peligroso

mayo 17, por Admin

El ataque del martillo

En, los investigadores de seguridad del equipo Project Zero de Google demostraron cómo secuestrar una PC compatible con Intel que ejecuta Linux explotando las debilidades físicas en ciertas variedades de chips DDR DRAM (memoria dinámica de acceso aleatorio de doble velocidad de datos).

La técnica de ataque ideada por los expertos se denominó «Rowhammer», y su explotación podría permitir a los atacantes obtener mayores privilegios del kernel en el sistema objetivo.

El problema de Rowhammer se clasifica como un problema que afecta a algunos dispositivos DRAM recientes en los que el acceso repetido a una fila de memoria puede causar cambios de bits en filas adyacentes, esto significa que, en teoría, un atacante puede cambiar cualquier valor del bit en la memoria.

Un artículo de investigación publicado por expertos de la Universidad Carnegie Mellon y los laboratorios Intel proporciona un análisis detallado de las técnicas para explotar el problema Rowhammer.

«Probamos una selección de computadoras portátiles y descubrimos que un subconjunto de ellas presentaba el problema. Creamos dos exploits de escalada de privilegios que usan este efecto. Un exploit usa Rowhammer», es un problema con algunos dispositivos DRAM recientes en los que se accede repetidamente a una fila de la memoria puede provocar cambios de bits en filas adyacentes. cambios de bits inducidos para obtener privilegios del kernel en Linux x86-64 cuando se ejecuta como un proceso de usuario sin privilegios», se lee en la publicación publicada por Project Zero de Google .

«Cuando se ejecutó en una máquina vulnerable al problema de Rowhammer, el proceso pudo inducir cambios de bits en las entradas de la tabla de páginas (PTE). Pudo usar esto para obtener acceso de escritura a su propia tabla de páginas y, por lo tanto, obtener lectura y escritura. acceso a toda la memoria física.»

Para entender cómo un atacante podría aprovechar el problema Rowhammer, recordemos que una memoria DDR está organizada en una serie de filas y columnas. Los bloques de memoria se asignan a diferentes servicios y aplicaciones.

Se implementa un mecanismo de protección «sandbox» para evitar que una aplicación acceda al espacio de memoria reservado por otra aplicación. Sin embargo, es posible evadirlo utilizando una técnica de volteo que es el pilar del ataque Rowhammer.

El estudio realizado por los expertos se basa en una investigación anterior realizada por Yoongu Kim titulada » Voltear bits en la memoria sin acceder a ellos: un estudio experimental de errores de perturbación de DRAM «. El experto y un equipo de colegas demostraron que el acceso repetido a dos ubicaciones de memoria «agresoras» dentro del espacio de direcciones virtuales del proceso puede provocar cambios de bits en una tercera ubicación «víctima».

«La ubicación de la víctima está potencialmente fuera del espacio de direcciones virtuales del proceso; está en una fila de DRAM diferente a la de las ubicaciones del agresor y, por lo tanto, en una página de 4k diferente (ya que las filas son mayores que 4k en los sistemas modernos). Como resultado, Golpear dos regiones de memoria del agresor puede perturbar ubicaciones vecinas, provocando que la carga se filtre dentro o fuera de las células vecinas», afirma la publicación del blog de Project Zero.

Las DRAM utilizadas en los procesadores modernos tienen una gran capacidad y es difícil evitar que las celdas DRAM interactúen eléctricamente entre sí.

Los hackers de sombrero blanco del Proyecto Cero propusieron dos exploits de prueba de concepto que les permitieron controlar varios ordenadores x86 con Linux, pero según los expertos, los ataques también podrían funcionar con otros sistemas operativos.

A continuación se detallan los detalles de los dos ataques:

El equipo de expertos de Project Zero también proporcionó mitigaciones para la falla de Rowhammer y, en particular, el ataque de escalada de privilegios del kernel.

Los investigadores cambiaron Native Client para no permitir la instrucción x86 CLFLUSH que es necesaria para el éxito del exploit.

«Hemos mitigado esto cambiando NaCl para no permitir la instrucción CLFLUSH», sugirió el equipo.

El segundo exploit es muy difícil de mitigar en la arquitectura existente porque se ejecuta como un proceso x86-64 normal en Linux y aumenta los privilegios para obtener acceso a toda la memoria física.

Los expertos probaron los exploits en ocho computadoras portátiles x86, producidas entre y, y utilizando cinco proveedores diferentes de DRAM DDR3 en cinco familias de CPU diferentes.

Los expertos de Project Zero publicaron en Github el «Programa para probar el problema DRAM «Rowhammer»» .

Los resultados de las pruebas muestran que los investigadores obtuvieron un cambio de bit en 15 casos con 29 máquinas diferentes, resaltaron que la falta de un cambio de bit observado no significa que la DRAM no sea necesariamente explotable.

«Si bien la ausencia de cambios de broca durante las pruebas en una máquina determinada no implica automáticamente seguridad, sí proporciona una garantía básica de que provocar cambios de broca es al menos difícil en esa máquina», dijo uno de los investigadores .

Una posible defensa contra el ataque de explotación de Rowhammer es el uso de memoria ECC que aprovecha bits adicionales para ayudar a corregir errores, pero eso es más costoso. El ataque falla contra los últimos silicios DDR4 o DIMM que contienen capacidades ECC.

«La mayor amenaza en este momento parece ser para las computadoras de escritorio y portátiles porque no tienen memoria ECC ni máquinas virtuales. En particular, parece haber un peligro con la ejecución del código del cliente nativo (NaCl) de Google. Se trata de un entorno de pruebas inteligente que permite ejecución de código nativo dentro del navegador Chrome, de modo que las páginas web puedan ejecutar software tan rápido como el software nativo en el sistema. Esta corrupción de la memoria anula un nivel de protección en NaCl. Nadie ha demostrado todavía cómo utilizar esta técnica en la práctica para anular por completo NaCl, pero es probable que eventualmente alguien descubra una manera», dijo el investigador Robert Graham de Errata Security.

El equipo del proyecto Zero instó a los fabricantes de DRAM, fabricantes de chips y creadores de BIOS a adoptar las medidas necesarias para mitigar los problemas de seguridad de Rowhammer y divulgar cómo lo han hecho.

Drammer – The Rowhammer Attack se vuelve móvil

Un año después, un equipo de expertos del VUSec Lab de la Vrije Universiteit Amsterdam estudió la posibilidad de explotar el problema Rowhammer para obtener acceso «root» ilimitado a millones de teléfonos inteligentes Android.

Los expertos idearon una técnica de ataque denominada Drammer que podría explotarse para obtener acceso «root» a millones de teléfonos inteligentes Android apuntando a la memoria dinámica de acceso aleatorio (DRAM) del dispositivo.

El ataque Rowhammer para dispositivos móviles implica una aplicación maliciosa que, una vez en ejecución, accede repetidamente a la misma «fila» de transistores en un chip de memoria en una pequeña fracción de segundo (proceso de Hammering).

Martillar una porción específica de la memoria puede interferir eléctricamente con la fila vecina. Esta interferencia puede hacer que la fila pierda electricidad hacia la siguiente fila, lo que eventualmente provoca que un bit se invierta y la consiguiente modificación de los datos.

Un atacante puede aprovechar estas modificaciones para ejecutar su propio código y hacerse con el control del dispositivo móvil.

Los investigadores crearon una prueba de concepto de exploit, denominado DRAMMER , para probar el ataque Rowhammer en dispositivos móviles. Los expertos publicaron un artículo de investigación sobre el ataque DRAMMER y una página web que incluye detalles técnicos del ataque.

La técnica permite modificar bits de datos cruciales para rootear dispositivos Android de los principales proveedores.

Para dar a una aplicación acceso directo a la memoria dinámica de acceso aleatorio (DRAM), los investigadores explotaron el mecanismo de Android conocido como asignador de memoria ION.

El asignador de memoria ION también permite a los atacantes identificar filas adyacentes en la DRAM, lo cual es esencial para impulsar el ataque Rowhammer generando cambios de bits.

La capacidad permitió a los investigadores lograr acceso de root en el dispositivo de la víctima, dándoles control total del dispositivo móvil.

«A un alto nivel, nuestra técnica funciona agotando los fragmentos de memoria disponibles de diferentes tamaños para llevar el asignador de memoria física a un estado en el que tiene que comenzar a servir memoria desde regiones que podemos predecir de manera confiable», afirma el artículo .

«Luego obligamos al asignador a colocar los datos sensibles a la seguridad de destino, es decir, una tabla de páginas, en una posición en la memoria física que es vulnerable a los cambios de bits y que podemos extraer de partes adyacentes de la memoria bajo nuestro control».

1 – Ataque Drammer

«Drammer es un nuevo ataque que explota la vulnerabilidad del hardware Rowhammer en dispositivos Android. Permite a los atacantes tomar control de su dispositivo móvil ocultándolo en una aplicación maliciosa que no requiere permisos. Prácticamente todos los dispositivos son posiblemente vulnerables y deben esperar una solución. de Google para ser parcheado. Drammer tiene el potencial de poner en riesgo a millones de usuarios, especialmente cuando se combina con vectores de ataque existentes como Stagefright o BAndroid «, afirma una entrada de blog publicada por los investigadores.

Los expertos lograron rootear teléfonos Android, incluidos Nexus 4 y Nexus 5 de Google; el G4 de LG; Samsung Galaxy S4 y Galaxy S5, modelos Moto G de Motorola de y; y OnePlus One.

2: Resultados de la prueba Drammer

«Nuestro ataque [DRAMMER] no sólo muestra que los ataques Rowhammer prácticos y deterministas son una amenaza real para miles de millones de usuarios móviles, sino que también es el primer esfuerzo para demostrar que Rowhammer es… (explotable de manera confiable) en cualquier plataforma que no sea x86 y con un conjunto de funciones de software mucho más limitado que las soluciones existentes», se lee en un artículo publicado por los expertos.

La aplicación DRAMMER puede obtener control total sobre el móvil de la víctima en cuestión de minutos y no solicita la interacción del usuario.

Los investigadores publicaron dos videos de prueba de concepto que demuestran el ataque DRAMMER en acción contra un LG Nexus 5 no rooteado.

En el primer video, el teléfono ejecuta Android 6.0.1 con parches de seguridad que Google lanzó el 5 de octubre, mientras que en el segundo video los investigadores muestran cómo el ataque DRAMMER se puede combinar con el error Stagefright que aún no está parcheado en muchos dispositivos Android más antiguos.

https://youtu.be/x6hL-obNhAw

https://youtu.be/0pV-Q9Q5s4Q

Los investigadores también publicaron en GitHub el código fuente de la aplicación DRAMMER para permitir a los usuarios probar su dispositivo móvil y compartir sus resultados de forma anónima.

Los expertos informaron del problema a Google en julio, y el gigante tecnológico lo reconoció como una vulnerabilidad «crítica» y otorgó a los investigadores 4.000 dólares en el marco de su programa de recompensas por errores.

El problema es que algunas características del software que explota DRAMMER son tan esenciales para cualquier sistema operativo que no es posible eliminarlas o modificarlas sin un impacto significativo en el diseño general del dispositivo.

GLitch Attack: el primer ataque remoto de Rowhammer contra dispositivos Android

Los investigadores del VUSec Lab de la Vrije Universiteit Amsterdam continuaron su análisis de la técnica de ataque Rowhammer y demostraron cómo aprovechar las unidades de procesamiento de gráficos (GPU) para atacar los teléfonos inteligentes Android.

Los expertos comenzaron con la mayor limitación del ataque Drammer, que estaba representada por la necesidad de instalar una aplicación maliciosa en el dispositivo objetivo.

Ahora, por primera vez, el mismo equipo de expertos ha ideado una técnica denominada GLitch para realizar el ataque Rowhammer contra un teléfono Android de forma remota.

La técnica GLitch aprovecha las unidades de procesamiento de gráficos (GPU) integradas para lanzar el ataque.

«Demostramos que las GPU, que ya se utilizan ampliamente para acelerar una variedad de aplicaciones benignas como la representación de imágenes, también pueden usarse para» acelerar «ataques de microarquitectura (es decir, hacerlos más efectivos) en plataformas básicas», se lee en el artículo de investigación .

» , mostramos que un atacante puede construir todas las primitivas necesarias para realizar ataques efectivos de microarquitectura basados ​​en GPU y que todas estas primitivas están expuestas a la web a través de extensiones de navegador estandarizadas, lo que permite ataques de canal lateral y Rowhammer desde JavaScript».

El nombre GLitch proviene de una biblioteca de códigos de gráficos basada en navegador ampliamente utilizada conocida como WebGL para representar gráficos y desencadenar un fallo conocido en las memorias DDR.

Los expertos publicaron una prueba de concepto de ataque GLitch y demostraron que es posible llevar a cabo un ataque Rowhammer engañando a las víctimas para que visiten un sitio web que albergue un código JavaScript malicioso.

Al utilizar este esquema de ataque, es posible hackear un teléfono inteligente Android en sólo 2 minutos de forma remota. El script malicioso se ejecuta sólo dentro de los privilegios del navegador web, lo que significa que el atacante puede recopilar las credenciales de los usuarios y espiar su actividad de navegación.

El ataque GLitch no podía permitir que los actores de amenazas obtuvieran el control total sobre el dispositivo de la víctima.

GLitch en lugar de aprovechar la CPU como otras implementaciones de la técnica Rowhammer utiliza las unidades de procesamiento de gráficos (GPU).

Los investigadores han optado por explotar la GPU porque su caché se puede controlar fácilmente, lo que les permite analizar filas específicas sin ninguna interferencia.

«Si bien son poderosas, estas primitivas de GPU no son fáciles de implementar debido a características de hardware no documentadas. Describimos novedosas técnicas de ingeniería inversa para echar un vistazo a la arquitectura de caché previamente desconocida y la política de reemplazo del Adreno 330, una GPU integrada que se encuentra en muchas plataformas móviles comunes. » continúa el periódico.

Los teléfonos inteligentes afectados ejecutan los sistemas Snapdragon 800 y 801 en un chip; Esto implica que el ataque GLitch sólo funciona en dispositivos Android más antiguos, incluidos LG Nexus 5, HTC One M8 o LG G2.

El código PoC funciona tanto con Firefox como con Chrome; Los investigadores de la demostración en video demuestran el ataque GLitch en un Nexus 5 que se ejecuta en el navegador Firefox de Mozilla.

https://youtu.be/YniqBaSK-Eg

Desafortunadamente, es imposible mitigar el ataque GLitch con un parche de software porque aprovecha las vulnerabilidades del hardware.

Los expertos advierten sobre los posibles efectos de los ataques de Rowhammer a gran escala; Actualmente están ayudando a Google a mitigar el ataque.

Throwhammer: ataque Rowhammer a un sistema en una LAN

Después de que los expertos en ataques GLitch demostraron cómo aprovechar las unidades de procesamiento de gráficos (GPU) para lanzar un ataque Rowhammer remoto contra teléfonos inteligentes Android, también idearon una variante del ataque Rowhammer denominado Throwhammer para apuntar a un sistema en una LAN.

La técnica fue ideada por el mismo equipo de investigadores que propuso las anteriores, un grupo de expertos de la Vrije Universiteit Amsterdam y la Universidad de Chipre.

Esta vez, los investigadores demostraron que al enviar paquetes maliciosos a través de LAN es posible implementar un ataque Rowhammer en sistemas que ejecutan tarjetas de red Ethernet equipadas con acceso directo a memoria remota (RDMA). Este tipo de configuración se adopta ampliamente en la infraestructura de la nube y los centros de datos.

3 – Ataque con martillo

Las tarjetas de red utilizan la función RDMA para permitir que las computadoras en una red intercambien datos (con privilegios de lectura y escritura) directamente a la memoria principal. Los investigadores demostraron que es posible abusar de esta característica para realizar el acceso a la memoria de destino en rápida sucesión, provocando cambios de bits en la DRAM.

El ataque Throwhammer requiere una red de alta velocidad de al menos 10 Gbps para activar un bit flip a través de cientos de miles de accesos a memoria a ubicaciones DRAM específicas en decenas de milisegundos.

«Específicamente, logramos invertir bits de forma remota utilizando una red básica de 10 Gbps. Confiamos en la tecnología RDMA comúnmente implementada en nubes y centros de datos para leer rápidamente desde buffers DMA remotos y causar corrupciones Rowhammer fuera de estos buffers que no son de confianza», se lee en la investigación . artículo publicado por los expertos.

«Estas corrupciones nos permiten comprometer un servidor Memcached remoto sin depender de ningún error de software».

Según el artículo, los expertos pudieron observar cambios de bits accediendo a la memoria 560.000 veces en 64 ms (aproximadamente 9 millones de accesos por segundo) a través de LAN a su tarjeta de red habilitada para RDMA.

«Incluso las tarjetas Ethernet normales de 10 Gbps pueden enviar fácilmente 9 millones de paquetes por segundo a un host remoto que terminan almacenándose en la memoria del host», continúa el documento.

«¿Podría esto ser suficiente para que un atacante realice un ataque Rowhammer desde toda la red? En el resto de este documento, demostramos que este es el caso y que los atacantes pueden utilizar estos cambios de bits inducidos por el tráfico de red para comprometer una aplicación de servidor remoto. «

Los expertos explicaron que desactivar RDMA para mitigar el ataque es efectivo pero no realista, por lo que presentaron algunas soluciones como ALIS, un asignador personalizado que aísla un buffer RDMA vulnerable.

Los detalles técnicos del ataque Throwhammer están disponibles en el artículo publicado por los expertos y titulado » Throwhammer: Rowhammer Attacks over the Network and Defenses «.

Conclusiones

Los expertos demostraron cómo aprovechar el ataque Rowhammer para atacar sistemas tanto móviles como de escritorio. Lamentablemente, no es posible mitigar simplemente los fallos explotados por la técnica mediante el uso de parches de software.

Para solucionar el problema, es necesario rediseñar la arquitectura de los componentes defectuosos; Mientras tanto, los actores de amenazas pueden comenzar a explotar la técnica Rowhammer en la naturaleza.

Referencias

http://users.ece.cmu.edu/~yoonguk/papers/kim-isca14.pdf

https://github.com/google/rowhammer-test

https://vvdveen.com/publications/drammer.pdf

https://www.vusec.net/projects/glitch/#technicals

https://www.cs.vu.nl/~herbertb/download/papers/throwhammer_atc18.pdf

https://www.vusec.net/projects/drammer/

https://www.vusec.net/wp-content/uploads//05/glitch.pdf

https://securityaffairs.co/wordpress/72377/hacking/throwhammer-rowhammer-attack.html

https://securityaffairs.co/wordpress/72131/hacking/glitch-attack-amndroid.html

https://securityaffairs.co/wordpress/34717/hacking/dram-rowhammer-flaw-exploit.html

https://securityaffairs.co/wordpress/52677/hacking/drammer-android-attack.html