Exploit de JavaScript elimina protección ASLR en 22 arquitecturas de CPU

Share this…

Investigadores de seguridad han descubierto una falla en microprocesadores que podría anular las protecciones de memoria en millones de dispositivos, independientemente de su sistema operativo o aplicación que se ejecute en ellos, y la falla no puede ser totalmente arreglada con cualquier simple actualización de software.

La vulnerabilidad reside en la forma en que la unidad de administración de memoria (MMU), un componente de muchas CPU, funciona y permite evadir la protección ASLR (Address Space Layout Randomization).

ASLR es una defensa de seguridad crucial desplegada por todos los sistemas operativos modernos Windows, Linux MacOS, Android y BSD.

En general, ASLR es un mecanismo de protección de memoria que genera de forma aleatoria la ubicación donde los programas se ejecutan en la memoria de un dispositivo. Esto, a su vez, dificulta que los atacantes ejecuten código malicioso en puntos específicos de la memoria cuando explotan desbordamientos de búfer o errores similares.

En resumen, para los atacantes, es como un intento de robar una casa con los ojos vendados.

Pero ahora un grupo de investigadores, conocido como VUSec de la Universidad de Vrije en Holanda, han desarrollado un ataque que puede evadir la protección ASLR en al menos 22 microarquitecturas de procesadores de vendedores como Intel, AMD, ARM, Allwinner, Nvidia y otros.

El ataque, denominado ASLR Cache o AnC, es particularmente grave porque utiliza código JavaScript para identificar las direcciones base en la memoria donde se ejecutan los componentes del sistema y aplicaciones.

Por lo tanto, simplemente visitar un sitio malicioso puede desencadenar el ataque, lo que permite a los atacantes realizar más ataques dirigidos a la misma área de memoria para robar información sensible almacenada en la memoria del PC.

El ataque explota la forma en que los microprocesadores y la memoria interactúan entre sí.

MMU, que está presente en los chips de escritorio, móviles y servidores y cuya tarea es asignar un lugar donde la computadora almacena los programas en su memoria, comprueba constantemente un directorio llamando una tabla de páginas para realizar un seguimiento de esas direcciones.

Los dispositivos suelen almacenar la tabla de páginas en el caché de la CPU, lo que hace que el chip sea más rápido y eficiente. Sin embargo, este componente también comparte parte de su caché con aplicaciones no confiables, incluidos los navegadores.

Por lo tanto, una pieza de código JavaScript que se ejecuta en un sitio web malicioso también puede escribir en esa memoria caché (ataque de canal lateral), lo que permite a los atacantes descubrir dónde se encuentran los componentes de software, como las bibliotecas y los archivos RAM asignados.

Con estos datos de localización en manos, cualquier atacante puede leer porciones de la memoria de la computadora que luego podrían usar para lanzar exploits más complejos, aumentar el acceso al sistema operativo completo y secuestrar un sistema informático.

Los investigadores explotaron con éxito los ataques de JavaScript de AnC a través de los navegadores web Chrome y Firefox actualizados en 22 microarquitecturas de CPU diferentes en unos 90 segundos, incluso a pesar de las protecciones ASLR incorporadas en esos navegadores, como temporizadores de JavaScript rotos.

El equipo de investigación de VUSec ha publicado dos trabajos de investigación [1,2] detallando el ataque de AnC, junto con dos demostraciones de vídeo que muestran el ataque que se ejecuta en un navegador Firefox en una máquina Linux de 64 bits.

En su ataque, los investigadores combinaron su código JavaScript de AnC con un código de ataque que explota una vulnerabilidad de uso posterior a la actualización (CVE-2013-0753) en Firefox. Los problemas con ataques AnC se rastrean a través de varios identificadores CVE, incluyendo:

  • CVE-2017-5925 para procesadores Intel
  • CVE-2017-5926 para procesadores AMD
  • CVE-2017-5927 para procesadores ARM
  • CVE-2017-5928 para un problema de temporización que afecta a varios navegadores

El equipo de VUSec ya notificó a todos los fabricantes de chips y empresas de software afectados, incluyendo a Intel, AMD, Samsung, Nvidia, Microsoft, Apple, Google y Mozilla, hace más de tres meses.

“La conclusión es que este comportamiento de caché y la fuerte asignación al espacio de direcciones son mutuamente excluyentes”, concluye el documento. “Debido a la importancia de la jerarquía de almacenamiento en caché para el rendimiento general del sistema, es probable que todos los arreglos sean demasiado costosos para ser prácticos”.

“Además, incluso si las mitigaciones son posibles en el hardware, por ejemplo, una memoria caché separada para las tablas de páginas, los problemas pueden emerger de nuevo en el software. Por lo tanto, recomendamos a no confiar en ASLR como la primera línea de defensa contra los ataques de memoria y para futuras defensas no confiar en ella como un elemento fundamental de construcción”.

Fuente:https://www.seguridad.unam.mx/