Cabecera-v2-web.jpg

Vulnerabilidad en ASLR de Windows


Se ha descubierto una vulnerabilidad grave en la implementación de Windows Address Space Layout Randomization (ASLR) en Windows que no activa correctamente dicha protección, dejando los equipos vulnerables a la explotación de otras vulnerabilidades.

Esta vulnerailidad afecta a los sistemas: Windows 8, Windows 8.1, y Windows 10.

ASLR es un mecanismo de protección contra ataques de reutilización de código, incorporado en Windows desde Vista, a través del cual los módulos ejecutables se cargan en direcciones de memoria aleatorias, no predecibles. De esta manera se mitigan los ataques que se basa en código almacenado en direcciones predecibles. Una vulnerabilidad en la implementación de ASLR es el hecho que requiere que el código esté vinculado con el flag /DYNAMICBASE para que utilice ASLR.

Por ello, para proteger a las aplicaciones que no hayan sido compilados con dicho flag, se habí­a incluido una funcionalidad en Microsoft EMET que permite activar mecanismos de protección a nivel del sistema operativo, de forma global y mandatoria para todo el sistema. En las últimas versiones de Windows 10, EMET fue reemplazado por Windows Defender Exploit Guard, que ha incorporado estas funcionalidades.

Antes de Windows 8, la protección global y mandatoria de ASLR se implementaba mediante el registro HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages, estableciendo un valor 0xFFFFFFFF en éste. De esta manera, Windows traslada automáticamente el código que tiene una tabla de relocación, de modo a que la ubicación del código en memoria será diferente con cada reinicio y entre diferentes sistemas. Desde Windows 8, la protección global y mandatoria de ASLR se implementa mediante el registro HKLM\System\CurrentControlSet\Control\Session Manager\Kernel\MitigationOptions. Además, es necesario que esté activo el mecanismo de ASRL bottom-up para generar entropí­a (datos aleatorios) al ASLR.

El problema se da debido a que EMET y Windows Defender Exploit Guard activan ASLR global sin activar también botton-up ASLR global, por lo que no se genera suficiente entropí­a para iniciar una aplicación en direcciones de memoria aleatorias, lo que en la práctica es equivalente a que ASLR no esté presente. Es decir, por más de que en la interfaz gráfica se selecciona "On by default" o "Activo por defecto", esta opción no refleja los valores de los registros subyacentes. Esto genera que el programa es alojado en la misma dirección todas las veces y en otros los sistemas, dejando el sistema expuesto a técnicas de ataques conocidas que se consideraban solucionadas con ASLR.

Un cibercriminal puede explotar dicha falla para ejecutar otras técnicas de ataques basadas en reutilización de código. Esta vulnerabilidad, por sí­ sola, no genera un impacto directo sino debe ser combinada con la explotación de otra vulnerabilidad, del propio sistema operativo o de una aplicación.

Hasta el momento, no se ha publicado ningún parche para esta vulnerabilidad. Sin embargo, se puede corregir el problema, activando la funcionalidad de ASLR bottom-up y global mandatorio, importando los valores de registro necesarios:

1- Crear un archivo de texto en blanco con el siguiente texto:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"MitigationOptions"=hex:00,01,01,00,00,00,00,00,00,00,00,00,00,00,00,00

2- Guardar el archivo con extensión .reg (Ejemplo: ASLR.reg)

3- Abra el Editor de Registros de Windows buscando "regedit" en el Menú de Inicio de Windows

4- Seleccione File > Import .. y seleccione el archivo .reg que acaba de crear.



Más información: https://cert.gov.py/application/files/3715/1126...



pie.png

CERT-PY | Centro de Respuestas a Incidentes Cibernéticos
Ministerio de Tecnologí­as de la Información y Comunicación (MITIC)

Avda. Gral. Santos c/ Concordia | Telefono: (595 21) 217-9000
República del Paraguay

80x15.png

Versión del Template 1.11