Guia de tecnologias

Análise forense de memória RAM com Volatility

7 min read Forense Digital Atualizado 16 Sep 2025
Análise de RAM com Volatility
Análise de RAM com Volatility

Introdução

A análise da memória RAM (Random Access Memory) é uma etapa crítica em investigações de malware: revela processos em execução, conexões de rede ativas, módulos carregados e vestígios de injeção de código que não aparecem no disco. Este artigo descreve o uso do framework open source Volatility para examinar dumps de memória (raw) em sistemas Windows, demonstrando a identificação de processos suspeitos, extração de DLLs e verificação com serviços externos.

Definição rápida: Volatility — framework em Python para análise de memória volátil que suporta Windows, Linux, macOS e Android.

Intenção do artigo

  • Mostrar um fluxo prático para analisar um dump de memória Windows com Volatility.
  • Demonstrar plugins úteis: imageinfo, pslist, pstree, malfind, cmdscan, netscan.
  • Fornecer heurísticas, checklist e passos de confirmação usando antivírus e serviços online.

Importante: Este documento foca em análise forense de memória adquirida previamente (imagem), não em captura de memória ao vivo.

Suporte de formatos de memória

O Volatility atual aceita vários formatos comuns de memória, entre os quais:

  • Memória física raw/padded
  • FireWire (IEEE 1394)
  • Expert Witness (EWF)
  • Dumps de crash do Windows 32/64 bits
  • Arquivos de hibernação Windows 32/64 bits
  • Mach-O 32/64 bits
  • Core dumps do VirtualBox
  • VMware Saved State (.vmss) e Snapshot (.vmsn)
  • Formato HPAK (FastDump)
  • Dumps do QEMU

Esses formatos cobrem a maior parte dos cenários de aquisição de memória utilizados em lab e investigações práticas.

Instalação

No Ubuntu 16.04 LTS, o Volatility pode ser instalado com:

apt-get install volatility

Captura de tela da instalação do Volatility no Ubuntu

Observação: existem builds standalone para Windows e macOS. Em ambiente Windows pode-se usar o executável independente, como mostrado nas amostras de linha de comando abaixo.

Preparação e verificação da integridade

Antes de iniciar a análise, verifique hash da imagem para garantir que o arquivo não foi alterado desde a aquisição. No exemplo do caso investigado, o MD5 calculado foi:

MD5:               ee043142485a83f4d49a3a7899408500

Importante: guarde artefatos de verificação (hashes, logs de transferência) como prova de cadeia de custódia.

Fluxo de análise com Volatility — visão geral

Passos principais que seguiremos:

  1. Identificar perfis compatíveis com imageinfo.
  2. Listar processos com pslist e visualizar hierarquia com pstree.
  3. Executar malfind para detectar regiões suspeitas (injeção/execução de código) e extrair dumps.
  4. Verificar histórico de comandos com cmdscan.
  5. Analisar conexões de rede com netscan.
  6. Validar artefatos extraídos com antivírus e serviços online (VirusTotal, Hybrid Analysis).

Identificar perfil do dump

Use imageinfo para obter sugestões de perfil (arquivo e arquitetura):

"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" imageinfo -f memdump3.raw

Saída do comando imageinfo do Volatility mostrando perfis sugeridos

A saída sugere perfis compatíveis, por exemplo: Win7SP0x86, Win7SP1x86. Escolha o perfil que melhor corresponde às sugestões do imageinfo.

Listar processos e hierarquia

Obtenha a lista de processos em execução com pslist:

"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pslist -f memdump3.raw

Saída do pslist mostrando processos ativos extraídos da memória

Continuação:

Continuação da lista de processos do pslist

Para entender relações pai/filho (PID/PPID), use pstree:

"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pstree -f memdump3.raw

Saída do pstree mostrando hierarquia pai/filho de processos

Continuação do gráfico de árvore de processos do pstree

Heurística: processos com nomes semelhantes a processos legítimos (por ex., iexplore.exe vs iexplorer.exe) ou executáveis com nomes aleatórios (0KqEC12.exe) são prioritários para investigação.

Detectar injeção e extrair módulos suspeitos (malfind)

O plugin malfind detecta regiões de memória que parecem conter código executável injetado ou módulos não mapeados normais. Para extrair artefatos de um PID identificado, execute:

E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1120 -p 1120 -f memdump3.raw

Saída exemplo quando nada é encontrado:

Resultado do malfind para PID 1120 — sem DLLs detectadas

Outro exemplo (PID 1788) sem resultados:

Resultado do malfind para PID 1788 — sem DLLs detectadas

Quando o malfind encontra regiões suspeitas, ele salva arquivos na pasta indicada. Exemplo de execução para um PID com extrações:

E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2104 -p 2104 -f memdump3.raw

Execução do malfind para PID 2104 mostrando extração de DLLs

O dump resultante pode conter DLLs extraídas e blocos de código injetado:

Dump de DLLs extraídas do processo explorer.exe pelo malfind

Exemplos adicionais de PIDs suspeitos e seus dumps:

Execução do malfind para PID 2240 (0KqEC12.exe)

Dump extraído do processo 0KqEC12.exe pelo malfind

Execução do malfind para PID 2840 (iexplore.exe)

Indicadores de processo com nome semelhante ao legítimo (iexplore vs iexplore)

Execução do malfind para PID 2364 (iexplore.exe)

Dump do malfind para PID 2364 mostrando código injetado

Execução do malfind para PID 3728 (iexplore.exe)

Dump do malfind para PID 3728 com seções suspeitas

Observação técnica: artefatos extraídos devem ser tratados como evidência — não execute binários sem isolamento adequado. Use um ambiente controlado (sandbox/VM isolada) para análise dinâmica.

Verificação e validação com antivírus e serviços online

Após extrair DLLs e blobs suspeitos, valide com motores de detecção. No caso analisado, o Windows Defender reportou:

Resultado do Windows Defender identificando Trojan:Win32/EyeStye

Resumo do comportamento relatado para EyeStye: keylogging, monitoramento de atividade web, roubo de credenciais, possível uso de rootkit e injeção de código para ocultar presença. A análise mostrou injeção no processo explorer.exe — comum para persistência/ocultamento.

O MalwareBytes também identificou as DLLs extraídas como maliciosas:

Resultado do MalwareBytes detectando Trojan.Grabber nas DLLs extraídas

Regra prática: usar múltiplas fontes (AV local, VirusTotal, Hybrid Analysis) e correlacionar sinais (nome do arquivo, strings internas, conexões de rede, comportamento em sandbox).

Histórico de comandos (cmdscan)

O plugin cmdscan recupera histórico do prompt de comando presente na memória (quando disponível):

E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 cmdscan -f memdump3.raw

Saída do cmdscan mostrando histórico de comandos do atacante

No exemplo, o atacante executou binários com nomes distintos, incluindo variantes de iexplore.exe/ieplorer.exe e referências a arquivos como _lt112.spn. A presença disso no histórico é uma forte pista de atividade manual ou automatizada por atacante.

Pesquisas online mostraram referências ao ficheiro _lt112.spn em plataformas de análise de malware:

Referência online ao ficheiro _lt112.spn encontrada no Malwr

Entrada do Hybrid Analysis relacionada ao ficheiro _lt112.spn

Conexões de rede (netscan)

Use netscan para recuperar sockets e conexões ativas encontradas na memória:

E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 netscan -f memdump3.raw

Saída do netscan mostrando conexões de rede estabelecidas pelo processo iexplore

Continuação das conexões de rede listadas pelo netscan

Detalhes finais do netscan com portas e endereços remotos

No caso exibido, processos com nome iexplore estavam estabelecendo conexões externas pela porta 80 — comportamento consistente com exfiltração HTTP ou comunicação com C2.

Interpretação e correlação de evidências

A correlação dos resultados indica:

  • Processos disfarçados (nomes parecidos com legítimos).
  • Injeção de código detectada em explorer.exe (malfind) e em múltiplos processos aparentes de navegador.
  • Históricos de comando que executam binários suspeitos.
  • Conexões de rede ativas em portas HTTP (porta 80) por processos suspeitos.
  • Assinaturas de antivírus identificando trojans do tipo keylogger/stealer.

Conclusão técnica: o sistema foi comprometido por um malware com capacidades de injeção e exfiltração, rodando sob processos legítimos comprometidos para ocultação.

Checklist rápido para investigação (role-based)

Investigador (Triage):

  • Verificar integridade do dump (MD5/SHA256).
  • Executar imageinfo para obter perfil.
  • Rodar pslist/pstree para localizar processos suspeitos.

Analista (Artefatos):

  • Executar malfind para PIDs suspeitos; extrair dumps com -D para análise offline.
  • Submeter artefatos a serviços como VirusTotal / Hybrid Analysis.

Resposta a incidente (IR):

  • Conter comunicação da máquina comprometida.
  • Coletar logs adicionais (firewall, proxy) correlacionando IPs remotos.
  • Planejar limpeza ou reconstrução (reimagem) dependendo do nível de comprometimento.

Observação jurídica: preserve cópias forenses e documentos de cadeia de custódia.

Mini-metodologia reproducível

  1. Validar hash da imagem.
  2. imageinfo -> escolher –profile.
  3. pslist/pstree -> mapear processos.
  4. malfind -p -D -> extrair artefatos.
  5. cmdscan -> revisar comandos recentes.
  6. netscan -> listar conexões e mapear IPs remotos.
  7. Submeter binários a antivírus/sandbox.
  8. Documentar e recomendar mitigação.

Fluxo de decisão rápido (Mermaid):

flowchart TD
  A[Começar: imagem de memória] --> B{Perfil detectado?}
  B -- Sim --> C[pslist/pstree]
  B -- Não --> Z[Faltam dados: reavaliar aquisição]
  C --> D{Processos suspeitos?}
  D -- Sim --> E[Executar malfind e extrair DLLs]
  D -- Não --> F[Revisar netscan/cmdscan]
  E --> G[Submeter artefatos a AV/sandbox]
  G --> H{Confirmação positiva?}
  H -- Sim --> I[Notificar IR e conter]
  H -- Não --> F
  F --> I

Quando a técnica falha — limitações e contraexemplos

  • Memória parcialmente adquirida ou corrompida pode levar a false negatives no malfind.
  • Técnicas avançadas de ofuscação e encriptação em tempo de execução podem impedir a extração direta de payloads legíveis.
  • Processos injetados que limpam sinais na memória antes da aquisição podem escapar da detecção.

Mitigação: combinar análise de disco, logs de rede e dispositivos de rede para compensar limitações de memória.

Boas práticas e segurança operacional

  • Nunca execute artefatos extraídos em hosts de produção.
  • Utilize sandboxes isoladas e snapshots para análise dinâmica.
  • Documente cada comando e salve resultados brutos (stdout/stderr).
  • Mantenha ferramentas (Volatility) atualizadas e acompanhe perfis oficiais ao migrar entre versões do OS.

Glossário (uma linha cada)

  • Dump: cópia do conteúdo da memória RAM em um arquivo.
  • Perfil (profile): configuração que corresponde à versão do sistema operacional usada pelo Volatility para interpretar estruturas em memória.
  • Malfind: plugin do Volatility que identifica regiões suspeitas de código/injeção.
  • Cmdscan: plugin que lê histórico do prompt de comando na memória.
  • Netscan: plugin que captura sockets e conexões da tabela de rede encontrada na memória.

Conclusão

A análise forense com Volatility provê visibilidade valiosa do estado em execução do sistema comprometido. No caso estudado, a correlação entre processos suspeitos, dumps de DLLs com injeção, histórico de comandos e conexões de rede confirmou a presença de um Trojan com características de keylogger/stealer (EyeStye/Trojan.Grabber). Use a metodologia aqui descrita como base de triagem e aprofundamento, adaptando a investigação conforme evidências adicionais surgirem.

Resumo das ações recomendadas:

  • Isolar a máquina comprometida da rede.
  • Preservar evidências e hashes.
  • Remover/limpar somente após plano de contenção e validação.
  • Reimagem quando houver sinais de rootkit ou comprometimento profundo.

Referências

  1. http://www.volatilityfoundation.org/24
  2. https://www.microsoft.com/security/portal/threat/encyclopedia/entry.aspx?Name=Trojan:Win32/EyeStye.N
Autor
Edição

Materiais semelhantes

Monitoramento Apache Tomcat — contadores e regras
Monitoramento

Monitoramento Apache Tomcat — contadores e regras

Como se Proteger do Clickjacking
Cibersegurança

Como se Proteger do Clickjacking

Papéis de parede distintos por tela no Android
Android

Papéis de parede distintos por tela no Android

Como remover seus dados de corretores de dados
Privacidade

Como remover seus dados de corretores de dados

Papéis de parede por tela no Android
Tutoriais

Papéis de parede por tela no Android

Monitorar Apache Tomcat com Verax NMS
Monitoramento

Monitorar Apache Tomcat com Verax NMS