Aprender a linguagem de consulta de investigação avançada
A investigação 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 compreender melhor estes conceitos, execute a sua primeira consulta.
Experimente a sua primeira consulta
No portal Microsoft Defender, aceda a Investigação para executar a sua primeira consulta. Utilize 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
Descreva a consulta e especifique as tabelas a procurar
Foi adicionado um breve comentário ao início da consulta para descrever para que serve. Este comentário ajuda se mais tarde decidir guardar a consulta e partilhá-la com outras pessoas na 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 têm um bom desempenho, devolvem resultados geríveis e não excedem o tempo limite.
| where Timestamp > ago(7d)
Nota
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")
Procurar cadeias de comandos 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 identifica claramente os dados que pretende localizar, pode definir o aspeto 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.
Sugestão
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 utilizada pela investigação avançada suporta vários operadores, incluindo os seguintes.
Operador | Descrição e utilização |
---|---|
where |
Filtre uma tabela para o subconjunto de linhas que satisfazem um predicado. |
summarize |
Produzir uma tabela que agrega o conteúdo da tabela de entrada. |
join |
Intercale as linhas de duas tabelas para formar uma nova tabela ao corresponder os valores das colunas especificadas de cada tabela. Veja Associar tabelas no KQL para saber como. |
count |
Devolver o número de registos no conjunto de registos de entrada. |
top |
Devolver os primeiros N registos ordenados pelas colunas especificadas. |
limit |
Volte ao número especificado de linhas. |
project |
Selecione as colunas a incluir, mudar o nome ou largar e inserir novas colunas calculadas. |
extend |
Crie colunas calculadas e acrescente-as ao conjunto de resultados. |
makeset |
Devolver uma matriz dinâmica (JSON) do conjunto de valores distintos que Expr recebe no grupo. |
find |
Localize linhas que correspondam a um predicado num conjunto de tabelas. |
Para ver um exemplo dinâmico destes operadores, execute-os na secção Introdução na investigação 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 | Descrição e implicações da consulta |
---|---|
datetime |
Normalmente, as informações de dados e hora representam carimbos de data/hora de eventos. Ver formatos datetime suportados |
string |
Cadeia de carateres em UTF-8 entre plicas (' ) ou aspas duplas (" ).
Ler mais sobre cadeias de carateres |
bool |
Este tipo de dados suporta true ou false estados.
Ver literais e operadores suportados |
int |
Número inteiro de 32 bits |
long |
Número inteiro de 64 bits |
Para saber mais sobre estes tipos de dados, leia sobre os tipos de dados escalares do Kusto.
Obter ajuda à medida que escreve consultas
Tire partido das seguintes funcionalidades para escrever consultas mais rapidamente:
- 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 obter mais informações, paire o cursor sobre um item. Faça duplo clique num 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.
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.
Em seguida, pode executar consultas diferentes sem nunca abrir um novo separador do browser.
Nota
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.
Utilizar consultas de exemplo
A secção Introdução fornece algumas consultas simples com operadores utilizados frequentemente. Experimente executar estas consultas e fazer pequenas modificações às mesmas.
Nota
Para além dos exemplos de consulta básicos, também pode aceder a consultas partilhadas para cenários específicos de investigação 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 suportados, veja a documentação da linguagem de consulta Kusto.
Nota
Algumas tabelas neste artigo poderão não estar disponíveis no Microsoft Defender para Endpoint. 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 Endpoint para Microsoft Defender XDR ao seguir os passos em Migrar consultas de investigação avançadas de Microsoft Defender para Endpoint.
Tópicos relacionados
- Descrição geral da investigação avançada
- Trabalhar com resultados de consulta
- Utilizar consultas partilhadas
- Procurar entre dispositivos, e-mails, aplicações e identidades
- Compreender o esquema
- Aplicar melhores práticas de consulta
Sugestão
Quer saber mais? Interaja com a comunidade do Microsoft Security na nossa Tech Community: Microsoft Defender XDR Tech Community.