terça-feira, 8 de setembro de 2015

Análise de Malware com o Framework Cuckoo SandBox

Por: 
Rangel Viotti (rangel.viotti@gmail.com)
Thiago Pereira (thiagootcm@gmail.com)
William Benthon (benthon@gmail.com)

Introdução
Com o advento da popularização do acesso à rede mundial bem como o crescimento da oferta de serviços de e-commerce, serviços públicos, redes de pesquisas acadêmicas, notícias e comunicações em geral, houve também o crescimento de ameaças e exploração de vulnerabilidades por parte de indivíduos que buscam vantagens financeiras, danos a terceiros ou simplesmente reconhecimento em sua própria comunidade “underground”.
Tais indivíduos lançam mão de seus conhecimentos em tecnologias e linguagens para criar softwares que, uma vez indevidamente baixados e/ou executados, iniciam ações quase sempre imperceptíveis aos olhos da vítima e que causam danos que vão do simples aborrecimento até perda de informações pessoais importantes. O termo “Malware” é comumente usado para referir-se a tais softwares.
No escopo do termo “Malware”, existem os temos mais conhecidos por “Vírus”,
Spyware”, “Trojan”, “Ransomware”, “Backdoor Exploiter”, “Downloader”, entre outros.
Existem vários problemas na questão da prevenção de ataques a sistemas operacionais e na ação de continuidade de negócios em qualquer nível (de usuários comuns a empresas e corporações). Entre estes, podemos citar a dinâmica quase simbiótica entre evolução das técnicas de exploração de vulnerabilidades e o uso da engenharia social que mira usuários desavisados ou descuidados.
A tarefa de manter a segurança de sistemas de informações pelo menos a um passo à frente de intrusos é constantemente posta à prova pela criatividade e determinação dos indivíduos por trás das ações criminosas. Tal dinâmica tende a se tornar um exercício de futilidade se não houver uma compreensão multidisciplinar e profunda das técnicas, linguagens e intenções que podem ser resgatadas dos arquivos e interpretadas objetivamente.

Ferramentas de Análise mais conhecidas.
O estudo de caso abaixo visar apresentar de modo prático o uso do Cuckoo SandBox para realizar a análise de Malware. Primeiramente, são mencionadas algumas ferramentas utilizadas na captura de informações da execução dos programas maliciosos. Mostra-se, também, como implementar a ferramenta Cockoo Sandbox em si .Para finalizar o projeto, os entusiastas terão a oportunidade de acompanhar um estudo de caso completo deste a instalação e configuração das ferramentas até a análise de um exemplar de Malware. Uma das abordagens da SI neste campo é a análise de Malwares através de ferramentas próprias
Abaixo, segue uma descrição das ferramentas mais comuns para a análise de Malwares.
Anubis

Anubis é uma ferramenta de análise de comportamento para Windows PE-executables (Portable executables [binários Windows]) com foco especial em análise de Malware. O uso do Anubis é baseado na geração de arquivos de relatórios contendo informações suficientes para dar ao usuário sobre o propósito e ações dos binários analisados. Os relatórios gerados incluem dados detalhados sobre modificações feitas na register do Windows ou no sistema de arquivos que incluem interações com o Windows Service Manager ou outros processos e, é claro, os logs gerados pelo tráfico na rede.
A análise é baseada na execução de um arquivo binário em um ambiente emulado e observado, i.é. analisando sua própria execução. A análise é focada em aspectos de segurança relevantes das ações dos programas que tornam o processo mais fácil porque o domínio em questão é de baixa granulação, o que permite maior precisão nos resultados. Mais informações sobre a ferramenta, acesse: http://anubis.iseclab.org/
Ether
Ether é investigação da qualidade de código. Foi testado apenas nas distribuições Debian Etch e Lenny como sistema operacional hospedeiro e Windows XP Service Pack 2 como o sistema convidado. Até o momento, o Ether não é está formatado para ser usado em ambiente de produção. Mas é adequado como ferramenta de pesquisa. Todo o código é licenciado sob a GPL. Nota: A licença GPL permanece a menos alguma nova versão cite outro tipo de licenciamento.
Para a sua implementação os seguintes pré requisitos são necessários:
Intel VT (Intel Virtualization Technology) para uma análise de malware transparente e, portanto, ser executado em “bare metal” (O termo se refere a Disco Rígido). Além disso, a máquina hospedeira precisa ter a tecnologia Intel VT (setada na Bios) e plataforma de 64 Bit. Mais informação sobre a ferramenta acesse: http://ether.gtisc.gatech.edu/source.html
Joe Sandbox

A ferramenta Joe Sandbox Desktop executa arquivos e endereços URL em um ambiente controlado e monitora o comportamento de aplicações e sistemas operacionais em busca de atividades suspeitas. Todas as atividades são compiladas em um relatório completo e abrangente.
Tais relatórios de análise contêm informações importantes sobre potenciais ameaças que subsidiam os profissionais de segurança cibernética para implantar implementar e desenvolver a estratégia defesa e proteção adequada. O foco desta ferramenta são sistemas baseados no sistema operacional Windows.

RunScanner


Trata-se de um utilitário freeware baseado em Windows que escaneia o sistema tendo como alvo todos os programas em andamento (sendo executados), arquivos autoexecutáveis locais, drivers, serviços e pontos hijack. O Runscanner pode ser usado para detectar mudanças de estado e desconfigurações do sistema causadas por spyware, vírus ou erros humanos.
Cuckoo SandBox

Trata-se de um sistema de análise de Malware que possibilita ao usuário enviar qualquer arquivo suspeito ao núcleo de análise de Malware e o sistema retorna alguns resultados detalhados descrevendo o que tal arquivo fez ou executou quando testado dentro de um ambiente controlado e isolado. O Cuckoo Sandbox gera vários dados de diferentes naturezas tais como:
      Funções nativas e rastreio de chamadas nativas na API do Windows.
      Cópias de arquivos criados e deletados do sistema de arquivos.
      Despejo de memória dos processos selecionados.
      Despejo total de memória para análise da máquina
      Captura de tela do desktop durante a análise de Malware.
      Despejo da rede gerado pela máquina usada para a análise.
Na geração de relatórios, Cuckoo processa diferentes tipos de apresentações incluindo:
      Formato JSON (Javascript Object Notation)
      Formato HTML.
      Formato MAEC (Malware Attribute Enumeration and Characterization).
      Interface MongoDB (Banco de dados escrito em Python)
      Interface HPFeeds (projeto que implementa um protocolo autenticado "peso-leve" para publicação/assinatura de datafeeds).
Mais informações sobre a ferramenta acesse: http://cuckoobox.org

Aplicação prática – parte 1

Para este trabalho foi escolhida a ferramenta Cuckoo Sandbox que, entre outras vantagens, oferece suporte a várias interfaces para a interação com o usuário, facilidade (moderada) de instalação e integração com várias bibliotecas e frameworks escritas em Python tais como:
Django - Um framework de sucesso para desenvolvimento web.
Dpkt - Biblioteca para a extração de arquivos PCAP.
Jinja2 - Biblioteca para a renderização de relatórios HTML em interface web.
Várias outras bibliotecas também serão usadas, mas só serão apresentadas durante a descrição do processo de instalação e configuração do Cuckoo Sandbox.
Hardware:
Sistema 32 bit robusto (2 ~ 4 GB de memória RAM, HD > 160 GB, etc.)
Processador Intel ou AMD (igualmente robusto)
Sistema Operacional Ubuntu LTS (é recomendável a versão 14.04 devido à presença de vários pacotes instalados por padrão)
Obs: No caso de plataformas de 64 Bit, é necessária a verificação do suporte a virtualização na Bios da placa mãe.
Instalação:
Ubuntu - No caso de uma nova instalação, habilitar o download e atualização da distribuição.
Após finalizar a instalação, seguem-se os seguintes passos:
(Nota: CT = Comando no terminal do Ubuntu. | A = Ação)
CT

sudo apt-get update && sudo apt-get dist-upgrade -y
A

 Buscar por atualizações que não foram feitas durante a instalação



CT

sudo apt-get install virtualbox
A

Instala o Oracle Virtual Box




CT

Sudo python –version
A

Retorna a versão do Python instalado *
* A versão usada é a 2.7.6. No improvável caso de não haver nenhuma versão instalada, ou ainda haver outra versão maior que a 2.XX, recomenda-se buscar orientações em sites de comunidades ou tutoriais sobre como instalar a versão necessária ou alterar a versão instalada.
CT
sudo apt-get install python-sqlalchemy python-bson
A
Instalar os pacotes Sqlalchemy; um toolkit para o Python SQL e mapeamento de objeto relacional e, o Python-Bison; um pacote para codificação e decodificação binária de conteúdo no formato JSON.
CT
sudo apt-get install python-dpkt python-jinja2 python-magic python-pymongo python-gridfs python-libvirt python-bottle python-pefile python-chardet volatility
A
Instala os seguintes complementos:
Dpkt (Altamente recomendado): para extrair informação relevante de arquivos PCAP, ou Packet Capture - captura de pacotes.
Jinja2 (Altamente recomendado): para a renderização de relatórios no formato HTML e interface web.
Magic (Opcional): para a identificação de formato de arquivos.
Pymongo (Opcional): para armazenamento de resultados no banco de dados MongoDB.
Libvirt (Opcional): para o uso do gerenciador Kernel Virtual Machine - KVM.
Bottlepy (Optional): for using the api.py or web.py utility (use release 0.10 or above). Django (Opcional): framework para apresentação de interface web (recomenda-se a versão 1.5 ou posterior).
Pefile (Opcional): para a análise estatística de binários PE32 (arquivos do MS-Windows).
Volatility (Opcional): para a análise forense de memória.
MAEC Python bindings (Opcional): para relatórios MAEC - Malware Attribute
Enumeration and Characterization (recomenda-se a versão maior que 4.0.0 e menor que 4.1).
Chardet (Opcional): para a detecção de codificação de strings.
São necessários dois pacotes adicionais a serem instalados a seguir:
O Pydeep, cuja maneira mais fácil é através do comando PIP. Este comando só estará integrado ao Python e disponível após a instalação do pacote “setup_tools”, que inclui vários outros pacotes de instalação e atualização para o Python ou através da sua instalação individual.
CT
sudo apt-get install python-pip –y
A
Adiciona o instalador ao Python.
Pydeep
CT
sudo pip install Pydeep
A
Instala o pacote Pydeep.
YARA
Para instalar o pacote YARA deve-se, primeiro, preparar o sistema através da instalação de pacotes essenciais.
CT
sudo apt-get install build-essential git python-dev libjansson-dev libmagic-dev libtool eclipse-cdt-autotools -y
A

Instala os pré requisitos (essenciais) para o pacote Yara.

Depois é necessário fazer o download do pacote mais recente em; https://github.com/plusvic/yara/releases/latest. (a versão usada aqui é a 3.2.0)
CT
tar -zxf yara-3.2.0.tar.gz

A

Descompactar o arquivo para uma pasta de nome “yara-3.2.0”





CT
cd yara-3.2.0

A

Acessa a pasta criada




CT

./bootstrap.sh


A

Inicia a coleção de ferramentas, pacotes e instruções para a instalação do pacote







CT

./configure --enable-cuckoo --enable-magic


A

Configura o pacote para usar as bibliotecas Cuckoo e python-magic








CT

make


A

Lê os arquivos de do compilador C e prepara para a instalação








CT


Sudo make install


A


Instalar o compilador C e configura as bibliotecas para serem usadas com Python







CT

cd yara-python


A

Acessa a pasta de bibliotecas yara para o python







CT

python setup.py build


A

Monta o arquivo de instalação do pacote








CT

sudo python setup.py install


A

Instala o pacote


Configurando o arquivo “tcpdump”.
O Cuckoo é executado em uma conta padrão de usuário. Para permitir que o Cuckoo acesse o arquivo tcpdump sem o acesso root, a próxima linha de comando deve ser executada no terminal:
CT
1  - sudo setcap cap_net_raw,cap_net_admin=eip
/usr/sbin/tcpdump
2  - getcap /usr/sbin/tcpdump
A
Permite o acesso do usuário admin ao arquivo tcpdump
Para verificar o êxito, a seguinte mensagem deve ser exibida a seguir:
/usr/sbin/tcpdump = cap_net_admin,cap_net_raw+eip

Aplicação prática – parte 2

Instalar o Cuckoo Sandbox.
A última parte é a instalação do Cuckoo SandBox. Esta etapa é bastante simples em si. Escolha um local aonde queira instalar (neste caso será criada a pasta “~/Bin”:
Nota: Caso ainda esteja na pasta “yara-python” – e não queira instalar o Cuckoo nesta, retorne ao diretório raiz e execute os próximos passos.
CT

mkdir ~/bin
A

Cria uma sub pasta “bin”




CT

cd ~/bin
A

Acessa a pasta



CT

wget http://downloads.cuckoosandbox.org/cuckoocurrent.tar.gz
A

Recupera a última versão do Cuckoo SandBox direto do site




CT

tar -xf cuckoo-current.tar.gz
A

Descompacta o arquivo para uma sub pasta cuckoo




CT

cd ~/bin/cuckoo
A

Acessa a pasta

CT
./cuckoo.py
A

Executa o cuckoo com privilégios de admin


Aplicação prática – parte 3

Criando uma máquina virtual.
Este guia é baseado na criação de uma máquina virtual Windows XP SP3 (nesta implementação foi usado o Windows XP SP1). Entretanto, o Cuckoo também funciona com Windows Vista e 7. Para estas versões é necessário desabilitar o serviço UAC (Controle de Contas do Usuário).
Algumas premissas:
      Você possui uma cópia licenciada do Windows XP;
      Você possui uma mídia ISO disponível;
      Você sabe instalar uma máquina virtual no Oracle Virtual Box;
As configurações a serem feitas ANTES de iniciar a instalação da VM Windows XP são as seguintes:
      Armazenamento em disco rígido com alocação dinâmica
      Disco rígido virtual > 15 GB
      Memória RAM 512 MB (Neste exemplo foram alocados 1024 MB)
      Adaptador de rede (fase inicial) intel PRO/1000 MT Desktop (NAT).
Pós instalação:
A primeira providência a ser tomada após a instalação do Windows XP é desativar alguns recursos e alterar algumas configurações. Segue-se o roteiro.
Acessar o Painel de Controle, clicar em “Ferramentas Administrativas”, depois em “Serviços”. Localiza os serviços de Atualizações automáticas e Firewall do Windows, interrompa, desative e altere a inicialização para Manual.
Ainda no Painel de Controle, se ainda estiverem ativos, desative os recursos de Firewall, Atualizações Automáticas, Alerta de Vírus e Alertas da Central de Controle.
Altere ainda as configurações da Área de Trabalho para modo de exibição clássico, desabilite o descanso de tela, sons e alertas do Windows.
Aplicativos.
São necessários alguns aplicativos para completar o ambiente de testes da VM. Usando o Internet Explorer nativo, baixe, primeiro, uma versão compatível com o XP do Firefox. Instale e use baixar o Google Chrome, Microsoft .NET 2.0, Microsoft Office 2000 ou 2003 além de quaisquer outros aplicativos que queira.
Obss importantes: Um aplicativo é essencial e deve ser instalado obrigatoriamente. Tratase do Python em sua versão 2.7.6 (a versão encontrada no site python.org é a 2.7, mas ao ser instalado, o terminal aponta para a versão 2.7.6).
Antes de seguir adiante, é importante copiar agent.py o arquivo localizado na máquina host (Ubuntu) em;  ~/bin/cuckoo/Agent/ para a pasta de instalação do Python na máquina Guest (Windows XP) em c:\Python27. É aconselhável copiar um atalho do agent.py para o menu de inicialização automatico de aplicativos no Window (iniciar). Isto pode ser feito enviando uma cópia do arquivo para a área de trabalho e arrastando para o menu Iniciar. Existem maneiras criativas de se fazer isto, por exemplo, envie o arquivo para algum repositório seu pela máquina Host e faça o download pela máquina Guest. Ou ainda, envie-o para você mesmo por e-mail.
Obs: Não instale aplicativos que façam atualizações automáticas ou requeiram atualização dos Windows XP.
Depois de completas as instalações, desligue a VM e altere as configurações do adaptador de rede para "Conectado a" Vbox-GuestHost-Only e "Tipo de adaptador" PCnet-FAST
III(Am79c973). Inicie a VM e instale o Vbox Guest Additions.
Configurações de rede.
Até o momento a instalação da máquina virtual não está completa. Para completar, acesse as configurações de rede através do painel de controle e altere o endereço IP do adaptador para 192.168.56.10 e verifique se a máscara de sub rede é preenchida automaticamente para 255.255.255.0.
Premissas:
O adaptador de rede da máquina Ubuntu e a interface de saída. vboxnet0 é a interface virtual.
192.168.56.0/24 é o endereço de sub rede para a interface “virtual host-only”.
Configurando o iptables:
Abra o terminal do Ubuntu e digite os seguintes comandos:

CT
sudo iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT

A
Cria uma regra para conectar as interfaces de rede e aceitar o rastreio de pacotes entre


elas.


CT
sudo iptables -A FORWARD -m conntrack --ctstate
ESTABLISHED,RELATED -j ACCEPT

A

Comando que permite acessar e rastrear os pacotes da conexão quando for estabelecida.



CT

sudo iptables -A POSTROUTING -t nat -j MASQUERADE


A

Comando que permite acessar modificar os pacotes da conexão quando for estabelecida.





CT

sudo sysctl -w net.ipv4.ip_forward=1

A

Comando que ativa o encaminhamento de pacotes


Para verificar se as Configurações foram feitas, Digite o comando “ifconfig vboxnet0”.
O resultado deve ser o que se encontra abaixo (assinalado):
Link encap:Ethernet HWaddr 0a:00:27:00:00:00 inet addr:192.168.56.1 Bcast:192.168.56.255 Mask:255.255.255.0 inet6 addr: fe80::800:27ff:fe00:0/64 Scope:Link UP BROADCAST RUNNING
MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:184 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
Configurações finais do Cuckoo SandBox.
Na máquina Host, acesse a pasta ~/bin/cuckoo/conf/, localize e altere os seguintes arquivos se necessário:
[cuckoo.conf] machinery = virtualbox memory_dump = on
[resultserver] ip = 192.168.56.1 port = 2042
[auxiliary.conf] [sniffer] enabled = yes tcpdump = /usr/sbin/tcpdump interface = vboxnet0
[virtualbox.conf]
Virtual machine name = [nome que você deu à sua máquina virtual XP]
#Host's virtual IP address (vboxnet0)
Ip =  192.168.56.1
#Virtual machine's IP address
Ip = 192.168.56.10
Salvando uma cópia da VM com o Snapshot (recurso de recuperação de estado da VM – via terminal, 3 comandos, recomendado)
OBS: deve-se criar um snapshot com a VM ligada

vboxmanage snapshot "[nome_da_VM_escolido]" take "[nome_do_snapshot]"

--pause vboxmanage snapshot "winxp" take "finalizada" --pause vboxmanage controlvm "winxp" poweroff vboxmanage snapshot "winxp" restorecurrent
Testando a instalação:
Acesse a pasta de instalação do Cuckoo: cd ~/bin/cuckoo
Digite:
./cuckoo.py
As seguintes linhas deverão ser exibidas;
Cuckoo Sandbox 1.1 www.cuckoosandbox.org
Copyright (c) 2010-2014
Checking for updates...
Good! You have the latest version available.
2014-11-05 23:07:42,599 [lib.cuckoo.core.scheduler] INFO: Using "virtualbox" machine manager
2014-11-05 23:07:42,830 [lib.cuckoo.core.scheduler] INFO: Loaded 1 machine/s
2014-11-05 23:07:42,831 [lib.cuckoo.core.scheduler] INFO: Waiting for analysis tasks...

Aplicação prática – parte 4

Submentendo uma amostra de Malware para análise.
Com o Cuckoo sendo executado, deve-se, primeiro, acionar o Oracle Virtual Box, mas não iniciar a VM. Depois, deve-se abrir um novo terminal e navegar até a pasta “~/bin/cuckoo/utils/” e digitar o comando;
./submit.py <caminho_para_a_amostra>
Neste caso;
./submit.py /home/rangel/Analise_malware/exercicio1.exe
Se tudo foi devidamente configurado, o comando ./cuckoo.py executado abrirá automaticamente a VM, e submeterá pela rede configurada o arquivo em questão à VM Windows, e efetuará a análise normalmente.*
* Obss importantes:
1                    – A instalação, mesmo efetuada de maneira sistemática e correta, não impede queeventuais mensagens de erro apareçam durante a execução.
2                    – Se, e quando forem exibidas estas mensagens,  a melhor escolha é ignorar e deixar oCuckoo Sandbox prosseguir com a análise.
3                    – Caso ocorra algum erro crítico, o próprio  Cuckoo Sandbox se encarrega de  parar aanálise e gerar arquivos de log. Essas paradas são absolutamente claras para quem mantém o terminal aberto e os monitora,    bem como a mensagem de fim do processo de análise .
4                    – As análise podem variar (e muito) no tempo de execução e conclusão. As amostras“   exercicio1.exe  ” e “  exercicio2.exe ”, levaram mais de 40 minutos cada uma.
5                    – É importante conhecer os comandos de terminal do Linux tanto para instalação quantopara remoção de pacotes. Pode ser que seja necessário refazer a instalação desde o início.
Pós – análise:
Exitem duas maneiras de acompanhar a análise de malware após a submissão do arquivo de amostra:
1  – Durante a análise, pela interface web e,
2  – Após o fim da análise pela mesma interface.
Para tanto, basta abrir um novo terminal, navegar até “~/bin/cuckoo/web” e digitar o comando: “ ./manage.py runserver ”.
 Se tudo estiver certo, a seguinte mensagem será exibida:
Validating models...
0 errors found
August 05, 2015 - 17:24:12
Django version 1.6.1, using settings 'web.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
Conforme a instrução contida na quinta linha, basta abrir o navegador e acessar o endereço citado.
Submetendo a amostra à análise
Obs: O processo de submissão de amostras para análise é o mesmo para todos arquivos usados aqui. Portanto, usaremos a descrição passo a passo da primeira amostra (exercicio1.exe). E apenas os relatórios serão individualizados.
Mensagens tipo WARNING são as mais comuns (e esperadas), mas não prejudicam o processos de submissão e análise. As mensagens tipo  ERROR podem ocorrer durante o processo de submissão de amostras. Pode ser que o processo de submissão falhe. Já, as mensagens CRITICAL ERROR, podem surgir durante a análise e podem ou ão causar falhas. Caso seja interrompidas a análise será necessário revisear a instalação do framework, da máquina virtual e, para tentar saber o que houve revise as mensagens complementares  e arquivos de log gerados.
Pré requisitos:
Conexão à Internet robusta e estável, revisão da instalação e configuração do ambiente e atenção às mensagens (WARNING, ERROR, CRITICAL ERROR).
Inicialmente, é necessário configurar o IpTables para o encaminhamento e filtragem de pacotes na máquina host:

1) sudo iptables -A FORWARD -o eth0 -i vboxnet0 -s 192.168.56.0/24 -m conntrack --ctstate NEW -j ACCEPT

adiciona regra que permite o encaminhamento de pacotes [-A FORWARD] originados da máquina host(linux) [-o eth0] destinados à maquina guest (VM winxp) [-i vboxnet0] assegurando o tráfego apenas ao endereço 192.168.56.0/24 [-s 192.168.56.0/24] ativa o pacote de rastreio de conexão ativa [-m conntrack] para novas conexões [conexões ainda não detectadas] e as aceita [--ctstate NEW -j ACCEPT]

2) sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

adiciona regra que permite o encaminhamento de pacotes [-A FORWARD] ativa o pacote de rastreio de conexão ativa [-m conntrack]
para conexões já estabelecidas e as aceita [--ctstate ESTABLISHED,RELATED -j ACCEPT]

3) sudo iptables -A POSTROUTING -t nat -j MASQUERADE

Adiciona regra para o pós roteamento de pacotes que constem na tabela NAT e "mascara" o IP da eth0 [-A POSTROUTING -t nat -j MASQUERADE]
Isto significa que o IP da eth0 é considerado válido para os propósitos de roteamento de pacotes.

4) sudo sysctl -w net.ipv4.ip_forward=1

Finaliza as configurações habilitando o roteamento.
Iniciando a VM:
A seguir, inicia-se o Oracle Virtual Box, MAS NÃO A MÁQUINA VIRTUAL. (ícone azul, um clique)
[figura 1]

A seguir, inicia-se o Cuckoo SandBox acessando a pasta ~bin/cuckoo/ - e enviando o comando
“./cuckoo.py”. [figura 2] 



Figura 2

Obs: Se o resultado exibido não for exatamente o mesmo  mostrado na figura 2, então devese rever os passos de instalação e configuração do framework.
A seguir, submete-se a amostra de malware acessando a pasta ~bin/cuckoo/utils/ e enviando o comando “./submit.py /<caminho_para_o_malware>/exercicio1.exe*”. [figura 3] * No meu caso, “./submit.py /home/rangel/Analise_malware/exercicio1.exe”


Figura 3

O que ocorre a seguir é uma sequencia de ações cuja captura de telas para fins de ilustrações neste documento é inviável. Porém a sequencia é a que se segue:
1     – O Cuckoo SandBox inicia a VM em modo de restauração do snapshot;
2     – A seguir submete a amostra de malware à VM;
3     – Alguns segundos após a submissão, inicia o monitoramento de eventos pelo arquivo “agent.py”de dentro da VM.
4     – Finalizada a submissão, o framework interrompe a VM e inicia o processo de análise.
(dependendo do tipo de amostra, o processo de submissão da amostra pode demorar um pouco mais)
5     – O processo de análise é extenso e mais demorado. Esta etapa pode ser acompanha observando oterminal (é aconselhável fazer o acompanhamento caso ocorra algum erro crítico) ou pela interface web.
Para iniciar a interface web basta acessar a pasta ~/bin/cuckoo/web/ e enviar o comando
./manage.py runserver. [figura 4]


Figura 4

Dica: Clicando com o botão direito do mouse sobre o link http://127.0.0.1:8000, surgirá a opção “abrir link”. Escolha esta opção e o navegador padrão do seu Linux será ativado com a url ativa.
Para fins de acompanhamento do processo de análise, é mais produtivo monitorar o terminal. Se  o processo de análise for completado com sucesso, a interface web é bem mais versátil e rica em
detalhes. [figura 5]



Figura 5

Conteúdo da tela:
1 – Dashboard (Painel de instrumentos): é a página inicial. Nela é exibido um  relatório resumido das ações análises realizadas pelo Cuckoo SandBox.  [dash]



dash

Entre as informações, estão; quantas tarefas foram realizadas, completadas, falhas, erros e etc.
A próxima figura [figura 6] mostra o conteúdo da guia “Recent”, que lista as tarefas de análise feitas anteriormente.




Figura 6


Dica: Na coluna “MD5”, os caracteres do hash calculado são hiperlinks. Clicando neles, é aberta a página com o relatório completo de cada um dos arquivos.
Clicando no hash do item “exercicio1.exe”, o navegador exibe o relatório completo dos resultados desta amostra.
Aqui são mostradas as seguintes guias:
Quick Overview => Static Analysis =>Behavioral Analysis => Network Analysis  => Dropped Files =>
Memory Analysis  => Admin [figura 7]



Figura 7

Cada uma das guias exibe um extenso conteúdo que será explicado abaixo de maneira reduzida devido à imensa quantidade de dados para cada biblioteca de análise do Cuckoo SandBox.
Resultados:
Referência / Arquivo / Comando:
Comentário ou Ação:
exercicio1.exe
Amostra submetida à análise
net user lucas%d 123456 /add
Comando que adiciona um novo usuário 'Lucas' e a senha '123456' à lista de contas do Windows.
Detectado em:
http://www.herdprotect.com/knowledgebase_detections.aspx?engine=qihoo-360
Conclusões sobre exercicio1.exe:
Devido à sua natureza de comprovação acadêmica, trata-se de um Malware cujas ações não levaram a maiores danos. Entretanto, a criação de um usuário “clandestino” no sistema e um endereçamento IP falso, foram (e ainda são) grandes aliados de golpistas.
Referência / Arquivo / Comando:
Comentário ou Ação:
exercicio2.exe
Amostra submetida à análise
NtCreateFile
Abre o arquivo 'hosts' localizado em C:\WINDOWS\system32\drivers\etc\
NtWriteFile
Adiciona a entrada de Resolução de IP “200.221.2.45 www.terra.com.br” O IP em questão é do domínio “www.uol.com.br”. Porém, se o usuário tentar acessar o endereço do UOL, será direcionado para o site Terra.
ExitProcess
Encerra todas threads (ou processos) do sistema
Conclusões sobre exercicio2.exe:
Esta amostra faz alterações importantes nos sistema e, a amais significativa, acessa o Gerenciador de serviços do Windows e para o serviço de gerenciamento de temas. Extrapolando as ações, qualquer outro serviço poderia ser afetado (como veremos a seguir) e tornar a máquina vulnerável a ações mais invasivas ou permiti-las.
Referência / Arquivo / Comando:
Comentário ou Ação:
WormAcademic.exe
Amostra submetida à análise
cmd.exe
abre o terminal de comandos do Windows
sethc.exe
reseta a senha do admin do windows
.original => utilman.exe
cria uma tecla aderente de abertura do cmd do Windows (shif pressionada 5 x)
netsh.exe => Firewall set opmode disable
desabilita o firewall do windows
SYSTEM\CurrentControlSet\Servic es\Themes
para o serviço de temas do windows
WinNT:// => ,Computer =>
WormAcademic
cria o usuário "WormAcademic"
SetPassword => W0rm@c@d3mic
seta a senha "W0rm@c@d3mic" para a ação anterior
administrators => administradores
adiciona ao grupo de administradores
Conclusões sobre WormAcademic.exe:
Esta amostra faz alterações mais profundas e prova que vulnerabilidades não são apenas exploradas. Também podem ser criadas e usadas sucessivamente para quaisquer fins que se deseja. No caso desta, é resetada a senha do usuário, cria uma “janela de entrada” sem necessidade de  logar-se no sistema, desabilita o firewall, e cria um novo usuário com login e senha. As possibilidades para estas ações são inúmeras.  Um atacante com bons conhecimentos de linguagens de programação e do sistema que deseja atacar poderia usar seus conhecimentos para extrair quaisquer dados reservados e usa-los para o fim que desejasse.
Conclusões sobre 1002.exe:
Essa amostra foi retirada de um grupo bastante extenso de amostras a partir de pesquisas feitas inicialmente no site https://zeltser.com/malware-sample-sources/ e escolhido devido à sua natureza “recente”.
Este malware (1002.exe) é uma das muitas variações do tipo conhecido como CryptoLocker, que vem a ser a captura e encriptação de arquivos do usuário e exigir o pagamento de um resgate em troca da senha para desbloqueá-los.
Normalmente o malware é elaborado de modo a dar um prazo de 72 horas para o pagamento de 1 bitcoin (aproximadamente 300 dólares ), do contrário ameaça destruir as chaves requeridas para a desencriptação.
Se a vítima não pagar o resgate dentro do prazo estabelecido, o malware exibirá um arquivo "last_chance.txt" ordenando que vítima que  baixe o malware de novo, o que supostamente dará mais 3 dias de prazo para o pagamento do resgate. Na realidade o PClock não destrói nada, portanto a contagem regressiva não significa nada.
As informações a respeito da chave de encriptação usada neste malware são conflitantes. Alguns sites de segurança dizem que algumas versões usam algioritmos de chave forte, (RSA 2048 bits) [https://en.wikipedia.org/wiki/CryptoLocker]. Outros informam que o algoritmo não é tão sofisticado e não é difícil desencriptar os arquivos [http://blog.emsisoft.com/2015/01/04/newransomware-alert-cryptolocker-copycat-pclock-discovered/]. E até existem sites que ajudam vítimas deste malware a desbloquear os arquivos. [http://www.baboo.com.br/seguranca/ferramenta-dedesbloqueio-para-vitimas-do-malware-cryptolocker/].
De qualquer forma, a análise feita no framework Cuckoo SandBox de um amostra de PCLocker gerou um vasto relatório rico em detalhes. Vamos a eles:
1 – A análise de “Strings” possibilitou ver que o próprio malware monta e renderiza a tela de ameaça.[Figura 8]




Figura 8

2  – Algumas versões do malware armazenavam a chave de desbloquear os arquivos infectados nopróprio sistema. Desta forma, uma das maneiras de recuperar os arquivos era ligar o HD da máquina como Slave em outra e procurar pela chave no próprio HD. Com o tempo, as variações do malware passaram a armazenar a chave na memória alta do computador, enviar para um local “seguro” e fazer enviar um comando de limpeza da memória para apagar quaisquer registros das operações.
Neste exemplo, todos os dados obtidos foram analisados, mas até o momento não foi encontrado nenhuma informação que comprove o armazenamento de senha  ou chave de desbloqueio.
3  – O arquivo de dump da memória possui bons dados que podem ser úteis, mas a leitura éproblemática devido ao grande número de linhas com informações truncadas.
4  – Alguns elementos da análise firacam obscuros. A justificativa é de que não haviam os típicosarquivos de trabalho na máquina (planilhas, docs, pdf, PPT e etc.) que pudessem ser explorados pela ameaça. Mesmo assim, o malware fez sua parte, procurou e atacou bibliotecas DLL entre outros arquivos de sistema.
5  – A análise final não foi satisfatória pelas razões que se seguem:
      Após efetuada a submissão, o Cuckoo SandBox fecha a VM e recarrega o snapshot das últimas configurações. Tal aão destrói as todos os vestígios do malware e só restam os dados coletados e analizados pelo framework.
      Durante o processo de submissão, ao iniciar o malware e aparecer a tela de alerta, o sistema entre em estado de espera que só é interrompido clicando em “next” [Figura 9]. Entretanto, tal ação faz com que o Cuckoo SandBox considere a submissão completa e desliga a máquina virtual.



Figura 9

Finalizando, falta a este, conhecimento mais aprofundados sobre o sistema operacional, sobre os comandos que aparecem nos relatórios e a capacidade de filtragem de dados relevantes. 


Nenhum comentário:

Postar um comentário