Parte: 8 — Blue Team, detección y SOC · Fuente: Blue Team Handbook: SOC, SIEM, and Threat Hunting Use Cases — Don Murdoch ⏱️ Duración estimada: 120 min · Nivel: Intermedio
Dominar los fundamentos del lenguaje de búsqueda de Splunk (SPL) aplicado a detección: filtrar, transformar, agregar y correlacionar eventos para construir búsquedas de detección y alertas programadas. Splunk es uno de los SIEM más extendidos; saber consultarlo con soltura es una habilidad central del analista de SOC.
Al finalizar, el alumno podrá:
stats, eval y where.tstats y modelos de datos para búsquedas rápidas.| # | Tema | Por qué importa |
|---|---|---|
| 1 | Anatomía de una búsqueda SPL | Base de todo lo demás |
| 2 | Comandos de filtrado y campos | Reduce ruido y aísla lo relevante |
| 3 | stats, eval, where |
Agregación y lógica de detección |
| 4 | tstats y modelos de datos (CIM) |
Velocidad a escala |
| 5 | Detección por umbral vs anomalía | Distintos tipos de caso de uso |
| 6 | Saved searches y alertas | Automatiza la detección |
| 7 | Lookups y enriquecimiento | Añade contexto (activos, intel) |
| 8 | Notable Events (Splunk ES) | Cómo se gestiona la alerta en producción |
|). Característica: componible, cada comando transforma el resultado del anterior.stats: agrega eventos por campos (count by user). Característica: pieza central para líneas base y umbrales.tstats: consulta datos acelerados/indexados sin escanear eventos crudos. Característica: órdenes de magnitud más rápido.Practica siempre sobre datos de laboratorio o el dataset BOTS.
index=main sourcetype=XmlWinEventLog EventCode=1 | head 20... EventCode=1 | stats count by Computer, Image | sort - count... EventCode=1 ParentImage="*\\WINWORD.EXE" (Image="*\\powershell.exe" OR Image="*\\cmd.exe") | table _time, Computer, ParentImage, Image, CommandLine... (EventCode=4625 OR EventCode=4624) | stats count(eval(EventCode=4625)) as fails count(eval(EventCode=4624)) as success by Account_Name | where fails>10 AND success>0tstats para comparar tiempos.criticos.csv (host, propietario) y cruza: ... | lookup criticos.csv host OUTPUT propietario.Computer de 30 min y acción de registro.regsvr32.exe o mshta.exe con conexión de red saliente.eval para clasificar la severidad de un evento en alta/media/baja.tstats y mide la diferencia.Entrega tres búsquedas SPL de detección con su explicación y una de ellas convertida en alerta programada con throttling. Criterio de aceptación: al menos una búsqueda detecta correctamente un patrón malicioso simulado en tu laboratorio (p. ej. Office→PowerShell) sin disparar con la actividad benigna de línea base, y la alerta guardada aparece en el listado de saved searches ejecutándose.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| Búsqueda tarda minutos | Escaneas eventos crudos; usa tstats/modelos de datos |
stats no agrupa como esperas |
Campo no extraído o mal nombrado; verifica con \| fieldsummary |
| Alerta dispara sin parar | Falta throttling; añade supresión por entidad |
| Resultados vacíos pero hay datos | Rango de tiempo o índice equivocado; revisa el time picker |
| CommandLine truncado | Límite de campo; ajusta maxchars/truncation en props.conf |
❓ ¿stats o transaction?
Prefiere stats: es mucho más eficiente. transaction solo cuando necesitas agrupar eventos por sesión con lógica de inicio/fin que stats no expresa bien.
❓ ¿Necesito Splunk ES para detectar? No para aprender. Con Splunk core y saved searches ya construyes detecciones. ES aporta gestión de notables, correlación empaquetada y flujo de incidentes en producción.
❓ ¿Por qué usar el CIM? Porque una detección escrita contra campos CIM funciona sin importar el fabricante del log, evitando reescribir por cada fuente nueva.
Clase 183 — SIEM: arquitectura y componentes