詳細検索

3 modelos KQL que podem ser usados com o Microsoft Sentinel! Dicas para acelerar investigações de incidentes

Avatar
por 西田
4 min de leitura

3 modelos KQL que podem ser usados com o Microsoft Sentinel! Dicas para acelerar investigações de incidentes
Traduzido do 日本語 • Ver original
西田
西田

Olá, aqui é o Nishida da Colorkrew Security. Essa é uma preocupação comum que ouço na área de resposta a incidentes.

 

"Recebi um alerta, mas não sei por onde começar."
"Eu consigo escrever KQL, mas é difícil escrever do zero toda vez."
"Demora demais durante a investigação, e a ação inicial é atrasada."

KQL (Kusto Query Language) é uma linguagem para examinar logs dos produtos Microsoft Sentinel e Defender.
Se você conseguir usá-lo bem, a velocidade inicial vai mudar drasticamente.
Desta vez, vamos apresentar os "três modelos para acertar primeiro" que são realmente usados em campo.

1. Por que os modelos são importantes

Resposta a incidentes é uma corrida contra o tempo.
Se você pensar em "qual tabela olhar" e "quais itens filtrar" toda vez, o tempo importante da ação inicial vai derreter.

Se você preparar o modelo com antecedência:

  • Redução do horário de início da pesquisa
  • Redução de levantamentos perdidos
  • Mesmo membros juniores podem conduzir um certo nível de pesquisa.

2. Modelo (1): Investigação a partir do Ponto de Entrada

É um modelo que desenvolve as ações antes e depois com base em logins suspeitos.

KQL

Histórico de login mais recente do usuário Target
SigninLogs
| onde TimeGenerated > atrás(7d)
| onde UserPrincipalName == "target@example.com" 
| projeto TimeGenerated, NomePrincipalUsuário, IPAddress, Localização, NomeDisplayAplicativo, 
          ConditionalAccessStatus, RiskLevelDuringSignIn, ResultType
| ordem por timeGenerated desc

Aqui estão alguns pontos para verificar:

  • IPAddress: É acessado de um país/região diferente do habitual?
  • RiskLevelDuringLogIn: A IA da Microsoft está determinando risco?
  • ConditionalAccessStatus: Você está pulando o acesso condicional?
  • ResultadoTipo: Sucesso (0) ou fracasso (50126, etc.)?

Se você encontrar um login suspeito, verifique se há tentativas desse IP para outras contas também.

KQL

Tentativas de login para múltiplos usuários a partir do mesmo IP
SigninLogs
| onde TimeGenerated > atrás(24h)
| onde IPAddress == "suspicious.ip.here" 
| resume count(), make_set(UserPrincipalName) por IPAddress

3. Modelo (2): Investigação a partir do Ponto Terminal

Quando um comportamento suspeito é detectado em um endpoint, ele é um modelo que captura a imagem geral do terminal.

KQL

Histórico mais recente de lançamento de processos do dispositivo Target
DeviceProcessEvents
| onde TimeGenerated > atrás(24h)
| onde Nomedo do Dispositivo == "nome-de-dispositivo-alvo" 
| projeto TimeGenerated, NomeDeDispositivo, IniciaçãoNomeProcessoFicheiro, 
          NomeDeArquivo, LinhaDe ComandoProcesso, Nomeda da Conta
| ordem por timeGenerated desc

Além disso, verifique sua conexão de rede.

KQL

Histórico de comunicação externa do dispositivo alvo
DeviceNetworkEvents
| onde TimeGenerated > atrás(24h)
| onde Nomedo do Dispositivo == "nome-de-dispositivo-alvo" 
| onde RemoteIPType != "Privado" 
| projeto TimeGenerated, DeviceName, RemoteIP, RemoteUrl, RemotePort, 
          IniciandoNomeDeProcessoArquivo, Tipo de Ação
| ordem por timeGenerated desc

Pontos de confirmação:

  • Execução suspeita de comandos no ProcessCommandLine:p owershell, cmd, wscript, etc.
  • RemoteUrl: Comunicar com domínios C2 conhecidos e IPs suspeitos
  • IniciandoNomeProcessoFicheiro: Arquivo executável disfarçado de processo legítimo

4. Modelo (3): Investigação de Início de E-mail

Este modelo é usado para investigar e-mails de phishing e anexos maliciosos.

KQL

Histórico de recebimento de e-mails de um domínio específico
E-mailEventos
| onde TimeGenerated > atrás(7d)
| onde SenderFromDomain == "suspicious-domain.com" 
| projeto TimeGenerated, RemetenteDeDeEndereço, DestinatárioEmailEndereço, 
          Sujeito, AmeaçaTipos, AçãoDeEntrega, Local de Entrega
| ordem por timeGenerated desc

Também verifica se o usuário que recebeu o e-mail abriu o anexo.

KQL

Atividade do dispositivo após receber um e-mail (rastreamento após clicar)
EmailUrlInfo
| onde TimeGenerated > atrás(7d)
| join kind=inner ( 
    DeviceProcessEvents
    | onde TimeGenerated > atrás(7d)
) em $left. URL == $right. ProcessCommandLine
| projeto TimeGenerated, URL, NomeDeDispositivo, NomeDeArquivo, NomeConta

5. Como Compartilhar e Gerenciar Modelos com Sua Equipe

É realista gerenciar templates KQL como "Consultas Salvas" no Sentinel ou como arquivos Markdown em repositórios Git.

Métodos recomendados de manejo:

  • Criar um repositório de coleta de consultas KQL no GitHub
  • Dividir pastas por tipo de incidente (phishing/comprometimento de conta/etc.)
  • Deixe um comentário sobre se ela foi eficaz após o uso e continue a melhorá-la.

6. Aproximação da Segurança da Colorkrew

A Colorkrew Security oferece suporte para o desenvolvimento de modelos de levantamento KQL e sua integração na equipe.

A **velocidade da resposta inicial determina a magnitude do dano. **
Desde a manutenção dos modelos até a padronização dos procedimentos de levantamento, tornaremos isso utilizável em campo.

Related Articles