Conhecer a linguagem de consulta de busca avançada

Aplica-se a:

  • Microsoft Defender XDR

A caça avançada baseia-se na linguagem de consulta Kusto. Você pode usar operadores e instruções kusto para construir consultas que localizam informações em um esquema especializado.

Assista a este pequeno vídeo para aprender alguns conceitos básicos da linguagem de consulta kusto útil.

Para entender melhor esses conceitos, execute a primeira consulta.

Experimente a primeira consulta

No portal Microsoft Defender, acesse Caçar para executar sua primeira consulta. Use o seguinte exemplo:

// Finds PowerShell execution events that could involve a download
union DeviceProcessEvents, DeviceNetworkEvents
| where Timestamp > ago(7d)
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
 "DownloadFile",
 "DownloadData",
 "DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp

Execute essa consulta na caça avançada

Um breve comentário foi adicionado ao início da consulta para descrever para que serve. Esse comentário ajuda se você decidir salvar a consulta mais tarde e compartilhá-la com outras pessoas em sua organização.

// Finds PowerShell execution events that could involve a download

A consulta em si normalmente começa com um nome de tabela seguido por vários elementos que começam com um pipe (|). Neste exemplo, começamos criando uma união de duas tabelas DeviceProcessEvents e DeviceNetworkEvents, e adicionamos elementos encanados conforme necessário.

union DeviceProcessEvents, DeviceNetworkEvents

Definir o intervalo de tempo

O primeiro elemento encanado é um filtro de tempo com escopo para os sete dias anteriores. Limitar o intervalo de tempo ajuda a garantir que as consultas tenham um bom desempenho, retornem resultados gerenciáveis e não expirem.

| where Timestamp > ago(7d)

Observação

Os filtros de tempo kusto estão em UTC independentemente do fuso horário especificado em suas configurações.

Verificar processos específicos

O intervalo de tempo é imediatamente seguido por uma pesquisa por nomes de arquivo de processo que representam o aplicativo PowerShell.

// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")

Pesquisar cadeias de caracteres de comando específicas

Posteriormente, a consulta procura cadeias de caracteres em linhas de comando que normalmente são usadas para baixar arquivos usando o PowerShell.

// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
    "DownloadFile",
    "DownloadData",
    "DownloadString",
    "WebRequest",
    "Shellcode",
    "http",
    "https")

Personalizar colunas de resultado e comprimento

Agora que a consulta identifique claramente os dados que você deseja localizar, você pode definir a aparência dos resultados. project retorna colunas específicas e top limita o número de resultados. Esses operadores ajudam a garantir que os resultados sejam bem formatados e razoavelmente grandes e fáceis de processar.

| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp

Selecione Executar consulta para ver os resultados.

Dica

Você pode exibir os resultados da consulta como gráficos e ajustar rapidamente os filtros. Para obter diretrizes, leia sobre como trabalhar com os resultados da consulta

Aprender operadores de consulta comuns

Você acabou de executar sua primeira consulta e tem uma ideia geral de seus componentes. É hora de retroceder um pouco e aprender algumas noções básicas. A linguagem de consulta Kusto usada por caça avançada oferece suporte a vários operadores, incluindo os seguintes.

Operador Descrição e uso
where Filtre uma tabela no subconjunto de linhas que atendem a um predicado.
summarize Produza uma tabela que agrega o conteúdo da tabela de entrada.
join Mescle as linhas de duas tabelas para formar uma nova tabela, correspondendo valores das colunas especificadas de cada tabela. Assista a tabelas de junção no KQL para saber como.
count Retorne o número de registros no conjunto de registros de entrada.
top Retorne os primeiros registros N classificados pelas colunas especificadas.
limit Retornar para o número especificado de linhas.
project Selecione as colunas a serem incluídas, renomear ou descartar e inserir novas colunas computadas.
extend Crie colunas calculadas e as acrescente ao conjunto de resultados.
makeset Retornar uma matriz dinâmica (JSON) do conjunto de valores distintos que Expr assume no grupo.
find Localizar linhas que correspondam a um predicado em um conjunto de tabelas.

Para ver um exemplo instantâneo desses operadores, execute-os na seção começar, na caça avançada.

Compreender os tipos de dados

A caça avançada dá suporte a tipos de dados Kusto, incluindo os seguintes tipos comuns:

Tipo de dados Implicações de descrição e de consulta
datetime As informações de dados e hora geralmente representam os carimbos de data/hora. Consulte formatos de datetime com suporte
string Cadeia de caracteres em UTF-8 entre aspas simples () ou 'aspas duplas ("). Leia mais sobre cadeias de caracteres
bool Esse tipo de dados dá suporte aos estaods trueou false. Consulte literais e operadores com suporte
int Inteiro de 32 bits
long Inteiro de 64 bits

Para saber mais sobre esses tipos de dados, leia sobre os tipos de dados escalar kusto.

Obter ajuda durante a criação de consultas

Aproveite as funcionalidades a seguir para escrever rapidamente as consultas:

  • Autosuggest — à medida que você grava consultas, a caça avançada fornece sugestões do IntelliSense.
  • Árvore de esquema – uma representação de esquema que inclui a lista de tabelas e suas colunas é fornecida ao lado da área de trabalho. Para saber mais, passe o mouse sobre um item. Clique duas vezes em um item para inseri-lo no editor de consultas.
  • Referência de esquema – referência no portal com descrições de tabela e coluna, bem como tipos de evento com suporte (ActionType valores) e consultas de exemplo

Trabalhar com várias consultas no editor

Você pode usar o editor de consultas para experimentar várias consultas. Para usar várias consultas:

  • Separe cada consulta com uma linha vazia.
  • Coloque o cursor em qualquer parte de uma consulta para selecionar essa consulta antes de executá-la. Isso executará apenas a consulta selecionada. Para executar outra consulta, mova o cursor de acordo e selecione Executar consulta.

Um exemplo de execução de várias consultas na página **Nova consulta** no portal Microsoft Defender

Para um workspace mais eficiente, você também pode usar várias guias na mesma página de caça. Selecione Nova consulta para abrir uma guia para sua nova consulta.

Abrindo uma nova guia selecionando Create novo na caça avançada no portal Microsoft Defender

Em seguida, você pode executar consultas diferentes sem nunca abrir uma nova guia do navegador.

Execute consultas diferentes sem nunca sair da página de caça avançada no portal do Microsoft Defender

Observação

O uso de várias guias de navegador com a caça avançada pode fazer com que você perca suas consultas não salvas. Para evitar que isso aconteça, use o recurso de guia na caça avançada em vez de guias separadas do navegador.

Use consultas de amostra

A seção introdução fornece algumas consultas simples usando operadores usados com frequência. Tente executar essas consultas e faça pequenas modificações nelas.

A seção **Introdução** na página **Caça avançada** no portal do Microsoft Defender

Observação

Além das amostras básicas de consulta, você também pode acessar consultas compartilhadas para cenários específicos de busca de ameaças. Explore as consultas compartilhadas no lado esquerdo da página ou no repositório de consulta do GitHub.

Documentação da linguagem de consulta do Access

Para obter mais informações sobre a linguagem de consulta Kusto e os operadores com suporte, confira documentação da linguagem de consulta do Kusto.

Observação

Algumas tabelas neste artigo podem não estar disponíveis no Microsoft Defender para Ponto de Extremidade. Ative Microsoft Defender XDR para procurar ameaças usando mais fontes de dados. Você pode mover seus fluxos de trabalho avançados de caça de Microsoft Defender para Ponto de Extremidade para Microsoft Defender XDR seguindo as etapas em Migrar consultas avançadas de caça Microsoft Defender para Ponto de Extremidade.

Dica

Você deseja aprender mais? Engage com a comunidade de Segurança da Microsoft em nossa Comunidade Tecnológica: Microsoft Defender XDR Tech Community.