Consulta de datos mediante el lenguaje de consulta Kusto

Completado

Puede usar el Lenguaje de consulta Kusto (KQL) en Microsoft Sentinel para buscar y filtrar los datos recopilados.

Lenguaje de consulta Kusto

KQL proporciona la capacidad de crear, almacenar y ejecutar análisis interactivos en los datos recopilados. Microsoft Sentinel usa KQL para visualizar y analizar los datos importantes. Puede usar KQL para crear consultas analíticas complejas que incluyan algunos de los operadores siguientes:

  • Columnas calculadas
  • Funciones de combinación
  • Agrupar por agregados

Escritura y ejecución de consultas básicas

Una consulta es una solicitud de solo lectura que procesa datos y devuelve los resultados de este procesamiento sin modificar los datos ni metadatos. Como sucede con las consultas SQL, las consultas KQL usan entidades de esquema que se organizan en una jerarquía como bases de datos, tablas y columnas. Un esquema es una colección de tablas que se agrupan en categorías lógicas. Las consultas constan de secuencias de instrucciones de consulta que se delimitan mediante un punto y coma (;).

Cuando se crea una consulta, se empieza con un nombre de tabla o un comando de búsqueda. Por ejemplo, la consulta siguiente recupera todos los registros de la tabla Event (Evento):

Event

Puede usar el carácter de barra vertical (|) para separar los comandos. La salida del primer comando se convierte en la entrada del siguiente. A una consulta se puede agregar cualquier cantidad de comandos. La consulta siguiente recupera los registros de la tabla Event y, a continuación, busca en ellos el término error en todas las propiedades:

Event

| search error

Puede crear la consulta con operadores tabulares y escalares que KQL combina en varias instrucciones de expresión tabular, que generan los resultados de la consulta.

source1 | operator1 | operator2

En el ejemplo siguiente, el origen es AzureActivity. El primer operador es where, que filtra los registros según la expresión lógica. El segundo operador vuelve a ser where:

AzureActivity

| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'

De forma predeterminada, Log Analytics limita las consultas a un intervalo de tiempo de las últimas 24 horas. Para establecer otro intervalo de tiempo, puede agregar un filtro TimeGenerated explícito a la consulta, o bien usar el control Time range. Por ejemplo, la consulta siguiente devuelve datos de la hora anterior:


AzureActivity

| where OperationName == 'Delete Virtual Machine'
| where ActivityStatus == 'Accepted'
| where TimeGenerated > ago (1h)

Puede combinar las consultas con algunos de los operadores que se usan con más frecuencia:

  • count. devuelve el recuento de filas de la tabla.
  • take. devuelve al número especificado de filas de datos.
  • project. selecciona un subconjunto de columnas.
  • sort. Ordena las filas de la tabla de entrada en orden por una o varias columnas.
  • top. Devuelve los N primeros registros ordenados por las columnas especificadas.
  • extend. calcula las columnas derivadas.
  • summarize. incorpora grupos de filas.
  • render. representa los resultados como una salida gráfica.

Para combinar los registros de dos orígenes (tablas), puede usar el operador join. El operador union combina dos o más tablas en una.

Para obtener más información, vea el tutorial de Log Analytics de Microsoft, en el que se usan las características de Log Analytics para compilar y ejecutar una consulta en lugar de trabajar con la propia consulta.

También puede usar Tutorial de Azure Data Explorer para obtener información sobre KQL.

Nota:

Log Analytics de Microsoft Sentinel no es compatible con toda la sintaxis de KQL que se usa en Azure Data Explorer.

Repositorio de Microsoft Sentinel en GitHub

También puede usar el repositorio de Microsoft Sentinel en GitHub para buscar consultas y libros especializados con el fin de proteger el entorno y buscar amenazas. Por ejemplo, la consulta siguiente del repositorio de Microsoft Sentinel en GitHub muestra la delegación sospechosa de permisos a cuentas de usuario.

let timeframe = 7d;
AzureActivity
| where TimeGenerated >= ago(timeframe)
| where OperationName == "Create role assignment"
| where ActivityStatus == "Succeeded"
| project Caller, CallerIpAddress
| evaluate basket()
| extend AccountCustomEntity = Caller, IPCustomEntity = CallerIpAddress

La consulta analiza la dirección IP desde la que el administrador concede acceso a otros usuarios a los recursos de Azure. Si una operación no procede de una dirección IP válida, la consulta señala la actividad sospechosa, que puede investigar con más detalle.

Si quiere probar algunos ejemplos, use el entorno de demostración en Azure Portal.

Comprobación de conocimientos

1.

¿Cuál de las herramientas siguientes puede usar un administrador para consultar datos en Microsoft Sentinel?

2.

¿Cuál de los caracteres siguientes puede usar un administrador para separar los comandos de la consulta?