Conhecer a linguagem de consulta de busca avançada

A caça avançada baseia-se na linguagem de consulta Kusto. Pode utilizar operadores e instruções Kusto para construir consultas que localizem informações num esquema especializado.

Veja este breve vídeo para aprender algumas noções básicas úteis da linguagem de consulta Kusto.

Para entender melhor esses conceitos, execute a primeira consulta.

Experimente a primeira consulta

No portal Microsoft Defender, aceda a Investigação para executar a 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

Executar esta consulta na investigação avançada

Foi adicionado um breve comentário 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

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

union DeviceProcessEvents, DeviceNetworkEvents

Definir o intervalo de tempo

O primeiro elemento piped é um filtro de tempo no âmbito dos 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 hora do Kusto estão em UTC, independentemente do fuso horário que especificou nas suas definições.

Verificar processos específicos

O intervalo de tempo é imediatamente seguido por uma pesquisa de nomes de ficheiros de processo que representam a aplicação do 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 em linhas de comandos que são normalmente utilizadas para transferir ficheiros com o PowerShell.

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

Personalizar colunas de resultados e comprimento

Agora que a consulta identifique claramente os dados que você deseja localizar, você pode definir a aparência dos resultados. project devolve colunas específicas e top limita o número de resultados. Estes operadores ajudam a garantir que os resultados são 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

Pode ver os resultados da consulta como gráficos e ajustar rapidamente os filtros. Para obter orientações, leia sobre como trabalhar com os resultados da consulta

Aprender operadores de consulta comuns

Acabou de executar a sua primeira consulta e ter uma ideia geral dos respetivos componentes. Está na altura de recuar 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. Veja Associar tabelas 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 investigação avançada suporta 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. Ver formatos datetime suportados
string Cadeia de caracteres em UTF-8 entre aspas simples () ou 'aspas duplas ("). Ler mais sobre cadeias de carateres
bool Esse tipo de dados dá suporte aos estaods trueou false. Ver literais e operadores suportados
int Inteiro de 32 bits
long Inteiro de 64 bits

Para saber mais sobre estes tipos de dados, leia sobre os tipos de dados escalares do Kusto.

Obter ajuda durante a criação de consultas

Aproveite as funcionalidades a seguir para escrever rapidamente as consultas:

  • Sugestão automática – à medida que escreve consultas, a investigação avançada fornece sugestões do IntelliSense.
  • Árvore de esquema – uma representação de esquema que inclui a lista de tabelas e respetivas colunas é fornecida junto à á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 tabelas e colunas, bem como tipos de eventos suportados (ActionType valores) e consultas de exemplo

Trabalhar com várias consultas no editor

Pode utilizar o editor de consultas para experimentar várias consultas. Para utilizar 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 a executar. Esta ação executará apenas a consulta selecionada. Para executar outra consulta, mova o cursor em conformidade e selecione Executar consulta.

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

    Para uma área de trabalho mais eficiente, também pode utilizar vários separadores na mesma página de investigação. Selecione Nova consulta para abrir um separador para a nova consulta.

    Abrir um novo separador ao selecionar Criar novo na investigação avançada no portal do Microsoft Defender

    Em seguida, pode executar consultas diferentes sem nunca abrir um novo separador do browser.

    Executar consultas diferentes sem sair da página de investigação avançada no portal do Microsoft Defender

Observação

Utilizar vários separadores do browser com investigação avançada pode fazer com que perca as consultas não guardadas. Para impedir que isto aconteça, utilize a funcionalidade de separador na investigação avançada em vez de separadores do browser separados.

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 secção **Introdução** na página **Investigação 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 partilhadas no lado esquerdo da página ou o repositório de consultas 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 poderão não estar disponíveis no Microsoft Defender para Ponto de Extremidade. Ative Microsoft Defender XDR para procurar ameaças através de mais origens de dados. Pode mover os fluxos de trabalho de investigação avançados de Microsoft Defender para Ponto de Extremidade para Microsoft Defender XDR ao seguir os passos em Migrar consultas de investigação avançadas de Microsoft Defender para Ponto de Extremidade.

Dica

Você deseja aprender mais? Participe da comunidade de Segurança da Microsoft em nossa Tech Community: Tech Community do Microsoft Defender XDR.