¿Qué es Hayabusa y por qué es tan relevante en el análisis de logs evtx?
Recientemente tuve la necesidad de analizar decenas de gigas de información correspondiente a logs de eventos de seguridad de un servidor, en el cual la única pista era un nombre de usuario y una fecha confirmada de ataque; pero era necesario confirmar cuándo había sido comprometido y que otro tipo de actividades habían sido ejecutadas.
Afortunadamente llegamos a una interesante herramienta que va a dar muchas pautas respecto a dònde empezar, qué puede ser peligroso y en qué debes “digitalmente desconfiar”.
No es la única herramienta de este tipo, pero sì contiene una serie de procesos que distribuyen los eventos en resultados relevantes, validándolos contra una base abierta de conocimiento, pero también contra parámetros personalizados de detección y alerta.
Hablamos de Hayabusa, una herramienta que funciona desde la línea de comandos y se enfoca en el análisis de logs de eventos evtx de los sistemas Windows.
Esta herramienta ha sido desarrollada por Yamato-Security y se enfoca en reglas preconfiguradas o recolectadas mediante SIGMA rules, las cuales evalúan los eventos y determinan cuales pueden ser considerados como de riesgo con una descripción específica de la alerta, generando además una línea de tiempo donde los datos pueden ser fácilmente consultados o, a partir de sus marcas de tiempo, pueden ser verificados en la fuente original.
EL nombre Hayabusa hace referencia al Halcón Peregrino, una de las aves más rápidas de mundo. En este sentido, Hayabusa plantea ser una herramienta forense y de cacería de amenazas muy ágil y enfocada en aspectos clave para investigación.
¿Cómo funciona Hayabusa?
De acuerdo con los diagramas publicados en el GitHub de la aplicaicón, Hayabusa puede analizar los logs frente a su base de conocimiento que puede ser actualizada recurrentemente desde el GitHub o modificada según los criterios de investigación de cada analista.
Como resultado de esa validación, Hayabusa permite crear varios reportes de resultado para su análisis:
- Resumen de resultados en formato HTML.
- Línea de tiempo en formato csv, xlsx, etc.
- Exportar la información a otros formatos como json, para ser usados posteriormente en otro tipo de herramientas.
- Además, puede ser exportado a formatos específicos de otras herramientas como ELK, Timesketch o Takajo — otra herramienta creada por el mismo desarrollador.
¿Cómo usar Hayabusa?
Hayabusa es un framework desarrollado en RUST, puede descargar el código fuente y ejecutarlo localmente, pero la forma más sencilla de usarlo es mediante los releases compilados para Micrososft Windows o para todas las plataformas https://github.com/Yamato-Security/hayabusa/releases.
Una vez descargado, será solamente cuestión de iniciar el archivo ejecutable correspondiente desde la línea de comandos, puedes ver las opciones disponibles con el parámetro help:
Uno de los primeros comandos a ejecutar y que recomiendo ejecutar de forma recurrente es “update-rules”, de esta forma nuevas reglas serán descargadas y aplicadas para futuros análisis. Un recurso fundamental para obtener mejores resultados en cada análisis.
Con la herramienta ajustada, ahora solamente es necesario decidir el tipo de análisis a ejecutar, seleccionar los archivos evtx específicos mediante la opción -f o el directorio donde Hayabusa buscará archivos evtx y desarrollará la búsqueda, para esta última opción podemos usar el parámetro -d.
Dentro de las funciones de búsqueda tenemos las siguientes opciones:
- eid-metrics — Métricas por ID de eventos, eventos relacionados a búsqueda de amenazas.
- logon-summary — Imprimir un resumen de accesos válidos y fallidos, enfocando la investigación en los usuarios.
- pivot-keywords-list — Crear una lista de palabras clave para búsqueda.
- search — Buscar palabras clave o expresiones regulares dentro de los eventos analizados.
Una de las opciones de búsqueda que más rápido podemos obtener y que puede darnos luces por dónde empezar es eid-metrics para obtener una estadística general por tipo de eventos.
Para el ejemplo, Hayabusa ha analizado 310 archivos evtx que corresponden a 443 Mb y presenta el análisis estadístico ordenado por total de eventos de mayor a menor.
Como podemos ver en el resultado final, ha tomado 15 segundos para analizar 443 Mb de información. Ahora podemos enfocarnos en los eventos que podrían estar relacionados al incidente investigado.
Ahora, si lo que queremos es generar líneas de tiempo y tener un mayor detalle enfocados en la criticidad de los eventos, podemos usar la función csv-timeline. El siguiente es el resultado de ejecutar el comando .\hayabusa-2.8.0-win-x64.exe csv-timeline -o salida.csv -d $mypath\C\
Para este caso hemos seleccionado el formato csv para la construcción de la línea de tiempo y el resultado será exportado al archivo salida.csv (de no seleccionar esta opción, el resultado sera impreso en la interfaz de línea de comandos).
EL resultado nos da diferentes detalles que podemos aprovechar en términos de nuestra investigación:
- Fechas con la mayoría de detecciones: Resalta las fechas con el mayor número de detecciones por criticidad, en formato UTC como lo hacen las herramientas forenses.
- Top 5 de sistemas con el mayor número de detecciones: nuevamente un registro por sistemas indicando por color la criticidad y el número de eventos, así como los sistemas relacionas por hostname.
- Definición de las alertas más importantes por criticidad (Critico, Alto, Medio, Bajo e Informativo).
Para este ejercicio con cerca de 443 Mb de logs, el reporte ha tomado 1 minuto y 18 segundos en obtener los detalles estadísticos, analizar la totalidad de los logs y generar la línea de tiempo en formato CSV.
Una herramienta realmente ágil y enfocada en parámetros relevantes de acuerdo con la intención de investigación.
El análisis ha terminado y tengo alertas, ahora ¿cómo sé realmente de qué se tratan?
Como vemos, el resultado de la ejecución de la herramienta nos presenta datos estadísticas y nombres de las alertas, pero en el resumen realmente es imposible ver qué usuarios o sistemas están vinculados a la actividad, para esto hemos creado la línea de tiempo en formato CSV.
Si observamos las alertas por criticidad, notaremos que nos relaciona el tipo de alerta y el número de eventos:
Las líneas de tiempo creadas incluyen esta información como uno de sus campos, de tal forma que podemos hacer una búsqueda en el archivo asociada a la alerta específica haciendo uso de nuestra herramienta favorita, en mi caso es rg o ripgrep.
En este ejercicio el comando a usar será rg -iN ‘CobaltStrike Service Installations’ salida.csv para buscar la alerta relacionada dentro de la línea de tiempo almancenada en timeline.csv.
Finalmente tenemos un nombre de servicio, un ejecutable y una fecha exacta de ejecución.
Junto con los resultados obtenidos respecto a otras alertas es altamente probable que podamos empezar a definir nuestra línea de tiempo de la actividad maliciosa generada durante la intrusión o ataque.
Hayabusa cuenta con muchas más funciones y opciones de búsqueda y transformación, además de ser una herramienta muy ágil, también puede ser usada para conectar los resultados con otras herramientas, toda la información puede ser consultada en su manual de usuario.
Una herramienta más para incluir en nuestro arsenal de investigación.
¡Déjanos tus comentarios! Nos leemos en otro post!