WIndows 8/10 no aplican correctamente ASLR

De acuerdo con una investigación realizada por el analista de seguridad del CERT, Will Dormann, las versiones de Windows 8 y superiores (Windows 10) no estaría aplicando correctamente la técnica de seguridad computarizada ASLR (Address Space Layout Randomization) debido a los cambios realizados en los valores de seguridad del registro del sistema.

ASRL-windows8-windows10

Si bien ASRL comenzó sus andanzas por allá en el año 2003 en el sistema operativo OpenBSD, en Microsoft Windows se comenzó a implementar con la llegada de Windows Vista a través de la herramienta de mitigación de seguridad mejorada llamada EMET, esta técnica ayuda al sistema operativo a prevenir ataques de reutilización de código ya que los módulos de ejecución se cargan en locaciones aleatorias de la memoria cada vez que se reinicia el sistema operativo.

Hasta Windows 7, ASRL estaba implementado a través de la clave del regitro HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages mediante el valor 0xFFFFFFFF, esto hacía que Windows automáticamente re-ubicara el código de un módulo en una nueva ubicación de la memoria cada vez que se reiniciaba el sistema, pero a partir de Windows 8 Microsoft decidió implementar ASRL de una manera diferente ya que ahora se aplica a través de la clave del registro HKLM\System\CurrentControlSet\Control\Session Manager\Kernel\MitigationOptions y el sistema debe tener habilitado el método bottom-up ASLR.

Vale reseñar que si bien tanto en Windows 8 como en Windows 10 ASRL viene con el valor «On by default» de manera predeterminada, esto no significa que el sistema tenga habilitada completamente dicha técnica de seguridad ya que los programas que no cuentan con /DYNAMICBASE a pesar de que pueden ser aleatorizados, no lograrán conseguir suficiente entropía. El resultado es que estos programas serán reubicados pero tendrán el mismo direccionamiento en la memoria cada vez que se reinicie el sistema.

Como medida temporal hasta que Microsoft solvente dicho problema de seguridad, la gente del CERT recomienda crear el siguiente valor de registro:

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

Luego de ser creado dicho valor, el mismo podrá guardarse con cualquier nombre con la extensión .reg (por ejemplo asrl.reg) y luego importarlo mediante las opciones del menú de archivo del registro de Windows.

Vía: Cert