Forzar DEP y ASLR en Windows

Pese a que Microsoft trate de mejorar la seguridad de su sistema operativo Windows con tecnologías como DEP y ASLR, estas no son siempre aplicadas por los desarrolladores de aplicaciones. No obstante existen técnicas para forzar el uso de estas tecnologías. Primero veamos para que sirven.

Qué es DEP

DEP (Data Execution Prevention) es una tecnología para proteger el equipo contra código malicioso y exploits. Se encarga de cerrar las aplicaciones si detecta un uso incorrecto de la memoria del sistema. Solo actua en programas de 32 bits ya que los diseñados en 64 bits ya vienen protegidos por defecto.

Qué es ASLR

ASLR (Address Space Layout Randomization) es una tecnología para prevenir ataques de desbordamiento de memoria. La tecnología ASLR viene incluida desde Windows Vista para complementar y reforzar a DEP ya que se descubrieron formas de saltarse la protección. Así pues ASLR nace con el objetivo de que las DLL se carguen en posiciones de memoria aleatorias tratando así de dificultar la tarea del atacante para saltarse el espacio de memoria de una librería.

Forzando el uso de DEP y ASLR con EMET

DEP y ASLR aportan un plus de seguridad al sistema operativo pero es decisión de los desarrolladores si activarlas en sus aplicaciones. Process Explorer permite comprobar si las aplicaciones en ejecución están protegidas por estas tecnologías.

Es por ello que Microsoft ha desarrollado EMET (Enhanced Mitigation Experience Toolkit) un software que permite forzar el uso de estas tecnologías, así como protegerlas contra las técnicas más conocidas para eludirlas. Se puede descargar la herramienta gratuitamente desde el Microsoft Download Center.

Como se puede observar la herramienta está dividida en dos partes: Configure System, para una configuración global del sistema y Configura Apps, para una configuración especifica por aplicación.

Para configurar y hacer un uso adecuado de la herramienta hay que tener claro que significan las siguientes opciones:

  • Opt-In: Si se elige esta configuración estamos indicando que la aplicación haga uso de la tecnología si así lo indica en la cabecera del programa. Se protegerá si la aplicación así lo quiere.
  • Opt-Out: Al contrario que Opt-Out, indicamos al proceso que haga uso de la tecnología independientemente de lo que hayan indicado sus desarrolladores.
  • Always On: También indica al proceso que fuerce el uso de la tecnología pero de un modo más estricto ya que no permite eludirla, ni siquiera por compatibilidad.
Además de DEP y ASLR se puede hacer uso de la protección contra SEHOP (Structure Exception Handler Overwrite Protection), que según EMET, hacen uso el 20% de los exploits de Metasploit.

Pese a que EMET permita forzar la protección de aplicaciones con estas tecnologías, no garantiza un funcionamiento optimo para todas ellas. Es por ello se recomienda monitorizar el sistema y hacer uso del Configure Apps para desactivar el uso de DEP y ASLR en aplicaciones no optimizadas para su uso.