Forense de Memória
A análise forense de memória RAM representa uma disciplina crítica e especializada dentro da investigação digital, focada na extração e análise de dados voláteis que existem apenas enquanto o sistema está em execução. Diferentemente da forense tradicional de disco, que examina dados persistentes armazenados em discos rígidos ou SSDs, a forense de memória captura o estado exato do sistema no momento da aquisição, revelando processos em execução, conexões de rede ativas, credenciais em memória, chaves criptográficas, malware fileless e artefatos que atacantes sofisticados deixam propositalmente apenas na RAM para evitar detecção. Esta técnica tornou-se indispensável na investigação de ameaças avançadas (APTs), ransomware moderno, e ataques que utilizam técnicas de living-off-the-land, onde os invasores operam exclusivamente em memória utilizando ferramentas legítimas do sistema operacional. A janela temporal para coleta é crítica: uma vez que o sistema seja desligado, reiniciado ou entre em modo de hibernação, esses artefatos voláteis são irremediavelmente perdidos, tornando a rapidez e metodologia de aquisição fatores determinantes para o sucesso da investigação forense.
Por Que Forense de Memória
Artefatos voláteis são perdidos no desligamento. Memória contém:
- Processos em execução: Malware fileless, injeções de código
- Conexões de rede: C2 active connections, sockets abertos
- Credenciais: Passwords em plaintext, hashes NTLM cached
- Criptografia: Chaves de criptografia em memória
- Registry hives: Modificações não persistidas
- Handles e DLLs: Injeções, hooking, rootkits
Aquisição de Memória
Ferramentas de Aquisição
- FTK Imager: Ferramenta gratuita AccessData, interface gráfica
- DumpIt: Executável portátil de uma linha, rápido
- WinPmem: Open-source, suporta aquisição de kernel memory
- Magnet RAM Capture: Free tool, fácil de usar
- LiME (Linux): Loadable Kernel Module para Linux systems
- Belkasoft RAM Capturer: Funciona mesmo com anti-dumping
Considerações de Aquisição
- Adquirir memória ANTES de investigar - análise altera estado
- Sistema live: usar ferramentas que minimizam footprint
- Sistema virtual: snapshot VM ou extrair .vmem
- Sistema físico: considerar aquisição via FireWire/Thunderbolt DMA
- Documentar hora exata da aquisição para timeline
Análise com Volatility
Volatility Framework é ferramenta open-source padrão-ouro para análise de memória, suportando Windows, Linux, macOS e diversos formatos de dump.
Comandos Essenciais
# Identificar profile do sistema
vol.py -f memory.dmp imageinfo
# Listar processos
vol.py -f memory.dmp --profile=Win10x64 pslist
vol.py -f memory.dmp --profile=Win10x64 pstree
# Processos ocultos (DKOM)
vol.py -f memory.dmp --profile=Win10x64 psxview
# Conexões de rede
vol.py -f memory.dmp --profile=Win10x64 netscan
# DLLs carregadas
vol.py -f memory.dmp --profile=Win10x64 dlllist -p <PID>
# Linha de comando dos processos
vol.py -f memory.dmp --profile=Win10x64 cmdline
# Dumps de processos
vol.py -f memory.dmp --profile=Win10x64 procdump -p <PID> -D output/
# Extração de credenciais
vol.py -f memory.dmp --profile=Win10x64 hashdump
vol.py -f memory.dmp --profile=Win10x64 lsadump
Análise de Malware Fileless
Malware fileless reside apenas em memória, usando ferramentas legítimas (PowerShell, WMI) para evitar AV. Técnicas de detecção:
- Process injection: Buscar por memória RWX, remote threads
- PowerShell análise: Comandos suspeitos em console history
- Hollowing: Processos legítimos com código substituído
- Reflective DLL Injection: DLLs não mapeadas em disco
Exemplo: Detectando Process Injection
# Buscar VADs suspeitos (memória RWX)
vol.py -f memory.dmp --profile=Win10x64 malfind
# Listar injeções de código
vol.py -f memory.dmp --profile=Win10x64 hollowfind
# Análise de handles suspeitos
vol.py -f memory.dmp --profile=Win10x64 handles -p <PID> -t Process,Thread
Extração de Credenciais
Memória frequentemente contém credenciais em plaintext ou facilmente crackeáveis:
- LSASS dump: NT hashes, Kerberos tickets, plaintext passwords
- Registry hives: SAM, SYSTEM para hashdump offline
- Browser memory: Senhas de formulários, cookies de sessão
- App-specific: Credenciais de apps (email, VPN, etc.)
Timeline Reconstrution
Correlacionar eventos da memória com outros artefatos:
# Timeline de processos e conexões
vol.py -f memory.dmp --profile=Win10x64 timeliner --output=body --output-file=timeline.body
# Converter para formato legível
mactime -b timeline.body -d > timeline.csv
Rootkits e DKOM
Direct Kernel Object Manipulation (DKOM) oculta processos modificando kernel structures. Detectar através de comparação entre múltiplas fontes:
- psxview: Compara pslist, psscan, thrdproc, etc.
- driverirp: Lista drivers e seus IRP hooks
- ssdt: System Service Descriptor Table hooks
- idt: Interrupt Descriptor Table modifications
Volatility Plugins Avançados
- yarascan: Scan memória com regras YARA
- strings: Extração de strings de processos específicos
- clipboard: Conteúdo do clipboard do Windows
- notepad: Texto de janelas de Notepad abertas
- mftparser: Recuperar $MFT da memória
- svcscan: Listar Windows services
Ferramentas Complementares
- Rekall: Fork do Volatility com features adicionais
- Redline: Interface gráfica da FireEye para análise
- MemProcFS: Monta memory dump como filesystem
- Bulk Extractor: Extração em massa de features
Desafios
- Dumps grandes (16GB+ RAM) são lentos para analisar
- Técnicas anti-forensics podem corromper dumps
- Encrypted memory requer keys para análise
- Estruturas de kernel mudam entre OS versions
Recomendações Finais
Forense de memória é essencial para investigar ataques avançados e malware fileless. Automatize aquisição de memória em incidentes suspeitos via EDR. Pratique análise com memory dumps públicos (DFIRScience, Volatility Foundation). Sempre correlacione achados de memória com disk forensics e network forensics para visão completa do incidente.
