Forense Digital no Linux – Técnicas práticas – parte 2

A análise de memória RAM com o Volatility é uma técnica poderosa para identificar atividades maliciosas em sistemas comprometidos. Neste exemplo prático, vamos simular a análise de um dump de memória RAM para detectar uma anomalia, como um processo malicioso ou uma conexão de rede suspeita.

 

 

 

Cenário de exemplo

Imagine que um servidor Linux foi comprometido, e você suspeita que um atacante tenha injetado um processo malicioso na memória RAM. Você possui um dump de memória (dump_memoria.img) e deseja analisá-lo usando o Volatility para identificar possíveis anomalias.

 

Passo 1: Preparação do Ambiente

1.1 Instale o Volatility:

Se você ainda não tem o Volatility instalado, siga estas etapas:

sudo apt update
sudo apt install volatility

1.2 Verifique o perfil do sistema:

O Volatility requer um perfil correspondente ao sistema operacional do dump de memória. Para identificar o perfil correto, use o comando:

volatility -f dump_memoria.img imageinfo

Saída no Shell:

Suggested Profile(s) : LinuxUbuntu_5_4_0-42-genericx64

Passo 2: Listar Processos em Execução

O primeiro passo é listar todos os processos em execução no momento do dump de memória. Isso pode revelar processos maliciosos ou suspeitos.

 

Comando:

volatility -f dump_memoria.img --profile=LinuxUbuntu_5_4_0-42-genericx64 linux_pslist

Saída no Shell:

Offset             Name                 PID    PPID   UID    GID    DTB                
------------------ -------------------- ------ ------ ------ ------ ------------------ 
0xffff88003c8a0000 systemd              1      0      0      0      0x0000000000000000 
0xffff88003c8a1000 bash 1234 1 1000 1000 0x0000000000000000
0xffff88003c8a2000 sshd 5678 1 0 0 0x0000000000000000
0xffff88003c8a3000 malware 9999 1 0 0 0x0000000000000000

Análise:

  • O processo malware com PID 9999 parece suspeito, pois não é um processo comum do sistema.

  • O UID 0 indica que o processo está sendo executado como root, o que aumenta a gravidade da ameaça.

 

Passo 3: Analisar Conexões de Rede

Processos maliciosos frequentemente estabelecem conexões de rede para se comunicar com servidores de comando e controle (C2). Podemos usar o plugin linux_netstat para listar conexões de rede ativas.

 

Comando:

volatility -f dump_memoria.img --profile=LinuxUbuntu_5_4_0-42-genericx64 linux_netstat

Saída no Shell:

Proto  Local Address          Foreign Address        State       PID   Process Name
------ --------------------- --------------------- ----------- ------ ------------
TCP    192.168.1.100:22       192.168.1.1:54321      ESTABLISHED 5678  sshd
TCP    192.168.1.100:4444     10.0.0.1:80            ESTABLISHED 9999  malware

Análise:

  • O processo malware (PID 9999) está estabelecendo uma conexão com o endereço IP 10.0.0.1 na porta 80.

  • Essa conexão é suspeita, pois não é uma atividade normal do sistema.

 

Passo 4: Extrair Informações do Processo Malicioso

Para investigar mais detalhes sobre o processo malicioso, podemos usar o plugin linux_procdump para extrair o binário do processo da memória.

 

Comando:

volatility -f dump_memoria.img --profile=LinuxUbuntu_5_4_0-42-genericx64 linux_procdump 
-p 9999 -D output/

Saída no Shell:

Process Name        PID    Address            Size     Path
------------------- ------ ------------------ -------- --------------------------
malware             9999   0x0000555555554000 4096     output/malware.9999.exe

Análise:

  • O binário do processo malicioso foi extraído para o arquivo output/malware.9999.exe.

  • Esse arquivo pode ser analisado posteriormente com ferramentas como strings, Ghidra ou enviado para análise em sandboxes.

 

Passo 5: Verificar Módulos de Kernel Carregados

Processos maliciosos podem carregar módulos de kernel para ocultar suas atividades. Podemos usar o plugin linux_lsmod para listar os módulos carregados.

 

Comando:

volatility -f dump_memoria.img --profile=LinuxUbuntu_5_4_0-42-genericx64 linux_lsmod

Saída no Shell:

Name                 Size     RefCount
------------------- -------- ---------
malware_module       8192     1

Análise:

  • O módulo malware_module foi carregado e está ativo no kernel.

  • Esse módulo pode ser usado para ocultar o processo malicioso ou suas atividades.

 

Passo 6: Documentar as evidências

Após identificar as anomalias, documente todas as evidências encontradas, incluindo:

  • Processos suspeitos.

  • Conexões de rede anômalas.

  • Binários extraídos.

  • Módulos de kernel suspeitos.

 

Conclusão

Neste exemplo prático, utilizamos o Volatility para analisar um dump de memória RAM e identificar uma anomalia, um processo malicioso (malware) com conexões de rede suspeitas e um módulo de kernel carregado. Essas técnicas são essenciais para investigar incidentes de segurança e entender como os atacantes operam em sistemas comprometidos.

Lembre-se de que a análise de memória é apenas uma parte do processo de forense digital. Combine essas técnicas com outras ferramentas e métodos para obter uma visão completa do incidente.

 

Referências Bibliográficas

Análise de Memória RAM com Volatility