Executar consultas KQL no data lake do Microsoft Sentinel

A exploração do data lake no portal Microsoft Defender disponibiliza uma interface unificada para analisar o seu data lake. Permite-lhe executar consultas KQL (Linguagem de Pesquisa Kusto), criar tarefas e geri-las. Antes de começar, certifique-se de que cumpre os pré-requisitos para consultar o data lake, incluindo a integração do data lake e as permissões necessárias.

A página de consultas KQL em Data lake exploration permite-lhe editar e executar consultas KQL em recursos do data lake e tabelas federadas. Crie tarefas para promover dados do data lake para a camada de análise ou crie tabelas agregadas na camada do data lake. Execute tarefas a pedido ou agende-as. A página Tarefas permite-lhe gerir tarefas; ativar, desativar, editar ou eliminar. Para obter mais informações, veja Create jobs in the Microsoft Sentinel data lake (Criar tarefas no data lake do Microsoft Sentinel).

Pré-requisitos

São necessários os seguintes pré-requisitos para executar consultas KQL no Microsoft Sentinel data lake.

Integrar no lago de dados

Pode executar consultas KQL no portal do Microsoft Defender depois de concluir o processo de inclusão. Para obter mais informações sobre a inclusão, veja Inclusão no Microsoft Sentinel data lake.

Permissões

As funções do Microsoft Entra ID permitem-lhe aceder a todas as áreas de trabalho do data lake. Em alternativa, pode conceder acesso a espaços de trabalho individuais através do controlo de acesso baseado em funções do Azure (Azure RBAC). Os utilizadores com permissões de RBAC do Azure para áreas de trabalho do Microsoft Sentinel podem executar consultas KQL nessas áreas de trabalho no escalão data lake. Para obter mais informações sobre funções e permissões, consulte funções e permissões do data lake do Microsoft Sentinel.

Opcionalmente, o âmbito do Microsoft Sentinel ou o RBAC ao nível da linha podem ser configurados para restringir ainda mais o acesso aos dados num espaço de trabalho. Quando ativado, o âmbito ao nível da linha limita os dados devolvidos pelas consultas com base no âmbito atribuído pelo utilizador. Se o âmbito ao nível da linha não estiver configurado, o modelo de permissão ao nível da área de trabalho existente aplica-se inalterado. Configure a delimitação do âmbito do Microsoft Sentinel (RBAC ao nível das linhas) (pré-visualização).

Escreva consultas KQL

Escrever consultas para o data lake é semelhante à escrita de consultas na experiência de investigação avançada. Pode utilizar a mesma sintaxe e funções KQL. A KQL suporta análises avançadas e funções de machine learning. O editor de consultas oferece uma interface para executar consultas KQL com funcionalidades como o IntelliSense e a conclusão automática para o ajudar a escrever de forma eficiente. Para obter uma descrição geral detalhada da sintaxe e das funções KQL, veja descrição geral do Linguagem de Pesquisa Kusto (KQL).

Consultas KQL no portal do Defender

Selecione Nova consulta para criar um novo separador de consulta. O portal guarda a última consulta em cada separador. Alternar entre separadores para trabalhar em várias consultas em simultâneo.

O separador Histórico de consultas mostra uma lista das consultas executadas anteriormente, do tempo de processamento de consultas e do estado de conclusão. Pode abrir uma consulta anterior num novo separador ao selecioná-la na lista. O portal guarda o histórico de consultas durante 30 dias. Selecione uma consulta para editar ou executá-la novamente.

Captura de ecrã da página de consultas KQL no portal do Defender.

Selecionar áreas de trabalho

Pode executar consultas numa única área de trabalho ou em várias áreas de trabalho. Selecione áreas de trabalho no canto superior direito do editor de consultas, utilizando o menu pendente Áreas de trabalho selecionadas. As áreas de trabalho que selecionar determinam as tabelas disponíveis para consulta. As áreas de trabalho selecionadas aplicam-se a todos os separadores de consulta no editor de consultas. Quando utiliza várias áreas de trabalho, o union() operador é aplicado por predefinição a tabelas com o mesmo nome e esquema de diferentes áreas de trabalho. Utilize o workspace() operador para consultar uma tabela a partir de uma área de trabalho específica, por exemplo workspace("MyWorkspace").AuditLogs.

Para consultar tabelas federadas, selecione Tabelas de sistema ao escolher áreas de trabalho. Para obter mais informações sobre tabelas federadas, veja Using federated tables in the Microsoft Sentinel data lake (Utilizar tabelas federadas no data lake do Microsoft Sentinel).

Se selecionar uma única área de trabalho vazia ou uma área de trabalho em processo de integração, o navegador de esquemas não mostra quaisquer tabelas.

Captura de ecrã a mostrar o painel de seleção das áreas de trabalho.

Seleção do intervalo de tempo

Nota

As consultas estão limitadas a 500.000 linhas ou 64 MB de dados e expiram após 8 minutos. Intervalos de tempo amplos podem exceder estes limites. Para consultas de longa duração, considere usar consultas assíncronas.

Utilize o seletor de tempo acima do editor de consultas para selecionar o intervalo de tempo da consulta. Ao utilizar a opção Intervalo de tempo personalizado , pode definir uma hora de início e de fim específica. Os intervalos de tempo podem ter até 12 anos de duração.

Captura de ecrã a mostrar o seletor de intervalo de tempo.

Importante

O seletor de intervalo de tempo não funciona para tabelas federadas que não têm uma TimeGenerated coluna ou onde a TimeGenerated coluna não está no formato correto. Ao consultar estas tabelas, especifique o intervalo de tempo na consulta KQL com a coluna adequada para filtragem de tempo.

Também pode especificar um intervalo de tempo na sintaxe da consulta KQL, por exemplo:

  • where TimeGenerated between (datetime(2020-01-01) .. datetime(2020-12-31))
  • where TimeGenerated between(ago(180d)..ago(90d))

Nota

As consultas estão limitadas a 500 000 linhas ou 64 MB de dados e expiram após 8 minutos. Ao selecionar um intervalo de tempo alargado, a consulta poderá exceder estes limites. Considere utilizar consultas assíncronas para consultas de longa duração. Para obter mais informações, veja Consultas assíncronas.

Ver informações de esquema

O browser de esquema fornece uma lista de tabelas disponíveis e respetivas colunas para as áreas de trabalho selecionadas, agrupadas por categoria. As tabelas do sistema aparecem na categoria Recursos . As tabelas personalizadas com _CL, _KQL_CL, _SPARKe _SPARK_CL estão agrupadas na categoria Registos personalizados . Utilize o browser de esquema para explorar os dados disponíveis no data lake e descobrir tabelas e colunas. Utilize a caixa de pesquisa para localizar rapidamente tabelas específicas.

Captura de ecrã que mostra o painel do explorador de esquema no editor de KQL.

Janela de resultados

A janela de resultados apresenta os resultados da consulta. Pode ver os resultados num formato de tabela e exportar os resultados para um ficheiro CSV com o botão Exportar no canto superior esquerdo da janela de resultados. Alterne a visibilidade das colunas vazias com o botão Mostrar colunas vazias . O botão Personalizar colunas permite-lhe selecionar as colunas a apresentar na janela de resultados.

Pode procurar os resultados com a caixa de pesquisa no canto superior direito da janela de resultados.

Captura de ecrã a mostrar a janela de resultados num editor de consultas KQL.

Consultas de configuração inicial

O separador Consultas disponibiliza uma coleção de consultas KQL predefinidas. Estas consultas abrangem cenários comuns e casos de utilização, como investigação de incidentes de segurança e investigação de ameaças. Pode utilizar estas consultas tal como estão ou modificá-las de acordo com as suas necessidades específicas.

Selecione uma consulta na lista com o ícone ... Pode abri-lo num novo separador de consulta para editar ou executá-lo imediatamente.

Para obter mais informações sobre consultas de exemplo, veja Sample KQL queries for Microsoft Sentinel data lake (Consultas KQL de exemplo para Microsoft Sentinel data lake).

Captura de ecrã do separador Consultas de exemplo no editor de consultas KQL.

Consultas assíncronas

As consultas assíncronas permitem-te executar consultas KQL de longa duração em segundo plano, para que possas continuar a trabalhar no portal enquanto as consultas são processadas no servidor. Use consultas assíncronas quando a sua consulta possa exceder o timeout síncrono de 8 minutos ou quando trabalhar com intervalos de tempo amplos.

Executar consultas assíncronas

Pode executar consultas de execução prolongada de forma assíncrona, para que possa continuar a trabalhar enquanto a consulta é executada no servidor. Para executar uma consulta assíncrona:

  1. Selecione a seta para baixo no botão Executar consulta , depois selecione Executar consulta assíncrona.
  2. Introduza um nome de consulta para identificar a consulta assíncrona.
  3. Após submeter a consulta, monitorize o seu estado no separador Consultas Assíncronas .
  4. Quando a consulta terminar, selecione o nome da consulta da lista para visualizar os resultados.

Captura de ecrã a mostrar o separador Consultas Assíncronas no editor de consultas KQL.

Se uma consulta síncrona demorar mais de 2 minutos a ser executada, é apresentada uma mensagem a perguntar se pretende executar a consulta de forma assíncrona. Selecione Executar assíncrona para alterar a consulta para ser executada de forma assíncrona.

Uma captura de ecrã que mostra a mensagem para alterar uma consulta de longa duração para uma consulta assíncrona.

Obter resultados de consulta assíncrona

Para ver os resultados da consulta assíncrona, selecione a consulta assíncrona concluída no separador Consultas Assíncronas e selecione Obter resultados. A consulta é apresentada nos comentários no editor de consultas e os resultados são apresentados no separador Resultados.

Os resultados são armazenados durante 24 horas e podem ser acedidos várias vezes. Pode exportar os resultados para um ficheiro CSV com o botão Exportar no canto superior esquerdo da janela de resultados.

Captura de ecrã a mostrar os resultados de uma consulta assíncrona no editor de consultas KQL.

Parâmetros de serviço e limites para consultas assíncronas KQL

A tabela seguinte lista os parâmetros de serviço e os limites das consultas assíncronas KQL no Microsoft Sentinel data lake.

Nota

Todos os limites nesta tabela se aplicam por inquilino. Não existe um limite por utilizador. As consultas KQL assíncronas partilham os mesmos contadores de taxa-limite e simultaneidade que as consultas KQL interativas; As tarefas KQL têm a sua própria quota separada.

Quando o limite de taxa ou o limite de simultaneidade é excedido, o pedido é rejeitado e não está em fila. O contador de concorrência diminui assim que uma consulta em execução termina, e o contador de limitação de taxa é reiniciado a cada minuto.

Categoria Parâmetro/limite
Limite de taxa por inquilino 30 consultas por minuto (combinadas com consultas KQL interativas)
Concorrência por tenant 10 consultas simultâneas (combinadas com consultas KQL interativas)
Tempo limite de execução de consultas assíncronas 1 hora
Duração da cache 24 horas
Número de vezes que os utilizadores podem obter resultados em cache Ilimitado
Âmbito da consulta Várias áreas de trabalho
Intervalo de tempo da consulta Até 12 anos

Criar e gerir trabalhos de consulta KQL

As tarefas são utilizadas para executar consultas KQL sobre os dados na camada de data lake e promover os resultados para a camada de analítica. Pode criar tarefas únicas ou agendadas e pode ativar, desativar, editar ou eliminar tarefas a partir da página Tarefas . Para criar uma tarefa com base na sua consulta atual, selecione o botão Criar tarefa . Para obter mais informações sobre como criar e gerir tarefas, veja Criar tarefas no Microsoft Sentinel data lake.

Consultar o lago de dados com o Azure Data Explorer

Pode executar consultas KQL no data lake Microsoft Sentinel com o Azure Data Explorer (ADX). O ADX fornece um poderoso motor de consulta e capacidades de análise avançada. Para ligar ao data lake com o ADX, crie uma nova ligação com o seguinte URI: https://api.securityplatform.microsoft.com/lake/kql

Ao consultar tabelas no data lake com o ADX, tem de utilizar a external_table() função para aceder aos dados. A seguinte consulta de exemplo recupera uma amostra de 100 registos da AADRiskyUsers tabela externa:

external_table("AADRiskyUsers")
| take 100

Considerações e limitações de consultas

Tenha em mente as seguintes limitações e considerações ao executar consultas KQL no data lake.

  • A consulta de tabelas legadas, como AzureDiagnostics, não é suportada.

  • As tabelas vazias não aparecem na vista de esquema e as consultas só são suportadas quando a tabela contém dados.

  • As consultas são executadas nos espaços de trabalho que selecionou. Certifique-se de que seleciona as áreas de trabalho corretas antes de executar uma consulta.

  • A execução de consultas KQL no data lake do Microsoft Sentinel incorre em custos com base nos medidores de faturação de consultas. Para obter mais informações, consulte Planear custos e compreender os preços e a faturação do Microsoft Sentinel.

  • Reveja a ingestão de dados e a política de retenção de tabelas. Antes de definir o intervalo de tempo da consulta, tenha em atenção a retenção de dados nas tabelas do data lake e se os dados estão disponíveis para o intervalo de tempo selecionado. Para obter mais informações, veja Gerir camadas de dados e retenção no portal do Microsoft Defender.

  • As consultas KQL no data lake são menos eficazes do que as consultas na camada de análise. Utilize consultas KQL no data lake apenas ao explorar dados históricos ou quando as tabelas são armazenadas no modo apenas data lake.

  • Os seguintes comandos de controlo KQL são atualmente suportados:

    • .show version
    • .show databases
    • .show databases entities
    • .show database
  • Quando utilizar o stored_query_results comando , forneça o intervalo de tempo na consulta KQL. O seletor de intervalos de tempo do editor de consultas não funciona com o stored_query_results comando.

  • Não é suportada a utilização de funções predefinidas ou personalizadas em consultas KQL executadas sobre o data lake.

  • A chamada de dados externos através da consulta KQL no data lake não é suportada.

  • Todos os operadores e funções KQL são suportados, exceto os seguintes:

    • adx()
    • arg()
    • externaldata()
    • ingestion_time()
  • Existe uma latência de 15 minutos entre quando os dados são ingeridos no data lake ou tabelas federadas e quando ficam disponíveis para consulta. Isto significa que os dados recentemente ingeridos podem não ser imediatamente consultados.

Parâmetros de serviço e limites para consultas KQL na camada lake

Os seguintes parâmetros e limites de serviço aplicam-se ao escrever consultas no Microsoft Sentinel data lake.

Nota

Todos os limites nesta tabela se aplicam por inquilino. Não existe um limite por utilizador. As consultas KQL interativas e as consultas KQL assíncronas partilham os mesmos contadores de taxa-limite e simultaneidade.

Quando o limite de taxa ou o limite de simultaneidade é excedido, o pedido é rejeitado e não está em fila. O contador de concorrência diminui assim que uma consulta em execução termina, e o contador de limitação de taxa é reiniciado a cada minuto.

Categoria Parâmetro/limite
Limite de taxa por inquilino 30 consultas por minuto (combinadas interativas e assíncronas)
Concorrência por tenant 10 consultas simultâneas (interativas e assíncronas combinadas)
Consultar dados de resultados 64 MB. Para substituir a predefinição de uma consulta específica, veja Limites de consulta na referência Linguagem de Pesquisa Kusto.
Linhas de resultados da consulta 500 000 linhas. Para substituir a predefinição de uma consulta específica, veja Limites de consulta na referência Linguagem de Pesquisa Kusto.
Âmbito da consulta Várias áreas de trabalho
Tempo limite da consulta 4 minutos
Intervalo de tempo que pode ser consultado Até 12 anos, dependendo da retenção de dados.

Para resolver problemas de consultas KQL, veja Troubleshoot KQL queries in the Microsoft Sentinel data lake (Resolver problemas de consultas KQL no data lake do Microsoft Sentinel).