- SigmaShooter (I): Preparando el SIEM Graylog.
- SigmaShooter (II): Generando nuestra primera firma Sigma.
- SigmaShooter (III): Desplegando SigmaShooter.
- SigmaShooter (IV): Ejecución automática de Sigma contra SIEM.
- SigmaShooter (V): DFIR con SigmaShooter.
SIGMA es un metalenguaje genérico y abierto, creado por Florian Roth, que permite describir en formato YAML reglas para detectar registros relevantes de una manera directa. El formato de la regla es muy flexible, fácil de escribir y aplicable a cualquier tipo de registro.
De esta manera, SIGMA proporciona una forma estructurada en la que los investigadores o analistas pueden describir sus métodos de detección y una vez desarrollados compartirlos con otros.
Una vez creada una firma SIGMA, esta puede ser convertida a consulta para la gran mayoría de sistemas SIEM, gracias al binario “sigmac”, SIGMA Converter.
1 Funcionamiento
El flujo de trabajo se define en el repositorio oficial de SIGMA con la siguiente imagen:
A continuación, se describe el flujo anterior:
1. En primer lugar, se crea la firma en formato YAML siguiendo las opciones disponibles, las cuales se detallan en el siguiente enlace de la wiki oficial de SIGMA:
https://github.com/Neo23x0/sigma/wiki/Specification
2. Una vez definida la firma, se pasa como parámetro a sigmac, el binario convertidor de SIGMA, indicando también el SIEM al que se quiere convertir la consulta.
Como resultado, sigmac devuelve la consulta generada a partir de la firma SIGMA para el SIEM indicado. Esta consulta puede introducirse en el buscador del SIEM para comprobar si existen los eventos definidos en la regla.
2 Creando nuestra primera firma SIGMA
Siguiendo las indicaciones del enlace anterior, en este punto vamos a crear nuestra primera firma SIGMA.
En primer lugar, debemos tener claro qué es lo que queremos buscar. En este ejemplo, crearemos una regla para detectar ejecuciones de Powershell desde Microsoft Word para identificar posibles documentos ofimáticos maliciosos.
En nuestro entorno, probamos la ejecución de un documento Word con macros que ejecutan Powershell, y observamos el registro generado en Sysmon:
A partir de este registro, creamos nuestra primera firma SIGMA para detectar los procesos de “powershell.exe” cuyo proceso padre sea “WINWORD.EXE”, ejecutable de Microsoft Word:
Como se puede observar, su lenguaje es muy sencillo y directo. La firma anterior se puede obtener del siguiente enlace:
https://github.com/ppll0p1s/SigmaShooter/blob/master/rules/powershell_from_winword.yml
Siguiendo el flujo de trabajo de SIGMA, pasamos la firma que hemos realizado por el convertidor de SIGMA, sigmac, para convertir la firma anterior a una consulta para el SIEM, en nuestro caso Graylog:
$ sigmac -t graylog rules/powershell_from_winword.yml
(EventID:"1" AND ParentImage:("*WINWORD.EXE*") AND Image: "*powershell.exe*"))
Copiamos la consulta y la buscamos en el SIEM:
No obtenemos ningún resultado. De momento, estamos a salvo: o no hemos recibido estos intentos de ataque o todos estamos muy concienciados de no abrir este tipo de documentos.
Esperado la tercera