Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

SPL — la búsqueda por tuberías

4 tareas · 30 min · Principiante

En septiembre Delta Cargo compró una agencia de aduanas, Delta Aduanas, que trajo su propio SIEM. Ese SIEM no pregunta en KQL sino en SPL, el otro lenguaje de búsqueda por tuberías que más aparece en las vacantes de analista, y mientras se migra el turno consulta los dos. Aquí lo practicas sobre la pasarela VPN de la filial la noche del 21 al 22 de octubre: buscar por índice y por campos, excluir con NOT, quedarte con las columnas que importan con table y mirar el final de la ventana con head.

0 de 4 · 0%

Objetivo de la sala

En septiembre Delta Cargo compró una agencia de aduanas, Delta Aduanas, que trajo su propio SIEM. Ese SIEM no pregunta en KQL sino en SPL, el otro lenguaje de búsqueda por tuberías que más aparece en las vacantes de analista, y mientras se migra el turno consulta los dos. Aquí lo practicas sobre la pasarela VPN de la filial la noche del 21 al 22 de octubre: buscar por índice y por campos, excluir con NOT, quedarte con las columnas que importan con table y mirar el final de la ventana con head.

SPL es el lenguaje de búsqueda de Splunk, y por eso lo piden las vacantes que piden ese SIEM. Comparte con KQL la idea de la tubería: cada comando va detrás de una barra vertical | y trabaja sobre lo que le deja el anterior. Lo que cambia es el arranque. En KQL la primera palabra es una tabla; en SPL la primera parte de la línea es una búsqueda: dónde buscar y qué tienen que cumplir los eventos, escrito como pares campo=valor separados por espacios.

index=vpn accion=mfa resultado=rechazado | table _time usuario ip_origen

index=vpn dice en qué índice buscar; un índice es el almacén donde el SIEM guarda los eventos de una o varias fuentes. Los otros dos pares filtran, y el espacio entre ellos vale como un AND. Lo que hay detrás de la barra ya no busca: trabaja sobre los eventos encontrados. La columna de tiempo de cada evento se llama siempre _time, con el guion bajo delante, como los demás campos que pone el propio SIEM.

Esta tarea se hace en el laboratorio

Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.

Conectando con la base…

Responde para continuar

¿Qué hace la búsqueda del ejemplo, leída en el orden en que se ejecuta?

Ver pista de ayuda

La parte de antes de la barra elige los eventos; lo de después trabaja sobre ellos.

En la búsqueda, los valores no distinguen mayúsculas: usuario=ACORREA encuentra los eventos de acorrea. Los nombres de campo, en cambio, sí: Usuario=acorrea no encuentra nada, porque ningún evento tiene un campo que se llame así. Es justo al revés de lo que pasaba con == en KQL, que compara el valor exacto.

Las palabras lógicas se escriben en mayúsculas: OR para una cosa u otra, NOT para quitar lo que cumpla la condición que le sigue. NOT pais=CO deja fuera las conexiones desde el país. Hay un matiz con pais!=CO: esa forma solo devuelve los eventos que tienen el campo pais con otro valor, mientras que NOT pais=CO devuelve también los que ni siquiera lo tienen. El asterisco hace de comodín, usuario=svc-*, y el tiempo se acota con el selector de fechas de la pantalla o dentro de la propia búsqueda, con earliest=-24h.

Esta tarea se hace en el laboratorio

Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.

Conectando con la base…

Responde para continuar

Escribes `index=vpn Usuario=acorrea` y no sale nada; con `index=vpn usuario=ACORREA` sí salen sus eventos. ¿Por qué?

Ver pista de ayuda

Prueba las dos búsquedas en la consola y mira cuál de las dos palabras cambió de forma.

table elige las columnas que salen y en qué orden: es el comando para presentar un resultado. fields se parece, pero sirve para otra cosa: quita o conserva campos para que el resto de la tubería trabaje con menos peso (fields - motivo quita uno). En una búsqueda sobre millones de eventos, recortar pronto con fields acelera; para enseñar el resultado a otra persona se usa table.

head 10 devuelve los diez primeros resultados. Aquí hay una diferencia con el take de KQL que importa: SPL devuelve los eventos sin agrupar del más nuevo al más viejo, así que head sobre eventos crudos te da los más recientes. No son diez cualesquiera; son el final de la ventana de tiempo, y solo el final.

Esta tarea se hace en el laboratorio

Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.

Conectando con la base…

Responde para continuar

Un compañero ejecuta `index=vpn | head 10`, ve solo conexiones normales de la mañana y concluye que de madrugada no pasó nada. ¿Qué le dices?

Ver pista de ayuda

Fíjate en las horas de las diez filas y en el orden en que salen.

Una notificación de segundo factor la provoca quien escribe la contraseña, y casi siempre es la propia persona, que la aprueba al momento. Busca en el índice vpn las notificaciones rechazadas de la noche, quédate con la hora, la cuenta, el origen y el país, y localiza la cuenta que recibió notificación tras notificación desde fuera del país mientras la persona titular las rechazaba.

Esta tarea se hace en el laboratorio

Una consola para consultar la base de datos, aquí en la página. No instalas nada y no puedes romper nada.

Conectando con la base…

Responde para continuar

Escribe la cuenta que recibió de madrugada, desde fuera del país, las notificaciones rechazadas.

Ver pista de ayuda

Ejecuta `index=vpn accion=mfa resultado=rechazado | table _time usuario ip_origen pais` y mira qué cuenta se repite entre las 02:00 y las 02:30.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Conectando con la base…

SIEM de Delta Aduanas · pasarela VPN, noche del 21 al 22 de octubre
SPL · consultas previstas

Índices y lookups

index=vpn

  • _time
  • usuario
  • ip_origen
  • pais
  • accion
  • resultado
  • ip_tunel
Ctrl + Enter
Consola de consultas v1.0 · build b77233

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad