- Aquisição do malware
- Análise do malware
- Relatório de análise
Não vou entrar nos aspectos que envolvem o primeiro e o terceiro processo. Portanto, vamos falar de análise, que é separada em duas categorias: estática e dinâmica (comportamental). Nesse post vamos falar um pouco sobre análise dinâmica, utilizando uma ferramenta específica, de um software pretensamente malicioso e verificar se ou como ele realiza suas ações.
Cuckoo
Para preparar o ambiente para instalação do Cuckoo, utilizarei um Ubuntu Linux configurado como sistema principal em uma máquina física, com o Virtual Box instalado, com uma instalação padrão, sem nenhuma especificidade exclusiva.
Instalando o Cuckoo
Após a configuração inicial do sistema, é necessário fazer o clone do 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 hospedeiroPara o ambiente de análise é necessário instalar um Windows virtualizado, no Virtual Box, para que sirva como hospedeiro do pretenso malware. Pode utilizar qualquer versão do Windows, mas é importante estar atento que o comportamento do malware será diferente em cada versão. Sendo assim, nesse post utilizarei como exemplo um Windows XP SP3.Instale o XP de forma usual. E 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... A instalação será iniciada.
Faça também o download e a instalação do Python para Windows, através do site http://python.org/download/ .
Um módulo que é importante de ser instalado e que pode ser útil para nós é o PIL, Python Image Library, que pode ser baixado a partir do endereço http://www.pythonware.com/products/pil/. Esse módulo permitirá que tiremos screenshots automaticamente do desktop durante o processo de análise.Configuração dos drives compartilhados
É possível adicionar drivers compartilhados através da interface gráfica, mas tentarei automatizar o processo, criando um script de configuração dos drivers e coleta do tráfego de rede. Obviamente que cada usuário precisará configurar os parâmetros, principalmente os paths de acordo com sua realidade. Execute o script logo 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 em 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", isso parecer''a 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 queira deixar a VM o mais limpa possível. Se quiser utilizar versões mais antigas de softwares a serem instalados, 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 analysisExemplo:$ ./submit.py 00028672e933f9a9156e3c36bb3a7da.exeO 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
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 análise estática de seu código.É isso! Preparem seus labs e mãos à obra!
a previsão de um curso de Análise De Malwares?
ResponderExcluirFernando, acabei de atualizar a agenda de cursos:
ExcluirEngenharia Reversa e Análise de Malwares - 40h - 17/03/2014 à 30/04/2014
Luiz, to tentando instalar pelo fedora, muda algum procedimento ? ou eu pulo etapas,?
ResponderExcluirNilson, especificamente qual problema está enfrentando? O procedimento me parece que é o mesmo, pois não depende de repositório nem pacotes específicos, já que é tudo via git e utiliza python.
Excluir[ ]'s