
Herramienta de caza de amenazas sobre Sysmon y gráficos

Grafiki es un proyecto de Django sobre Sysmon y gráficos, por ahora.
En mi opinión, EventViewer, Elastic e incluso Kibana no son lo suficientemente gráficos. Las amenazas actuales son complicadas y si los atacantes piensan en gráficos, los defensores también deben hacerlo.
Esto es una prueba de concepto, el código aún no ha sido depurado pero quizás pueda ser útil para alguien, lo mejoraré.
Este proyecto comenzó como un analizador de EVTX a base de datos SQL y quizás ese sea el núcleo del proyecto.
El proyecto no es lo suficientemente maduro, aunque funciona, el plan de pruebas aún no está definido.
Cualquier opinión, error encontrado, solicitud de mejora... será bienvenida.
git clone https://github.com/lucky-luk3/Grafiki.git
cd Grafiki
sudo -- sh -c -e "echo '127.0.0.1 grafiki.local' >> /etc/hosts"
docker compose up --build &
docker exec -it -d grafiki-app-1 /init_django.sh
En tu navegador ve a http://127.0.0.1:8000/ o http://grafiki.local:8000/
¡Caza, aprende y disfruta!
Esta aplicación puede procesar dos tipos de archivos.

En esta página, puedes subir archivos evtx o archivos de eventos de Elastic y procesarlos.

Esta página es útil para crear una biblioteca de archivos de muestras en línea.
Cuando creas un ejemplo, pones la URL del archivo y cuando lo procesas, la aplicación descarga el archivo de eventos y lo procesa.

En esta página, puedes crear búsquedas en tu instancia de Elastic y crear un gráfico del resultado. Puedes crear filtros sobre:

La página de gráfico es el núcleo de esta aplicación y la interfaz de investigación de la misma.
En las otras páginas seleccionas tus datos y estas páginas te envían a la página de gráfico, si vas directamente a la página de gráfico, no habrá nada o los últimos datos buscados para ti.
En esta página hay dos pestañas, una para Sysmon y otra para eventos de PowerShell.
Hay dos tipos de elementos, nodos y aristas. Los nodos representan entidades como proceso, archivo o clave de registro y las aristas representan acciones como crear, eliminar o conectar.

Estamos en el núcleo.
Esta parte utiliza la información en la base de datos para crear gráficos sobre los eventos analizados.
Puedes navegar en el gráfico, observando información sobre creación de procesos, pipes con nombre conectadas... pero generalmente hay demasiada información para trabajar cómodamente.
Dentro de la pestaña hay una sección oculta sobre filtros de gráfico.
En esta área puedes trabajar con los datos de filtrado del gráfico.
Puedes filtrar nodos por estas entidades:
También puedes filtrar nodos de proceso por:
Además, puedes filtrar aristas por estas acciones:
Una gran característica es crear animaciones sobre los datos en el gráfico, esto es muy útil por ejemplo en Parent PID Spoofing o cuando algún usuario en una computadora ejecuta comandos remotamente.

Cuando el gráfico tiene demasiada información, es posible eliminar un nodo, una arista, un grupo de nodos o un grupo de nodos recursivamente.
Eliminar grupo de nodos funciona seleccionando un nodo y la aplicación eliminará todos los nodos cuyo padre sea el nodo seleccionado.
Eliminar grupo recursivamente también funciona seleccionando un nodo, pero la aplicación recorrerá los nodos eliminando hasta terminar esta rama del árbol. Si la rama tiene mucha información, esto tomará mucho tiempo.
En la parte inferior de la pantalla es posible cambiar la física del gráfico.
Cuando el gráfico tiene mucha información, podría ser útil deshabilitar la física para estabilizar el gráfico.
Puedes jugar con la física, es divertido.
En la pestaña de PowerShell es posible analizar comandos de PowerShell.
Los comandos se muestran en un acordeón y dentro de cada fila, si el comando contiene un comando en base64, será decodificado y analizado.
Puedes buscar en todos los eventos la parte codificada o decodificada del comando.





