Análise de Tráfego de Rede para Incidentes
Quando Usar
- Alertas de SIEM sobre padrões anômalos de tráfego de rede que exigem investigação mais aprofundada
- Suspeita de beaconing C2 que precisa de confirmação por meio de análise em nível de pacote
- Volume ou destino de exfiltração de dados precisa ser quantificado a partir de evidências de rede
- Movimentação lateral entre sistemas precisa ser rastreada por meio de conexões de rede
- Um alerta de IDS/IPS requer validação em nível de pacote para confirmar ou descartar
Não use para análise forense baseada em host (execução de processos, artefatos do sistema de arquivos); use ferramentas de forense de endpoint.
Pré-requisitos
- Infraestrutura de captura de pacotes completa (PCAP) ou capacidade de captura sob demanda (network tap, porta SPAN)
- Wireshark instalado na estação de análise com conhecimento de filtros de exibição apropriados
- Zeek (antigo Bro) implantado para geração de metadados de rede (conn.log, dns.log, http.log, ssl.log)
- Coleta de NetFlow/IPFIX de dispositivos de rede para análise de fluxo de tráfego
- Diagrama de arquitetura de rede mostrando layout de VLAN, posicionamento de firewall e pontos de monitoramento
- Feeds de inteligência contra ameaças para correlacionar indicadores de rede observados
Fluxo de Trabalho
Passo 1: Capturar ou Adquirir Tráfego de Rede
Obtenha os dados de tráfego relevantes para a investigação:
Captura ao Vivo (se o incidente estiver ativo):
# Capturar em interface específica filtrando por host
tcpdump -i eth0 -w capture.pcap host 10.1.5.42
# Capturar tráfego C2 para IP externo específico
tcpdump -i eth0 -w c2_traffic.pcap host 185.220.101.42
# Capturar com rotação (arquivos de 1GB, manter 10)
tcpdump -i eth0 -w capture_%Y%m%d%H%M.pcap -C 1000 -W 10
Da Infraestrutura Existente:
- Exportar PCAP do appliance de captura de pacotes completa (Arkime/Moloch, ExtraHop, Corelight)
- Extrair logs do Zeek do cluster Zeek para o período da investigação
- Exportar dados NetFlow de dispositivos de rede para análise de tráfego em alto nível
Passo 2: Identificar Comunicações C2
Detectar padrões de tráfego de comando e controle:
Detecção de Beaconing (Zeek conn.log):
# Extrair conexões para IPs externos com intervalos regulares
cat conn.log | zeek-cut ts id.orig_h id.resp_h id.resp_p duration orig_bytes resp_bytes \
| awk '$4 ~ /^185\.220/' | sort -t. -k1,1n -k2,2n
Análise de Beaconing no Wireshark:
# Filtrar tráfego para IP suspeito de C2
ip.addr == 185.220.101.42
# Filtrar tráfego HTTPS em portas não padrão
tcp.port != 443 && ssl
# Filtrar consultas DNS para domínios suspeitos
dns.qry.name contains "evil" or dns.qry.name matches "^[a-z0-9]{32}\."
# Filtrar HTTP POST (método comum de check-in C2)
http.request.method == "POST" && ip.dst == 185.220.101.42
Características de beaconing a identificar:
- Intervalos de tempo regulares entre conexões (ex.: a cada 60 segundos com 10-15% de jitter)
- Tamanhos de pacote consistentes nas requisições e respostas
- HTTPS para IPs externos não associados a CDNs ou serviços legítimos
- Consultas DNS com subdomínios de alta entropia (indicador de tunelamento DNS)
Passo 3: Analisar Tráfego de Movimentação Lateral
Rastrear movimento adversário entre sistemas internos:
Protocolos-chave para detecção de movimentação lateral:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SMB (TCP 445): PsExec, acesso a compartilhamentos, propagação de ransomware
RDP (TCP 3389): Sessões de área de trabalho remota
WinRM (TCP 5985): PowerShell remoto
WMI (TCP 135): Execução remota de comandos
SSH (TCP 22): Movimentação lateral em Linux
DCE/RPC (TCP 135): Movimentação lateral baseada em DCOM
Filtros Wireshark para Movimentação Lateral:
# Movimentação lateral SMB
smb2 && ip.src == 10.1.5.42 && ip.dst != 10.1.5.42
# Conexões RDP a partir do host comprometido
tcp.dstport == 3389 && ip.src == 10.1.5.42
# Requisições de ticket Kerberos (potencial pass-the-ticket)
kerberos.msg_type == 12 && ip.src == 10.1.5.42
# Autenticação NTLM (potencial pass-the-hash)
ntlmssp.auth.username && ip.src == 10.1.5.42
Passo 4: Detectar Exfiltração de Dados
Identificar transferências de dados não autorizadas saindo da rede:
# Identificar grandes transferências de saída no Zeek conn.log
cat conn.log | zeek-cut ts id.orig_h id.resp_h id.resp_p orig_bytes \
| awk '$5 > 100000000' | sort -t$'\t' -k5 -rn
# Detecção de tunelamento DNS (alto volume de consultas TXT)
cat dns.log | zeek-cut query qtype | grep TXT | cut -f1 \
| rev | cut -d. -f1,2 | rev | sort | uniq -c | sort -rn | head
# Uso de protocolo incomum (tunelamento ICMP, DNS over HTTPS)
cat conn.log | zeek-cut proto id.resp_p orig_bytes | awk '$1 == "icmp" && $3 > 1000'
Filtros Wireshark para Exfiltração:
# Grandes uploads HTTP POST
http.request.method == "POST" && tcp.len > 10000
# Transferências de dados FTP
ftp-data && ip.src == 10.0.0.0/8
# DNS com respostas TXT grandes (tunelamento)
dns.resp.type == 16 && dns.resp.len > 200
Passo 5: Extrair e Correlacionar IOCs
Extrair indicadores baseados em rede da análise de tráfego:
- Endereços IP externos contatados por hosts comprometidos
- Domínios resolvidos via DNS durante o período do incidente
- URLs acessadas via HTTP/HTTPS (se a inspeção SSL estiver em vigor)
- Detalhes do certificado TLS (subject, issuer, serial number, hashes JA3/JA3S)
- Strings User-Agent de requisições HTTP
- Transferências de arquivos capturadas no PCAP (extrair usando Exportar Objetos do Wireshark)
Passo 6: Documentar as Conclusões da Perícia de Rede
Compilar a análise em um relatório estruturado com referências de evidências:
- Referenciar arquivos PCAP específicos, números de quadro e timestamps para cada conclusão
- Incluir capturas de pacotes de evidências-chave como capturas de tela ou PDFs exportados
- Mapear a atividade de rede para a linha do tempo do incidente
- Correlacionar as conclusões de rede com evidências baseadas em host da perícia de endpoint
Conceitos-Chave
| Termo | Definição |
|---|---|
| PCAP (Packet Capture) | Formato de arquivo que armazena pacotes de rede brutos capturados de uma interface de rede para análise offline |
| Beaconing | Conexões de rede regulares e periódicas de um host comprometido a um servidor C2, identificáveis por intervalos de tempo consistentes |
| JA3/JA3S | Método de impressão digital de cliente e servidor TLS baseado nos parâmetros ClientHello e ServerHello; único por aplicativo |
| NetFlow/IPFIX | Metadados de tráfego de rede (origem, destino, portas, bytes, duração) coletados por roteadores e switches sem captura de pacotes completa |
| Tunelamento DNS | Técnica que codifica dados em consultas e respostas DNS para exfiltrar dados ou manter C2 através do protocolo DNS |
| Network Tap | Dispositivo de hardware que cria uma cópia exata do tráfego de rede para monitoramento sem impactar o desempenho da rede |
| Logs Zeek | Logs de metadados estruturados gerados pelo framework de análise de rede Zeek, abrangendo conexões, DNS, HTTP, SSL e mais |
Ferramentas e Sistemas
- Wireshark: Analisador de pacotes de código aberto para inspeção aprofundada de protocolos de rede em nível de pacote
- Zeek (antigo Bro): Framework de análise de rede que gera logs de metadados estruturados a partir de tráfego ao vivo ou capturado
- Arkime (antigo Moloch): Plataforma de código aberto para captura e busca de pacotes completos para perícia de rede em larga escala
- NetworkMiner: Ferramenta de análise forense de rede para extrair arquivos, imagens e credenciais de arquivos PCAP
- RITA (Real Intelligence Threat Analytics): Ferramenta de código aberto para detecção de beaconing e análise de tunelamento DNS em logs Zeek
Cenários Comuns
Cenário: Confirmando Beaconing C2 e Quantificando Exfiltração
Contexto: O EDR detecta um processo suspeito em uma estação de trabalho, mas não consegue determinar o volume de dados exfiltrados. A equipe de rede fornece PCAP do appliance de captura de pacotes completa cobrindo o período do incidente.
Abordagem:
- Filtrar o PCAP para tráfego do IP do host comprometido para destinos externos
- Identificar o canal C2 analisando padrões de temporização de conexão (detecção de beaconing)
- Extrair certificado TLS e hash JA3 da conexão C2 para geração de IOC
- Calcular o total de bytes transferidos para a infraestrutura C2 durante a duração do incidente
- Verificar a existência de canais de exfiltração adicionais (tunelamento DNS, uploads para armazenamento em nuvem)
- Extrair quaisquer arquivos não criptografados transferidos usando o recurso Exportar Objetos do Wireshark
Armadilhas:
- Analisar apenas tráfego HTTP quando o C2 está operando sobre HTTPS sem inspeção SSL
- Perder o tunelamento DNS porque o volume de dados por consulta é pequeno (mas o total ao longo do tempo é significativo)
- Não correlacionar timestamps de rede com timestamps de endpoint (incompatibilidades de fuso horário)
- Ignorar serviços legítimos de nuvem abusados para exfiltração (OneDrive, Google Drive, Dropbox)
Formato de Saída
RELATÓRIO DE ANÁLISE DE TRÁFEGO DE REDE
=========================================
Incidente: INC-2025-1547
Analista: [Nome]
Fonte da Captura: Captura de pacotes completa Arkime
Período de Análise: 2025-11-15 14:00 UTC - 2025-11-15 18:00 UTC
Tamanho Total do PCAP: 4,7 GB
COMUNICAÇÕES C2
Origem: 10.1.5.42 (WKSTN-042)
Destino: 185.220.101.42:443 (HTTPS)
Intervalo de Beaconing: 60 segundos ± 12% de jitter
Sessões: 237 conexões em 4 horas
Hash JA3: a0e9f5d64349fb13191bc781f81f42e1
Certificado TLS: CN=update.evil[.]com (autoassinado)
Total de Dados Enviados: 147 MB (saída)
Total de Dados Recebidos: 2,3 MB (entrada - comandos)
MOVIMENTAÇÃO LATERAL
10.1.5.42 → 10.1.10.15 (SMB, TCP 445) - 14:35 UTC
10.1.5.42 → 10.1.10.20 (RDP, TCP 3389) - 14:42 UTC
10.1.5.42 → 10.1.1.5 (LDAP, TCP 389) - 15:10 UTC
RESUMO DA EXFILTRAÇÃO
Protocolo: HTTPS para servidor C2
Volume: 147 MB saída
Duração: 14:23 UTC - 18:00 UTC
Arquivos Extraídos: [listar se recuperável de canais não criptografados]
ANÁLISE DNS
Consultas Suspeitas: 0 indicadores de tunelamento DNS
Detecção DGA: 0 domínios gerados algoritmicamente
REFERÊNCIAS DE EVIDÊNCIAS
Arquivo PCAP: INC-2025-1547_capture.pcap (SHA-256: ...)
Logs Zeek: /logs/zeek/2025-11-15/ (conn.log, ssl.log, dns.log)