miércoles, julio 15, 2015

Revisar Niveles de Integridad de Windows con MicEnum

Con la creación del nuevo kernel Windows 6.x, los ingenieros de Microsoft añadieron al sistema operativo un nivel de seguridad basado en lo que se denominan los Integrity Levels. Estos Niveles de Integridad dividen todos los objetos y procesos del sistema en diferentes anillos de seguridad, que van desde el nivel con más privilegios al que tiene menos privilegios. La idea de introducir estos Niveles de Integridad se basa en crear anillos que eviten que un proceso que se ejecuta en un nivel menos privilegiado pueda acceder a partes del sistema que se ejecutan en niveles de más privilegios.

Figura 1: Revisar Niveles de Integridad de Windows con MicEnum

Para evitar este acceso de objetos en niveles inferiores a niveles superiores, el sistema operativo Microsoft Windows utiliza el sistema MIC (Mandatory Integrity Control), que se encarga de forzar esta protección. Por ejemplo, si un navegador tiene una pestaña corriendo en un Nivel de Integridad bajo, y se descubre un bug que permite ejecutar código, ese código solo podrá acceder a partes del sistema que estén en el mismo anillo de seguridad, y no podrá acceder a objetos en niveles de integridad superiores.

Figura 2: Niveles de Integridad en Navegadores vistos con Process Explorer

Cuando se produce una intrusión en un sistema Windows por medio de un 0day, localizar las anomalías en las configuraciones de los Niveles de Integridad es una buena estrategia para el analista forense. Si se explota un 0day en un plugin de un navegador que corre con Nivel de Integridad Medio y se crea un objeto en las carpetas temporales para ejecutar un programa que lance un ransomware - por poner un ejemplo -, que se ejecute con Nivel de Integridad Medio, tendremos una anomalía con respecto a los Niveles de Integridad que tienen los programas en las carpetas temporales.

Figura 3: MicEnum para Windows. Descarga gratuita

Para localizar y analizar los Niveles de Integridad de los objetos y las claves del registro, además de poder utilizar Process Monitor para los procesos en ejecución o iCalcs.exe para los scripts que revisan objetos uno a uno - muy típicos en PowerShell -, en el Laboratorio de Eleven Paths se ha creado la herramienta MicEnum, con el objeto de ayudar a un analista forense y a un usuario que quiera fortificar su Windows.

Figura 4: Estructura de Niveles de Integridad en árbol de archivos de Windows

El funcionamiento es muy simple, es una herramienta con un interfaz gráfico - debe ser corrida como administrador para ver todos los Niveles de Integridad - que recoge en dos árboles la estructura de archivos y la estructura de claves de registro.

Figura 5: Estructura de Niveles de Integridad en árbol de claves de registro

A partir de ese árbol, se puede solicitar la revisión de toda la rama para localizar anomalías en Niveles de Integridad, o lo que es lo mismo, configuraciones de objetos hijos con Niveles de Integridad distintos a los de su padre.

Figura 6: Reconfiguración de Niveles de Integridad

En cualquier momento, al igual que se puede hacer con icalcs.exe, se puede reconfigurar el Nivel de Integridad de cualquier objeto del sistema solo con hacer uso de las opciones del menú contextual en la herramienta.

Figura 7: Exportación y Carga de datos en formato XML para la revisión de resultados de una sesión anterior

Si te dedicas a hacer análisis forense, análisis de malware en Windows o fortificar sistemas operativos Microsoft Windows, seguro que le acabas encontrando utilidad a esta herramienta, que además permite exportar los resultados en formato XML y volver a cargar sesiones anteriores para su revisión.

Saludos Malignos!

1 comentario:

  1. Me parece una herramienta realmente util.

    El problema que veo es que para conseguir una adecuada fortificazión supongo que sean necesario un conocimiento milimetrico del funcionamiento interno de windows.


    ResponderEliminar