Por que eu devo ler este artigo:Este artigo apresenta as ferramentas da empresa Mandiant: Memoryze e Redline, em um estudo de caso aonde podemos empregar suas funcionalidades para compreender melhor as atividades em execução dentro da memória de um computador. Neste estudo considera-se um cenário hipotético, onde há suspeita de infecção por um malware desconhecido em um computador e provoca danos e lentidão em toda a rede. O objetivo é analisar os processos desta estação de trabalho em busca de sinais que possam endossar ou refutar a hipótese de infecção por malware neste host. Os pontos destacados neste artigo serão úteis para melhorar a compreensão de um perito em forense computacional quanto à importância e facilidade da análise de memória tanto para a validação de incidentes que possam comprometer a segurança computacional ou para melhor compreender os processos executados e registrados na memória do computador.

Na atualidade presenciamos o fato de que diversas empresas não atualizam os sistemas operacionais de suas estações de trabalho e servidores, assim como seus softwares, aplicativos, ferramentas e plug-ins. Esta ausência de aplicação das correções de segurança é aproveitada por diversos tipos de malwares (softwares que podem danificar, alterar ou furtar informações), que podem se instalar e comprometer o funcionamento de uma ou mais máquinas.

Uma vez que isso aconteça, qual decisão tomar? Formatar uma estação de trabalho comprometida pode resolver o problema, mas não permitirá que se identifiquem as causas deste incidente de segurança, impossibilitando que se desenvolva uma compreensão deste e que lições possam ser aprendidas para evitar um problema futuro no ambiente. Existem soluções mais recomendadas para este tipo de problema do ponto de vista de segurança, e uma delas é identificar e isolar a máquina que está infectada, visando diminuir o impacto causado na rede.

Por si só um software antivírus apenas é eficiente caso o seu banco de dados esteja atualizado e em execução. Entretanto, é sabido que estas tecnologias possuem falhas e seus métodos não conseguem identificar plenamente os softwares maliciosos. Uma alternativa para contornar essa limitação é analisar a memória do computador em busca de comportamentos suspeitos que forneçam indícios de atividade maliciosa.

Para executar esta ação é necessário capturar uma “imagem” da memória da máquina. Essa “fotografia” da memória em um dado momento do tempo é um item essencial para compreender as atividades de um computador, esclarecendo dúvidas em relação a atividades suspeitas dentro de um host ou na rede.

Quando dizemos atividades suspeitas dentro de um computador, nos referimos a comportamentos incomuns e muitas vezes indesejados em um sistema, como um download de um programa sem a autorização do usuário ou o desligamento do sistema de firewall pessoal do PC. Na prática essas atividades ocorrem através dos programas executados no computador, que alocam os recursos computacionais e do sistema operacional para conseguir fazer suas ações. Quando em execução, esses aplicativos são conhecidos como processos.

Os processos, no contexto computacional, representam as tarefas em execução, mas nem todas têm relação direta com algum aplicativo em uso no sistema. Muitos dos processos funcionam em background, isto é, não interagem diretamente com o usuário. Estes processos mantêm o sistema trabalhando devidamente e efetuam a gestão dos recursos deste, como o acesso a rede, a memória, o uso do disco rígido, a proteção do software de antivírus, etc. Simplificando, podemos definir os processos como softwares que executam alguma ação e que podem ser controlados de alguma maneira, seja pelo usuário, pelo aplicativo correspondente ou pelo sistema operacional.

Estes processos estão presentes na memória e analisá-los nos permite compreender o que está ocorrendo no computador em um dado momento do tempo. Para tal, é necessário obter o conteúdo da memória RAM do computador, processo que chamamos de aquisição da memória. A aquisição da memória possibilita a extração da lista dos processos em execução no computador. Além de extraí-los, existem softwares no mercado que conseguem investigar as atividades correntes e atribuir-lhes uma classificação conforme seu potencial de execução de atividades maliciosas, exibindo a origem destes processos no sistema operacional e os arquivos e registros que interagem com eles no sistema.

Para executar a atividade de análise da memória, abordaremos duas ferramentas gratuitas desenvolvidas pela Mandiant que executam os processos de aquisição e análise forense da memória. Uma delas é o Memoryze, ferramenta leve e muito eficiente, cujos resultados por ele coletados podem ser visualizados com mais clareza e alto nível de detalhes em outro software da Mandiant, o Redlimne. Este software, além de visualizar resultados coletados pelas ferramentas do Memoryze, desempenha outras funções de análise forense, como a detecção de sinais de atividades maliciosas através da memória e em arquivos, criando um perfil de ameaças existentes dentro de um host.

Este artigo abordará ambas as ferramentas, dando enfoque no componente de análise de processos do Memoryze e nas funções de análise de processos do Redline. A seguir detalharemos um caso hipotético no qual as duas ferramentas podem trabalhar em conjunto para obter respostas a quesitos de perícia computacional.

Cenário pericial

Depois de observarem um aumento repentino no tráfego de rede e uma grande lentidão na rede corporativa de uma empresa, é decidido que esta condição deve ser mais bem investigada para que se descubra a razão deste incidente, atribuído pelos administradores de TI à presença de algum malware, visto que o aumento da latência de rede pode ser fruto da atividade de um worm de rede. Deste modo, um perito é chamado para investigar o incidente e se reúne com a equipe de TI para entender o cenário e o escopo da perícia.

Após se contextualizar do ocorrido e conversar com os administradores da TI da empresa, o perito percebe que algumas estações de trabalho funcionam com o sistema operacional Windows XP e que ele se encontra desatualizado, o que possibilita que malwares possam explorar com maior facilidade a segurança do sistema.

Visando encontrar processos suspeitos na máquina, o perito começa a isolar a estação de trabalho suspeita. Após o isolamento, o perito se propõe a iniciar uma varredura com o Memoryze instalado em seu pendrive. Ele irá executar o script batch Process.bat (que será comentado posteriormente neste artigo) para coletar informações sobre os processos que estão em execução no sistema e posteriormente irá executar o Redline instalado em seu notebook, importar estas informações coletadas pelo Memoryze e analisar os resultados para gerar um relatório e validar se o computador realmente se encontra infectado.

Mandiant Memoryze

Para iniciar a resposta ao incidente vamos utilizar o Memoryze. Esta ferramenta se destina a adquirir o conteúdo da memória RAM de um computador através dos seus scripts, que podem relacionar e classificar todos os processos em execução, drivers e ganchos ou hooks (código que manipula chamadas de funções, mensagens ou eventos interceptados), que estão presentes na memória da máquina analisada.

Segundo o próprio site da desenvolvedora, o Memoryze consegue coletar as seguintes informações:

· Os handles – estrutura relacionada aos recursos do sistema operacional;

· Todas as bibliotecas DLLs utilizadas por cada processo contido na memória;

· Listagem dos sockets de rede abertos, identificando as conexões de rede abertas por cada processo;

· Funções importadas e exportadas por cada arquivo executável;

· Assinaturas digitais dos arquivos utilizadas por cada processo.

Além disto, a ferramenta consegue listar os componentes carregados no kernel do sistema operacional e os drivers de sistema que se encontram em execução. É importante salientar que diversos rootkits (ver BOX 1) se mascaram como drivers para se ocultar das ferramentas de segurança existentes no sistema operacional.

BOX 1. Rootkits

Um rootkit é um software malicioso que busca se esconder de softwares de segurança e do usuário utilizando diversas técnicas avançadas de programação. Rootkits camuflam a sua presença no sistema escondendo suas chaves no registro e escondendo os seus processos no Gerenciador de Tarefas, além de retornar sempre erros de “arquivo inexistente” ao tentar acessar os seus arquivos. Os rootkits mais sofisticados são de difícil remoção do sistema.

O Mandiant Memoryze pode ser instalado na máquina ou pode ser executado via dispositivo USB, de maneira que as análises possam ser feitas de forma menos intrusiva, dispensando a necessidade de instalação. Esta é uma abordagem menos invasiva no sistema alvo e visa não comprometer a integridade das evidências colhidas no sistema alvo. Este será o método que adotaremos para o caso abordado em breve.

Para utilizar a ferramenta adequadamente, devemos conhecer sua estrutura e funcionalidades. A estrutura do Mandiant Memoryze é composta por diversos scripts executáveis em formato .bat. São eles:

· MemoryDD.bat: Captura uma imagem da memória física;

· Process.bat: Enumera todas as informações sobre um processo específico, como memória virtual, portas de rede, handles e strings;

· ProcessDD.bat: Captura o conteúdo dos espaços de endereçamento de cada processo em execução na memória;

· DriverSearch.bat: Busca por drivers na memória analisada;

· DriverDD.bat: Captura a imagem de um driver específico;

· DriverWalkList.bat: Classifica todos os módulos e drivers numa lista;

· HookDetection: Busca hooks no sistema operacional.

Conhecendo a estrutura e as características básicas da ferramenta, deve-se configurar a mídia removível para executar os scripts .bat no sistema alvo da perícia. Para executar o Mandiant Memoryze via dispositivo USB, é necessário realizar o download do setup e seguir as instruções no guia de usuário para isto.

A instalação do Memoryze em um dispositivo USB necessita de um comando que deve ser digitado no prompt de comando do Windows para instalar a ferramenta com sucesso. Vale lembrar que a instalação não deve ser feita na máquina a ser periciada e sim em um computador apartado e confiável, de preferência uma máquina de uso restrito do perito computacional para evitar possíveis interferências no processo de criação da mídia.

Para instalar o Memoryze no dispositivo USB, devem ser realizadas as seguintes instruções:

1. Primeiramente, executar o prompt de comando e navegar até a pasta onde se encontra o setup da ferramenta. Utilize o comando cd para concluir esta tarefa;

2. Na pasta onde se encontra o setup do Memoryze (neste exemplo, a pasta Meus Documentos), utilizar o comando: Msiexec /a MemoryzeSetup3.0.msi /qb TARGETDIR= letra correspondente à mídia removível.

Um exemplo do comando de instalação em uma unidade USB seria: Msiexec /a MemoryzeSetup3.0.msi /qb TARGETDIR=E:\Mandiant, onde especificamos que o arquivo a ser instalado é o MemoryzeSetup3.0.msi e o diretório de destino é o E:\Mandiant. Neste caso a nossa unidade USB está montada no sistema operacional com a letra E:\.

Após instalarmos os arquivos do Memoryze no dispositivo USB, as seguintes pastas contendo os arquivos .bat estarão disponíveis:

· x64 – contendo os executáveis para sistemas de 64 bits;

· x86 – contendo os executáveis para sistemas de 32 bits.

Executando o Memoryze no host alvo

Com a ferramenta Memoryze instalada de forma portátil no pen drive e pronta para ser executada, devemos inserir a mídia no host com suspeita de comprometimento por malware. O objetivo é tentar descobrir o porquê do aumento de tráfego ocasionado na rede através da análise do conteúdo da memória do computador, em particular dos processos ativos no sistema. Esta informação pode ajudar na detecção de softwares maliciosos que não são detectados pelos antivírus, mas que reconhecidamente causam problemas no sistema.

Para executar o script de coleta de processos, devemos navegar até o diretório do pen drive aonde instalamos o Memoryze e acessar a pasta x86 (o sistema alvo em nosso caso é de arquitetura 32 bits). Lá executamos o script Process.bat, clicando duas vezes sobre ele.

Após a execução, será criada uma pasta denominada Audits, que armazenará todos os resultados da execução da ferramenta. Estes arquivos serão posteriormente submetidos a análise no Redline, que possui uma série de assinaturas e identificadores de processos indesejados.

Conforme citado, dentro dessa pasta (Audits) ficam armazenados os resultados de cada análise realizada pelos scripts .bat do Memoryze. Os arquivos resultantes estão em formato XML. A seguir há um exemplo de saída da ferramenta após analisar um Windows XP:

· BatchResults.xml: contém informações do comando utilizado na execução do Memoryze e as informações dos parâmetros de execução, assim como o nome do arquivo principal que contém os resultados da análise;

· Issues.BatchResults.xml: armazena as informações relativas à estrutura do XML;

· issues.mir.w32processes-memory.083a0b33.xml: contém mensagens que podem indicar erros no funcionamento do Memoryze. O conteúdo deste arquivo é útil para fins de depuração e podem ajudar na identificação de problemas na execução da ferramenta;

· mir.w32processes-memory.083a0b33.xml: é o arquivo com as informações mais relevantes para análise, pois contém os resultados da execução do Memoryze.

Após executar o Memoryze e obter os resultados, iremos discorrer sobre a ferramenta Redline, utilizando suas funções para analisar os arquivos que acabamos de coletar.

Mandiant Redline

O Mandiant Redline, assim como o Memoryze, também pode ser adquirido de forma gratuita através do endereço indicado na seção Links. No caso que estamos abordando, utilizaremos o Redline para visualizar os resultados dos testes executados com o Memoryze, porém o Redline também é capaz de realizar varreduras mais simples, completas ou diretamente nos diretórios suspeitos.

Com toda essa capacidade, esta ferramenta acaba sendo mais invasiva no host suspeito, podendo influenciar na qualidade da evidência ao ocupar um maior espaço na memória e acessar uma maior quantidade de recursos da máquina alvo.

Com uma interface amigável e de fácil navegação, o Mandiant Redline apresenta para o analista, de forma muito simples, os resultados dos testes coletados via Memoryze, permitindo realizar a filtragem das informações que serão analisadas. Seu processo de instalação é bastante simples, como o processo de instalação de qualquer outro software, não sendo necessário, por isso, sua apresentação de forma detalhada. Ao finalizar a instalação com sucesso, uma tela será exibida. Neste ponto basta clicar apenas em Close e o Redline será inicializado. A Figura 1 apresenta a tela inicial do Redline.

Figura 1. Tela inicial do Redline.

Para realizar a análise dos dados colhidos com o Memoryze, escolha a opção From a Collector dentro da seção Analyze Data. Feito isso, uma tela como a da Figura 2 deverá aparecer para que os arquivos sejam carregados no Redline.

abrir imagem em nova janela

Figura 2. Buscando o local dos arquivos referentes à auditoria feita pelo Memoryze.

Como visto na Figura 2, no campo Audit Location, que está destacado em vermelho, deve-se especificar o caminho para a pasta Audit. Esta pasta é aquela que foi criada automaticamente quando executamos o Memoryze e é nela que ficam os resultados da análise realizada anteriormente, em arquivos XML. Devemos então encontrar esta pasta dentro de nosso dispositivo USB, que foi onde instalamos o Memoryze, e selecioná-la como objeto de análise. Após a seleção da pasta, apenas clique em Next.

Em seguida o Redline solicita que seja selecionada uma pasta de destino (que esteja vazia) para salvar o resultado da análise. Este arquivo é gerado num formato específico da ferramenta (.mans).

Após a geração do arquivo, podemos carregá-lo pelo Redline. Dentro da ferramenta, logo abaixo da opção Start Your Investigation, aparecem cinco opções com os seus respectivos descritivos, como mostra a Figura 3. Dependendo de cada contexto investigativo, uma das opções se adapta melhor conforme a necessidade da perícia em questão. A seguir explicamos sucintamente cada uma delas:

· I am Reviewing a Triage Collection from MSO – Analisa o arquivo de forma integrada com outra solução da Mandiant, o MSO, que coleta informações de um host suspeito para serem analisadas pelo Redline;

· I am Investigating a Host Based on an External Investigative Lead – É a análise padrão dos arquivos de auditoria da memória que coletamos. Com ela iremos analisar os arquivos XML em busca de conteúdo suspeito;

· I am Reviewing a Full Live Response or Memory Image – Opção usada para analisar uma imagem de memória focando no MRI (Malware Risk Index) dos processos. Ela gera uma classificação a partir dos MRI utilizando uma variedade de técnicas para avaliar o risco de um determinado processo ser considerado um software malicioso.

Processos com um MRI maior são mais propensos a serem maliciosos, enquanto um com classificação menor possui menor potencial. É possível observar um relatório do MRI de cada processo clicando duas vezes em um determinado processo e acessando a aba MRI Reports;

· I am Reviewing Web History Data – Analisa o histórico de navegação na Internet do computador. Ele pode ser coletado através do próprio Redline;

· I want to Search My Data With a Set of Indicators of Compromise – Opção para situações em que se deseja buscar por determinados IOCs (Indicadores de Comprometimento – ver BOX 2) dentro de uma série de dados escolhida pelo usuário.

BOX 2. Indicators of Compromise (IOC)

Os Indicadores de Comprometimento são artefatos forenses relacionados a uma intrusão computacional que podem ser identificados em um host ou na rede. Estes indicadores podem representar qualquer evento computacional suspeito, como um tráfego de rede anômalo, a criação de uma chave de registro ou a instalação de um programa indesejado no sistema.

abrir imagem em nova janela

Figura 3. Opções de investigação fornecidas pelo Redline.

Como estamos investigando um host externo que teve a memória coletada, devemos utilizar a opção “I am Investigating a Host Based on an External Investigative Lead”. Assim, clicando nessa opção, o Redline irá carregar as informações referentes aos processos que coletamos previamente com o Memoryze. Nesse momento veremos que o menu da esquerda poderá ser usado para exibir a hierarquia de processos e uma cronologia de utilização dos mesmos, isto é, a ordem em que eles foram executados e sua estruturação, onde podemos ver os relacionamentos entre eles. É possível visualizar a listagem de processos exibida pelo Redline na Figura 4.

abrir imagem em nova janela

Figura 4. Relatório apresentado pelo Redline referente aos processos em execução.

Se um processo reconhecidamente malicioso for encontrado (com MRI alto, conforme os algoritmos de cálculo da ferramenta), o Redline irá apontá-lo deixando um indicador vermelho, assinalando a presença de algo indesejado no sistema. A Figura 5 exibe um exemplo de processo svchost.exe suspeito, pois está sendo executado de um diretório diferente do seu padrão e com parâmetros incomuns.

Figura 5. Exemplo de relatório com um processo suspeito – svchost.exe.

Analisando os processos abertos é possível detectar dois processos incomuns: Cain.exe e ipscan-win32-3.1.exe. Embora a ferramenta não os tenha considerados nocivos, uma breve pesquisa na Internet os identifica como os executáveis de duas ferramentas:

· Cain&Abel, software que possui diversas funções para quebra de senha, oferecendo também funções de falsificação de pacotes que permitem a coleta de informações sensíveis que estiverem passando pela rede;

· Angry Ip Scanner, um scanner de rede que visa encontrar portas abertas e identificar os serviços de rede disponíveis dentro de uma rede ou host.

Ambas as ferramentas possuem capacidade de gerar um grande volume de tráfego na rede, resultando na degradação da performance desta e possíveis alertas das ferramentas de segurança existentes.

Com essa informação podemos descartar a infecção por um worm na rede, entretanto devemos nos atentar para estas ferramentas e avaliar o porquê da presença delas neste computador, documentando os resultados para mantermos o processo de resposta a incidentes devidamente atualizado com o registro de todos os incidentes de segurança.

Conclusões

Neste artigo, pudemos entender o processo de instalação e o funcionamento básico de duas ferramentas gratuitas que podem auxiliar em investigações de malwares e qualquer código ou aplicativo malicioso que esteja sendo executado (desta forma, utilizando a memória do recurso alvo), além de ajudar em manutenções preventivas ao fornecer um relatório com detalhes do uso de sua memória para que, com base neste, um usuário possa tomar medidas relacionadas aos arquivos e aplicativos que estejam requerendo muita memória, melhorando a performance do computador.

O Redline e o Memoryze são ferramentas simples e úteis, não tendo tantas opções e recursos como muitas outras do mercado, mas que fornecem bom desempenho nas tarefas que se comprometem a realizar. Dominar ambas as ferramentas irá agregar muito para o arsenal de um perito computacional, devido à facilidade e versatilidade destes aplicativos.

Como vimos neste artigo, a execução destes aplicativos é bastante simples e não necessita de conhecimentos avançados em informática ou perícia forense computacional para o uso de suas funcionalidades. Entretanto, seu uso não é uma bala de prata. Mesmo com diversas assinaturas para detecção de malwares, algo pode passar por este filtro e um pente fino deve ser feito para identificar anomalias e violações às políticas de segurança.

Durante uma resposta a incidentes em sistemas vivos, isto é, ligados e em operação dentro de um ambiente computacional, uma das informações mais críticas e voláteis se encontra na memória RAM. O dueto formado pelo Memoryze e pelo Redline viabiliza a coleta dessas informações de forma simples, permitindo capturar e analisar os detalhes do que estava acontecendo de fato no computador, possibilitando assim uma visão nítida dos processos para que a empresa consiga desenvolver uma melhor compreensão dos seus incidentes de segurança.

Links

Download da Ferramenta Memoryze
http://www.mandiant.com/resources/download/memoryze

Download da Ferramenta Redline
http://www.mandiant.com/resources/download/redline

Manual da Ferramenta Memoryze
https://dl.mandiant.com/EE/library/MemoryzeUserGuide.pdf

Verificação dos Processos do Windows – File Inspect Library
http://www.fileinspect.com/

Artigo sobre Rootkit
http://www.linhadefensiva.org/2005/03/rootkit

TecMundo - O que são processos de um sistema operacional e por que é importante saber
http://www.tecmundo.com.br/memoria/3197-o-que-sao-processos-de-um-
sistema-operacional-e-por-que-e-importante-saber.htm

Analisando volcados de memória: MANDIANT Memorize - NEOFITO
http://neosysforensics.blogspot.com.br/2008/12/analizando-
volcados-de-memoria-mandiant.html

Manual da Ferramenta Redline
https://dl.mandiant.com/EE/library/Redline1.10_UserGuide.pdf

Cain&Abel – Sniffer de Rede e Quebra de Senhas
http://www.oxid.it/cain.html

Angry IP Scanner – Scanner de Portas de Rede
http://angryip.org/w/Home