🔒 Registro cerrado · Apertura oficial próximamente · Acceso exclusivo para alumnos activos
Iniciar SesiónKQL — la consulta por tuberías
4 tareas · 30 min · Principiante
Las dos salas anteriores preguntaban en SQL. Muchos SIEM de nube preguntan de otra forma: empiezas por una tabla y le vas encadenando pasos, cada uno detrás de una barra vertical. El lenguaje que más aparece en las vacantes de analista con esa forma es KQL, y aquí lo practicas sobre los inicios de sesión del proveedor de identidad de Delta Cargo la noche del 7 al 8 de octubre: filtrar con where, quedarte con las columnas que importan con project y mirar la forma de los datos con take.
Objetivo de la sala
Las dos salas anteriores preguntaban en SQL. Muchos SIEM de nube preguntan de otra forma: empiezas por una tabla y le vas encadenando pasos, cada uno detrás de una barra vertical. El lenguaje que más aparece en las vacantes de analista con esa forma es KQL, y aquí lo practicas sobre los inicios de sesión del proveedor de identidad de Delta Cargo la noche del 7 al 8 de octubre: filtrar con where, quedarte con las columnas que importan con project y mirar la forma de los datos con take.En SQL la consulta se escribe en un orden y el motor la ejecuta en otro: dices qué columnas quieres antes de decir de dónde salen. KQL lo plantea al revés y en el orden en que piensas cuando investigas. La primera palabra es la tabla; después, cada paso va detrás de una barra vertical | y trabaja sobre lo que dejó el paso anterior, como el agua que pasa de un tramo de tubería al siguiente. Como referencia de mercado: KQL es el lenguaje del SIEM de nube de Microsoft (Sentinel), y por eso las vacantes que piden ese SIEM piden KQL.
inicios
| where resultado == "fallido"
| project hora, cuenta, ip_origen
Esa consulta se lee de arriba abajo: toma todos los inicios de sesión, quédate con los fallidos y, de esos, enseña solo tres columnas. Se puede escribir en una línea o en varias; el salto de línea no cambia nada. Lo que sí cambia el resultado es el orden de los pasos, porque cada uno solo ve lo que le llega.
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é hace la consulta del ejemplo, leída en el orden en que se ejecuta?
Ver pista de ayuda
Cada paso trabaja sobre lo que le deja el anterior, de arriba abajo.
where deja pasar solo las filas que cumplen una condición, y la condición se escribe con operadores. Los que vas a usar en el turno son pocos. == compara un valor exacto y distingue mayúsculas; =~ compara sin distinguirlas; != es «distinto de». Para texto hay tres más: has busca una palabra entera dentro del valor y es rápido, porque el SIEM indexa las palabras; contains busca cualquier trozo de texto, aunque esté en medio de una palabra, y es más lento; startswith mira solo el comienzo. Las condiciones se juntan con and y or, y in compara contra una lista: cuenta in ("lgomez", "mvega").
El tiempo tiene su propia forma de escribirse. ago(1h) es «hace una hora», así que where hora > ago(1h) deja la última hora; y between acota un tramo entre dos instantes. En un SIEM con millones de filas, la condición de tiempo va en el primer where: es la que más recorta.
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
Quieres los fallos cuyo motivo incluye la palabra «caducada», sin importar el resto del texto. ¿Qué operador eliges?
Ver pista de ayuda
El motivo completo dice más cosas que esa palabra; necesitas encontrarla dentro.
project elige las columnas que salen, en el orden en que las escribes, y también permite renombrarlas: project hora, quien = cuenta. No filtra filas; recorta el ancho. Parece cosmético y no lo es: con seis columnas de las que te sobran tres, el dato que buscas se pierde entre las demás, y el siguiente analista que abra tu consulta tarda el doble en leerla.
take 10 devuelve diez filas cualesquiera. No son las más recientes ni las más graves, ni salen en ningún orden concreto: son las primeras que el motor encuentra. Por eso take es la herramienta para ver qué columnas tiene una tabla y qué pinta tienen sus valores antes de escribir el filtro. Sacar una conclusión de lo que devuelve un take es sacarla de una muestra que nadie eligió.
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
Un compañero ejecuta `inicios | take 10`, ve que ninguna fila viene de fuera de la empresa y concluye que esa noche no hubo accesos externos. ¿Qué le dices?
Ver pista de ayuda
Piensa en quién elige las diez filas que devuelve take.
La salida a internet de la oficina de Delta Cargo es 192.0.2.10 y su red interna es la 10.4.0.0/16. Filtra los inicios de sesión correctos de la noche, quédate con la hora, la cuenta y la dirección de origen, y busca la única sesión que no viene de ninguno de esos dos sitios.
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 inició sesión correctamente desde una dirección que no es ni la oficina ni la red interna.
Ver pista de ayuda
Ejecuta `inicios | where resultado == "correcto" | project hora, cuenta, ip_origen` y compara cada origen con la oficina y con la red 10.4.
Conectando con la base…
Tablas
inicios
- hora
- cuenta
- aplicacion
- ip_origen
- resultado
- motivo
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.