quot; | stats count by domain, subdomain, src_ip | where count > 3 | sort -count ``` ### Query Splunk - Alto Volume de Queries para Domínio (Beaconing) ```spl index=dns message_type="QUERY" | rex field=query "(?P<domain>[^\.]+\.[^\.]+)quot; | stats count dc(query) AS unique_queries by domain, src_ip | where count > 100 AND unique_queries > 20 | sort -count ``` ### Query KQL - Sentinel - DNS Anomaly (Long Subdomain) ```kql DnsEvents | where QueryType == "A" or QueryType == "AAAA" or QueryType == "TXT" | extend QueryLength = strlen(Name) | where QueryLength > 50 | extend SubdomainPart = extract("^(.+)\\.\\w+\\.\\w+quot;, 1, Name) | where strlen(SubdomainPart) > 30 | summarize Count = count(), Sources = make_set(ClientIP) by Name | order by Count desc ``` ### Zeek - Script para Detectar DNS Tunneling ```zeek @load base/protocols/dns event dns_request(c: connection, msg: dns_msg, query: string, qtype: count, qclass: count) { if ( strlen(query) > 50 ) { print fmt("Possible DNS tunnel - long query: %s from %s", query, c$id$orig_h); NOTICE([$note=DNS::Tunnel_Candidaté, $conn=c, $msg=fmt("Long DNS query: %s (%d chars)", query, strlen(query))]); } } ``` --- ## Hipótese 4 - Compressão + Staging + Transferência **Hipótese:** Um atacante está coletando, comprimindo e preparando dados para exfiltração — padrão característico de operações APT e ransomware pré-criptografia. **Padrão típico:** 1. `dir /s /b *.docx > file_list.txt` - inventário de arquivos 2. `7za.exe a -p<senha> archive.7z C:\Users\target\Documents\` - compressão com senha 3. Transferência do arquivo comprimido via HTTP/FTP/cloud para C2 ### Query Splunk - Compressão Seguida de Transferência ```spl index=sysmon EventCode=1 Image IN ("*\\7za.exe", "*\\7z.exe", "*\\rar.exe", "*\\winrar.exe") CommandLine="*-p*" | stats count by Computer, User, CommandLine, _time | sort -_time ``` ### Query Splunk - Arquivo Comprimido Criado + Acesso de Rede Subsequente (Correlação) ```spl index=sysmon EventCode=11 TargetFilename IN ("*.7z", "*.rar", "*.zip", "*.gz", "*.tar") | join type=left Computer [ search index=sysmon EventCode=3 dest_ip!=10.0.0.0/8 dest_ip!=192.168.0.0/16 | stats count by Computer, dest_ip, _time ] | where count > 0 | table _time, Computer, User, TargetFilename, dest_ip ``` ### Query KQL - Sentinel - Compressão + Upload (Correlação Temporal) ```kql let compressions = DeviceFileEvents | where ActionType == "FileCreated" | where FileName endswith ".7z" or FileName endswith ".rar" or FileName endswith ".zip" | project DeviceName, FileName, Timestamp; let network = DeviceNetworkEvents | where RemoteIPType == "Public" | where SentBytes > 1048576 | project DeviceName, RemoteIP, SentBytes, NetworkTimestamp = Timestamp; compressions | join kind=inner network on DeviceName | where NetworkTimestamp between (Timestamp .. (Timestamp + 30m)) | project DeviceName, FileName, RemoteIP, SentBytes, Timestamp | order by Timestamp desc ``` --- ## Hipótese 5 - Exfiltração via E-mail **Hipótese:** Um atacante está usando regras de encaminhamento de e-mail ou e-mails massivos com anexos para exfiltrar dados do ambiente. **Padrões APT29 conhecidos:** - Exchange transport rules adicionadas para encaminhar todos os e-mails de contas VIP - Inbox rules para auto-forward para endereço externo controlado pelo atacante - Exfiltração de arquivos `.pst` do Exchange via WebDAV ou OAB ### Query KQL - Sentinel - Regras de Encaminhamento Criadas ```kql OfficeActivity | where Operation in ("New-InboxRule", "Set-InboxRule") | where Parameters has "ForwardTo" or Parameters has "RedirectTo" | project TimeGenerated, UserId, Parameters, ClientIP | order by TimeGenerated desc ``` ### Query KQL - Sentinel - Mass Download do SharePoint/OneDrive ```kql OfficeActivity | where Operation == "FileDownloaded" | summarize DownloadCount = count(), Files = make_set(SourceFileName) by UserId, ClientIP, bin(TimeGenerated, 1h) | where DownloadCount > 50 | order by DownloadCount desc ``` --- ## Gantt de Hunting de Exfiltração ```mermaid gantt title Ciclo de Hunting de Exfiltração (Semanal) dateFormat YYYY-MM-DD section Segunda Baseline de volume de rede :2026-03-23, 1d Hipótese 1 — volumétrico :2026-03-23, 1d section Terça Hipótese 2 — cloud storage não autorizado :2026-03-24, 1d Revisar logs de proxy da semana anterior :2026-03-24, 1d section Quarta Hipótese 3 — DNS tunneling :2026-03-25, 1d Análise de Zeek DNS logs :2026-03-25, 1d section Quinta Hipótese 4 — staging e compressão :2026-03-26, 1d Hipótese 5 — exfiltração via e-mail :2026-03-26, 1d section Sexta Correlação de achados :2026-03-27, 1d Relatório de hunting :2026-03-27, 1d ``` --- ## Checklist de Hunting ### Preparação - [ ] Confirmar disponibilidade de logs de NetFlow/IPFIX (mínimo 30 dias) - [ ] Confirmar disponibilidade de logs de proxy web (mínimo 30 dias) - [ ] Confirmar disponibilidade de logs de DNS queries (mínimo 90 dias) - [ ] Confirmar disponibilidade de logs de DLP (se implementado) - [ ] Estabelecer baseline de volume de dados de saída por host e por usuário - [ ] Identificar serviços cloud corporativos aprovados vs. não aprovados ### Execução das Hipóteses - [ ] H1: Alto volume de saída - verificar top transferências acima do baseline - [ ] H2: Cloud storage não autorizado - verificar destinos em lista de monitoramento - [ ] H3: DNS tunneling - subdomínios longos, alto volume para domínio único - [ ] H4: Compressão + staging - 7zip/RAR com senha + transferência subsequente - [ ] H5: E-mail exfiltration - regras de encaminhamento, downloads em massa de SharePoint ### Documentação - [ ] Registrar cada hipótese testada e resultado (TP/FP/Inconclusivo) - [ ] Escalar True Positives para IR imediatamente - [ ] Atualizar lista de destinos suspeitos no SIEM - [ ] Documentar falsos positivos para refinar queries futuras --- ## Indicadores a Buscar ### IPs e Domínios Associados a Exfiltração ``` # Serviços frequentemente abusados para exfiltração mega.nz gofile.io anonfiles.com transfer.sh file.io tmpfiles.org pixeldrain.com storj.io (se não autorizado) # Padrões de User-Agent suspeitos em transferências curl/ python-requests/ Go-http-client/ Wget/ rclone/ MEGAcmdShell ``` --- ## Comúnicação ### Escalonamento para IR ``` Para: IR Lead / CISO Assunto: [HUNTING FINDING] Possível Exfiltração de Dados — [Host/Usuário] SUMÁRIO Durante hunting de exfiltração, identificamos atividade suspeita consistente com [tipo de exfiltração]. HOST AFETADO: [nome] USUÁRIO: [usuário] DESTINO: [IP/domínio] VOLUME ESTIMADO: [bytes/GB] JANELA TEMPORAL: [início] a [fim] HIPÓTESE: [descrição da hipótese e evidências] EVIDÊNCIAS: - [Query executada e resultado] - [Screenshot ou log relevante] RECOMENDAÇÃO: [Isolamento imediato / Investigação aprofundada / Monitoramento] Classificação: [True Positive / Possível TP / Requer Investigação] ``` --- ## Lições Aprendidas ### Questões Obrigatórias 1. A exfiltração foi detectada em tempo real ou apenas via hunting retroativo? 2. O canal de exfiltração estava coberto pelos controles de DLP? 3. Qual o volume estimado de dados exfiltrados? 4. Qual o tipo de dados afetados? (pessoais? estratégicos? código-fonte?) 5. Existia visibilidade de rede suficiente para detectar o canal utilizado? ### Melhorias Recomendadas - [ ] Implementar solução DLP com cobertura de canais web, e-mail e endpoint - [ ] Bloquear acesso a sites de file sharing não corporativos no proxy (Mega.nz, GoFile) - [ ] Implementar inspeção TLS no proxy para visibilidade de uploads HTTPS - [ ] Habilitar auditoria de regras de encaminhamento de e-mail (Exchange/M365) - [ ] Configurar Zeek com scripts de detecção de DNS tunneling - [ ] Implementar CASB (Cloud Access Security Broker) para visibilidade de shadow IT --- ## Referências - [[t1048-exfiltration-alternative-protocol|T1048 - Exfiltration Over Alternative Protocol]] - técnica MITRE ATT&CK - [[t1041-exfiltration-c2|T1041 - Exfiltration Over C2 Channel]] - exfiltração via canal C2 - [[t1567-exfiltration-over-web-service|T1567 - Exfiltration Over Web Service]] - uso de serviços cloud - [[t1560-archive-collected-data|T1560 - Archive Collected Data]] - compressão antes de exfiltrar - [[t1041-exfiltration-c2|T1020 - Automated Exfiltration]] - exfiltração automatizada (StealBit) - [[g0016-apt29]] - grupo conhecido por exfiltração via Exchange transport rules - [[lockbit]] - grupo que usa StealBit para exfiltração paralela pré-criptografia - [[hunting-lateral-movement]] - playbook complementar - [[hunting-supply-chain-compromise]] - playbook complementar - [[ta0010-exfiltration|MITRE ATT&CK - Exfiltration Tactic]] - [SANS - Data Exfiltration Detection](https://www.sans.org/reading-room/whitepapers/detection/detecting-dns-tunneling-34152) - [Zeek DNS Tunneling Detection](https://github.com/corelight/zeek-long-connections) --- *Última revisão: 2026-03-23 | Próxima revisão recomendada: 2026-09-23*