Partilhar via


Criar tarefas KQL no Microsoft Sentinel data lake

As tarefas KQL são consultas KQL únicas ou agendadas em dados no Microsoft Sentinel data lake e tabelas federadas. Utilize tarefas para cenários de investigação e análise, tais como:

  • Consultas únicas de execução prolongada para investigações de incidentes e resposta a incidentes (IR)
  • Tarefas de agregação de dados que suportam fluxos de trabalho de melhoramento com registos de baixa fidelidade
  • Análises de correspondência de informações sobre ameaças históricas (TI) para análise retrospetiva
  • Análises de deteção de anomalias que identificam padrões invulgares em várias tabelas

As tarefas KQL são especialmente eficazes quando as consultas utilizam associações ou uniões em diferentes conjuntos de dados.

Utilize tarefas para promover dados da camada do data lake para a camada de análise. Uma vez na camada de análise, utilize o editor de KQL de investigação avançada para consultar os dados. A promoção de dados para o escalão de análise tem as seguintes vantagens:

  • Combine dados atuais e históricos na camada de análise ou a partir de tabelas federadas para executar modelos avançados de análise e machine learning nos seus dados.
  • Reduza os custos das consultas ao executar consultas no escalão de análise.
  • Combinar dados de várias áreas de trabalho para uma única área de trabalho na camada de análise.
  • Combine Microsoft Entra ID, Microsoft 365 e Microsoft Resource Graph dados no escalão de análise para executar análises avançadas em origens de dados.

Observação

O armazenamento no escalão de análise incorre em taxas de faturação mais elevadas do que na camada do data lake. Para reduzir os custos, promova apenas os dados que precisa de analisar mais aprofundadamente. Utilize o KQL na consulta para projetar apenas as colunas de que precisa e filtre os dados para reduzir a quantidade de dados promovidos para a camada de análise.

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 uma tarefa KQL.

Opcionalmente, pode escrever a saída de uma tarefa KQL noutra tabela no data lake tier para acelerar a investigação ou utilizar os dados melhorados para a investigação de ameaças. Ao criar uma nova tabela, o nome da tabela é sufixo com _KQL se escrever na área de trabalho Tabelas do sistema.

Pré-requisitos

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

Integrar no data lake

Para criar e gerir tarefas KQL no Microsoft Sentinel data lake, primeiro tem de integrar no data lake. Para obter mais informações sobre a inclusão no data lake, veja Integrar no data lake do Microsoft Sentinel.

Permissões

Microsoft Entra ID funções fornecem acesso amplo a todas as áreas de trabalho no data lake. Para ler tabelas em todas as áreas de trabalho, escrever na camada de análise e agendar tarefas com consultas KQL, tem de ter uma das funções de Microsoft Entra ID suportadas. Para obter mais informações sobre funções e permissões, veja Microsoft Sentinel funções e permissões do data lake.

Para criar novas tabelas personalizadas no escalão de análise, atribua a função Contribuidor do Log Analytics na área de trabalho do Log Analytics à identidade gerida do data lake.

Para atribuir a função, siga estes passos:

  1. No portal do Azure, aceda à área de trabalho do Log Analytics à qual pretende atribuir a função.
  2. Selecione Controlo de acesso (IAM) no painel de navegação esquerdo.
  3. Selecione Adicionar atribuição de função.
  4. Na tabela Função , selecione *Contribuidor do Log Analytics e, em seguida, selecione Seguinte.
  5. Selecione Identidade gerida e, em seguida, selecione Selecionar membros.
  6. A identidade gerida do data lake é uma identidade gerida atribuída pelo sistema com o nome msg-resources-<guid>. Selecione a identidade gerida e, em seguida, selecione Selecionar.
  7. Selecione Rever e atribuir.

Para obter mais informações sobre como atribuir funções a identidades geridas, veja Atribuir funções de Azure com o portal do Azure.

Criar uma tarefa

Pode criar tarefas para execução com base numa agenda ou numa única vez. Quando cria uma tarefa, especifica a área de trabalho de destino e a tabela para os resultados. Pode escrever os resultados numa nova tabela ou anexá-los a uma tabela existente na camada de data lake ou análise. Não pode escrever os resultados em tabelas federadas. Pode criar uma nova tarefa KQL ou criar uma tarefa a partir de um modelo que contenha as definições da consulta e da tarefa. Para obter mais informações, veja Criar uma tarefa KQL a partir de um modelo.

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

    1. Para criar uma tarefa a partir do editor de consultas KQL, selecione o botão Criar tarefa no canto superior direito do editor de consultas. Captura de ecrã a mostrar o botão criar tarefa no editor de consultas KQL.

    2. Para criar uma tarefa a partir da página de gestão de tarefas, selecione Microsoft Sentinel>Data lake exploration>Jobs e, em seguida, selecione o botão Criar tarefa. Captura de ecrã a mostrar o botão criar tarefa na página de gestão de tarefas.

  2. Introduza um Nome da tarefa. O nome da tarefa tem de ser exclusivo para o inquilino. Os nomes das tarefas podem conter até 256 carateres. Não pode utilizar um # ou um - num nome de tarefa.

  3. Introduza uma Descrição da Tarefa que forneça o contexto e o objetivo da tarefa.

  4. Na lista pendente Selecionar área de trabalho , selecione a área de trabalho de destino. Esta área de trabalho pode ser tabelas de sistema ou uma área de trabalho Sentinel onde pretende escrever os resultados da consulta.

  5. Selecione a tabela de destino:

    1. Para acrescentar a uma tabela existente, selecione Adicionar a uma tabela existente e selecione o nome da tabela na lista pendente. Ao adicionar a uma tabela existente, os resultados da consulta têm de corresponder ao esquema da tabela existente.
  6. Selecione Avançar. Captura de ecrã a mostrar a nova página de detalhes da tarefa.

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

  8. Selecione as áreas de trabalho para executar a consulta no menu pendente Áreas de trabalho selecionadas . Estas áreas de trabalho são as áreas de trabalho de origem cujas tabelas pretende consultar. 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. Ao utilizar 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.

    Observação

    Se estiver a escrever numa tabela existente, a consulta tem de devolver resultados com um esquema que corresponda ao esquema da tabela de destino. Se a consulta não devolver resultados com o esquema correto, a tarefa falhará quando é executada.

    A escrita de tarefas KQL em Tabelas de sistema está atualmente em pré-visualização.

  9. Selecione Avançar.

    Uma captura de ecrã a mostrar o painel de consulta rever.

    Na página Agendar a tarefa de consulta , selecione se pretende executar a tarefa uma vez ou com base numa agenda. Se selecionar Uma vez, a tarefa é executada assim que a definição da tarefa estiver concluída. Se selecionar Agendar, pode especificar uma data e hora para a tarefa ser executada ou executar a tarefa com base numa agenda periódica.

  10. Selecione Uma vez ou Tarefa agendada.

    Observação

    Editar uma tarefa única aciona imediatamente a respetiva execução.

  11. Se tiver selecionado Agendar, introduza os seguintes detalhes:

    1. Selecione a opção Repetir frequência no menu pendente. Pode selecionar Por minuto, Hora a hora, Diariamente, Semanalmente ou Mensalmente.
    2. Defina Repetir cada valor para a frequência com que pretende que a tarefa seja executada relativamente à frequência selecionada.
    3. Em Definir agenda, selecione uma data De e introduza uma hora. A hora de início da tarefa no campo De tem de ser, pelo menos, 30 minutos após a criação da tarefa. A tarefa é executada a partir desta data e hora de acordo com a frequência selecionada na lista pendente Executar a cada .
    4. Selecione A data e introduza uma hora para especificar quando a agenda de tarefas é concluída. Se quiser que a agenda continue indefinidamente, selecione Definir tarefa para ser executada indefinidamente.

    As tarefas de e para as horas são definidas para a região do utilizador.

    Observação

    Se agendar uma tarefa para ser executada com uma frequência elevada, por exemplo, a cada 30 minutos, tem de ter em conta o tempo necessário para que os dados fiquem disponíveis no data lake. Normalmente, existe uma latência de até 15 minutos antes de os dados recentemente ingeridos estarem disponíveis para consulta.

  12. Selecione Seguinte para rever os detalhes da tarefa.

    Captura de ecrã a mostrar o painel agendar tarefas.

  13. Reveja os detalhes da tarefa e selecione Submeter para criar a tarefa. Se a tarefa for uma tarefa única, é executada depois de selecionar Submeter. Se a tarefa estiver agendada, é adicionada à lista de tarefas na página Tarefas e executada de acordo com os dados de início e a hora. Uma captura de ecrã a mostrar o painel rever detalhes da tarefa.

  14. A tarefa está agendada e é apresentada a página seguinte. Pode ver a tarefa ao selecionar a ligação. Uma captura de ecrã a mostrar a página da tarefa criada.

Criar uma tarefa a partir de um modelo

Pode criar uma tarefa KQL a partir de um modelo de tarefa predefinido. Os modelos de tarefas contêm a consulta KQL e as definições da tarefa, como a área de trabalho de destino e a tabela, agenda e descrição. Pode criar os seus próprios modelos de trabalho ou utilizar modelos incorporados fornecidos pela Microsoft.

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

  1. Na página Tarefas ou no editor de consultas KQL, selecione Criar tarefa e, em seguida, selecione Criar a partir do modelo.

  2. Na página Modelos de tarefas , selecione o modelo que pretende utilizar na lista de modelos disponíveis.

  3. Reveja a descrição e a consulta KQL do modelo.

  4. Selecione Criar tarefa a partir do modelo.

    Captura de ecrã a mostrar a página de modelos de tarefas.

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

  6. Selecione a área de trabalho de destino na lista pendente Selecionar área de trabalho .

  7. Reveja e modifique os detalhes da tarefa conforme necessário e, em seguida, selecione Seguinte para prosseguir com o assistente de criação de tarefas.

  8. Os passos restantes são os mesmos que criar uma nova tarefa. Os campos são pré-preenchidos a partir do modelo e podem ser modificados conforme necessário. Para obter mais informações, veja Criar uma tarefa.

Estão disponíveis os seguintes modelos:

Nome do modelo Categoria
Aumento de localizações anómalos de início de sessão
Analise a análise de tendências de Entra registos de início de sessão de ID para detetar alterações de localização invulgares para os utilizadores em todas as aplicações através da computação de linhas de tendência de diversidade de localização. Realça as três principais contas com o aumento mais acentuado da variabilidade da localização e lista as respetivas localizações associadas dentro de janelas de 21 dias.

Tabela de destino: UserAppSigninLocationTrend

Pesquisa de consultas: 1 dia

Agenda: diariamente

Data de início: Data atual + 1 hora
Procura
Comportamento anómalo de início de sessão com base em alterações de localização
Identifique comportamentos anómalos de início de sessão com base em alterações de localização para Entra utilizadores de ID e aplicações para detetar alterações repentinas no comportamento.

Tabela de destino: UserAppSigninLocationAnomalies

Pesquisa de consultas: 1 dia

Agenda: diariamente

Data de início: Data atual + 1 hora
Detecções de anomalia
Auditar atividade rara por aplicação
Encontre aplicações que efetuem ações raras (por exemplo, consentimento, concessões) que podem criar privilégios silenciosamente. Compare o dia atual com os últimos 14 dias de auditorias para identificar novas atividades de auditoria. Útil para controlar atividades maliciosas relacionadas com adições ou remoção de utilizadores/grupos por Azure Apps e aprovações automatizadas.

Tabela de destino: AppAuditRareActivity

Pesquisa de consultas: 14 dias

Agenda: diariamente

Data de início: Data atual + 1 hora
Procura
Azure operações raras ao nível da subscrição
Identifique eventos confidenciais Azure ao nível da subscrição com base nos Registos de Atividades do Azure. Por exemplo, a monitorização com base no nome da operação "Criar ou Atualizar Instantâneo", que é utilizada para criar cópias de segurança, mas que pode ser utilizada indevidamente pelos atacantes para capturar hashes ou extrair informações confidenciais do disco.

Tabela de destino: AzureSubscriptionSensitiveOps

Pesquisa de consultas: 14 dias

Agenda: diariamente

Data de início: Data atual + 1 hora
Procura
Tendência de atividade diária por aplicação em AuditLogs
Nos últimos 14 dias, identifique qualquer operação de "Consentimento para a 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. O consentimento para a aplicação, a adição do principal de serviço e a adição de eventos Auth2PermissionGrant devem ser raros. Se disponível, o contexto adicional é adicionado a partir dos AuditLogs com base no CorrleationId da mesma conta que efetuou o "Consentimento para a aplicação".

Tabela de destino: AppAuditActivityBaseline

Pesquisa de consultas: 14 dias

Agenda: diariamente

Data de início: Data atual + 1 hora
Linha de base
Tendência de localização diária por utilizador ou aplicação em SignInLogs
Crie tendências diárias para todos os inícios de sessão dos utilizadores, a contagem de localizações e a respetiva utilização de aplicações.

Tabela de destino: UserAppSigninLocationBaseline

Pesquisa de consultas: 1 dia

Agenda: diariamente

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, incluindo bytes e elementos distintos para detetar beaconing e exfiltração.

Tabela de destino: NetworkTrafficDestinationIPDailyBaseline

Pesquisa de consultas: 1 dia

Agenda: diariamente

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

Tabela de destino: NetworkTrafficDestinationIPTrend

Pesquisa de consultas: 1 dia

Agenda: diariamente

Data de início: Data atual + 1 hora
Procura
Tendência diária de tráfego de rede por IP de origem
Crie uma linha de base, incluindo bytes e elementos distintos para detetar beaconing e exfiltração.

Tabela de destino: NetworkTrafficSourceIPDailyBaseline

Pesquisa de consultas: 1 dia

Agenda: diariamente

Data de início: Data atual + 1 hora
Linha de base
Tendência diária de 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 em relação à linha base diária do anfitrião para determinar se os comportamentos observados se desviam significativamente do padrão estabelecido.

Tabela de destino: NetworkTrafficSourceIPTrend

Pesquisa de consultas: 1 dia

Agenda: diariamente

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

Tabela de destino: UserAppSigninLocationDailyBaseline

Pesquisa de consultas: 1 dia

Agenda: diariamente

Data de início: Data atual + 1 hora
Linha de base
Tendência de execução diária de processos
Identifique novos processos e prevalência, facilitando as deteções de "novo processo raro".

Tabela de destino: EndpointProcessExecutionBaseline

Pesquisa de consultas: 1 dia

Agenda: diariamente

Data de início: Data atual + 1 hora
Linha de base
Entra ID de agente de utilizador raro por aplicação
Estabeleça uma linha de base do tipo userAgent (ou seja, browser, aplicação do office, etc.) que é normalmente utilizada para uma determinada aplicação ao olhar para trás durante alguns dias. Em seguida, procura no dia atual quaisquer desvios deste padrão, ou seja, tipos de UserAgents não vistos antes em combinação com esta aplicação.

Tabela de destino: UserAppRareUserAgentAnomalies

Pesquisa de consultas: 7 dias

Agenda: diariamente

Data de início: Data atual + 1 hora
Detecções de anomalia
Correspondência do COI do registo de rede
Identifique quaisquer indicadores IP de comprometimento (IOCs) de informações sobre ameaças (TI), ao procurar correspondências no CommonSecurityLog.

Tabela de destino: NetworkLogIOCMatches

Pesquisa de consultas: 1 hora

Agenda: hora a hora

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

Tabela de destino: EndpointNewProcessExecutions

Pesquisa de consultas: 14 dias

Agenda: diariamente

Data de início: Data atual + 1 hora
Procura
Operação de ficheiros do SharePoint através de IPs não vistos anteriormente
Identifique anomalias com o comportamento do utilizador ao definir um limiar para alterações significativas nas atividades de carregamento/transferência de ficheiros a partir de novos endereços IP. Estabelece uma linha de base de comportamento típico, compara-a com a atividade recente e sinaliza desvios que excedem um limiar predefinido de 25.

Tabela de destino: SharePointFileOpsNewIPs

Pesquisa de consultas: 14 dias

Agenda: diariamente

Data de início: Data atual + 1 hora
Procura
Palo Alto potencial rede beaconing
Identifique os padrões de beaconing dos registos de tráfego da Rede Palo Alto com base em padrões de diferença de tempo recorrentes. A consulta utiliza várias funções KQL para calcular diferenças de tempo e, em seguida, compara-as com o total de eventos observados num dia para encontrar a percentagem de beaconing.

Tabela de destino: PaloAltoNetworkBeaconingTrend

Pesquisa de consultas: 1 dia

Agenda: diariamente

Data de início: Data atual + 1 hora
Procura
Início de sessão suspeito do Windows fora do horário normal
Identifique eventos de início de sessão invulgares do Windows fora das horas normais de um utilizador ao comparar com a atividade de início de sessão dos últimos 14 dias, sinalizando anomalias com base em padrões históricos.

Tabela de destino: WindowsLoginOffHoursAnomalies

Pesquisa de consultas: 14 dias

Agenda: diariamente

Data de início: Data atual + 1 hora
Detecções de anomalia

Considerações e limitações

Quando criar tarefas no data lake Microsoft Sentinel, considere as seguintes limitações e melhores práticas:

Camada de dados

As tarefas KQL podem escrever dados na camada Analytics ou na camada data lake, consoante a camada da tabela de destino. Ao criar uma nova tabela através do assistente de criação de tarefas, pode selecionar tabelas de sistema como a área de trabalho de destino para escrever dados diretamente no data lake. As tabelas criadas desta forma são criadas e armazenadas diretamente na camada do data lake e são automaticamente sufixas com _KQL.

KQL

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

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

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

Tarefas

  • Os nomes das tarefas têm de ser exclusivos para o inquilino.
  • Os nomes das tarefas podem ter até 256 carateres.
  • Os nomes dos trabalhos não podem conter um # ou um -.
  • A hora de início da tarefa tem de ser, pelo menos, 30 minutos após a criação ou edição da tarefa.

Latência da ingestão do Data Lake

A camada do data lake armazena dados no armazenamento a frio. Ao contrário das camadas de análise frequente ou quase em tempo real, o armazenamento a frio é otimizado para retenção de longo prazo e eficiência de custos e não fornece acesso imediato aos dados recentemente ingeridos. Quando são adicionadas novas linhas a tabelas existentes no data lake ou em tabelas federadas, existe uma latência típica de até 15 minutos antes de os dados estarem disponíveis para consulta. Contabilize a latência da ingestão quando executa consultas e agenda tarefas KQL ao garantir que as janelas de pesquisa e os horários das tarefas 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 consultas ou tarefas KQL. Por exemplo, quando agenda tarefas automatizadas, defina a hora de fim da consulta como now() - delay, em que delay corresponde à latência de preparação de dados típica de 15 minutos. Esta abordagem garante que as consultas apenas visam dados totalmente ingeridos 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 tarefas com janelas de pesquisa curtas ou intervalos de execução frequentes.

Considere sobrepor-se ao período de procura com a frequência da tarefa para reduzir o risco de falta de dados atrasados.

Para obter mais informações, veja Lidar com o atraso da ingestão nas regras de análise agendada.

Nomes de colunas

Os nomes das colunas têm de começar com uma letra.

As seguintes colunas padrão não são suportadas para exportação. O processo de ingestão substitui estas colunas na camada de destino:

  • TenantId

  • _TimeReceived

  • Tipo

  • SourceSystem

  • _ResourceId

  • _SubscriptionId

  • _ItemId

  • _BilledSize

  • _IsBillable

  • _WorkspaceId

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

Para obter os limites de serviço, veja Microsoft Sentinel data lake service limits (Limites do serviço data lake).

Observação

Os resultados parciais poderão ser promovidos se a consulta da tarefa exceder o limite de uma hora.

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

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

Categoria Parâmetro/limite
Execução simultânea de trabalhos por inquilino 3
Tempo limite de execução da consulta da tarefa 1 hora
Tarefas por inquilino (tarefas ativadas) 100
Número de tabelas de saída por tarefa 1
Âmbito da consulta Várias áreas de trabalho
Intervalo de tempo da consulta Até 12 anos

Para obter sugestões de resolução de problemas e mensagens de erro, veja Resolução de problemas de consultas KQL para o Microsoft Sentinel data lake.