SPL para SOC - Guía Práctica

Guía de referencia rápida de SPL (Search Processing Language) para operaciones SOC.

Busquedas Basicas

# Todos los eventos de un index
 
index=_internal | head 10
 
# Contar eventos por sourcetype
 
index=* | stats count by sourcetype
 
# Contar eventos por host
 
index=* | stats count by host

Filtros (Investigación de Incidentes)

# Buscar IP sospechosa
 
index=* 10.10.10.100
 
# Buscar fallos de login
 
index=* "failed" OR "failure" OR "denied"
 
# Buscar accesos de un usuario
 
index=* user=admin
 
# Buscar errores del sistema
 
index=* log_level=ERROR
 
# Buscar multiples IOC
 
index=* (src_ip="10.10.10.5" OR dest_ip="10.10.10.5") OR (user="admin" AND "failed")

Stats - Estadisticas

# Contar por campo
 
index=* | stats count by sourcetype
 
# Top 10 IPs
 
index=* | top limit=10 src_ip
 
# Contar fallos por usuario
 
index=* "failed password" | stats count by user
 
# Agrupar por hora
 
index=* | bin _time span=1h | stats count by _time
 
# Media, max, min de un campo numerico
 
index=* | stats avg(bytes) max(bytes) min(bytes) by host
 
# Valores unicos
 
index=* | stats dc(src_ip) as unique_ips by host

Comandos Esenciales para SOC

ComandoFunciónEjemplo SOC
stats count byAgrupa y cuentaTop IPs, usuarios, errores
topLos más frecuentesTop 10 IPs atacantes
rareLos menos frecuentesEventos anomalos
timechartSerie temporalGráfico de ataques por hora
whereFiltrar resultadosSolo eventos con count > 100
evalCrear campos calculadosClasificar severidad
lookupEnriquecer con tablasVerificar IP contra lista negra
joinCombinar busquedasCruzar auth con firewall
rexExtraer campos con regexParsear logs custom
tableFormatear salidaReportes limpios
sortOrdenar resultadosLos más recientes primero
dedupEliminar duplicadosEventos únicos

timechart - Análisis Temporal

# Eventos por hora
 
index=* | timechart span=1h count
 
# Fallos de login por dia
 
index=* "failed" | timechart span=1d count by user
 
# Trafico por IP en el tiempo
 
index=* | timechart span=1h count by src_ip

Ejercicios Practicos

1. Ver sourcetypes disponibles

index=* | stats count by sourcetype

2. Detectar picos de actividad

index=_internal | timechart span=1h count

3. Errores por componente

index=_internal log_level=ERROR | stats count by component

4. Top hosts

index=* | top limit=5 host

5. Patrones sospechosos

index=* "failed" OR "error" OR "denied" | stats count by sourcetype

6. Detección de brute force

index=security "failed password"
| stats count as attempts by src_ip, user
| where attempts > 5
| sort -attempts

7. Horarios inusuales de acceso

index=security "login successful"
| eval hour=tonumber(strftime(_time, "%H"))
| where hour < 6 OR hour > 22
| table _time, user, src_ip, hour

Alertas para SOC

Brute Force Detection

index=security "failed password"
| stats count by src_ip
| where count > 10
  • Trigger: cuando count > 10
  • Acción: email al equipo SOC

Múltiple Failed Logins por Usuario

index=security "failed" user=*
| stats count as failures by user
| where failures > 5

Acceso desde IP Nueva

index=security "login successful"
| stats earliest(_time) as first_seen by src_ip
| where first_seen > relative_time(now(), "-1d")

Dashboards para SOC

Panel 1: Timeline de Eventos

index=* | timechart span=1h count

Panel 2: Top IPs Atacantes

index=* "failed" OR "denied" | top limit=10 src_ip

Panel 3: Errores por Tipo

index=* log_level=ERROR | top limit=10 component

Panel 4: Usuarios con Más Fallos

index=* "failed" | top limit=10 user

Estructura de Datos en Splunk

index (contenedor principal)
 └── sourcetype (tipo de dato: syslog, access_combined, etc.)
 └── source (origen: /var/log/auth.log, etc.)
 └── host (maquina: servidor-web-01)
 └── _time (timestamp del evento)
 └── _raw (linea cruda del log)
 └── campos extraidos (src_ip, user, action, etc.)

Terminologia SOC con Splunk

TérminoSignificado
IndexBase de datos donde Splunk almacena eventos
SourcetypeTipo de dato (define como parsear)
SourceOrigen del dato (archivo, API, etc.)
HostMaquina que genera los eventos
SPLSearch Processing Language
SIEMSecurity Information and Event Management
IOCIndicator of Compromise (IP, hash, dominio)
AlertBusqueda que se ejecuta automáticamente y notifica
DashboardPanel visual con multiples busquedas
Saved SearchBusqueda guardada para reuso

Referencia

SPL para SOC - Guía Práctica Actualizado: 2026-06-19