Consultar dados com a Linguagem de Consulta Kusto

Concluído

Você pode usar a Kusto Query Language (KQL) no Microsoft Sentinel para pesquisar e filtrar os dados coletados.

Linguagem de Consulta Kusto

O KQL oferece a capacidade de criar, armazenar e executar análises interativas sobre os dados coletados. O Microsoft Sentinel usa o KQL para visualizar e analisar os dados importantes. Pode utilizar a KQL para criar consultas analíticas complexas que incluem alguns dos seguintes operadores:

  • Colunas calculadas
  • Associar funções
  • Agrupar por agregados

Escrever e executar consultas básicas

Uma consulta é um pedido só de leitura que processa dados e obtém os resultados desse processamento sem modificar os dados ou os metadados. Tal como as consultas SQL, as consultas KQL utilizam entidades de esquema organizadas numa hierarquia semelhante à das bases de dados, das tabelas e das colunas. Um esquema é uma coleção de tabelas agrupadas em categorias lógicas. As consultas consistem em sequências de instruções de consulta delimitadas por um ponto e vírgula (;).

Ao construir uma consulta, começa com um nome de tabela ou um comando de pesquisa. Por exemplo, a consulta a seguir recupera todos os registros da Event tabela:

Event

Pode utilizar o caráter de pipe (|) para separar comandos. A saída do primeiro comando torna-se na entrada do comando seguinte. Pode adicionar qualquer número de comandos a uma única consulta. A consulta a seguir recupera os Event registros da tabela e os pesquisa pelo termo error em qualquer propriedade:

Event

| search error

Pode construir a consulta com operadores tabulares e escalares que a KQL combina em várias instruções de expressão tabular, as quais produzem os resultados da consulta.

source1 | operator1 | operator2

No exemplo a seguir, a fonte é AzureActivity. O primeiro operador é where, que filtra registros com base na expressão lógica. O segundo operador é novamente where:

AzureActivity

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

Por predefinição, o Log Analytics limita as consultas a um intervalo de tempo das últimas 24 horas. Para definir um intervalo de tempo diferente, você pode adicionar um filtro explícito TimeGenerated à consulta ou usar o Time range controle. Por exemplo, a consulta seguinte obtém dados da hora anterior:


AzureActivity

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

Pode combinar as consultas com alguns dos operadores utilizados mais frequentemente:

  • count. Obtém o número de linhas na tabela.
  • take. Obtém até ao número de linhas de dados especificado.
  • project. Seleciona um subconjunto de colunas.
  • sort. Ordena as linhas da tabela de entrada por uma ou mais colunas.
  • top. Obtém os primeiros N registos ordenados pelas colunas especificadas.
  • extend. Calcula as colunas derivadas.
  • summarize. Agrega grupos de linhas.
  • render. Compõe resultados como uma saída gráfica.

Para combinar os registros de duas fontes (tabelas), você pode usar o join operador. O union operador combina duas ou mais tabelas em uma.

Para obter mais informações, veja o tutorial do Log Analytics da Microsoft que utiliza recursos do Log Analytics para compilar e executar uma consulta em vez de trabalhar com a própria consulta.

Também pode utilizar o tutorial do Azure Data Explorer para obter mais informações sobre a KQL.

Nota

O Microsoft Sentinel Log Analytics não suporta toda a sintaxe KQL usada no Azure Data Explorer.

Repositório Microsoft Sentinel no GitHub

Você também pode usar o repositório do Microsoft Sentinel no GitHub para procurar consultas e pastas de trabalho especializadas para ajudar a proteger seu ambiente e caçar ameaças. Por exemplo, a consulta a seguir do repositório GitHub do Microsoft Sentinel exibe delegação suspeita de permissões para contas de usuário.

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

A consulta analisa o endereço IP de onde o administrador concede a outros utilizadores acesso aos recursos do Azure. Se uma operação não for de um endereço IP válido, a consulta sinaliza atividade suspeita, que você pode investigar mais a fundo.

Se quiser experimentar alguns exemplos, utilize o ambiente de demonstração no portal do Azure.

Verifique o seu conhecimento

1.

Qual das seguintes ferramentas um administrador pode usar para consultar dados no Microsoft Sentinel?

2.

Qual dos carateres seguintes pode um administrador utilizar para separar os comandos na consulta.