Pular para o conteúdo

Em forenses computacionais, muitas vezes, precisamos realizar um dump de memória. Isso sempre pode ser feito com o comando dd. Veja:

# dd if=/dev/mem of=memoria.dump

No entanto, as pessoas têm reclamado que, ultimamente, o seguinte erro tem aparecido:

dd: lendo "/dev/mem": Operação não permitida

ou

dd: reading `/dev/mem': Operation not permitted

Este foi o fato que gerou este post.

O erro mostrado ocorre porque, há algum tempo, o kernel 2.6 tem vindo com a opção CONFIG_STRICT_DEVMEM habilitada por default. Essa opção protege a memória contra acessos que não ocorram via dispositivos específicos. Para ver isso no Debian, por exemplo, basta executar o comando a seguir:

# cat /boot/config-* | grep CONFIG_STRICT_DEVMEM

Uma solução é utilizar o módulo fmem, disponível em http://hysteria.sk/~niekt0/foriana/. Ele é de fácil compilação e fornece os dados desejados. É necessário ter o cuidado de especificar o limite da memória para que ele não entre em um loop infinito. Exemplo:

# dd if=/dev/fmem of=memoria.dump bs=1M count=4096

O valor em count deverá ser trocado pela quantidade de memória em MB. No meu caso, tenho 4 GB = 4096 MB.

2 comentários em “Fazendo o dump de memória via /dev/fmem”

  1. Muito legal seus blogs e wiki que estarei acompanhando desde agora. Minha questão é relacionando o forense computacional, já que este post tem a tag forense computacional.

    Em que momento este procedimento poderia ser realizado já que um dos princípios da análise forense é a máxima preservação? Este método de análise (compilação do módulo fmen) não estaria sendo hostil e comprometendo a veracidade dos fatos?

    Saudações.

  2. Thiago,

    A compilação deve se dar em uma outra máquina que contenha a mesma versão e distribuição. Depois, você transporta o módulo, já compilado para a máquina alvo.

    A aquisição de memória deve ser o primeiro ato de todos, para que os comandos seguintes, como os de verificação de situação da rede, não alterem o estado de memória. O fmem irá alterar um mínimo de estado de memória, pois precisará ser carregado na mesma para funcionar. Mas não tem outro jeito.

    []s

Deixe um comentário

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

treze + 14 =