SPL para SOC - Guia Practica

Guia 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 (Investigacion de Incidentes)

# Buscar IP sospechosa
index=* 192.168.1.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.0.0.5" OR dest_ip="10.0.0.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

ComandoFuncionEjemplo SOC
stats count byAgrupa y cuentaTop IPs, usuarios, errores
topLos mas frecuentesTop 10 IPs atacantes
rareLos menos frecuentesEventos anomalos
timechartSerie temporalGrafico 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 mas recientes primero
dedupEliminar duplicadosEventos unicos

timechart - Analisis 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. Deteccion 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
  • Accion: email al equipo SOC

Multiple 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 Mas 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

TerminoSignificado
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 automaticamente y notifica
DashboardPanel visual con multiples busquedas
Saved SearchBusqueda guardada para reuso

Referencia


SPL para SOC - Guia Práctica Actualizado: 2026-06-19