A Importância da Coleta do Dump de Memória em uma Investigação de Computação Forense | RootSec Treinamentos
A perícia de computação forense, vem aumentando devido aos avanços tecnológicos. Hoje podemos identificar facilmente nas residências desde uma caneta espiã até um geladeira com dispositivo wi-fi. Esses serviços trazem comodidades para os usuários e também várias consequências, pois os usuários tornam-se alvos de pessoas que tem o conhecimento aprofundado das tecnologias para obter algo ilícito. Com o aumento da criminalidade virtual, a evolução dos crismes estão mais sofisticados, exigindo mais conhecimento e experiência dos profissionais que trabalham com perícia ou investigação. Pesquisando sobre o tema, verifica-se que poucos autores comentam sobre o assunto. Este artigo demostrará a importância da coleta de informações da MEMÓRIA RAM, conhecida como DUMP DE MEMÓRIA, dispositivo no qual são armazenadas as informações que serão processadas de acordo com a fila de processamento. Neste será demostrado como é fácil identificar atividades em tempo real, simulando em um computador virtual as atividades que estão sendo processadas e também serão realizado alguns acessos em sites para análise e demostração dos processos.
O objetivo deste artigo é demonstrar a análise de uma perícia forense por meio de um laboratório com o uso de algumas ferramentas utilizadas nas investigações, que possa servir como material de apoio à outros profissionais da área.
Palavras-chave: Dump, Memoria, RAM, Volatility
O avanço tecnológico envolveu rapidamente os seres humanos, tornando-os refém dos dispositivos, o que contribuiu para que o compartilhamento de informações tenha se tornado principal ferramenta de comunicação entre as pessoas. Os criminosos que usavam de métodos convencionais para ganhar a vida de forma ilícita, hoje estão evoluindo nos conhecimentos tecnológicos buscando meios de ganhar a vida de forma fácil. Podemos observar diariamente nos noticiários dos principais veículos de comunicação, relatos que variam desde difamação pelas redes sociais até roubo de informações em massa. Percebe-se que existem diversas formas de ganhar a vida com a tecnologia. Este artigo abordará uma forma de obter informações privilegiadas seguindo os procedimentos forense de preservar, coletar e analisar dados, nesse caso a MEMÓRIA RAM, que é fundamental para auxiliar e armazenar as informações de um dispositivo.
É um assunto que está em evidência no meio forense devido à complexidade dos novos crimes. Os profissionais de segurança da informação estão tendo dificuldades em proteger seus dados, os ataques estão cada vez mais evoluídos. Por ser um assunto muito específico existem poucos autores que compartilham seus conhecimentos e experiências sobre o assunto, o que contribui para a grande vulnerabilidade em que vivemos. No Estado do Amazonas, tem ocorrido crismes em todas as esferas, os órgãos de fiscalização registram a cada dia uma nova ameaça, para ajudar a desvendar uma ação ilícita as informações do DUMP de MEMÓRIA são fundamentais para a análise do que está acontecendo naquele exato momento nos dispositivos apreendidos, podendo trazer informações privilegiadas como senhas, serviços que estão ativos e até computadores que estão conectados no dispositivo. As técnicas forenses são desconhecidas pelos usuários básicos, os quais usam seus dispositivos como ferramentas nas suas atividades diárias, sem saber que podem se prejudicar e no caso de cometer alguma ação ilícita, poderão ser facilmente descobertos pela análise do dispositivo utilizado. Os profissionais que trabalham desvendando crimes virtuais, as vezes desprezam as informações contidas na MEMORIA RAM por falta de conhecimento técnico. Essa coleta exige conhecimentos, ferramentas e principalmente técnicas avançadas. Neste artigo serão analisadas as etapas de um processo investigativo de forma geral, método esse, usado pelos Procedimentos Operacionais Padrão – POPs. Para exemplificar essas etapas, mostraremos como obter os dados para comparação e análise do resultado de uma simples coleta.
Conforme ELEUTÉRIO e MACHADO (2011), "Crimes sempre deixam vestígios!", ou seja, através da análise do DUMP de memória existem formas de coletar informações mesmo que sejam apagadas, essa técnica ajuda a desvendar que tipo de informação está em processamento ou foram processadas em determinado dispositivo. Na prática apresenta-se três etapas: preservar, coletar e analisar as informações dessa memória.
Segundo TANENBAUM (2006), a memória é o segundo principal componente em qualquer computador ou dispositivo de processamento. Para acelerar o sistema no processamento das informações, os desenvolvedores necessitam cada vez mais de equipamentos robustos e capazes de alta performance.
Na computação existem vários mecanismos de armazenamento de informações, quer sejam trafegadas na rede ou geradas pelo usuário, como fotos, mensagens, logs de conexões e etc, sendo para uso legal ou ilícito, dependendo de quem as obtém. Neste sentido, a perícia forense computacional é utilizada para análise dos vestígios digitais dos dispositivos utilizados.
Embora cada processo seja uma entidade independente, com o seu próprio contador de programa e estado interno, muitas das vezes os processos precisam interagir com outros. Um processo pode gerar uma saída que outro processo pode usar como entrada. (TANENBAUM, 2009:54).
Para a realização de perícias virtuais é necessário o uso de técnicas, equipamentos e softwares forenses utilizados por profissionais aptos da área, assim, nenhum dado será alterado, além de manter a preservação das informações que auxiliaram na elaboração do laudo e ainda garante a validade da prova.
A computação forense tem como objetivo principal determinar a dinâmica, a materialidade e a autoria do ilícito ligado à área de informática, tendo como questão principal a identificação e o processamento de evidências digitais em provas materiais de crime, por meio de métodos técnicos-científicos, conferindo-lhe validade probatória em juízo. (ELEUTÉRIO e MACHADO, 2011:16).
Para análise das informações coletadas do DUMP DE MEMÓRIA, foram usadas ferramentas específicas, as quais exigem conhecimentos avançados e experiência que asseguram a validade dos dados extraídos.
No computador existem vários tipos de memória, este artigo abordará sobre memória RAM – Memória de Acesso Aleatório, é considera a memória principal do computador, realiza um tipo de armazenamento que faz com que seja possível acessar dados rapidamente em ordem aleatória, contém informações sobre o sistema operacional e todo os processos que são ou serão executados. Pode conter senhas e informações em texto plano que estão cifradas no disco.
3. Ferramentas necessárias para Preservação, Coleta e Análise dos dados.
As ferramentas utilizadas para a realização de perícia forense são as mais modernas e complexas devido a quantidade de funções que auxiliam na extração das informações dos dispositivos, que podem armazenar evidências das atividades ilícitas realizadas como lavagem de dinheiro, crimes virtuais, pornografia infantil, estupro, homicídio, entre outros.
Existem uma infinidade de ferramentas, sempre em aprimoramento para acompanhar a evolução da tecnologia e consequentemente dos crimes que tem seu nível cada vez mais elevado, fazendo com que os peritos dispunham de métodos e técnicas eficazes na busca das evidências.
Alguns peritos fazem uso de softwares proprietários ou open source de interface mais elaborada para obtenção de dados, que permitem monitorar as mudanças no sistema de arquivos, centralizar os logs, identificar rootkits e mostrar o registro de conexões. Como exemplo citaremos duas, a RamCapture e a Volatility para análise do DUMP DE MÉMORIA.
3.1 Preservação
No caso da Memória RAM, a preservação, autenticidade e integridade do arquivo, são feitos através de algoritmos que são considerados seguros, mantendo a integridade do arquivo, possibilitando analises futuras por questionamento.
O Hash é a principal mecanismo para verificar a integridade de um arquivo ou mídia através de algoritmo que mapeia os dados de comprimento para os dados de comprimento fixo.
Conforme ELEUTÉRIO E MACHADO (2011), essas funções geram, a partir de uma entrada de qualquer tamanho, uma saída de tamanho fixo. Ou seja, é calculado uma grande quantidade de informações em pequenas sequencias de bits (hash), de forma que não é possível realizar alteração nas informações originais a partir do valor do hash, considerada por especialista uma grande aplicação em algoritmo criptografado.
Figura 1 – Exemplo de geração do hash de um arquivo, sendo impossível reversão pelo caminho contrário.
Para ilustrar, segue o Hash da senha do usuário analisado nesse artigo.
Figura 2 – Exemplo de HASH
3.1.2 MD5
É uma função HASH criptografada, utilizada em aplicações ligada a segurança, principalmente para calcular as informações de um arquivo dando a elas integridade, gerando um código criptografado de 128bits, qualquer alteração nesse arquivo automaticamente o HASH será modificado, perdendo totalmente a integridade do arquivo.
Por ser uma função de muita velocidade, torna-se fácil desvendar as senhas armazenadas nos bancos de dados, já que os computadores atuais possuem performance de supercomputador, ou seja, poderá descobrir milhões de senhas em poucos segundos, tornando-se inviável seu uso para essa aplicação.
3.1.3 SHA-1
São funções HASH criptografadas em 160bits, usadas na validação de integridade de um arquivo, sem esses algoritmos seria difícil realizar a autenticação digital. Em decorrência do aprimoramento da capacidade de cálculo dos computadores, esse algoritmo se tornou ultrapassado, sendo substituído pelo SHA-2 que apresenta criptografia em vários tamanhos de 224 a 512 bits, aumentando a segurança e a inviolabilidade. Logo será substituído pelo SHA-3. Um detalhe importante dessas funções é a impossibilidade de se encontrar dois valores de entrada diferentes que tenham como resultado a mesma saída.
É o principal procedimento do processo, qualquer erro poderá comprometer o arquivo, no caso da memória RAM, é impossível retirar o componente para ser analisado. Com o uso de uma ferramenta chamada RamCapture.exe, é possível extrair todas as informações que estão em processamento. Essa ferramenta é usada por muitos profissionais, devido ao detalhamento das informações extraídas da memória.
3.3. Analise dos Dados.
3.3.1 Volatility
Segundo o fabricante, é a principal ferramenta para análise de DUMP de Memória RAM. A primeira versão surgiu em 2007, sendo baseada em anos de pesquisas, análise de memória avançada e forense. Antes disso os peritos buscavam evidências apenas nos discos rígidos, não tendo acesso às informações extremamente relevantes para as investigações. Com a disponibilização desta ferramenta open source, foram ampliadas as possibilidades de investigação, permitindo extrair evidências privilegiadas da memória.
Atualmente, a memória volátil está sendo evidenciada nas conferências acadêmicas e nas principais investigações, tornando-se uma ferramenta indispensável na aplicação da lei. A Ferramenta teve sua última versão 2.5 lançada em outubro de 2015, permitindo o uso nos sistemas operacionais Windows 10, Linux 4.2.3, e Mac OS X, além de possibilitar ao profissional a opção de extrair os resultados para vários formatos como: HTML, SQLite, Xlsx, txt e etc, possui vários plugins (comandos) de coleta de informação da memória, neste artigo, cita-se alguns deles, que são específicos e fundamentais para uma investigação forense.
3.3.1.1 Comando IMAGEINFO
Comando para obtenção de informações de alto nível sobre a imagem, sugere a identificação do sistema operacional (perfil), service pack, arquitetura de hardware, endereço de memória e a hora da coleta.
Sem sabemos a versão do sistema instalado no dispositivo é impossível a coleta da informação desejada. Ressalta-se que podem haver mais de uma sugestão de perfil quando eles estão relacionados, cabendo ao perito identificar o correto.
Figura 3 – Identificação do Sistema Operacional
A figura 3 mostra a versão dos possíveis sistemas operacionais coletados pelo profissional, informando também o caminho do arquivo, o número de processos, o endereço do KDBG e do KPCR e ainda a data, hora e fuso horário da coleta e do local da imagem.
3.3.1.2 Plugin KDBGSCAN
Antes de iniciar qualquer procedimento, é importante identificar a versão correta que será analisada.
Usando o plugin KDBGSCAN pode-se identificar a versão correta do perfil, com maior probabilidade de acerto, pois como citamos anteriormente, é impossível a coleta das informações sem a versão exata do perfil. Este plugin realiza uma análise nas assinaturas do KDBGHeader aplicando uma verificação de falso positivo.
Figura 4 – Identificação correta do Sistema Operacional
A figura 4 mostra a versão do sistema operacional que é o Windows 7 Service Pack 1, arquitetura x86 (32 bits) e também mostra 38 processos e 140 módulos em execução na memória.
3.3.1.3 Plugin PSLIST
Plugin para verificação dos processos em execução no momento da captura da imagem. Mostra detalhes do processo como o nome, identificação, ID do processo pai, número de linhas e identificadores, deslocamento e data, hora do início e saída do processo. Ressalta-se que este plugin não detecta os processos ocultos.
Figura 5 – Identificação dos processos
A figura 5 mostra a lista de processos, identificação do processo pai, threads (microprocessos dentro de um processo), data, hora e fuso horário dos processos.
Destacam-se 3 processos que foram executados para coleta das informações, onde observar-se o comando cmd.exe com 23 threads, o segundo com 19 threads e o ramcpture.exe com 67 threads. Esses microprocessos são importantes para a performance do dispositivo, segundo TUNENBAUM (2009), a principal razão para existirem threads é que em muitas aplicações ocorrem múltiplas atividades ao mesmo tempo.
3.3.1.4 Plugin PSTREE
Plugin utilizado para visualizar a lista de processo em árvore hierárquica desde a inicialização do sistema. Faz uso da mesma técnica do plugin PSLIST, assim também não mostra os processos ocultos.
Figura 6 – Identificação dos processos em árvore
A figura 6 mostra a árvore dos processos, a quantidade de threads e a hora. É importante analisar a árvore para verificar se o que está sendo executado é realmente do processo pai, assim identifica-se se a máquina está executando processos ilícitos para coleta de informações como dados bancários, senhas, documentos confidenciais e outros.
3.3.1.5 Plugin DLLLIST
Usado para buscar as DLLs carregadas de um processo ou que estão armazenadas na biblioteca. Informa ainda em que condição a DLL foi carregada, se como resultado de um arquivo exe ou tabela de importação de outro DLL, ou seja, se executada estaticamente ou dinamicamente.
Figura 7 – Identificação das DLLs necessárias para execução do comando CMD
Figura 8 – Identificação das DLLs necessárias para execução do comando RamCapture
As figuras 7 e 8 mostram as DLLs necessárias para a execução das duas aplicações. Observa-se que a figura 7 mostra apenas 12 DLLs para a execução do comando cmd.exe, enquanto a figura 8 mostra 22 DLLs para o comando RamCapture.exe. Permitindo verificar as aplicações com as portas abertas do sistema operacional.
3.3.1.6 Plugin GETSIDS
Usado para exibir os processos associados ao usuário com os seus privilégios, ajudando a identificar se um processo malicioso está sendo executado com privilégios indevidos.
Figura 9 – Identificação do processo e usuários
A figura 9 identifica os processos relacionados aos usuários. Observa-se a execução das 2 aplicações, cmd.exe e ramcapture.exe, ambas executadas pelo perfil de administrador, destacando o comando cmd.exe com nível médio e o ramcapture.exe com nível alto.
3.3.1.7 Plugin CMDSCAN
Utilizado para buscar histórico dos comandos executados na janela do cmd.exe. No Windows 7 os atacantes usam essa oportunidade, considerada a mais poderosa, para coleta de informações ilícitas nos dispositivos de um alvo.
Figura 10 – Identificação dos comandos executados
A figura 10 mostra os comandos que foram executados, identificando o nome do processo, nome do aplicativo, a localização dos buffers incluindo a contagem do último adicionado e do último exibido, e também a quantidade de comandos máximo que podem ser armazenados, que no caso desse laboratório são no máximo 50 processos, realizando alguns ajustes no registro do sistema operacional Windows, especificamente na chave de registro HKCU\Console\HistoryBufferSize.
3.3.1.8 Plugin CONSOLES
Utilizado para buscar o histórico dos comandos executados na janela do cmd.exe. A principal vantagem é visualizar os comandos digitados reconhecendo o buffer da tela inteira, ou seja, verifica exatamente o resultado que foi exibido na tela, além disso mostra o título da janela original e o título da janela do console atual, nome e PID de processos anexados.
Figura 11 – Histórico dos comandos executados
A figura 11 mostra o resultado na tela exatamente como foi visualizado, pode-se identificar no comando cmd.exe que foram realizados vários erros de comandos como vol e clear, comandos esses que são usados em outros sistemas operacionais, exibindo as coordenadas da tela do console.
3.3.1.9 Plugin IEHISTORY
Usado para remontar o histórico do Internet Explorer, importante comando para auxiliar uma investigação já que será possível analisar a atividade de internet do usuário, possibilitando a identificação de arquivos baixados.
Figura 12 – Histórico de acessos
Na figura 12 é possível identificar os acessos que foram realizados a partir dessa máquina, inclusive mostra que um arquivo com extensão pdf foi visualizado, informando a data e hora do acesso e da modificação, mostra ainda que foi acessado um site de notícia. Esse plugin é de extrema importância na busca de evidências em uma investigação forense, como na investigação de um caso de pedofilia. São informações privilegiadas onde analisando o disco possivelmente essa informação poderia ser despercebida pelo profissional, devido a softwares que criptografam os acessos.
3.3.1.10 Plugin CONNECTION
Esse plugin visualiza as conexões de rede estabelecidas e ativas no momento em que foram coletas as informações, listando isoladamente as aplicações que usam essas conexões. Está disponível apenas para as distribuições do Windows XP e Windows 2003 Server, não sendo suportada pelas novas distribuições. Neste laboratório não foi possível extrair as informações por meio desse plugin devido a incompatibilidade da distribuição, podendo ser usado outros comandos de captura de informação como o NETSTAT do próprio sistema operacional Windows 7.
3.3.1.11 Plugin NETSCAN
Usando para verificar artefatos de rede 32 e 64 bits do Windows Vista, Windows 7 e Windows 2008 Server, encontra endpoints TCP e UDP e ouvintes TCP e UDP, separando o que é IPv4 e IPv6. Identifica se o processo foi solicitado pela aplicação.
Figura 13 – Histórico de Conexões
Na figura 13, mostra como é possível identificar se aplicação solicitou aquele tipo de conexão, como data, hora e um item principal considerado pelos profissionais, o status das conexões. Identifica-se uma conexão fechada com o ip 200.160.97.139:80, ou seja, o iexplore.exe, fechou a conexão com a porta 80. Verificando o protocolo IPv6, observa-se a existência de uma conexão estabelecida, considerada suspeita. Consultando a localização dos IPs através de sites específicos, identificou-se que o IP em destaque pertence a empresa NET SERVIÇOS DE COMUNICAÇÃO S.A., ou seja, a operadora de fornecimento de acesso à internet.
3.3.1.12 Plugin TIMELINER
Usando para verificar o cronograma do que está ocorrendo na memória, podendo analisar desde do início até fim do processo, inclusive se ocorreu algum desvio de informações do dispositivo.
Figura 14 – Histórico de Conexões
A figura 14, mostra o caminho do comando RAMCAPTURE.EXE, PID, Offset, data e hora da execução, são informações relevantes para verificar todos os passos do comando, inclusive se teve alguma alteração na chave do registro do sistema operacional.
Na computação forense, são informações que ajudariam na solução de um caso, nesse laboratório, durante a análise dos comandos CMD.EXE e RAMCAPTURE.EXE, seriam facilmente identificadas todas as atividades necessárias para execução de uma determinada tarefa.
O plugin é considerado o mais completo para investigação dos processos, informando detalhes relevantes como a entrada e saída.
3.3.1.13 Plugin HIVELIST
Figura 15 – Histórico de Conexões
A figura 15, mostra a lista de entradas no registro do Windows em memória RAM, a partir da informação virtual e física, é possível obter o HASH de password de usuário.
3.3.1.14 Plugin HASHDUMP
Figura 16 – HASH da senha do usuário
A figura 16, mostra a nome do usuário e o HASH da senha, de posse dessa informação a senha do usuário será facilmente desvendada com uma ferramenta chamada HASHCAT.
3.3.1.15 Plugin SHELLBAGS
Usado para mostrar o conjunto de chaves do registro do sistema operacional, necessário para rastrear as janelas do usuário. Essas chaves contêm informações importantes, para uma investigação forense, o que ajudaria a identificar os registros em disco, tipos de dados usados para descobrir valores de registros binários e valores que indicam relações entre chaves.
Figura 17 – Pastas compartilhadas
A figura 17, mostra os registros, chaves e a última atualização registrada no sistema operacional e também as pastas compartilhadas, de posse do usuário e senha, seria fácil armazenar informações nesse dispositivo.
Figura 18 – Pastas e Volumes disponíveis
A figura 18, mostra o registro das pastas disponíveis, chave e a última atualização registrada no sistema operacional, nome de cada pasta e os volumes disponíveis mesmo que tenham sido excluídos do sistema de arquivo.
3.3.2 Ferramenta HASHCAT
Segundo Vieira, é considerado o programa para quebra de senha mais rápido para esta ação, utilizando a performance da placa de vídeo aumentando a velocidade de processamento, podendo suportar 5 tipos de ataques por mais de 160 algoritmos otimizados.
Este artigo foi bem ilustrado para ajudar quem busca esse tipo de conhecimento, já que há pouco material disponível para consulta. As técnicas de coleta de dados abordadas neste artigo servem para identificar ações realizadas na memória volátil do dispositivo (Computadores, Notebooks e Servidores de dados). Com a coleta de informação da memória RAM, foi possível obter informações privilegiadas, na qual a área forense vem tornando a principal técnica para ajudar nas investigações em busca de evidências.
Com o aumento da capacidade de armazenamento da memória RAM, esta vem se tornando o principal alvo dos atacantes, que buscam desenvolver técnicas mais complexas para coletar dados sem que os usuários percebam e sem deixar rastros.
Conforme CARMONA (2005), o sucesso das técnicas de invasão do mundo hacker é devido as vulnerabilidades no funcionamento dos equipamentos ou rede como portas abertas, sistema operacional utilizado, software vulneráveis, que permitem identificar contas de usuários e senhas de acessos.
As técnicas de criação de Malwares estão cada vez mais indecifráveis, podendo ser um simples script ou até um software com código embutido sendo executado com apenas um click, por mais elaborado que seja o ataque ficará registrado. Para os usuários são imperceptíveis os danos causados ao computador. Com as técnicas abordadas é possível identificar o início, rastro e fim do processo, mostrando uma quantidade de informações e evidências que poderiam servir como prova para completar na emissão de um laudo.
É interessando ressaltar, que a memória volátil, após a interrupção de energia, automaticamente é apagada, ou seja, impossível a recuperação de informações tão detalhadas como exemplifica este artigo, apresentando o início, data, hora, local, endereço da memória, de um processo, uma infinidade de informações a serem analisadas.
Para garantir a veracidade da imagem da Memória RAM, o HASH é a principal garantia, se caso o profissional não armazenar o código essa prova será questionada, impossibilitada de ser juntada no processo.
A duas ferramentas usadas neste artigo são open source, as quais demandam total conhecimento do seu uso, são tão poderosas que interpretam os pulsos elétricos de uma forma organizada trazendo o conteúdo de forma entendível.
Componente conectado na placa mãe do computado, dependo do tamanho, o processo demora horas, no caso desse laboratoria o tamanho é de apenas 512K, considerado pelos usuários insuficientes para usar os programas atuais.
Com alguns plugins da ferramenta Volatility foi possível obter dados confiáveis para auxiliar na emissão de um laudo pericial, com informações precisas das atividades realizadas no dispositivo periciado. Ressalta-se que o conhecimento técnico é fundamental para uso dessa ferramenta, evitando a interpretação de informações equivocadas que podem gerar falsas acusações.
CARMONA, Tadeu. Segredo da Espionagem Digital. São Paulo : Digerati Books, 2005
ELEUTÉRIO, Pedro Monteiro da Silva e MACHADO, Marcio Pereira. Desvendando a Computação Forense. São Paulo : Novatec Editora, 2011
Fundação Volatility. Disponível em: <http://www.volatilityfoundation.org>. Acessado em 10 de outubro de 2016.
TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3. Ed. São Paulo: Pearson Prentice Hall, 2009.
STALLINGS, William. Arquitetura e Organização de Computadores. 8. Ed. São Paulo: Pearson Prentice Hall, 2010.
Vieira, Luiz – HASHCAT – O Mais Rápido Programa Para Quebra de Senhas Utilizando CPU. Disponível em: <hackproofing.blogspot.com.br/2013/11/hashcat-o-mais-rápido-programa-para.html>. Acessado em 14 de outubro de 2016.