En el artículo anterior vimos cómo utilizar la herramienta gratuita Sysmon para registrar información de procesos y conexiones de red en equipos con sistema operativo Windows. Esta información es de gran utilidad, ya que cualquier proceso y conexión que se ejecute en el sistema se registrará en la bitácora de eventos correspondiente, con lo que podremos hacer una investigación de seguridad en caso de necesitarlo, y saber, por ejemplo, qué procesos se ejecutaron en un momento determinado en un equipo que presentó un comportamiento sospechoso.

Sin embargo, a pesar de que con esta configuración podemos incrementar de forma importante nuestra postura de seguridad de equipos Windows, es posible que no se ajuste del todo a nuestro ambiente o que auditemos actividad normal del sistema, generando así una gran cantidad de registros que complican el análisis y que, por su gran volumen, pueden dificultarle a un analista identificar la información verdaderamente relevante. Por poner un ejemplo, si se auditan todas las conexiones de red en el equipo, se van a registrar las que los navegadores de Internet como Chrome, Edge o Mozilla efectúan, las cuales no es conveniente auditar con Sysmon pues proporcionan pocos datos útiles.

Para enfrentar este problema, Sysmon permite a los usuarios definir y utilizar un archivo de configuración de tipo XML, ajustable a las necesidades de cada organización en el monitoreo de procesos, conexiones de red, creación de archivos, llaves de registro y otras categorías, las cuales se listan en la siguiente tabla:

Como podemos ver, con el archivo de configuración tenemos una mayor cantidad de opciones de auditoría a nuestro alcance (más que con la instalación sin archivo de configuración explicada en la parte 1 de esta serie). 

Como ejemplo, en este artículo vamos a desarrollar un archivo de configuración que define los valores hash a auditar y dos categorías, lo que debiera servir al lector para desarrollar archivos de configuración más complejos.  

Comenzaremos con una configuración básica que registra los hashes md5, sha256 e imphash de la imagen de los procesos en ejecución, que almacenamos en el archivo sysmon.conf 

Para instalar el software, pasaremos al comando Sysmon el nombre del archivo de configuración con la bandera -i. El parámetro -accepteula es para aceptar la licencia de uso y solo se requiere ejecutar una vez en cada equipo, aunque no afecta si lo seguimos usando posteriormente. 

Al revisar la información registrada en la bitácora de eventos de Sysmon, podemos ver que se registran los hashes indicados en el archivo de configuración (MD5, SHA256 e Imphash). En la figura siguiente se muestra uno de los registros generados al ejecutar el navegador Web Microsoft Edge. 

Ahora podemos agregar filtros de inclusión o exclusión para cada categoría, los cuales deben estar contenidos en la etiqueta EventFiltering; dentro de cada una especificaremos los filtros de exclusión e inclusión de cada categoría. 

Si deseamos habilitar alguna categoría es necesario indicar que no se desea excluir nada. Supongamos que en la configuración existente queremos auditar las conexiones de red, entonces basta con agregar los filtros EventFiltering e indicar que no se desea excluir nada de la categoría de conexiones de red. En la siguiente imagen vemos el archivo de configuración correspondiente. 

ara actualizar la configuración de Sysmon basta con utilizar la bandera -c en lugar de la bandera -i. 

Aprovechamos ahora para introducir el evento con id 16, el cual se genera cuando hay un cambio en la configuración de Sysmon. Este evento registra el valor hash del archivo de configuración y permite saber qué configuración se aplicó y cuándo.

Al revisar nuevamente el log de eventos podemos identificar registros de conexión de red, algunos de los cuales fueron generados por el navegador Microsoft Edge. 

Si queremos excluir la información de este navegador bastará con agregar una condición dentro de las etiquetas de exclusión de la categoría de red. En un entorno real, seguiríamos el mismo procedimiento para identificar y excluir la actividad normal del sistema y así reducir el ruido generado. Para definir el filtro debemos identificar alguna propiedad relevante, en este caso sería la imagen del ejecutable C:\Windows\System32\MicrosoftEdgeCP.exe. El archivo de configuración quedaría así:

Se actualiza el archivo de configuración con el comando que ya conocemos. Después de aplicar la nueva configuración podemos ver que seguimos teniendo actividad de red, pero ya no del navegador Microsoft Edge.

Sysmon también puede auditar cambios en el registro de Windows, pero es importante que las políticas de auditoría sean muy específicas a las claves de registro de interés o podrían crearse demasiados eventos, generando ruido y dificultando el análisis. Cuatro de las llaves de registro relevantes desde el punto de vista de seguridad son aquellas usadas por los programas de software para lograr persistencia, ya que son abusadas por el malware para asegurar su ejecución cuando el sistema operativo se inicia o cuando los usuarios inician sesión en el equipo. En la práctica hay muchísimas otras llaves de registro usadas para persistencia, pero en este ejemplo solo hablaremos de las siguientes cuatro (que son muy utilizadas) para ejemplificar esta funcionalidad: 

HKLM\Microsoft\Windows\CurrentVersion\Run 

HKLM\Microsoft\Windows\CurrentVersion\RunOnce 

HKCU\Microsoft\Windows\CurrentVersion\Run 

HKCU\Microsoft\Windows\CurrentVersion\RunOnce 

Para auditar modificaciones en estas llaves de registro podríamos crear cuatro condiciones separadas, pero en este caso podemos optimizar la condición, ya que las cuatro llaves contienen el texto Microsoft\Windows\CurrentVersion\Run, por ello, podemos crear una sola regla para cualquier llave de registro que tenga este texto. El archivo de configuración quedaría así: 

Al ejecutarse un proceso que altera alguna de estas llaves de registro auditadas, se generan los eventos 12 y 13, este último registra el nombre del proceso, la llave, el valor y los datos guardados, que en el caso mostrado revela que el malware genera el valor con nombre WindowsUpdates para ejecutar el programa malicioso con ruta C:\Windows\Temp\evil.exe.

De la misma manera en la que se excluyó la auditoría del navegador web Microsoft Edge podríamos deshabilitar la auditoría de algún proceso normal del sistema y que se ejecute continuamente, a fin de reducir el ruido generado en el log de auditoría. Algunas de las condiciones más usadas en Sysmon son: is (es), is not (no es), contains (contiene), begin with (empieza con) y end with (termina con).  

 

Conclusión 

En esta entrega demostramos cómo hacer un archivo de configuración sencillo para Sysmon, que extiende las capacidades de auditoría predeterminadas y permite aplicar una configuración específica en la organización, a fin de reducir el ruido que se registra en los archivos de auditoría. En un sistema productivo podríamos tener un archivo de configuración con cien o más líneas y abarcaríamos más de las categorías disponibles. Es necesario actualizar el archivo de configuración periódicamente para ajustarse a los cambios de software en la organización. Así mismo, es posible que se generen varios archivos de configuración para cada sistema operativo.  

En la siguiente parte veremos varias opciones para extraer y explotar la información registrada de Sysmon que son más flexibles y avanzadas que usar simplemente el log de eventos de Windows. Con ello podremos detectar eventos sospechosos y maliciosos más rápidamente que revisando registro por registro. También podremos integrar la información con indicadores de compromiso obtenidos de feeds de inteligencia públicos o privados.

 

[email protected]