ThreatHunting en equipos OSX con Supraudit y Splunk


Hace poco tuve la necesidad de trabajar con detección de amenazas (threat-hunting) en dispositivos con sistema operativo Windows y OSX.  Para el primer caso utilicé la ya conocida herramienta de Microsoft Sysmon (si está interesado, hay mucha y muy buena documentación sobre el tema en internet).

Sin embargo para el tema de equipos con OSX es que el threat hunting no es tan conocido hoy en día, por lo que me atrevería a decir que soy uno de los primeros en realizar este tipo de detección con herramientas open source en México.

Por lo que espero que este sea uno de los primeros artículos sobre el tema y que sirva para seguir mejorando las estrategias de ThreatHunting en empresas.

Si no está relacionado con el concepto de Threat Hunting básicamente consiste en monitorear toda la actividad que se lleva a cabo en el día a día de un equipo de cómputo o servidor y que normalmente no es detectada o analizada por los motores tradicionales de AV ya que en la mayoría de esta actividad están involucrados comandos o aplicaciones del Sistema Operativo y que tienen un cierto grado de confiabilidad para su ejecución, sin considerar claro, que éstos, también pueden ser utilizados por los atacantes ya sea para infectar el equipo o robo de información del mismo.

En un escenario tradicional, un equipo de un usuario de oficina, puede generar en su equipo mas de 20,000 eventos al día y dentro de esos tenemos que encontrar que actividad pudiera ser maliciosa y no ha sido vista por el antivirus o ips. Entonces las preguntas obvias que surgen de inmediato son:

¿Cómo sé que actividad puede ser considerada como maliciosa en mi equipo? 
Normalmente los equipos de seguridad que cuentan con especialistas en pentesting tienen una idea de las técnicas que pueden ser empleadas para comprometer un endpoint (pc o servidor) sin ser detectados por el AV, sin embargo, si no están familiarizados con temas de pentesting o simplemente quiere homologarse a un estándar internacional, puede utilizar el framework liberado por el MITRE bajo el nombre de ATT&CK (Adversarial Tactics, Techniques, and Common Knowledge). 

Este framework está basado, como su nombre lo indica en un conjunto de técnicas y herramientas que sin necesidad de un conocimiento avanzado de pentesting puede utilizar para evaluar la eficacia de sus controles actuales de seguridad (Antivirus, IPS, HIPS, Firewalls, etc...).  

Existen también otras empresas que ya están desarrollando temas importantes alrededor de este framework, una de ellas es Red Canary con su iniciativa Atomic Red Team, ellos tienen un repositorio de Github con todas las pruebas a ejecutar por sistema operativo.  

Recomiendo que revisen este repositorio, ya que en lo personal a mi me ayudó bastante para este proyecto de monitoreo en equipos con OSX, de hecho también desarrollé un programa para parsear el set de pruebas de Red Canary a scripts finales, listos para ser ejecutados en su equipo. 

Con todo lo anterior, ya puede tener una muy buena idea de los eventos que requieren ser monitoreados en su equipo como actividad relevante y potencialmente maliciosa.

¿Cómo logro poner ojos en los eventos relevantes y que pudieran representar una anomalía?
Bueno,  ya tenemos la actividad identificada como anómala y que requerimos monitorear, pero y ahora con que lo hacemos??

Afortunadamente existen herramientas open source confiables que pueden ser utilizadas en entornos corporativos para llevar a cabo el monitoreo continuo.


  • Sysmon : Herramienta desarrollada por Microsoft, la cual puede descargar de aquí.
  • Supraudit: Herramienta desarrollada por Jonathan Levin, una de las personas con mas conocimiento de las entrañas del sistema operativo OSX a quien tengo el gusto de conocer.  Pueden descargar la herramienta desde su página oficial.
Para el tema de este blog, me enfocaré en esta última, ya que, como he mencionado, para el tema de monitoreo de Sysmon hoy en día hay mucha y muy buena documentación. 


¿Cómo puedo integrar todo esto ante una estrategia de respuesta a incidentes en mi empresa?
En un entorno empresarial donde se habla de que existen cientos o miles de equipos a monitorear, es importante considerar una herramienta que permita analizar todos los logs recopilados de los equipos (Windows y OSX)  que conformen nuestro ecosistema y además logre alertarnos cuando uno de los eventos relevantes (para lo que utilizamos el framework de ATT&CK).

Esto es posible a través de un correlacionador de eventos o SIEM, para lo cual utilizaremos la versión gratuita de SPLUNK, aunque también existe otra solución muy buena con ELASTIC SEARCH.

Sin embargo en este artículo mostraré unos ejemplos y queries que puede emplear con Splunk.


Y ya que tenemos todo esto, ¿Qué sigue?

Antes de poner manos a la obra, me gustaría mostrar un diagrama conceptual de como quedaría la infraestructura para el monitoreo de eventos en equipos con OSX.


Todos los equipos con OSX instalado, deben tener el cliente de 
Universal Forwarder de Splunk instalado y además ejecutar 
el Supraudit como demonio (servicio). 


Como lo detalla el diagrama, debemos instalar y configurar la aplicación de Supraudit para monitorear los eventos de forma local y el cliente de Universal Forwarder de Splunk para reenviar los logs generados por Supraudit hacia el SIEM. 

Puede realizar esta actividad manualmente si ud. lo desea, sin embargo si quiere simplificar mucho esta actividad y distribuirla en muchos equipos puede utilizar un script que escribí tanto para configurar el supraudit como para instalar el cliente de Splunk. Puede descargar el script de aquí.

El script tiene la posibilidad de configurar la IP o nombre del servidor de Splunk que recopilará todos los logs (indexer), solo es necesario modificarlo de manera manual. 

Ya una vez que se instala el cliente en el equipo y si los parámetros del servidor de splunk fueron correctamente configurados,  ya debería estar recibiendo los logs en el indexer de splunk bajo el sourcetype de nombre "MacMon".

El siguiente paso, es realizar el parseo de los logs, cosa que es relativamente fácil, puesto que ya el formato de los mismos, separa cada uno de los campos con el caracter "|"

Si no está familiarizado sobre como realizar este parseo de campos, puede consultar este artículo dentro del knowledge base de Splunk.

Ya con la información separada en campos, prácticamente lo que hace falta es diseñar tanto los dashboards como las alertas de acuerdo a la necesidad que tenga en su empresa, sin embargo pongo un par de ejemplos que pudieran ayudar a desarrollar su dashboard y alertamiento para implementar el threat hunting en equipos MAC. 


Fig 1. Dashboard diseñado con cada uno de los indicadores de ATT&CK, colocando el contexto de la fase del ataque y prioridad del mismo. 




Fig 2. Estadísticas generales, así como un top ten de aplicaciones con privilegios elevados que se ejecutan en los equipos, de igual forma se pueden ver los intentos fallidos/existosos de login.


Ya con este tipo de información ya es mas sencillo generar alertamiento y envío de correos a las personas responsables de la atención de incidentes.  Para ver el código fuente de los dashboards y los queries utilizados, puede descargarlos de aquí.

Espero esta información haya sido de utilidad para cubrir las necesidades de monitoreo de amenazas en este universo de equipos, de igual forma, no dude en contactarme para cualquier duda o sugerencia referente a este tema. 

Comentarios

Lo mas visto