Introdução
A análise forense de memória RAM é uma etapa essencial na investigação de incidentes de segurança cibernética. Diferente do armazenamento persistente ou armazenamento não volátil (ou PMem), a RAM contém informações temporárias que podem revelar processos em execução, credenciais em uso, conexões de rede e artefatos maliciosos. O Volatility Framework é uma das principais ferramentas para extrair e analisar essas evidências. Neste guia, abordaremos a instalação, extração de imagens de memória e uso avançado do Volatility para investigações detalhadas.

1. Instalando o Volatility Framework1.1. Requisitos e Instalação
O Volatility é uma ferramenta de código aberto desenvolvida em Python. Antes de instalá-lo, é necessário garantir que os pré-requisitos estejam instalados no sistema.
Para sistemas baseados em Debian (Ubuntu/Kali Linux):
sudo apt update && sudo apt install python3 python3-pip git
pip3 install distorm3 yara pycrypto jsonschema
Para sistemas baseados em RHEL (CentOS, Fedora):
sudo yum install python3 python3-pip git
pip3 install distorm3 yara pycrypto jsonschema
Agora, clone o repositório do Volatility e instale a ferramenta:
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
pip3 install -r requirements.txt
Verifique se a instalação foi concluída corretamente executando:
python3 vol.py -h
Isso exibirá a lista de comandos e plugins disponíveis.
2. Captura de Imagem de Memória RAM
2.1. Ferramentas para Extração de Memória
Para analisar a memória de um sistema, é necessário capturar sua imagem RAM. Algumas das ferramentas mais utilizadas para esse processo incluem:
- DumpIt (Windows) → Simples e eficiente para capturar a RAM em máquinas Windows.
- WinPMEM (Windows) → Gera imagens compatíveis com o Volatility.
- LiME (Linux) → Cria dumps de memória no Linux sem interromper processos.
2.2. Extração de Memória no Windows com DumpIt
- Baixe o DumpIt:
- Disponível em: https://download.forensicstore.com
- Execute o arquivo
.exe
com privilégios de administrador. - O dump será salvo no diretório atual no formato
.raw
ou.dmp
.
2.3. Extração de Memória no Linux com LiME
- Clone o repositório do LiME:
git clone https://github.com/504ensicsLabs/LiME.git cd LiME/src make
- Carregue o módulo do kernel para iniciar a captura:
sudo insmod lime.ko "path=/mnt/memoria.lime format=lime"
Agora que temos uma imagem de memória capturada, podemos analisá-la com o Volatility.
3. Identificação e Perfis de Memória
3.1. Descobrindo o Perfil do Sistema
O Volatility precisa identificar o perfil da imagem de memória antes da análise. Para listar os perfis disponíveis:
python3 vol.py -f memoria.raw windows.info
Se a imagem for do Linux:
python3 vol.py -f memoria.lime linux.pslist
Isso confirmará se a imagem é válida e qual o sistema operacional do dump.
4. Análise de Processos em Execução
4.1. Listagem de Processos
A análise de processos pode revelar malwares ocultos, executáveis suspeitos e atividades anômalas.
- Para listar os processos no Windows:
python3 vol.py -f memoria.raw windows.pslist
- No Linux:
python3 vol.py -f memoria.lime linux.pslist
Os processos legítimos costumam ter assinaturas conhecidas, enquanto malwares podem ter nomes genéricos ou IDs suspeitos.
4.2. Identificando Processos Ocultos
Além da listagem normal, processos podem estar ocultos. O comando psscan
lista processos que não aparecem normalmente:
python3 vol.py -f memoria.raw windows.psscan
Se um processo aparece no psscan
, mas não no pslist
, ele pode estar oculto por um Rootkit.
5. Investigação de Conexões de Rede
5.1. Descobrindo Conexões Ativas
Ataques avançados podem manter conexões persistentes com servidores de comando e controle (C2). Para listar conexões de rede na memória RAM:
- No Windows:
python3 vol.py -f memoria.raw windows.netscan
- No Linux:
python3 vol.py -f memoria.lime linux.netstat
5.2. Identificação de Comunicação Maliciosa
Se um processo está se comunicando com um IP desconhecido ou uma porta incomum, pode ser um sinal de exfiltração de dados. Use grep
para filtrar resultados suspeitos:
python3 vol.py -f memoria.raw windows.netscan | grep "ESTABLISHED"
6. Recuperação de Arquivos e Credenciais
6.1. Extração de Arquivos da Memória
Arquivos abertos recentemente podem ser recuperados:
python3 vol.py -f memoria.raw windows.filescan
6.2. Recuperação de Senhas em Texto Plano
Em alguns casos, credenciais ficam armazenadas na RAM:
python3 vol.py -f memoria.raw windows.hashdump
Se o sistema foi comprometido, esse comando pode revelar senhas que estavam na sessão do usuário.
Conclusão
A análise forense de memória RAM com o Volatility é uma técnica fundamental para investigações cibernéticas avançadas. A memória pode armazenar evidências valiosas, incluindo malwares ocultos, credenciais em uso e conexões maliciosas. Com um fluxo estruturado, desde a extração da RAM até a análise detalhada dos processos e rede, é possível reconstruir um ataque e coletar provas críticas para mitigação e resposta a incidentes.