Este documento describe una herramienta de correlación de procesos Sysmon que monitorea el comportamiento de procesos en un sistema para detectar actividad maliciosa. La herramienta incluye un motor de línea base que establece el comportamiento normal de procesos clave y un motor de jerarquía que detecta anomalías en la relación entre procesos padre e hijo. La herramienta puede usarse para cazar malware avanzado que opera en memoria sin dejar rastros en el disco.
3. Introducción
Técnicas y actores avanzados
Trabajan en memoria sin tocar disco
Usan los procesos legítimos del propio equipo
Cuando crean algún proceso es de una imagen de
disco legítima
Pueden inyectarse en procesos sin ni siquiera crear
un hilo remoto (APC)
Su malware solo se ejecutan en los equipos víctima
Suplantan la jerarquía de procesos
5. Introducción
Instrumentación / Monitorización
SYSMON de SysInternals
Focaliza en entornos Microsoft Windows
Necesitamos poder monitorizar que sucede, que
hacen los procesos del equipo
Sysmon identifica 22 tipos de actividad
7. Sysmon Process Correlator Engine
• Desarrollo en Python
• Licencia GNU GPL
• Implementa 2 motores de correlación
• Baseline Engine
• Hierarchy Engine
• Fuente de datos
• Ficheros .evtx de sysmon
• Eventlog de la máquina (incluso en
tiempo real)
• Alertas Eventlog y/o stdout
• Detecta comportamiento anómalo de los
procesos
• Proceso de Hunting buscando
actividad maliciosa en ficheros .evtx
descargados de equipos sospechosos
• Entornos sandbox como
complemento de detección
• Forense
• Complemento de monitorización
activa para Blue Team
• Testeo previo de reglas de correlación
en SIEM
• Búsqueda eventos en ficheros .evtx
Capacidades Usos
(Sysmon Processes Correlation Engine)
8. Sysmon Process Correlator Engine – Baseline Engine
• Establece una base de comportamiento de los principales procesos del
sistema, en especial aquellos susceptibles a ser inyectados.
• Línea base parte de un proceso de investigación con metodología empírica (No ML)
de un conjunto de máquinas con diferentes SO de Microsoft.
• El resultado es un catalogo de comportamiento modelado en eventos de
Sysmon
• Se establece un puntaje de confianza para cada uno de ellos, si alguno realiza una
acción fuera de la línea base pierde puntos. 0 puntos ->Alerta
BASELINE ENGINE
Características
OBJETIVO
Detectar procesos
legítimos con código
inyectado
9. Sysmon Process Correlator Engine – Baseline Engine
BASELINE ENGINE
Funcionamiento
Tipo Acción
Sysmon
Ej. (1) Process
Create
Baseline Eng.
Comprueba
OK
Atributos no
habituales
Resta
confianza al
proceso
Características ID 1
• Imagen
• Padre
• Path
• Integridad
• Sesión
• …
Baseline
Rules
No hay alerta
OK
Comprueba
puntos
Quedan
puntos? NO Alerta
11. Sysmon Process Correlator Engine – Baseline Engine
Modelado comportamiento explorer.exe
Comportamiento
General
Atributo Valor
Momento de ejecución Cuando un usuario inicia sesión interactiva, por lo tanto en cualquier
momento.
Tiempo de vida TTL Normalmente minutos u horas incluso días. Podemos encontrar alguna
ejecución que dura milésimas (<1s), que el SO mata por no ejecutar
otra instancia de shell.
Creación de procesos hijo Numerosa y diferente, anormal a partir de 20 en 1 hora
Instancias de ejecución 1 por usuario y sesión, si esta esta iniciada. Es posible llegar a tener 2
por usuario, si se activa “Abrir ventanas de carpeta en un proceso
independiente” (hija de svchost, no userinit) [1]
13. Sysmon Process Correlator Engine – Baseline Engine
Modelado comportamiento explorer.exe
ID Sysmon 1
Process Create
Atributo Valor
En general
muy pocos
eventos
Imagen disco C:Windowsexplorer.exe
Procesos Padre C:WindowsSystem32userinit.exe (Normal)
C:WindowsSystem32winlogon.exe (Cuando Crash)
C:Windowsexplorer.exe (Muy rara vez)
C:WindowsSystem32svchost.exe (Muy rara vez, se instancia un objeto
mediante DCOM, al habilitar “Abrir ventanas de carpeta en un proceso
independiente”)
Directorio de ejecución C:Windows
Usuario Diferente siempre de System
Sesión Diferente siempre de 0
14. Sysmon Process Correlator Engine – Baseline Engine
Modelado comportamiento explorer.exe
ID Sysmon 1
Process Create
Atributo Valor
En general
muy pocos
eventos
Integridad Media
(PE) Imagen Descripción Windows Explorer
(PE) Compañía Microsoft Corporation
(PE) Nombre original EXPLORER.EXE
Instancias de ejecución 1 por usuario y sesión si esta esta iniciada y 2 si se habilita “Abrir
ventanas de carpeta en un proceso independiente”
15. Sysmon Process Correlator Engine – Baseline Engine
Modelado comportamiento explorer.exe
ID Sysmon 2
File Creation Time
Changed
Atributo Valor Frecuencia
En general
muy pocos
eventos
Nombre fichero
destino
Por debajo de la jerarquía de la carpeta de usuario en especial
en AppData Ej. C:Users[USUARIO]AppData …
Menos de 30 al
día
ID Sysmon 3
Conexión
Atributo Valor Frecuencia
En general
muy pocos
eventos
(Iniciadas por el)
Puerto destino
"80", "443", "3128“ (Proxy si se usa) Menos de 12 al
día
(Recibidas por el)
Puerto destino
No es normal que levante sockets a la escucha, por lo que no
deberíamos ver intentos de conexión hacia el explorer.exe
(Iniciadas por el)
IP destino
IPs de Microsoft
16. Sysmon Process Correlator Engine – Baseline Engine
Modelado comportamiento explorer.exe
ID Sysmon 7
Carga módulos
Atributo Valor
En general
pocos
eventos
Path de la imagen en disco
de la DLL
Varias localizaciones, debido a extensiones, pero mayormente de:
C:Windows
C:Program Files
C:Program Files (x86)
C:PROGRA~1
OneDrive
Firma Status Valid
ID Sysmon 8
Create Remote
Thread
Atributo Valor Frecuencia
En general
muy pocos
eventos
Crea hilos remotos No debería generar eventos de este tipo
Recibe creación de hilos de C:WindowsSystem32wbemWmiPrvSE.exe 1 por ejecución
de explorer
17. Sysmon Process Correlator Engine – Baseline Engine
Modelado comportamiento explorer.exe
ID Sysmon 9
Escritura RAW
Atributo Valor Frecuencia
Acceso habitual Dispositivo DeviceHarddiskVolume Menos de 100 al día
ID Sysmon 11
Creación ficheros
Atributo Valor Frecuencia
Normal que se produzca Menos de 100 al día
ID Sysmon 12
Object create and
delete
Atributo Valor Frecuencia
Normal que se produzca Alta
ID Sysmon 10
Open process
Atributo Valor Frecuencia
Normal que se produzca Alta
18. Sysmon Process Correlator Engine – Baseline Engine
Modelado comportamiento explorer.exe
ID Sysmon 13
Value Set
Atributo Valor Frecuencia
Normal que se produzca Alta
ID Sysmon 14
Key and Value
Rename
Atributo Valor Frecuencia
No debería generar Nunca
ID Sysmon 15
ADS Create
Atributo Valor Frecuencia
No debería generar Nunca
19. Sysmon Process Correlator Engine – Baseline Engine
Modelado comportamiento explorer.exe
ID Sysmon 18
PIPE CONNECT
Atributo Valor Frecuencia
Pocos eventos Nombre PIPE srvsvc
MsFteWds
wkssvc
TDLN
Menos de 20 a la hora
ID Sysmon 17
Create PIPE
Atributo Valor Frecuencia
No debería generar Nunca
21. Sysmon Process Correlator Engine – Hierarchy Engine
• Permite detectar situaciones anómalas basadas en la jerarquía de los procesos
(relación Padre->Hijo) y sus acciones asociadas.
• Construye el árbol de ejecución de procesos y asigna las acciones que estos van
haciendo al PID correspondiente.
• Permite detectar situaciones reiteradas de un comportamiento (N veces un
hecho)
• Presenta una visión rápida de la cadena de sucesos de una amenaza alertada
HIERARCHY ENGINE
Características
OBJETIVO
Detectar ejecuciones de
código malicioso basado
en la cadena de acciones
22. Sysmon Process Correlator Engine – Hierarchy Engine
Ejemplos de reglas
Ataque de Phising
{"RuleID":8, "Rulename":"Successful phising attack", "Content": [
{"1c":{"Image":"EMAIL_AGENTS"}},
{"1":{"Image":"OFFICE_PROCESS"},"3":{"Image":"OFFICE_PROCESS"}},
{"1c":{"Image":"SCRIPTING_ENGINES_AND_SHELLS"}}
]},
Conecta
23. Sysmon Process Correlator Engine – Hierarchy Engine
Ejemplos de reglas
Ataque de Phising
{"RuleID":8, "Rulename":"Successful phising attack", "Content": [
{"1c":{"Image":"OFFICE_PROCESS"}
{"3c":{"Image":“*“, “DstIP”:”INTERNET”}}
]},
Todavía más generalizable
Conecta
24. Sysmon Process Correlator Engine – Hierarchy Engine
Ejemplos de reglas
Inyecciones de código
mal gestionadas
{"RuleID":17, "Rulename":"Possible bogus injected code in System process because too many werfaults", "Content": [
{"1c":{"Image":"wininit.exe"}},
{"N":2, "Seconds":86400},
{"1c":{"Image":“*"}},
{"1":{"Image":"werfault.exe"}}
]},
{"RuleID":18, "Rulename":"Too many explorer crashes, possible bogus injected code", "Content": [
{"1c":{"Image":"winlogon.exe"}},
{"N":3, "Seconds":86400},
{"1":{"Image":"explorer.exe"}}
]},
25. Sysmon Process Correlator Engine – Hierarchy Engine
Ejemplos de reglas
Elevaciones de privs
{"RuleID":19, "Rulename":"System process on user session (priv scalation)", "Content": [
{"1c":{"-TerminalSessionId":"0", "User":"System","-Image":"SYSTEM_PROCESS_ON_USER_SESSION"}}
]},
{"RuleID":20, "Rulename":"User process create system process", "Content": [
{"1c":{"-TerminalSessionId":"0", "-User":"System"}},
{"1":{"User":"System"}}
]},
{"RuleID":21, "Rulename":"Accessing to a System token from sesion 1 (priv scalation)", "Content": [
{"1c":{"User":"system"},"110c":{"-SourceUser":"system", GrantedAccess":"PROCESS_QUERY_INFORMATION"}}
]}
[2]