Introdução
Montei este documento há mais ou menos um ano atrás com o intúito de dar algumas dicas para pessoas que tinham interesse em começar a analisar malwares e não sabiam como montar uma máquina para sandbox e agora estou aproveitando para postar ele aqui no blog.
O que é uma sandbox:
Embora existam muitas ferramentas no mercado oferencendo soluções de sandbox, este é mais um conceito
do que uma ferramenta, sandbox é uma área onde é possível executar e analisar ameaças sem que sejam danificados servidores e estações em produção.
Caso você seja muito insano, pode usar sua própria máquina como sandbox, porém recomendo que seja utilizado um ambiente virtualizado para tal propósito, a seguir estarei descrevendo algumas recomendações para quem deseja iniciar suas análises.
Ambiente necessário:
- Hypervisor - recomendo o uso do VirtualBox por ser gratuíto, porém nada impede que seja utilizado outro como o VMWare Workstation por exemplo.
- SO - utilize o sistema operacional MS de sua preferência, lembrando que determinadas ameaças podem ter comportamentos diferentes em certas versões do MS Windows, recomendo o uso do MS Windows XP Professional SP3 por ser uma das mais genéricas nesses casos, um ambiente ideal de sandbox seria na verdade de várias máquinas com diversos sistemas.
- Firewall - Utilize uma solução de firewall de sua preferência, para evitar o contato da sandbox com sua rede local, recomendo o uso de um firewall linux com iptables ou o PFSense pela facilidade de configuração para os que tiverem menos intimidade com o shell do linux.
- Programas diversos - estes programas serão utilizados na análise comportamental das ameaças.
- NMap: verifica portas abertas.
- Wireshark: analisa o tráfego de rede.
- Filemon: monitora acessos em arquivos.
- Procmon: monitoramento de processos em execução.
- Regmon: monitora alterações no registro.
- Procexp: explora processos em execução.
- TCPView: monitora as conexões de rede.
- Winalysis: faz um snapshot do status atual da máquina (permissões, entradas de registro, conteúdo de arquivos, etc) e compara com o status após a infecção pelo malware.
Outro detalhe importante é lembrar que não devemos instalar nenhum tipo de anti-virus ou ferramenta semelhante uma vez que nossa intenção é justamente analisar o comportamento do vírus.
Montagem do Ambiente
Passo 1 - Configuração do Firewall.
Após a instalação do VirtualBox cria primeiramente a máquina virtual que servirá de firewall, não são necessários grandes recursos para esta, no meu caso uso como firewall do meu ambiente de sandbox um PFSense com 256MB de memória, disco dinâmico de 30GB e uma CPU. Um detalhe importante nesta etapa é criar esta máquina com duas placas de rede, sendo que uma delas deve ser configurada como NAT ou Bridge, que estará se comunicando com sua rede local para que nossa sandbox tenha acesso a internet, e outra como Rede Interna (intnet), para aqueles que nunca utilizaram esta segunda opção, ela simula um switch no qual as máquinas virtuais estarão conectadas.
Passo 2 - Configuração da SandBox
Configure sua máquina virtual com recursos suficientes para que a mesma não trave durante a execução das análises, no meu caso utilizo com 2GB de memória, disco dinãmico de 80GB e uma CPU. Faça a instalação normal do Windows XP e em seguida instale as ferramentas listadas acima em Programas Diversos, configure a placa de rede como Rede Interna também para que fique conectada ao nosso Switch virtual, caso tenha configurado seu firewall como DHCP server sua sandbox deve receber um ip dele. Após todas as instalações concluídas faça um snapshot da sua sandbox, este processo é de extrema importância pois após cada análise devemos retornar para este snapshot para limparmos qualquer alteração feita pelo malware analisado.
Passo 3 - Divirta-se
Está pronto, seu ambiente de análise de malwares está feito, para a execução de uma análise recomendo as seguintes práticas:
- Feche qualquer aplicação de sua sandbox que possa se comunicar com a rede.
- Abra o wireshark e tenha certeza de que o tráfego gerado por ela é mínimo.
- Execute uma varredura com o NMap e documente as portas abertas atualmente.
- Abra o Winalysis e faça um snapshot do sistema operacional.
- Abra o Procmon e Procexp e documente os processos atualmente abertos, ambos tem opções para exportar os dados para arquivos de texto.
- Execute a ameaça que deseja analisar.
- Procure no wireshark por comunicações de rede iniciadas após este processo, neste ponto é necessário ter certo conhecimento de análise de tráfego e protocolos de rede.
- Utilize a opção test do Winalysis para comparar o status atual com antes da infexção.
- Procure no procmon e procexp por novos processos iniciados e verifique o que foi alterado.
- Faça uma nova varredura com o NMap e verifique se alguma porta de comunicação foi aberta.
- Após terminar o processo restaure o snapshot da sua sandbox.
Outra dica importante é fazer um desses testes listados acima por vez, sempre retornando o snapshot da máquina antes de fazer o próximo teste, desta forma poderá ver melhor o que está acontecendo, por exemplo, infecte a máquina e analise o tráfego com o Wireshark, volte o snapshot, em seguida infecte novamente e faça a análise com o Winalysis e assim por diante.
Este ambiente para análise é bem simples e resumido, com o tempo sua capacidade de análise vai aumentando e você passa a ir mais fundo nas investigações, inclusive incluindo nestas atividades a análise do próprio executável do vírus através de ferramentas de debug como o ollydbg e analisadores de executáveis como o PEV, PE Studio ou similares.
Para aqueles que tiverem interesse recomendo também a leitura do site http://mentebinaria.com.br/ do Fernando Mercês, lá existem alguns artigos sobre análises de malwares, inclusive dois também comentando sobre a criação de máquinas para análise. Outro site que também recomendo a leitura é o http://www.numaboa.com.br, na seção de informática dele tem um artigo muito útil sobre a estrutura de arquivos executáveis.
