🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónLa misma pregunta en KQL y en SPL
4 tareas · 30 min · Principiante
El equipo de detección de Delta Cargo escribe sus consultas en KQL, para el SIEM de la casa matriz. El SIEM de Delta Aduanas pregunta en SPL. Cada vez que llega una consulta útil, alguien del turno tiene que traducirla, y una traducción que parece correcta puede devolver otra respuesta sin dar ningún error. Aquí traduces consultas reales de KQL a SPL sobre la misma noche de la pasarela VPN, y aprendes dónde están las tres trampas que más se repiten.
Objetivo de la sala
El equipo de detección de Delta Cargo escribe sus consultas en KQL, para el SIEM de la casa matriz. El SIEM de Delta Aduanas pregunta en SPL. Cada vez que llega una consulta útil, alguien del turno tiene que traducirla, y una traducción que parece correcta puede devolver otra respuesta sin dar ningún error. Aquí traduces consultas reales de KQL a SPL sobre la misma noche de la pasarela VPN, y aprendes dónde están las tres trampas que más se repiten.Los dos lenguajes piensan igual —una fuente y una cadena de pasos— y la mayoría de las piezas tienen pareja directa. Esta es la tabla que conviene tener a mano en el turno:
| Qué quieres | KQL | SPL |
|---|---|---|
| Elegir la fuente | vpn (la tabla) |
index=vpn |
| Filtrar | where accion == "mfa" |
accion=mfa en la búsqueda, o where después |
| Elegir columnas | project hora, usuario |
table _time usuario |
| Campo calculado | extend x = ... |
eval x=... |
| Contar por grupo | summarize n = count() by usuario |
stats count as n by usuario |
| Valores distintos | dcount(usuario) |
dc(usuario) |
| Tramos de tiempo | bin(hora, 1h) |
bin _time span=1h, o timechart span=1h |
| De mayor a menor | sort by n desc |
sort - n |
Dos detalles de forma que se olvidan: en SPL el nombre de una columna calculada va detrás con as, no delante con un igual; y la columna de tiempo no se llama como en la tabla de origen, sino _time. Como referencia de mercado: QRadar, otro SIEM frecuente en las vacantes, pregunta en AQL, un lenguaje con forma de SQL (SELECT … FROM events WHERE …); la lógica que traduces aquí es la misma que traducirías allí.
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.
Responde para continuar
¿Qué búsqueda SPL equivale a `vpn | where accion == "mfa" and resultado == "rechazado" | project hora, usuario, ip_origen`?
Ver pista de ayuda
En SPL el espacio entre dos condiciones de la búsqueda ya es un AND, y project no existe.
summarize y stats hacen lo mismo con otra ortografía. vpn | where accion == "login" and resultado == "ok" | summarize cuentas = dcount(usuario) by pais se escribe en SPL moviendo los filtros a la búsqueda, cambiando dcount por dc y pasando el nombre de la columna detrás de as. Si la traducción está bien, el número tiene que ser el mismo en los dos SIEM sobre los mismos datos; si no lo es, el fallo está en la traducción, no en los datos.
Una diferencia que no se ve en el texto: igual que en KQL, dc es una estimación rápida cuando los valores distintos son muchísimos. Con los números de un turno normal coincide con la cuenta exacta.
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.
Responde para continuar
¿Cómo se traduce `summarize cuentas = dcount(usuario) by pais` al final de una búsqueda SPL?
Ver pista de ayuda
Contar filas y contar valores distintos son dos funciones distintas en los dos lenguajes.
Primera: el orden por defecto. sort by n en KQL ordena de mayor a menor; sort n en SPL, de menor a mayor. Quien traduce palabra por palabra obtiene el último de la lista en vez del primero, y la búsqueda no da ningún error.
Segunda: top. En KQL, top 5 by n ordena por la columna n y se queda con cinco filas. En SPL, top cuenta cuántas veces aparece cada valor de un campo; no ordena por una columna calculada. La traducción de un top de KQL es sort - n | head 5.
Tercera: take y head. take 10 de KQL devuelve diez filas cualesquiera. head 10 de SPL sobre eventos sin agrupar devuelve los diez más recientes. Las dos sirven para echar un vistazo; ninguna sirve para sacar conclusiones, y no muestran lo mismo.
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.
Responde para continuar
¿Cómo se traduce `top 5 by intentos` de KQL al final de una búsqueda SPL?
Ver pista de ayuda
Piensa qué cuenta top en SPL y hacia dónde ordena sort sin signo.
El equipo de detección te manda esta consulta, que en su SIEM sirve para encontrar la cuenta que más túneles abre en una noche: vpn | where accion == "tunel" | summarize sesiones = count() by usuario | top 1 by sesiones. Tradúcela a SPL, ejecútala sobre la noche de la filial y comprueba que no caíste en la trampa del orden.
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.
Responde para continuar
Escribe la cuenta que devuelve la traducción correcta de esa consulta.
Ver pista de ayuda
Ejecuta `index=vpn accion=tunel | stats count as sesiones by usuario | sort - sesiones | head 1`. Si te sale una cuenta con un solo túnel, te faltó el signo menos.
Conectando con la base…
Índices y lookups
index=vpn
- _time
- usuario
- ip_origen
- pais
- accion
- resultado
- ip_tunel
El resultado aparece aquí.
fila(s)
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
Preferencias
Configuraciones de cookies
Elige qué categorías permitir. Las esenciales siempre están activas. Consulta la Política de Privacidad.
Esenciales
Siempre activas · sesión, CSRF, tema y esta preferencia
Necesarias para iniciar sesión, proteger formularios (CSRF) y recordar tu elección de cookies y tema. Sin ellas la plataforma no funciona de forma segura.
Analíticos
Hoy no activos en la plataforma; listos para cuando se conecten
Nos ayudan a entender uso de cursos y páginas. Si los activas, se usarán cuando conectemos analítica; hasta entonces no se carga ningún tracker.
Marketing
Hoy no activos; campañas futuras solo con tu permiso
Comunicaciones o campañas. No activos hoy en la plataforma; quedarán listos si los conectamos y solo si los permites.