Partilhar via


Criar tarefas KQL no data lake do Microsoft Sentinel

Os trabalhos KQL consistem em consultas KQL, únicas ou agendadas, sobre dados no data lake do Microsoft Sentinel. Use tarefas para cenários de investigação e análise, tais como:

  • Consultas únicas de longa duração para investigações de incidentes e resposta a incidentes (RI)
  • Tarefas de agregação de dados que usam logs de baixa fidelidade para suportar fluxos de trabalho de enriquecimento
  • Varreduras de comparação de inteligência sobre ameaças históricas (TI) para análise retrospetiva
  • Análises de deteção de anomalias que identificam padrões anómalos em várias tabelas

Os trabalhos KQL são especialmente eficazes quando as consultas usam junções ou uniões em diferentes conjuntos de dados.

Use tarefas para promover dados do data lake para o nível de analytics. Uma vez na camada de análise, use o editor KQL Advanced Hunting para consultar os dados. A promoção de dados para a camada de análise tem os seguintes benefícios:

  • Combine dados atuais e históricos na camada de análise para executar modelos avançados de análise e aprendizado de máquina em seus dados.
  • Reduza os custos de consulta executando consultas na camada de análise.
  • Combine dados de vários espaços de trabalho em um único espaço de trabalho na camada de análise.
  • Combine dados do Microsoft Entra ID, Microsoft 365 e Microsoft Resource Graph na camada de análise para executar análises avançadas entre fontes de dados.

Observação

O armazenamento na camada de análise incorre em taxas de faturamento mais altas do que na camada de data lake. Para reduzir custos, promova apenas os dados que você precisa analisar mais. Use o KQL em sua consulta para projetar apenas as colunas necessárias e filtre os dados para reduzir a quantidade de dados promovidos para a camada de análise.

Você pode promover dados para uma nova tabela ou acrescentar os resultados a uma tabela existente na camada de análise. Ao criar uma nova tabela, o nome da tabela é sufixo com _KQL_CL para indicar que a tabela foi criada por um trabalho KQL.

Pré-requisitos

Para criar e gerir tarefas KQL no data lake do Microsoft Sentinel, precisa dos seguintes pré-requisitos.

A bordo do data lake

Para criar e gerir trabalhos KQL no data lake do Microsoft Sentinel, deve-se primeiro aderir ao data lake. Para obter mais informações sobre a integração ao data lake, consulte Integração ao data lake do Microsoft Sentinel.

Permissões

As funções de ID do Microsoft Entra fornecem amplo acesso em todos os espaços de trabalho no data lake. Para ler tabelas em todos os espaços de trabalho, gravar na camada de análise e agendar trabalhos usando consultas KQL, deve-se ter uma das funções suportadas do Microsoft Entra ID. Para obter mais informações sobre funções e permissões, consulte Funções e permissões do data lake do Microsoft Sentinel.

Para criar novas tabelas personalizadas no nível de análise, atribua o papel Log Analytics Contributor no espaço de trabalho do Log Analytics à identidade gerida do data lake.

Para atribuir o papel, siga estes passos:

  1. No portal Azure, vai ao espaço de trabalho de Log Analytics a que queres atribuir a função.
  2. Selecione Controle de acesso (IAM) no painel de navegação esquerdo.
  3. Selecione Adicionar atribuição de função.
  4. Na tabela de Funções , selecione *Log Analytics Contributor e depois selecione Próximo.
  5. Selecione Identidade gerenciada e, em seguida, selecione Selecionar membros.
  6. Sua identidade gerenciada do data lake é uma identidade gerenciada atribuída ao sistema chamada msg-resources-<guid>. Selecione a identidade gerenciada e, em seguida, selecione Selecionar.
  7. Selecione Rever e atribuir.

Para obter mais informações sobre como atribuir funções a identidades gerenciadas, consulte Atribuir funções do Azure usando o portal do Azure.

Criar um emprego

Você pode criar trabalhos para serem executados em um cronograma ou uma única vez. Ao criar um trabalho, o utilizador especifica o espaço de trabalho de destino e a tabela para os resultados. Pode escrever os resultados numa nova tabela ou adicioná-los a uma tabela existente no nível de análise. Podes criar um novo trabalho KQL ou criar um trabalho a partir de um template que contenha as definições de consulta e de trabalho. Para mais informações, consulte Criar um trabalho KQL a partir de um modelo.

  1. Inicie o processo de criação de trabalhos a partir do editor de consultas KQL ou da página de gerenciamento de trabalhos.

    1. Para criar um trabalho a partir do editor de consultas KQL, selecione o botão Criar trabalho no canto superior direito do editor de consultas. Uma captura de tela mostrando o botão criar trabalho no editor de consultas KQL.

    2. Para criar um trabalho a partir da página de gestão de trabalhos, selecione Microsoft Sentinel>Exploração do Lago de Dados>Trabalhos e em seguida selecione o botão Criar trabalho. Uma captura de ecrã que mostra o botão de criar trabalho na página de gestão de funções.

  2. Insira um nome de trabalho. O nome do trabalho deve ser exclusivo para o locatário. Os nomes de trabalho podem conter até 256 caracteres. Não é possível usar um # ou um - no nome de um trabalho.

  3. Insira uma Descrição do Trabalho fornecendo o contexto e a finalidade do trabalho.

  4. Na lista suspensa denominada Selecionar espaço de trabalho, escolha o espaço de trabalho de destino. Este espaço de trabalho está no nível de análise, onde queres escrever os resultados da consulta.

  5. Selecione a tabela de destino:

    1. Para criar uma nova tabela, selecione Criar uma nova tabela e insira um nome de tabela. As tabelas criadas por trabalhos KQL têm o sufixo _KQL_CL anexado ao nome da tabela.

    2. Para acrescentar a uma tabela existente, selecione Adicionar a uma tabela existente e selecione o nome da tabela na lista suspensa. Ao adicionar a uma tabela existente, os resultados da consulta devem corresponder ao esquema da tabela existente.

  6. Selecione Seguinte. Uma captura de tela mostrando a página de detalhes do novo trabalho.

  7. Reveja ou escreva a sua consulta no painel Preparar a consulta . Verifique se o seletor de tempo está definido para o intervalo de tempo necessário para o trabalho se o intervalo de datas não estiver especificado na consulta.

  8. Selecione os espaços de trabalho contra os quais executar a consulta na lista suspensa Espaços de trabalho selecionados . Estes espaços de trabalho são os espaços de trabalho de origem cujas tabelas quer consultar. Os espaços de trabalho selecionados determinam as tabelas disponíveis para consulta. Os espaços de trabalho selecionados aplicam-se a todos os separadores de consulta no editor de consultas. Ao usar vários espaços de trabalho, o union() operador é aplicado por padrão a tabelas com o mesmo nome e esquema de espaços de trabalho diferentes. Use o workspace() operador para consultar uma tabela de um espaço de trabalho específico, por exemplo workspace("MyWorkspace").AuditLogs.

    Observação

    Se você estiver gravando em uma tabela existente, a consulta deverá retornar resultados com um esquema que corresponda ao esquema da tabela de destino. Se a consulta não devolver resultados com o esquema correto, o trabalho falha quando é executado.

  9. Selecione Seguinte.

    Uma captura de tela mostrando o painel de consulta de revisão.

    Na página Agendar o trabalho de consulta , selecione se deseja executar o trabalho uma vez ou em uma agenda. Se você selecionar Uma vez, o trabalho será executado assim que a definição do trabalho for concluída. Se você selecionar Agendar, poderá especificar uma data e hora para a execução do trabalho ou executá-lo em uma agenda recorrente.

  10. Selecione Uma vez ou Trabalho agendado.

    Observação

    A edição de uma tarefa única desencadeia imediatamente a sua execução.

  11. Se você selecionou Agendar, insira os seguintes detalhes:

    1. Selecione a Frequência de repetição na lista suspensa. Você pode selecionar Por minuto, Horária, Diária, Semanal ou Mensal.
    2. Defina o valor de Repetir cada para a frequência com que pretende que a tarefa seja executada em relação à frequência selecionada.
    3. Em Definir cronograma, insira as datas e horas em De. A hora de início do trabalho no campo De deve ser pelo menos 30 minutos após a criação do trabalho. O trabalho é executado a partir desta data e hora de acordo com a frequência selecionada na lista suspensa Executar a cada.
    4. Selecione a data e a hora Até para especificar quando o agendamento de tarefas será concluído. Se desejar que a agenda continue indefinidamente, selecione Definir trabalho para ser executado indefinidamente.

    Os horários de trabalho de e para são definidos para a localidade do usuário.

    Observação

    Se agendar uma tarefa para executar numa frequência elevada, por exemplo a cada 30 minutos, deve ter em conta o tempo que demora até os dados ficarem disponíveis no data lake. Normalmente, há uma latência de até 15 minutos antes de os dados recém-ingeridos estarem disponíveis para consulta.

  12. Selecione Avançar para revisar os detalhes do trabalho.

    Uma captura de tela mostrando o painel de tarefas agendadas.

  13. Revise os detalhes do trabalho e selecione Enviar para criar o trabalho. Se o trabalho for único, ele será executado depois que você selecionar Enviar. Se o trabalho estiver agendado, ele será adicionado à lista de trabalhos na página Trabalhos e será executado de acordo com os dados e a hora de início. Uma captura de tela mostrando o painel de detalhes do trabalho de revisão.

  14. O trabalho é agendado e a página seguinte é exibida. Você pode visualizar o trabalho selecionando o link. Uma captura de tela mostrando a página de trabalho criado.

Criar um trabalho a partir de um modelo

Pode criar um trabalho KQL a partir de um modelo de trabalho pré-definido. Os modelos de trabalho contêm a consulta KQL e as definições de trabalho, como o espaço de trabalho de destino e a tabela, o horário e a descrição. Pode criar os seus próprios modelos de emprego ou usar modelos incorporados fornecidos pela Microsoft.

Para criar um trabalho a partir de um modelo, siga estes passos:

  1. Na página de Empregos ou no editor de consultas KQL, selecione Criar trabalho e depois selecione Criar a partir do modelo.

  2. Na página de Modelos de Emprego , selecione o modelo que quer usar da lista de modelos disponíveis.

  3. Revise a Descrição e a consulta KQL do modelo.

  4. Selecione Criar trabalho a partir do modelo.

    Uma captura de ecrã a mostrar a página de modelos de trabalho.

  5. O assistente de criação de tarefas abre com a página Criar uma nova tarefa KQL. Os detalhes do trabalho foram pré-preenchidos a partir do modelo, exceto o espaço de trabalho de destino.

  6. Selecione o espaço de trabalho de destino na lista suspensa Selecionar espaço de trabalho.

  7. Revise e modifique os detalhes do trabalho conforme necessário, depois selecione Próximo para avançar pelo assistente de criação de emprego.

  8. Os passos restantes são iguais a criar um novo emprego. Os campos são pré-preenchidos a partir do modelo e podem ser modificados conforme necessário. Para mais informações, consulte Criar um emprego.

Estão disponíveis os seguintes modelos:

Nome do modelo Categoria
Aumentam locais de início de sessão anómalos
Analise a análise de tendências dos registos de início de sessão do Entra ID para detetar alterações invulgares de localização para utilizadores em diferentes aplicações, calculando linhas de tendência de diversidade de localização. Destaca as três principais contas com o maior aumento na variabilidade da localização e lista as suas localizações associadas dentro de janelas de 21 dias.

Tabela de destino: UserAppSigninLocationTrend

Revisão da consulta: 1 dia

Horário: diário

Data de início: Data atual + 1 hora
Caça
Comportamento anómalo de login baseado em alterações de localização
Identificar comportamentos anómalos de início de sessão com base nas alterações de localização para utilizadores e aplicações do Entra ID, a fim de detetar mudanças súbitas no comportamento.

Tabela de destino: UserAppSigninLocationAnomalies

Revisão da consulta: 1 dia

Horário: diário

Data de início: Data atual + 1 hora
Deteção de anomalias
Auditar atividades raras por aplicação
Encontre aplicações que realizem ações raras (por exemplo, consentimento, concessões) que possam criar privilégio discretamente. Compare o dia atual com os últimos 14 dias de auditorias para identificar novas atividades de auditoria. Útil para rastrear atividade maliciosa relacionada com adições ou remoções de utilizadores/grupos por aplicações Azure e aprovações automáticas.

Tabela de destino: AppAuditAtividadeRara

Análise da consulta: 14 dias

Horário: diário

Data de início: Data atual + 1 hora
Caça
Operações raras de nível de subscrição do Azure
Identificar eventos sensíveis ao nível de subscrição do Azure com base nos Azure Activity Logs. Por exemplo, monitorização baseada no nome de operação "Create or Update Snapshot", que é usada para criar backups, mas pode ser mal utilizada por atacantes para despejar hashes ou extrair informação sensível do disco.

Tabela de destino: AzureSubscriptionSensitiveOps

Análise da consulta: 14 dias

Horário: diário

Data de início: Data atual + 1 hora
Caça
Tendência diária de atividade por aplicação no AuditLogs
Nos últimos 14 dias, identifique qualquer operação de "Consentimento à aplicação" que ocorra por um utilizador ou aplicação. Isto pode indicar que as permissões para aceder ao AzureApp listado foram fornecidas a um ator malicioso. Eventos de consentimento para a aplicação, a adição do principal de serviço e a adição de Auth2PermissionGrant devem ser raros. Se disponível, é adicionado contexto adicional a partir dos AuditLogs com base no CorrelationId da mesma conta que realizou o "Consentimento à aplicação".

Tabela de destino: AppAuditActivityBaseline

Análise da consulta: 14 dias

Horário: diário

Data de início: Data atual + 1 hora
Linha de base
Tendência diária de localização por utilizador ou aplicação no LogInLogs
Crie tendências diárias para todos os logins dos utilizadores, número de localizações e utilização da sua aplicação.

Tabela de destino: UserAppSigninLocationBaseline

Revisão da consulta: 1 dia

Horário: diário

Data de início: Data atual + 1 hora
Linha de base
Tendência diária de tráfego de rede por IP de destino
Crie uma linha de base que inclua bytes e pares distintos para detectar beaconing e exfiltração.

Tabela de destino: NetworkTrafficDestinationIPDailyBaseline

Revisão da consulta: 1 dia

Horário: diário

Data de início: Data atual + 1 hora
Linha de base
Tendência diária do tráfego de rede por IP de destino com estatísticas de transferência de dados
Identificar o host interno que atingiu o destino de saída, incluindo tendências de volume, estimando o raio da explosão.

Tabela de destino: NetworkTrafficDestinationIPTrend

Revisão da consulta: 1 dia

Horário: diário

Data de início: Data atual + 1 hora
Caça
Tendência diária do tráfego de rede por IP de origem
Crie uma linha de base incluindo bytes e pares únicos para detetar sinalização e exfiltração.

Tabela de destino: NetworkTrafficSourceIPDailyBaseline

Revisão da consulta: 1 dia

Horário: diário

Data de início: Data atual + 1 hora
Linha de base
Tendência diária do tráfego de rede por IP de origem com estatísticas de transferência de dados
As ligações e bytes atuais são avaliados com base na linha de base diária do host para determinar se os comportamentos observados diferem significativamente do padrão pré-estabelecido.

Tabela de destino: NetworkTrafficSourceIPTrend

Revisão da consulta: 1 dia

Horário: diário

Data de início: Data atual + 1 hora
Caça
Tendência de localização de início de sessão diária por utilizador e aplicação
Crie uma linha de base de login para cada utilizador ou aplicação com localização geográfica e IP típicas, permitindo uma deteção de anomalias eficiente e económica em larga escala.

Tabela de destino: UserAppLoginLocalizaçãoBaseDiária

Revisão da consulta: 1 dia

Horário: diário

Data de início: Data atual + 1 hora
Linha de base
Tendência diária de execução de processos
Identificar novos processos e prevalência, facilitando a deteção de "novos processos raros".

Tabela de destino: EndpointProcessExecutionBaseline

Revisão da consulta: 1 dia

Horário: diário

Data de início: Data atual + 1 hora
Linha de base
Entra ID agente de utilizador raro por aplicação
Estabeleça um referencial do tipo de UserAgent (ou seja, navegador, aplicação de escritório, etc.) que é normalmente usado para uma determinada aplicação, analisando um histórico de vários dias. Depois, pesquisa no dia atual quaisquer desvios deste padrão, ou seja, tipos de UserAgents nunca antes vistos em combinação com esta aplicação.

Tabela de destino: UserAppRareUserAgentAnomalies

Análise da consulta: 7 dias

Horário: diário

Data de início: Data atual + 1 hora
Deteção de anomalias
Correspondência do IOC do registo de rede
Identifique quaisquer indicadores de comprometimento IP (IOCs) a partir da inteligência de ameaças (TI), pesquisando correspondências no CommonSecurityLog.

Tabela de destino: NetworkLogIOCMatches

Análise da consulta: 1 hora

Horário: a cada hora

Data de início: Data atual + 1 hora
Caça
Novos processos observados nas últimas 24 horas
Novos processos em ambientes estáveis podem indicar atividade maliciosa. Analisar sessões de início onde estes binários foram executados pode ajudar a identificar ataques.

Tabela de destino: EndpointNewProcessExecutions

Análise da consulta: 14 dias

Horário: diário

Data de início: Data atual + 1 hora
Caça
Operação de ficheiros SharePoint através de IPs nunca antes vistos
Identificar anomalias usando o comportamento do utilizador, definindo um limiar para alterações significativas nas atividades de upload/download de ficheiros a partir de novos endereços IP. Estabelece uma linha base de comportamento típico, compara-a com a atividade recente e assinala desvios que excedam um limiar padrão de 25.

Tabela de destino: SharePointFileOpsNewIPs

Análise da consulta: 14 dias

Horário: diário

Data de início: Data atual + 1 hora
Caça
Beaconing potencial de rede de Palo Alto
Identificar padrões de beaconing a partir dos registos de tráfego da Palo Alto Networks com base em padrões recorrentes de delta de tempo. A consulta utiliza várias funções KQL para calcular os deltas de tempo e depois compara-a com o total de eventos observados num dia para encontrar a percentagem de beaconing.

Tabela de destino: PaloAltoNetworkBeaconingTrend

Revisão da consulta: 1 dia

Horário: diário

Data de início: Data atual + 1 hora
Caça
Login suspeito do Windows fora das horas normais
Identifique eventos invulgares de início de sessão no Windows fora das horas normais do utilizador, comparando com a atividade de início de sessão dos últimos 14 dias, assinalando anomalias com base em padrões históricos.

Tabela de destino: WindowsLoginOffHoursAnomalies

Análise da consulta: 14 dias

Horário: diário

Data de início: Data atual + 1 hora
Deteção de anomalias

Considerações e limitações

Ao criar empregos no data lake Microsoft Sentinel, considere as seguintes limitações e boas práticas:

KQL

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

    • adx()
    • arg()
    • externaldata()
    • ingestion_time()
  • Quando usares o stored_query_results comando, fornece o intervalo de tempo na consulta KQL. O seletor de tempo acima do editor de consultas não funciona com este comando.

  • Funções definidas pelo utilizador não são suportadas.

Tarefas

  • Os nomes dos trabalhos devem ser exclusivos para o inquilino.
  • Os nomes das funções podem ter até 256 caracteres.
  • Os nomes de trabalho não podem conter um # ou um -.
  • A hora de início do trabalho deve ser de pelo menos 30 minutos após a criação ou edição do trabalho.

Latência de ingestão de data lake

O nível data lake armazena dados em armazenamento frio. Em vez das camadas de análise em tempo real ou quase real, o armazenamento frio está otimizado para retenção a longo prazo e eficiência de custos e não fornece acesso imediato aos dados recém-ingeridos. Quando novas linhas são adicionadas a tabelas existentes no data lake, há uma latência típica de até 15 minutos antes de os dados estarem disponíveis para consulta. Tenha em conta a latência de ingestão quando executa consultas e agenda trabalhos KQL, garantindo que as janelas de revisão e os horários de trabalhos estão configurados para evitar dados que ainda não estão disponíveis.

Para evitar consultar dados que possam ainda não estar disponíveis, inclua um parâmetro de atraso nas suas consultas ou trabalhos KQL. Por exemplo, ao agendar tarefas automatizadas, defina a hora de fim da consulta para now() - delay, onde delay corresponde à latência típica de prontidão dos dados de 15 minutos. Esta abordagem garante que as consultas apenas visam dados totalmente absorvidos e prontos para análise.

let lookback = 15m;
let delay = 15m;
let endTime = now() - delay;
let startTime = endTime - lookback;
CommonSecurityLog
| where TimeGenerated between (startTime .. endTime)

Esta abordagem é eficaz para trabalhos com janelas de retrospetiva curtas ou intervalos frequentes de execução.

Considere sobrepor o período de retrospetiva com a frequência das tarefas para reduzir o risco de perder dados que chegam tarde.

Para obter mais informações, consulte Gerir o atraso na ingestão nas regras de análise agendada.

Nomes das colunas

As seguintes colunas padrão não são suportadas para exportação. O processo de ingestão sobrescreve estas colunas no tier de destino:

  • Id de Inquilino

  • _HoraRecebida

  • Tipo

  • SourceSystem

  • _ResourceId (ID de recurso)

  • _SubscriptionId (ID de Subscrição)

  • _ItemId

  • _BilledSize

  • _É faturável

  • _WorkspaceId

  • TimeGenerated é sobrescrito se tiver mais de dois dias. Para preservar a hora original do evento, escreva o carimbo de origem numa coluna separada.

Para obter limites de serviço, consulte Limites de serviço do data lake do Microsoft Sentinel.

Observação

Resultados parciais podem ser apresentados se a consulta ultrapassar o limite de uma hora estabelecido.

Parâmetros e limites de serviço para tarefas KQL

A tabela a seguir lista os parâmetros e limites de serviço para trabalhos KQL no data lake do Microsoft Sentinel.

Categoria Parâmetro/limite
Execução simultânea de trabalhos por locatário 3
Tempo limite de execução da consulta de tarefa Uma hora
Trabalhos por locatário (trabalhos habilitados) 100
Número de tabelas de saída por trabalho 1
Escopo da consulta Vários espaços de trabalho
Intervalo de tempo de consulta Até 12 anos

Para obter dicas de solução de problemas e mensagens de erro, consulte Solução de problemas de consultas KQL para o data lake do Microsoft Sentinel.