Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Tablas y esquema de Log Analytics

4 tareas · 36 min · Principiante

Antes de escribir una sola búsqueda hay que saber dónde están los datos. En Azure, los registros de identidad, de gestión y de alertas se guardan en tablas de un espacio de trabajo de Log Analytics, y KQL es el lenguaje con el que se leen. La Clínica Veterinaria Mastranto, una empresa inventada, te deja leer su espacio. Aquí aprendes qué tablas existen, qué trae cada una y cómo preguntarle a una tabla cómo es sin adivinar. La consola reconoce un conjunto de consultas previstas, las que cada tarea te indica, y devuelve filas de ejemplo. Todo es lectura, en UTC.

0 de 4 · 0%

Objetivo de la sala

Antes de escribir una sola búsqueda hay que saber dónde están los datos. En Azure, los registros de identidad, de gestión y de alertas se guardan en tablas de un espacio de trabajo de Log Analytics, y KQL es el lenguaje con el que se leen. La Clínica Veterinaria Mastranto, una empresa inventada, te deja leer su espacio. Aquí aprendes qué tablas existen, qué trae cada una y cómo preguntarle a una tabla cómo es sin adivinar. La consola reconoce un conjunto de consultas previstas, las que cada tarea te indica, y devuelve filas de ejemplo. Todo es lectura, en UTC.

Un espacio de trabajo de Log Analytics es un almacén de registros organizado en tablas. Cada tabla guarda un tipo de registro y tiene columnas con nombre y tipo. Una consulta en KQL empieza por el nombre de una tabla y cada paso siguiente va detrás de una barra vertical |, de modo que los datos fluyen de izquierda a derecha, igual que en una tubería.

Para un defensor, cuatro tablas dan casi toda la primera vista de un incidente en Azure: SigninLogs (los intentos de inicio de sesión de Entra), AuditLogs (los cambios en el directorio de Entra, como altas de usuarios o de roles), AzureActivity (las operaciones de gestión sobre los recursos de la suscripción) y SecurityAlert (las alertas que escriben los productos de seguridad). Fíjate en el panel de la izquierda: están las cuatro, con sus columnas.

Responde para continuar

Quieres revisar quién intentó entrar a la cuenta de un empleado, con su dirección de origen y su resultado. ¿Qué tabla lees?

Ver pista de ayuda

La pregunta es sobre intentos de entrada, no sobre cambios hechos después de entrar.

Dos operadores sirven para conocer una tabla sin leerla entera. take 5 devuelve cinco filas cualesquiera: sirve para ver cómo luce, no para concluir nada, porque no garantiza cuáles trae. count devuelve una sola fila con el número de filas que llegan hasta ese paso. Saber cuántas filas hay es lo primero que se pregunta antes de decidir si una consulta cabe o hay que acotarla.

Prueba en la consola SigninLogs | take 5 y luego SigninLogs | count. La columna TimeGenerated, de tipo datetime, es la hora (en UTC) en que se creó el registro y es la columna por la que casi siempre se acota el tiempo.

Responde para continuar

¿Cuántas filas tiene la tabla SigninLogs en este extracto? Escribe solo el número.

Ver pista de ayuda

Escribe `SigninLogs | count` y lee la única celda del resultado.

No hace falta memorizar las columnas de cada tabla. getschema no devuelve datos: devuelve una fila por columna, con su nombre (ColumnName), su posición contada desde cero (ColumnOrdinal) y su tipo (ColumnType). Es la forma de saber, antes de comparar, si una columna es texto, número, fecha u objeto.

El tipo importa porque KQL compara cada valor con su propio tipo. Una columna de texto se compara con texto entre comillas; una fecha con una fecha. Mirar el tipo antes de filtrar evita consultas que no devuelven nada por un detalle de forma.

Responde para continuar

Según el esquema de SigninLogs, ¿de qué tipo (ColumnType) es la columna ResultType?

Ver pista de ayuda

Escribe `SigninLogs | getschema` y busca la fila de ResultType.

Cada tabla responde a un tipo de pregunta. «Quién entró» está en SigninLogs; «quién cambió un rol o creó un usuario en el directorio» en AuditLogs; «quién creó, cambió o borró un recurso de Azure» en AzureActivity; «qué alertas se recibieron» en SecurityAlert. Por eso una investigación casi siempre toca varias tablas, y la siguiente sala empieza a filtrar una de ellas.

Un detalle de lectura: InitiatedBy y TargetResources de AuditLogs son de tipo dynamic, es decir, guardan un objeto con campos dentro, no un texto plano. Se leen entrando al objeto con un punto, y se verá más adelante.

Responde para continuar

Alguien creó una cuenta de almacenamiento en la suscripción y quieres saber quién fue. ¿Qué tabla miras primero?

Ver pista de ayuda

Crear una cuenta de almacenamiento es una operación de gestión sobre un recurso de Azure.

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

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