Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

La consulta guardada — de una búsqueda a una vigilancia

4 tareas · 35 min · Principiante

Encontraste el rociado de contraseñas de la noche del 7 al 8 de octubre escribiendo consultas a mano. Mañana nadie las va a escribir otra vez, y el próximo rociado pasará igual de callado. Aquí conviertes esa búsqueda en una consulta guardada: con un umbral que elimina el ruido conocido, una exclusión que no deja ciego al turno y la ventana de tiempo como parámetro. Y la lanzas sobre toda la semana, para ver qué más había.

0 de 4 · 0%

Objetivo de la sala

Encontraste el rociado de contraseñas de la noche del 7 al 8 de octubre escribiendo consultas a mano. Mañana nadie las va a escribir otra vez, y el próximo rociado pasará igual de callado. Aquí conviertes esa búsqueda en una consulta guardada: con un umbral que elimina el ruido conocido, una exclusión que no deja ciego al turno y la ventana de tiempo como parámetro. Y la lanzas sobre toda la semana, para ver qué más había.

Una búsqueda resuelve tu pregunta de hoy. Una consulta guardada es una búsqueda que otra persona, otro día, puede lanzar sin conocer la historia que la hizo nacer. Por eso se le exigen cosas que a la búsqueda no: un nombre que diga lo que detecta; un comentario con qué busca y por qué; la ventana de tiempo como parámetro, para lanzarla sobre la última hora o sobre la última semana sin editarla; un umbral razonado; las exclusiones escritas con su motivo; y unas columnas de salida que dejen al siguiente analista listo para trabajar, como la primera y la última vez que pasó.

En KQL se guarda como una función del espacio de registros: un nombre, sus parámetros y la consulta dentro.

// Rociado de contraseñas: una dirección que falla contra muchas cuentas distintas en una hora.
// Excluido: el portal de autoservicio en los cambios obligatorios de contraseña.
let rociado_de_contrasenas = (ventana: timespan) {
    inicios
    | where hora > ago(ventana)
    | where resultado == "fallido" and motivo != "contrasena anterior incorrecta"
    | summarize cuentas = dcount(cuenta), primera = min(hora), ultima = max(hora)
        by ip_origen, bin(hora, 1h)
    | where cuentas >= 5
};

Guardada en el espacio, se lanza por su nombre, rociado_de_contrasenas(7d), y el turno la usa como cualquier tabla. El paso siguiente, convertirla en una regla que se ejecute sola y avise, es el módulo de reglas de detección.

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é le falta a una búsqueda que te funcionó hoy para ser una buena consulta guardada?

Ver pista de ayuda

Piensa en quien la lance dentro de un mes sin haber estado en tu turno.

El umbral no se inventa: se lee en lo que ya viste. En la noche de Delta Cargo, la cola de impresión fallaba contra una cuenta y el barrido de internet contra tres nombres que no existen. Contar cuentas distintas por dirección y por hora y pedir al menos cinco deja fuera a los dos sin tener que nombrarlos, porque ninguno de los dos llega a ese número. La ventana del tramo también se elige: en diez minutos, quien prueba despacio no llega nunca al umbral; en una hora, sí.

Todo umbral deja algo fuera. Un rociado que pruebe tres cuentas por hora pasa por debajo de este. Esa decisión se escribe en el comentario de la consulta, para que quien la herede sepa qué no vigila y no dé por cubierto lo que no lo está.

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 propone bajar el umbral a una sola cuenta distinta por hora «para no perderse nada». ¿Qué le contestas?

Ver pista de ayuda

Mira qué dos ruidos de la noche quedaban fuera precisamente por el umbral.

Con el umbral puesto, la consulta todavía devuelve un falso positivo: la salida a internet de la oficina el día del cambio obligatorio de contraseña, con muchas personas escribiendo mal la contraseña anterior. La tentación es excluir la dirección de la oficina entera. Es la peor exclusión posible: deja la consulta ciega ante cualquier rociado que salga de dentro, por ejemplo desde un equipo comprometido de la propia red, que sale a internet justo por esa dirección.

La exclusión buena quita la causa concreta del ruido y nada más: ese motivo de fallo, en ese portal. Se escribe en la consulta con un comentario que diga qué se excluye y por qué, y se revisa de vez en cuando, porque las exclusiones envejecen: el portal cambia de nombre, el motivo se escribe distinto, y lo que excluías ya no es lo que creías.

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

Para quitar el falso positivo de la oficina en el día del cambio de contraseña, ¿qué excluyes?

Ver pista de ayuda

Una exclusión por dirección tapa también lo que podría salir de un equipo de dentro.

La consulta ya está guardada como función, con la ventana como parámetro. Lánzala primero sobre el último día, para comprobar que devuelve lo que ya conocías, y después sobre los últimos siete días. Aparece una dirección que nadie había investigado.

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 dirección de origen del rociado anterior que aparece al lanzar la consulta guardada sobre siete días.

Ver pista de ayuda

Ejecuta `rociado_de_contrasenas(7d)` y compara sus filas con las de `rociado_de_contrasenas(1d)`.

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

Conectando con la base…

SIEM · Delta Cargo — consulta guardada de rociado de contraseñas
KQL · consultas previstas

Tablas

inicios

  • hora
  • cuenta
  • aplicacion
  • ip_origen
  • resultado
  • motivo
Ctrl + Enter
Consola de consultas v1.0 · build e42b80

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