Introducción
Existen aplicaciones que no pueden ser actualizadas para incorporar las nuevas medidas de seguridad (DEP, ASLR, etc) implantadas en los nuevos sistemas operativos de Microsoft para mitigar los ataques externos o de empleados malintencionados. Las razones para no hacerlo pueden ser varias:
* Se ejecutan en sistemas operativos Windows antiguos que no incorporan estas medidas.
* No se dispone de los recursos necesarios para modificar la aplicación.
* Es una aplicación de terceros.
* No se dispone del código fuente.
* Cuestiones legales lo impiden.
Una manera de incorporar los nuevos mecanismos de protección en este tipo de aplicaciones es mediante la herramienta EMET, de la que Microsoft ha publicado recientemente la segunda versión.
EMET
Es una herramienta orientada principalmente a proteger aplicaciones que se encuentren en ordenadores o servidores expuestos como por ejemplo aplicaciones de negocio en servidores de backend o navegadores en entornos críticos.
Respecto a la versión anterior, su granularidad es mayor, ya que las medidas de seguridad pueden ser aplicadas a una aplicación o a un proceso particular. También, incorpora un nuevo interfaz gráfico.
Se recomienda que antes de implantar esta utilidad, se compruebe que no interfiere en el funcionamiento de la aplicación que protege. Una vez aplicada, su presencia es transparente para el usuario
Medidas de protección incorporadas en EMET
La nueva versión de la herramienta incorpora las siguientes medidas de seguridad:
- Control de acceso a la tabla de direcciones (Export Address Table Access Filtering): evita la ejecución de shellcode impidiendo que acceda a la API de Windows.
- Selección aleatoria de carga de espacios de direcciones (Mandatory Address Space Layout Randomization): obliga a que los módulos de la aplicación se cargen en direcciones de memoria aleatorias para evitar que se pueda acceder fácilmente a sus funciones.
Las medidas anteriores se incorporan a las ya presentes en la antigua versión:
- Dynamic Data Execution Prevention (DEP): previene la ejecución de código de páginas no marcadas expresamente como ejecutables.
- Structure Exception Handler Overwrite Protection (SEHOP): previene la explotación de desbordamientos de pila.
- Heap Spray Allocation: bloquea el uso de las técnicas de Head Spray usadas por los exploits para copiar su shellcode a todas las direcciones de memoria posibles y que sea fácilmente accesible.
- Null Page Allocation: previene la resolución de una referencia a nulo en modo de usuario.
Fuente: INTECO-CERT