Esta primeira apostila existe para organizar o vocabulário e o modelo mental da área. Em vez de olhar para técnicas soltas, a proposta aqui é aprender a ler rastro, contexto e hipótese investigativa.
Ela conversa diretamente com Detection.Wiki e serve como porta de entrada para o restante da série em Oficinas.
Objetivo
Detection engineering é o trabalho de transformar conhecimento sobre comportamento suspeito em consultas, regras, correlações, alertas e hipóteses de investigação.
O ponto central é simples:
você não está estudando só “ataques”; está estudando como eles deixam rastro.
O modelo mental correto
Quando você lê um caso, pare de perguntar apenas qual foi o payload. O raciocínio mais útil é:
- Qual foi a cadeia de execução?
- Quais processos filhos surgiram?
- Quais arquivos apareceram ou foram alterados?
- Que persistência foi criada?
- Houve conexão de rede depois?
- O que seria raro em um ambiente corporativo real?
- Que query detectaria isso com pouco ruído?
Fontes de telemetria que aparecem o tempo todo
MDE / Defender XDR
Algumas das tabelas mais úteis são:
DeviceProcessEventsDeviceFileEventsDeviceImageLoadEventsDeviceNetworkEventsDeviceRegistryEventsDeviceEvents
Elas ajudam porque já oferecem eventos normalizados de endpoint, bons para investigação e hunting.
Sysmon
Sysmon continua valioso para:
- criação de processo
- conexão de rede
- criação de arquivo
- image load
- alterações em registro
Eventos clássicos:
Event ID 1— Process CreateEvent ID 3— Network ConnectionEvent ID 7— Image LoadEvent ID 11— File CreateEvent ID 13/14— Registry
Windows Event Logs
Logs do próprio Windows e de providers específicos ajudam a completar o quadro:
- PowerShell
4104 - eventos de sistema
- eventos de provedores mais específicos
Camada de rede
Ferramentas como Zeek, Suricata e Corelight respondem perguntas que o endpoint sozinho não resolve:
- que domínio foi resolvido?
- houve acesso a blob storage?
- apareceu HTTP, TLS, DNS ou SNI relevante?
ASIM
ASIM é uma camada de normalização que reduz a dependência do fornecedor específico. Em vez de decorar vários schemas, você pode trabalhar com tabelas como:
_ASim_ProcessCreate_ASim_ProcessEvent_ASim_FileEvent_ASim_RegistryEvent_ASim_Dns_ASim_NetworkSession
O ganho é padronização. A perda potencial é esconder detalhes úteis do log bruto.
O que é KQL e por que ele importa
KQL é a linguagem de consulta usada no ecossistema Microsoft para trabalhar com dados em Defender, Sentinel, Azure Data Explorer e ambientes correlatos.
O essencial não é “escrever KQL bonito”, e sim saber formalizar uma hipótese. Na prática, você precisa dominar pelo menos:
whereprojectextendsummarizejoinletdistinctorder bybetweenhas,contains,startswith,endswith
Exemplo de raciocínio:
“quero encontrar todo
.scrfora deC:\\Windows\\que gerou processo filho”
A query é apenas a tradução disso.
Como ler um lab sem se perder
Quase todo lab útil tem esta estrutura:
- resumo
- preparação
- análise
- detecções
- mitigação
- referências
O erro mais comum é focar demais na preparação ofensiva. O que realmente interessa para estudo defensivo é:
- artefatos
- cadeia de processos
- mudanças persistentes
- sinais de rede
- detecções propostas
- qualidade e ruído das queries
Artefatos que devem sempre ser extraídos
Processo
- processo inicial
- processo pai
- processo filho
- linha de comando
- local do executável
- usuário
Arquivo
- nome
- hash
- pasta
- origem do download
- arquivo criado, modificado ou excluído
Registro
- chave
- valor
- processo que escreveu
- persistência criada
Rede
- IP
- porta
- domínio
- SNI
- duração
- bytes enviados e recebidos
Contexto
- isso é comum?
- faz sentido para aquele ambiente?
- veio de pasta gravável pelo usuário?
- dependeu de interação humana?
Tipos de comportamento presentes nesta trilha
O material desta série cai, em geral, nestes grupos:
- execução por interação do usuário
- proxy execution e LOLBins
- persistência
- defesa e evasão
- abuso de credencial, driver ou memória
Você vai ver isso se repetir quando avançar para ClickOnce, .pth, BYOVD e cadeias com Electron.
Como pensar em qualidade de detecção
Detecção boa equilibra:
- cobertura
- precisão
- contexto
- ruído
- custo operacional
Uma regra como “alertar em qualquer cmd.exe” é inútil. Já uma hipótese como “alertar quando um .scr fora de C:\\Windows\\ gerar cmd.exe, wscript.exe ou msiexec.exe” é muito mais defensável.
Baselining
Sem baseline, hunting vira adivinhação.
Algumas perguntas mínimas:
dfsvc.exeé raro ou comum no ambiente?- ClickOnce existe em larga escala?
- RMM é permitido?
- Azure Blob faz parte do fluxo normal?
Sem essas respostas, qualquer consulta corre o risco de gerar ruído demais ou contexto de menos.
Estrutura mínima de investigação
Use sempre este roteiro:
- encontrar o ponto de entrada
- expandir a árvore de processos
- mapear arquivos criados
- mapear persistência
- mapear rede
- testar a query de detecção
Glossário rápido
ClickOnce: mecanismo de implantação de aplicações .NETdfsvc.exe: deployment service do ClickOnceRMM: ferramenta legítima de gestão remota, mas abusável.scr: screen saver que, na prática, é executável PELOLBin: binário legítimo do sistema abusado para execução ou evasãoBYOVD: uso de driver vulnerável legítimo para ganhar vantagem.pth: arquivo do ecossistema Python que pode influenciar carregamento e execuçãoNTUSER.MAN: hive de perfil mandatório, útil como pivô de persistência
Método de estudo recomendado
Em vez de estudar por “nome bonito de técnica”, estude por artefato:
- semana 1: processo, árvore de processos e linha de comando
- semana 2: criação de arquivo, image load e locais suspeitos
- semana 3: registro, startup, serviços e persistência
- semana 4: DNS, HTTP/TLS, blob storage e relação entre processo e rede
- semana 5: correlação disso tudo em KQL
Exercícios
- Explique, com suas palavras, a diferença entre execução, persistência, comando e controle e evasão.
- Pegue um caso desta série e escreva o processo inicial, três artefatos em disco, uma hipótese de detecção e um possível falso positivo.
- Monte uma mini-query conceitual para detectar um
.scremDownloads,dfsvc.exevindo de navegador ou um.pthcriado emsite-packages.
Fechamento
Se esta base estiver clara, o restante da série fica muito mais legível: o nome da técnica muda, mas o raciocínio continua sendo rastro + contexto + hipótese + validação.
Continuidade
Próximo passo:
Referências e apoio: