Primeiros passos para análise forense de memória

Quase sempre em um incidente cibernético, investigação ou análise de malware precisamos recorrer a memória volátil do computador.

Memória volátil como a memória RAM (Random Access Memory) perde as informações quando o sistema é desligado ou perde energia, por isso a importância da correta aquisição ser feita enquanto o sistema está em funcionamento. Importante lembrar, que não se limita a memória RAM quando falamos de memória volátil, pois pode haver o uso de outros componentes, como caches do processador, caches de disco, etc.

Aquisição da memória

O primeiro passo é a captura (coleta) da memória para analise. Isso pode até envolver a necessidade de uso de equipamentos especiais para isolar a máquina da rede ou de outros dispositivos. Mas no geral é simples a aquisição.

As ferramentas mais comuns incluem FTK Imager, WinPmem, LiME (Linux Memory Extractor) para Linux, e MacQuisition para sistemas macOS, o AVML – Acquire Volatile Memory for Linux, entre outras…

A ferramenta de aquisição lê o conteúdo completo da memória física do sistema e o grava em um arquivo (dump). Este arquivo pode e deve ser salvo em um disco externo.

📄Tutorial FTK Vídeo e Artigo

Garanta a integridade do arquivo após a aquisição e a manipulação gerando hash, pode ser MD5 ou SHA1, se preferir algum hash maior (como SHA-256) não há problema, é até mais interessante. Entendendo o HASH (MD5 e SHA1)

Vale lembrar que é possível coletar os dumps de memória do Windows após uma falha do sistema no qual ele gera a tão famosa “tela azul” (BSOD). O padrão do dump é definido como automático, mas dependendo do que está acontecendo e em como irá acontecer a investigação é possível modificar para “despejo de memória completo”

Análise Forense

Agora é hora de fazer a análise forense em busca de evidencias de alguma ação maliciosa, dependendo do contexto.

Verifique a integridade do DUMP de memória, conferindo se o hash é o mesmo do momento da aquisição.

Mantenha um registro detalhado da análise, incluindo todos comandos usados, descobertas e conclusões, pois isso vai ajudar no relatório final talvez seja necessário para fins legais a reprodução da sua análise pela outra parte.

Identifique o sistema operacional do dump de memória, pois os softwares de análise podem necessitar de recursos específicos e isso também determina quais comandos poder ser utilizados.

Escolha a ferramenta ideal para a análise, eu vou deixar aqui uma lista:

  • Volatility: Uma das ferramentas mais populares para análise de memória, suporta uma ampla gama de sistemas operacionais.
  • Rekall: Outra ferramenta poderosa, com funcionalidades semelhantes às do Volatility.
  • Memoryze: Pode ser usado para análise de memória em sistemas Windows, incluindo a captura de dumps de memória.
  • MemProcFS utiliza o conceito de representar a memória de um sistema como um sistema de arquivos montável.

Examinando o dump

Abaixo temos o que a SANS chama de “Metodologia Investigativa de Seis Etapas” para forense de memória.

  • Examine os processos em execução no momento do dump, desconhecidos, suspeitos ou maliciosos.
  • Verifique as conexões de rede para identificar comunicações suspeitas.
  • Identifique e avalie binários e DLLs carregados na memória
  • Procure por evidências de injeção de código
  • Examine buscando indícios ou características que possam indicar a presença de um rootkit.
  • Busque por IoCs conhecidos, hashes de arquivos maliciosos, strings específicas, ou padrões de comportamento anormal.

https://www.sans.org/posters/dfir-memory-forensics/

Exemplo de uma forense e evidencia do ransomware wannacry

Se for usar por exemplo o Volatility 3 uma forma de executar essa listagem seria de modo simples:

Informações sobre processos:

  • vol.py -f “/path/to/file” windows.pslist
  • vol.py -f “/path/to/file” windows.psscan
  • vol.py -f “/path/to/file” windows.pstree

Lista de comandos:

  • vol.py -f “/path/to/file” windows.cmdline

Informações de rede:

  • vol.py -f “/path/to/file” windows.netscan
  • vol.py -f “/path/to/file” windows.netstat

Scan de arquivo:

  • vol.py -f “/path/to/file” windows.filescan

Malfind:

  • vol.py -f “/path/to/file” windows.malfind

Yara Scan:

  • vol.py -f “/path/to/file” windows.vadyarascan ‑‑yara-rules <string>
  • vol.py -f “/path/to/file” windows.vadyarascan ‑‑yara-file “/path/to/file.yar”
  • vol.py -f “/path/to/file” yarascan.yarascan ‑‑yara-file “/path/to/file.yar”

Vale a pena conhecer o Cheat Sheet criado pela @onfvp – https://blog.onfvp.com/post/volatility-cheatsheet/

Existem muitas vias que podemos adotar para fazer essa analise.

Esse é um trabalho complexo e que exige um conhecimento técnico bem aprofundado, portanto vale a pena estudar o funcionamento dos sistemas operacionais e entender os TTPs e os tipos de IoC que estão sendo parte da hipótese da análise. Alguns serão tão novos que vocês será um dos primeiros a mapear as atividades maliciosas.

Baixe dumps de memória (infectados ou não)

Se o dump tiver senha geralmente contém malware e senha padrão é infected

💾 Volatility Memory-Samples

💾 OsForensics – Sample Memory Dumps

💾 Diversos

Referencias

Anúncio

Sobre Daniel Donda 532 Artigos
Olá, meu nome é Daniel Donda e sou especialista em cibersegurança, autor de livros, professor e palestrante. Saiba mais

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*