Aquisição e análise de memória RAM em ambiente Windows

computer-memory-chips

Na fase de Aquisição de Evidências, quando falamos em um sistema comprometido que esteja ligado (Live Forensics), a preservação do conteúdo da memória RAM é muito importante.

Grande parte das informações presentes na memória serão perdidas devido a volatilidade (lembre-se da Ordem de Volatilidade na etapa de Aquisição de Evidências – RFC 3227).

Volatilidade: Há perda de informação com o tempo, assim como a capacidade de recuperação ou validação dos dados, diminuindo a veracidade;

É uma área de grande quantidade de informações ou evidências em tempo real, muitas vezes desprezada pelos peritos.

Um bom exemplo da importância da coleta do conteúdo da memória RAM é se existe indícios de criptografia em disco. Na maioria das vezes, em cenários como esse, a chave secreta está presente na memória, pois o computador precisa dessa chave para acessar os arquivos armazenados no HD. Quando um usuário autorizado digita a senha, o computador armazena a chave de criptografia na memória RAM, de modo que os dados protegidos possam ser acessados regularmente. Essa chave desaparece assim que o chip de memória perde eletricidade quando a máquina é desligada.

Outros casos como a presença de malwares, resquícios de arquivos e/ou conversas em chats que não foram armazenados em disco, etc. também são justificativas para se preservar a memória RAM.

Normalmente são utilizadas ferramentas executadas diretamente de um pendrive ligado ao equipamento comprometido.

Mas o fato de inserirmos um pendrive num equipamento comprometido não altera os dados desse equipamento?

Sim, altera.

Basicamente CINCO locais no ambiente Windows sofrem alterações quando se insere um dispositivo USB (falaremos em detalhes sobre investigação de dispositivos USB em outra publicação):

  1. A chave USBSTOR localizada em SYSTEM (SYSTEM/CurrentControlSet/Enum/USBSTOR)
  2. A chave MountedDevices (SYSTEM/MountedDevices)
  3. A chave MountPoints2 localizado em (Software/Microsoft/WindowsCurrentVersion/Explorer/MountPoints2)
  4. A chave USB localizada em SYSTEM (SYSTEM/CurrentControlSet/Enum/USB)
  5. O arquivo de log setupapi (Windows/inf/setupapi.dev.log para Windows Vista/7/8 e Windows/setupapi.log para Windows XP)

Basta guardar todas as informações do pendrive utilizado (fabricante, número de série, capacidade, etc.) e documentar essas alterações posteriormente no laudo pericial. A vantagem da aquisição da memória RAM é maior do que essa alteração “controlada” da evidência.

Dois bons exemplos de ferramentas (grátis) para realizar dump de memória RAM:

Eu prefiro a solução da Belkasoft, pois em alguns casos envolvendo regiões de memória protegida (muitos softwares realizam proteção de memória), a ferramenta consegue realizar o dump com mais sucesso.

Belkasoft Live RAM

Basta informar o caminho e clicar no botão “Capture!” que um arquivo com a estrutura <aaaammdd.mem> (ano, mês, dia) será salvo, exatamente do tamanho da memória RAM do equipamento.

O passo seguinte agora é realizar a análise desse arquivo de memória.

Existem diversos softwares para essa finalidade, mas a opção grátis mais conhecida é o Volatility, que é uma coletânea de ferramentas open source em python formando um framework sob a licença GNU GPL v2 para a extração de vestígios digitais voláteis presentes em memória RAM.

Existem diversas opções para o comando “volatility-2.4.standalone.exe”, dependendo do que se quer investigar. Algumas opções mais comuns são:

Exibe as últimas linhas de comando:
volatility-2.4.standalone.exe -f <imagem> –profile=Win7SP0x64 cmdline

Exibe os processos que estavam na memória:
volatility-2.4.standalone.exe -f <imagem> –profile=Win7SP0x64 pslist

Recria os arquivos dos processos que estavam na memória:
volatility-2.4.standalone.exe -f <imagem> –profile=Win7SP0x64 procdump –dump-dir=c:\temp

Exibe as conexões e sockets de rede:
volatility-2.4.standalone.exe -f <imagem> –profile=Win7SP0x64 netscan

Exibe a condição dos serviços do Windows:
volatility-2.4.standalone.exe -f <imagem> –profile=Win7SP0x64 svcscan

Exibe as entradas do registro em memória:
volatility-2.4.standalone.exe -f <imagem> –profile=Win7SP0x64 hivelist

Onde <imagem> é o arquivo de imagem da memória gerado e “Win7SP0x64” é o perfil do computador onde foi gerado o arquivo. No caso um Windows 7 x64 sem Service Pack.

Os perfis suportados são:

VistaSP0x64                - A Profile for Windows Vista SP0 x64
VistaSP0x86                - A Profile for Windows Vista SP0 x86
VistaSP1x64                - A Profile for Windows Vista SP1 x64
VistaSP1x86                - A Profile for Windows Vista SP1 x86
VistaSP2x64                - A Profile for Windows Vista SP2 x64
VistaSP2x86                - A Profile for Windows Vista SP2 x86
Win2003SP0x86              - A Profile for Windows 2003 SP0 x86
Win2003SP1x64              - A Profile for Windows 2003 SP1 x64
Win2003SP1x86              - A Profile for Windows 2003 SP1 x86
Win2003SP2x64              - A Profile for Windows 2003 SP2 x64
Win2003SP2x86              - A Profile for Windows 2003 SP2 x86
Win2008R2SP0x64            - A Profile for Windows 2008 R2 SP0 x64
Win2008R2SP1x64            - A Profile for Windows 2008 R2 SP1 x64
Win2008SP1x64              - A Profile for Windows 2008 SP1 x64
Win2008SP1x86              - A Profile for Windows 2008 SP1 x86
Win2008SP2x64              - A Profile for Windows 2008 SP2 x64
Win2008SP2x86              - A Profile for Windows 2008 SP2 x86
Win2012R2x64               - A Profile for Windows Server 2012 R2 x64
Win2012x64                 - A Profile for Windows Server 2012 x64
Win7SP0x64                 - A Profile for Windows 7 SP0 x64
Win7SP0x86                 - A Profile for Windows 7 SP0 x86
Win7SP1x64                 - A Profile for Windows 7 SP1 x64
Win7SP1x86                 - A Profile for Windows 7 SP1 x86
Win8SP0x64                 - A Profile for Windows 8 x64
Win8SP0x86                 - A Profile for Windows 8 x86
Win8SP1x64                 - A Profile for Windows 8.1 x64
Win8SP1x86                 - A Profile for Windows 8.1 x86
WinXPSP1x64                - A Profile for Windows XP SP1 x64
WinXPSP2x64                - A Profile for Windows XP SP2 x64
WinXPSP2x86                - A Profile for Windows XP SP2 x86
WinXPSP3x86                - A Profile for Windows XP SP3 x86

Se você não sabe qual o perfil (versão do Windows) da imagem que você quer analisar, pode usar o comando:

volatility-2.4.standalone.exe -f <imagem> imageinfo

Uma lista detalhada de todos os comandos suportados pela ferramenta você encontra aqui.

Vaine Luiz Barreira

Executivo de TI e Segurança da Informação.
Perito em Computação Forense.

LinkedIn 

Share on Facebook0Share on LinkedIn0Share on Google+0
(Visited 1.516 times, 1 visits today)

One comment

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *