Análise de Malware em Forense Computacional

O objetivo desse artigo é explicar como funciona uma análise de malware em forense computacional. Esse artigo é o primeiro, que aborda a parte teórica, e em breve será publicada a segunda parte, com uma análise prática.

[ Hits: 31.696 ]

Por: Luiz Vieira em 04/05/2011 | Blog: http://hackproofing.blogspot.com/


Montagem de laboratório para análise



Em muitos casos, uma amostra pode ditar os parâmetros do ambiente do laboratório de malware, particularmente se o código exige diversos servidores para funcionar plenamente, ou pior, emprega código anti-virtualização para bloquear os esforços do investigador em observar o código em uma máquina virtual.

Usar virtualização é particularmente útil, principalmente durante a análise comportamental de uma amostra de códigos maliciosos, posto que a análise muitas vezes exige frequentes paradas e recomeços do programa malicioso em um esforço de observar as nuances do comportamento do mesmo.

Ao analisar um exemplar suspeito, podemos utilizar hosts no Virtual Box para criar a emulação de um sistema "infectado", um "servidor" e um "cliente" para fornecer todos os serviços de servidores e cliente necessários pelo malware, um sistema de "monitoramento" e de detecção de intrusão, para monitorar o tráfego da rede e do sistema vítima.

Idealmente, seremos capazes de controlar o sistema infectado localmente para reduzir a nossa necessidade de controlar múltiplos sistemas durante uma sessão de análise, mas amostras de malware na maioria das vezes são "consciente de segurança" e usam técnicas anti-forense, tais como a varredura dos nomes dos processos para identificar e finalizar as ferramentas de segurança conhecidas, como sniffers de rede, firewalls, software anti-vírus e outros aplicativos.

Antes de iniciarmos nossa análise da amostra de código malicioso, precisamos ter um "snapshot" do sistema que será usado como "vítima" na qual a amostra de código malicioso será executada. Da mesma forma, precisamos implementar uma ferramenta que nos permite comparar o estado do sistema após o código ser executado com o snapshot original do sistema.

Análise de arquivos suspeitos

Ao analisar um programa suspeito, há uma série de perguntas que o pesquisador deve considerar:
  • Qual é a natureza e a finalidade do programa?
  • Como funciona o programa para cumprir a sua finalidade?
  • Como funciona o programa ao interagir com o sistema vítima?
  • Como o programa interage com a rede?
  • O que o programa sugere sobre o nível de sofisticação do atacante?
  • Há um vetor de ataque identificável que o programa usa para infectar um hospedeiro?
  • Qual é a extensão da infecção ou comprometimento do sistema ou rede?

Em muitos casos, é difícil responder a todas estas perguntas, posto que peças-chave para o enigma, como arquivos ou recursos adicionais de rede utilizados pelo programa não estão mais disponíveis para o investigador. Entretanto, a metodologia, muitas vezes prepara o caminho para uma melhor compreensão global sobre o programa suspeito.

Ao trabalhar com este material, lembre-se que a "engenharia reversa" caem dentro das prescrições de determinadas leis internacionais, federais, estaduais ou locais. Da mesma forma, lembre-se também, que alguns dos instrumentos mencionados podem ser considerados "ferramentas hacker" em algumas jurisdições e estão sujeitas a regulamentações jurídicas semelhantes ou restrição de uso.

Diretrizes de exame de um programa malicioso

A metodologia utilizada neste capítulo é uma diretriz geral para fornecer um sentido mais claro das ferramentas e técnicas que podem ser usadas para examinar um binário malicioso no ambiente Linux. No entanto, com o número aparentemente interminável de amostras de códigos maliciosos sendo gerados por atacantes - muitas vezes com diferentes funções e finalidades - flexibilidade e adaptação da metodologia para atender as necessidades de cada caso, certamente será necessário.

Alguns dos preceitos básicos que vamos explorar incluem:
  • Estabelecer a linha de base do ambiente
  • Preparação pré-execução: monitoramento do sistema e da rede
  • Execução do binário suspeito
  • Observação do processo: monitoramento de bibliotecas e system calls
  • Avaliação do processo: análise dos processos em execução
  • Análise das portas abertas e conexões de rede
  • Análise de arquivos abertos e sockets
  • Exploração do diretório /proc
  • Quebra de ofuscação: remoção da proteção do malware
  • Ajustes de ambiente
  • Ganhando controle do malware
  • Interagindo e manipulando o malware
  • Explorando e verificando as funcionalidades do malware
  • Reconstrução de eventos: capturar tráfego de rede, integridade de arquivos e logs de IDS
  • Varredura de portas/vulnerabilidades do host comprometido
  • Verificação de rootkits

Página anterior    

Páginas do artigo
   1. Introdução
   2. Descoberta e coleta de malware
   3. Montagem de laboratório para análise
Outros artigos deste autor

Virtualização: VMware ou VirtualBox no Ubuntu 9.04 com kernel 2.6.29-11?

Cheops: uma ótima ferramenta de rede

Armitage: a nova interface gráfica do Metasploit

PNL para Hacking

Forense em Máquinas Virtuais

Leitura recomendada

Os Vírus e o Linux

Proxy reverso com ModSecurity no Debian Etch

Segurança com Iptables

Usando o John theRipper para manter sua rede segura

Quebrando chave WEP - Wired Equivalent Privacy (parte 2)

  
Comentários
[1] Comentário enviado por cpaynes em 05/05/2011 - 08:12h

grande luiz, sempre aparece com bons artigos!!! Abraços

[2] Comentário enviado por julio_hoffimann em 06/05/2011 - 17:09h

Oi Luiz, parabéns!

Muito bom entender os tipos de malware, cada qual com sua peculiaridade. Tenho uma curiosidade: Em geral que linguagem de programação os crackers utilizam?

Abraço!

[3] Comentário enviado por mpclinux em 28/01/2012 - 22:32h

Já foi publicado a parte prática de análise de malware?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts