Queira o Sr. Perito detalhar a análise de malwares com Cuckoo Sandbox

Quando se analisa softwares maliciosos, a maioria dos profissionais utiliza um conjunto de ferramentas que facilita o seu trabalho e que normalmente está sempre à mão. Trata-se de uma espécie de toolkit que para funcionar, basta estar em um pendrive. Esse toolkit auxilia nos seguintes processos:

  1. Aquisição do malware;
  2. Análise do malware;
  3. Relatório de análise;

Não vamos entrar nos aspectos que envolvem o primeiro e o terceiro processo. No entanto, vamos detalhar a análise, que pode ser separada basicamente em duas categorias: estática e dinâmica (comportamental). Nesse post vamos explicar um pouco sobre a análise dinâmica de um software pretensamente malicioso e, utilizando uma ferramenta específica,  vamos verificar se ou como ele realiza alguma ação maliciosa.

Cuckoo

Para realizar análises comportamentais de samples de sistemas Windows/x86, utilizaremos o Cuckoo Sandbox, que é um projeto Open Source baseado em Virtual Box como seu componente de máquina virtual (parece que isso será alterado em futuras versões para que possa ser utilizado em outras plataformas de virtualização).

Para preparar o ambiente para a instalação do Cuckoo, utilizaremos um Ubuntu Linux configurado como sistema principal em uma máquina física com o Virtual Box instalado com suas definições padrões, ou seja, sem nenhuma especificidade exclusiva.

Instalando o Cuckoo

Após fazer a configuração inicial do sistema, é necessário clonar o repositório do Cuckoo no Github:

$ git clone https://github.com/cuckoobox/cuckoo.git

Também é necessário instalar os módulos Python utilizados pela ferramenta:

$ sudo apt-get install python
$ sudo apt-get install python-magic python-dpkt python-mako

É interessante instalar, também, o pacote ssdeep e seus módulo python, para verificação de hashs com fuzzing:

$ sudo apt-get install ssdeep

Acesse http://code.google.com/p/pyssdeep/ e faça o download do pyssdeep:

$ svn checkout svn checkout http://pyssdeep.googlecode.com/svn/trunk/ pyssdeep
$ cd pyssdeep
$ python setup.py build
$ sudo python setup.py install

Instalação do Sistema hospedeiro

Para o ambiente de análise será necessário instalar um Windows virtualizado que sirva como hospedeiro do pretenso malware. Isso será feito no Virtual Box. Podemos utilizar qualquer versão do Windows, mas é importante atentar que o comportamento do malware será diferente em cada versão. Sendo assim, nesse post utilizaremos para exemplo um Windows XP SP3.

Instale o XP de forma usual. Uma vez instalado, crie um usuário e configure sua senha. Esse passo é importante para que o Cuckoo possa conectar-se e e executar o malware. Se for possível, você também pode criar um domínio no AD e conectar o cliente para simular a estrutura de uma pequena rede.

Outra coisa importante é instalar o VirtualBox guest components. Para tanto, vá ao menu Devices / Install Guest Addons… Feito isso, a instalação será iniciada.

Faça também o download e a instalação do Python para Windows. Ele pode ser baixado em http://python.org/download/ .

Um módulo importante que deve ser instalado e pode ser útil para nós é o PIL – Python Image Library. Ele pode ser baixado a partir do endereço http://www.pythonware.com/products/pil/. Esse módulo permitirá salvar screenshots automaticamente do desktop durante a análise.

Configuração dos drives compartilhados

É possível adicionar drivers compartilhados através da interface gráfica, mas tentaremos automatizar o processo criando um script de configuração dos drivers e coleta do tráfego de rede. Obviamente, cada usuário precisará configurar seus próprios parâmetros, principalmente os paths, de acordo com sua realidade. Execute o script abaixo com o seguinte comando:

$ ./AddMachine.sh MART-XP-1 >> conf/cuckoo.conf

#!/bin/bash

host=$1
echo "[$host]"
echo "name = $host"
echo "username = User"
echo "password = cuckoo"
echo "share = shares/$host"
echo
echo

mkdir -p /home/mboman/Src/cuckoo/shares/$host

VBoxManage sharedfolder add $host --name $host --hostpath /home/hackproofing/Src/cuckoo/shares/$host --automount
VBoxManage sharedfolder add $host --name setup --hostpath /home/hackproofing/Src/cuckoo/shares/setup --automount --readonly
VBoxManage modifyvm $host --nictrace1 on --nictracefile1 /home/hackproofing/Src/cuckoo/shares/$host/dump.pcap

Aplicações de terceiros

Agora é o momento que precisamos tornar nossa máquina virtual hospedeira mais parecida com uma máquina real, o que significa preenchê-la com “lixo”. Por exemplo, se instalar o Microsoft Office em sua VM, mas não houver nenhum documento no diretório “My Documents”, irá parecer muito estranho. Outra coisa estranha é uma máquina Windows que não seja capaz de abrir um arquivo PDF ou visualizar conteúdos Flash em websites, portanto, devemos instalar o Acrobat Reader e o plugin Flash; a menos que se queira deixar a VM o mais limpa possível. Se quiser utilizar versões mais antigas de softwares, verifique se consegue encontrá-las em http://www.oldversion.com/.

Iniciando a análise

A maneira mais fácil de enviar um arquivo para análise é utilizar o script submit.py:

$ ./submit.py -h
Usage: submit.py [options] filepath

Options:
  -h, --help            show this help message and exit
  -t TIMEOUT, --timeout=TIMEOUT
                        Specify analysis execution time limit
  -p PACKAGE, --package=PACKAGE
                        Specify custom analysis package name
  -r PRIORITY, --priority=PRIORITY
                        Specify an analysis priority expressed in integer
  -c CUSTOM, --custom=CUSTOM
                        Specify any custom value to be passed to
                        postprocessing
  -d, --download        Specify if the target is an URL to be downloaded
  -u, --url             Specify if the target is an URL to be analyzed
  -m MACHINE, --machine=MACHINE
                        Specify a virtual machine you want to specifically use
                        for this analysis

Exemplo:

 $ ./submit.py 00028672e933f9a9156e3c36bb3a7da.exe

O que realmente é interessante no Cuckoo, e no script submit.py, é que podemos especificar a máquina na qual queremos executar o malware, o que é muito bom no caso de querer verificar como o malware reage em diferentes ambientes com diferentes aplicações.

Output da análise realizada pelo Cuckoo

O Cuckoo salva os resultados da análise em diversos arquivos no diretório analysis/analysis-number/reports no seguinte formato (por padrão):

  • report.html – execution trace e opcionalmente screenshots do desktop no formato HTML.
  • report.json – execution trace e opcionalmente screenshots do desktop no formato JSON.
  • report.maec.xml – execution trace e opcionalmente screenshots do desktop no formato MAEC XML.
  • report.metadata.xml – hashs do malware.
  • report.pickle – execution trace e opcionalmente screenshots do desktop Python Pickle Objects.
  • report.txt – execution trace em arquivo de texto.

A partir dessas informações já dá para elaborar um relatório básico de análise, que pode, inclusive, dar suporte para a análise estática de seu código.

É isso! Preparem seus labs e mãos à obra!

 

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s