O acesso bruto à memória é útil durante a execução de análise forense de dados ou durante a invasão de dispositivos. Às vezes você precisa de um instantâneo de memória para poder analisar o que está acontecendo com bootloaders bloqueados, obter uma instantâneo de um local de memória para rastrear um bug ou apenas para descobrir o local de memória adequado do seu Angry Pontuação dos pássaros. É aqui que o Linux Memory Extractor, também conhecido como Linux. Perícia Forense LiME, entra. LiME é um módulo de kernel carregável que permite acessar toda a gama de memória do dispositivo. Assim que o módulo do kernel é carregado na memória, ele basicamente tira um instantâneo, permitindo uma depuração muito eficiente.
Pedi a Joe Sylve, autor do LiME Forensics, que explicasse os benefícios do LiME em relação a ferramentas tradicionais como o viewmem:
Para responder às suas perguntas, as ferramentas foram projetadas com finalidades diferentes. O LiME foi projetado para adquirir um dump completo do layout da memória física da RAM para análise forense ou pesquisa de segurança. Ele faz tudo no espaço do kernel e pode despejar uma imagem no sistema de arquivos local ou via TCP. Ele foi projetado para fornecer a cópia mais próxima possível da memória física, ao mesmo tempo que minimiza sua interação com o sistema.
Parece que viewmem é um programa de usuário que lê um intervalo de endereços de memória virtual de um dispositivo de memória, como /dev/mem ou /dev/kmem e imprime o conteúdo em stdout. Não tenho certeza se isso faz mais do que simplesmente usar dd em um desses dispositivos.
Isto é menos aceitável na área forense por vários motivos. Primeiro de tudo, /dev/mem e /dev/kmem estão sendo descontinuados e cada vez mais dispositivos não são fornecidos com esses dispositivos. Em segundo lugar, /dev/mem e /dev/kmem limitam a leitura dos primeiros 896 MB de RAM. Além disso, a ferramenta está causando várias alternâncias de contexto entre a área do usuário e a área do kernel para cada bloco de memória lido e está sobrescrevendo a RAM com seus buffers.
Eu diria que cada ferramenta tem sua utilidade. Se você só precisa saber o conteúdo de um endereço que está nos primeiros 896 MB de RAM e seu dispositivo possui /dev/mem e /dev/kmem e você não se importa em capturar uma imagem com som forense, então viewmem (ou dd) seria útil. No entanto, o LiME não foi projetado especificamente para esse caso de uso.
A coisa mais importante, para os hackers de memória, é que o viewmem depende do /dev/mem e /dev/kmem dispositivos. Desde o /dev/mem e /dev/kmem dispositivos permitem acesso direto à memória do dispositivo, eles são uma vulnerabilidade. Esses dispositivos Linux estão sendo eliminados, pois têm sido alvo de várias explorações recentemente. O LiME não apenas substitui o utilitário viewmem, mas também o faz melhor.
Os fabricantes tomam nota: ao bloquear os recursos que os desenvolvedores desejam, você promove o desenvolvimento de ferramentas melhores.
Fonte: Perícia Forense LiME & Entrevista com o autor Joe Sylve
[Crédito da imagem: Apresentação LiME por Joe Sylve]