Rovati Tech Cloud – Infraestrutura e Segurança Azure

Criar instruções KQL para o Microsoft Azure Sentinel

O Microsoft Sentinel é uma poderosa plataforma de segurança da Microsoft que permite aos administradores de segurança monitorar, detectar e responder a ameaças em tempo real. Uma das principais características do Sentinel é a capacidade de criar consultas personalizadas para analisar dados de segurança e identificar potenciais problemas. Para isso, o Sentinel utiliza a Linguagem de Consulta Kusto (KQL), uma linguagem de consulta poderosa e flexível que permite aos usuários realizar análises avançadas de dados.

Neste artigo, exploraremos como criar consultas para o Microsoft Sentinel usando a Linguagem de Consulta Kusto. Abordaremos os conceitos básicos da KQL e forneceremos exemplos práticos de consultas que você pode usar para melhorar a segurança de sua organização.

O que é a Linguagem de Consulta Kusto (KQL)

A Linguagem de Consulta Kusto, também conhecida como KQL, é uma linguagem de consulta usada para consultar e analisar dados em tempo real em uma variedade de fontes de dados, incluindo logs de segurança, registros de eventos e muito mais. Ela foi desenvolvida pela Microsoft e é a linguagem padrão usada no Microsoft Sentinel e em outras ferramentas de análise de dados, como o Azure Data Explorer.

A KQL é semelhante a SQL em muitos aspectos, mas foi projetada especificamente para consultas de dados não estruturados ou semi-estruturados, o que a torna ideal para análises de segurança, onde os dados podem ser complexos e variados.

Compreender a estrutura da instrução de Kusto Query Language

Antes de mergulharmos em exemplos específicos de consultas, é importante entender a sintaxe básica da KQL. Aqui estão alguns conceitos-chave:

  • Tabelas: Os dados são organizados em tabelas, que são a unidade básica de armazenamento de dados.
  • Comandos: As consultas KQL são construídas usando comandos, como search, project, summarize, extend, entre outros.
  • Operadores: A KQL suporta uma variedade de operadores, como == (igual), != (diferente), > (maior que), < (menor que), and, or, entre outros.
  • Funções: A KQL oferece uma ampla gama de funções para realizar cálculos, formatação e manipulação de dados.
  • Cláusulas: As consultas KQL podem incluir várias cláusulas, como where, order by, top, entre outras, para filtrar, classificar e limitar os resultados.

Exemplos de Consultas KQL para o Microsoft Sentinel

Agora que você tem uma compreensão básica da sintaxe da KQL, vamos explorar alguns exemplos de consultas que podem ser úteis no Microsoft Sentinel:

Esta consulta busca por eventos de tentativas de falha de logon (EventID 4625) e exibe informações sobre a conta, o endereço IP e a razão da falha. Novamente, os resultados são ordenados por tempo e limitados aos 10 mais recentes.

Exemplo 1: Consulta de Registros de Logon com Sucesso

Esta consulta busca por eventos de logon com sucesso (EventID 4624) e exibe as informações relevantes, como o nome da conta, o endereço IP e o nome de usuário de destino. Os resultados são ordenados por tempo e limitados aos 10 mais recentes.

Esta consulta busca por eventos de tentativas de falha de logon (EventID 4625) e exibe informações sobre a conta, o endereço IP e a razão da falha. Novamente, os resultados são ordenados por tempo e limitados aos 10 mais recentes.

Exemplo 2: Consulta de Tentativas de Falha de logon

Esta consulta busca por eventos de tentativas de falha de logon (EventID 4625) e exibe informações sobre a conta, o endereço IP e a razão da falha. Novamente, os resultados são ordenados por tempo e limitados aos 10 mais recentes.

Exemplo 3: Consulta de Atividades Suspeitas

Esta consulta busca por eventos de logon (EventID 4624), tentativas de falha de logon (EventID 4625) e logon com privilégios elevados (EventID 4648). Ela cria uma coluna adicional chamada “SuspiciousActivity” para classificar a atividade como suspeita. Os resultados são novamente ordenados por tempo e limitados aos 10 mais recentes.

O que é o operador search

O operador search é uma das principais ferramentas disponíveis no Microsoft Sentinel para consultar e analisar dados de log de diferentes fontes. Ele permite que os analistas de segurança realizem consultas flexíveis e avançadas para encontrar informações relevantes nos dados de log e identificar atividades suspeitas ou ameaças em potencial.

Usando o operador search

A sintaxe básica para usar o operador search no Microsoft Sentinel é a seguinte:

Aqui estão algumas das maneiras pelas quais o operador search pode ser utilizado efetivamente:

Filtragem de eventos

Você pode usar o search para filtrar eventos específicos com base em critérios, como intervalo de tempo, tipos de eventos, origens ou qualquer outro campo relevante nos dados de log. Por exemplo, para encontrar todos os eventos de log relacionados a tentativas de login mal-sucedidas nas últimas 24 horas, você pode usar o seguinte comando:

Pesquisa de palavras-chave

O operador search também pode ser usado para pesquisar palavras-chave específicas nos dados de log. Isso é útil para identificar atividades suspeitas ou investigar incidentes com base em informações específicas. Por exemplo, para encontrar todos os registros de eventos que contenham a palavra “malware”, você pode usar o seguinte comando:

Agregação e análise de dados

Além da filtragem e pesquisa de palavras-chave, o operador search pode ser usado para agregar e analisar dados de log. Você pode calcular estatísticas, criar gráficos e gerar insights a partir dos dados usando funções de agregação. Por exemplo, para calcular o número total de tentativas de login bem-sucedidas nas últimas 24 horas, você pode usar o seguinte comando:

Encadeamento de consultas

Uma característica poderosa do operador search é a capacidade de encadear consultas para realizar análises complexas. Você pode criar consultas que filtram, agregam e analisam dados em várias etapas para obter informações mais detalhadas. Isso permite uma investigação aprofundada de ameaças e incidentes de segurança.

Usar o operador where

O operador “Where” é uma parte crucial da linguagem de consulta Kusto Query Language (KQL) usada no Microsoft Sentinel. Ele permite que você filtre e selecione os dados com base em condições específicas, tornando a análise de grandes conjuntos de dados de segurança mais eficiente e direcionada. Com o operador “Where”, você pode extrair informações relevantes de registros de eventos e alertas, identificar tendências, padrões e anomalias, e, o mais importante, detectar ameaças em potencial.

Sintaxe Básica do Operador “Where”

A sintaxe básica do operador “Where” no KQL é a seguinte:

  • Tabela: Especifica a tabela da qual você deseja selecionar os dados.
  • Condição: Define a expressão ou condição que os registros devem atender para serem incluídos no resultado da consulta.

Por exemplo, se você deseja selecionar todos os registros de eventos de login bem-sucedidos em uma tabela chamada “SecurityEvent”, a consulta ficaria assim:

Isso retornaria todos os registros da tabela “SecurityEvent” onde o campo “EventType” é igual a “LoginSuccess”.

Usos Comuns do Operador “Where” no Sentinel

O operador “Where” pode ser usado em uma variedade de cenários de segurança cibernética no Microsoft Sentinel:

1. Filtrar eventos por tipo

Você pode usar o operador “Where” para filtrar eventos com base em seu tipo, tornando mais fácil identificar atividades suspeitas. Por exemplo:

Isso selecionaria registros de eventos que se encaixam nas categorias de “FailedLogin” ou “MalwareDetection”.

2. Identificar padrões de comportamento

Com o operador “Where”, você pode procurar padrões de comportamento incomuns ou suspeitos. Por exemplo, você pode identificar picos de atividade em um determinado servidor:

Isso retornaria eventos do servidor “ServidorA” nas últimas 24 horas.

3. Detecção de ameaças

O operador “Where” também é essencial para a detecção de ameaças. Você pode criar condições que identifiquem atividades maliciosas, como tentativas de invasão ou acesso não autorizado:

Nesse exemplo, estamos procurando eventos de falha de logon com a mensagem “An Account Failed to Log On”.

Usar a instrução let

A instrução let é uma parte fundamental da linguagem de consulta do Microsoft Sentinel, conhecida como Kusto Query Language (KQL). Essa instrução é usada para atribuir um nome a um valor ou expressão, tornando mais fácil a referência a esse valor posteriormente na consulta. A instrução let é especialmente útil quando você está trabalhando com consultas complexas que envolvem várias etapas de transformação de dados.

A sintaxe básica da instrução let é a seguinte:

Aqui estão alguns exemplos de como a instrução let pode ser usada:

Benefícios da instrução ‘let’ no Microsoft Sentinel

A instrução let oferece vários benefícios ao trabalhar com consultas no Microsoft Sentinel:

1. Legibilidade aprimorada

Ao atribuir nomes significativos a valores ou expressões complexas, você torna suas consultas mais legíveis e compreensíveis. Isso facilita a colaboração com colegas de equipe e simplifica a manutenção de consultas no futuro.

2. Reutilização de código

Com a instrução let, você pode definir valores uma vez e reutilizá-los em várias partes da consulta. Isso evita a duplicação de código e economiza tempo e esforço.

3. Redução de erros

Quando você atribui um nome a um valor, é menos provável cometer erros de digitação ao se referir a esse valor posteriormente na consulta. Isso ajuda a evitar erros que poderiam afetar adversamente os resultados da análise de segurança.

4. Simplificação de consultas complexas

Em consultas que envolvem várias etapas de transformação de dados, a instrução let pode ser usada para quebrar a consulta em partes mais gerenciáveis e compreensíveis. Isso facilita a solução de problemas e o aprimoramento da eficácia das consultas.

Exemplo de uso da instrução ‘let’

Aqui está um exemplo simples de como a instrução let pode ser usada em uma consulta do Microsoft Sentinel:

Neste exemplo, utilizamos a instrução let para criar duas tabelas virtuais, eventosFalhos e eventosDeContaBloqueada, que contêm eventos de log específicos. Em seguida, combinamos essas tabelas usando a instrução union e realizamos uma análise com a instrução summarize. O uso da instrução let torna a consulta mais legível e divide o processo em etapas lógicas.

Usar o operador extend

O operador extend é uma funcionalidade essencial no Microsoft Sentinel que permite aos analistas de segurança personalizar os resultados das consultas. Ele permite que você crie campos adicionais com valores calculados, transforme dados e organize informações de maneira mais clara e significativa.

A sintaxe básica do operador extend é a seguinte:

  • NovoCampo é o nome do novo campo que você está criando.
  • Expressão é uma expressão ou cálculo que define o valor do novo campo.

Usando o operador extend para aprimorar consultas

Aqui estão algumas maneiras comuns de usar o operador extend para melhorar suas consultas no Microsoft Sentinel:

1. Renomeando campos

Você pode usar o extend para renomear campos existentes em seus resultados de consulta. Isso é útil quando você deseja tornar os resultados mais legíveis ou quando os nomes dos campos originais são muito longos.

2. Calculando valores adicionais

Você pode criar campos adicionais com valores calculados usando o extend. Isso é útil para realizar operações matemáticas ou lógicas em seus dados de segurança.

3. Formatando datas e horas

O extend também pode ser usado para formatar datas e horas de maneira mais legível.

4. Criando campos derivados

Às vezes, você pode precisar criar campos derivados com base em condições específicas. O extend é útil para isso, permitindo que você aplique lógica condicional aos seus resultados.

5. Concatenando campos

O extend também pode ser usado para combinar ou concatenar informações de diferentes campos em um único campo.

Usar o operador order by

O operador “ORDER BY” é usado em consultas KQL para classificar os resultados com base em uma ou mais colunas de dados. Isso é especialmente útil quando você deseja visualizar os dados de segurança em uma ordem específica para identificar padrões, tendências ou anomalias. O operador “ORDER BY” é comumente usado em conjunto com os operadores “SUMMARIZE” e “PROJECT” para refinar ainda mais os resultados da consulta.

Sintaxe básica do operador “ORDER BY”

A sintaxe básica do operador “ORDER BY” em uma consulta KQL é a seguinte:

  • <nome_da_coluna>: O nome da coluna pela qual você deseja ordenar os resultados.
  • [asc|desc]: A ordem de classificação, que pode ser “ascendente” (asc) ou “descendente” (desc). A ordem ascendente classifica os valores do menor para o maior, enquanto a ordem descendente faz o oposto.

Exemplos de uso do operador “ORDER BY”

Vamos explorar alguns exemplos práticos de como usar o operador “ORDER BY” no Microsoft Sentinel:

Exemplo 1: Classificar eventos por data e hora

Suponha que você queira classificar os eventos de segurança por data e hora para identificar atividades recentes. Você pode usar a seguinte consulta:

Neste exemplo, estamos classificando os eventos de segurança em ordem descendente com base na coluna “EventTime,” que contém a data e a hora do evento. Isso colocará os eventos mais recentes no topo da lista.

Exemplo 2: Classificar eventos por contagem

Você também pode usar o operador “ORDER BY” para classificar eventos com base em uma contagem específica. Por exemplo, se você deseja ver os eventos com maior ocorrência, pode fazer o seguinte:

Neste exemplo, primeiro usamos o operador “SUMMARIZE” para contar quantas vezes cada evento (identificado por “EventID”) ocorreu. Em seguida, usamos o “ORDER BY” para classificar os eventos com base na contagem em ordem descendente.

Usar os operadores project

Os operadores “project” são uma parte essencial da linguagem KQL e são usados para transformar os resultados de uma consulta, selecionando as colunas desejadas e até mesmo renomeando-as, se necessário. Os operadores “project” são úteis para filtrar dados não essenciais, criar novas colunas derivadas e simplificar a visualização de informações relevantes.

Existem dois operadores “project” principais que você pode usar no Microsoft Sentinel:

  1. Project: Este operador é usado para selecionar colunas específicas de uma tabela. Por exemplo, se você tem uma tabela de eventos de segurança com dezenas de colunas, mas só precisa das colunas “TimeStamp” e “EventName”, você pode usar o operador “project” para criar uma visualização que contenha apenas essas duas colunas.Exemplo:

Extend: Este operador é usado para criar novas colunas calculadas com base em colunas existentes. Isso é útil quando você precisa realizar cálculos ou manipulações nos dados de segurança. Por exemplo, você pode usar o operador “extend” para calcular a duração de um evento subtraindo a hora de início da hora de término.

Cenários de Uso dos Operadores “project”

Os operadores “project” são altamente versáteis e podem ser aplicados em vários cenários de segurança para melhorar a análise de dados. Aqui estão alguns exemplos:

Redução de Ruído: Em um ambiente de segurança, os registros podem conter muitas informações irrelevantes. Usar o operador “project” para selecionar apenas as colunas necessárias ajuda a reduzir o ruído e a concentrar-se nos dados mais importantes.

Agregação de Dados: Os operadores “project” podem ser usados para agregar e resumir dados de segurança. Por exemplo, você pode agrupar eventos por tipo e contar a ocorrência de cada tipo.

Análise de Comportamento de Usuário: Ao criar novas colunas com base em dados de usuário, como o número de vezes que um usuário fez logon em um determinado período, você pode detectar padrões de comportamento suspeitos.

Calculando Métricas de Desempenho: Os operadores “project” podem ser usados para calcular métricas de desempenho, como a duração média de um evento de segurança.

Conclusão

Criar instruções KQL (Kusto Query Language) para o Microsoft Azure Sentinel é uma habilidade valiosa para analisar e extrair insights significativos dos dados de segurança. Com o Azure Sentinel, os analistas têm acesso a uma plataforma robusta que permite a detecção e investigação de ameaças em tempo real. Ao dominar o KQL, os profissionais podem personalizar consultas para atender às necessidades específicas de sua organização, identificar padrões de comportamento suspeitos e responder proativamente a potenciais incidentes de segurança. Em última análise, a capacidade de criar instruções KQL eficazes não só fortalece a postura de segurança de uma organização, mas também capacita os profissionais a proteger ativamente os ativos digitais e garantir a integridade de suas operações.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima