Vous êtes sur la page 1sur 36

1

Pr-Reitoria de Ps-Graduao e Pesquisa


Lato Sensu em Percia Digital
Trabalho de Concluso de Curso

ANLISE DE MALWARE EM AMBIENTE WINDOWS

Autor: MSc. Thiago Arreguy Silva Vitorino


Orientador: Prof. MSc. Marcelo Beltro Caiado

Braslia - DF
2013

THIAGO ARREGUY SILVA VITORINO

ANLISE DE MALWARE EM AMBIENTE WINDOWS

Artigo apresentado ao Programa de PsGraduao Lato Sensu em Percia Digital da


Universidade Catlica de Braslia, como
requisito parcial para obteno do certificado
de Especialista em Percia Digital.
Orientador: Prof. MSc. Marcelo Beltro
Caiado
Examinador: Prof. MSc. Paulo Roberto Corra
Leo

Braslia DF
2013

Artigo de autoria de Thiago Arreguy Silva Vitorino, intitulado ANLISE DE


MALWARE EM AMBIENTE WINDOWS, apresentado como requisito parcial para obteno
de certificado de especialista em Percia Digital da Universidade Catlica de Braslia, em 05
de dezembro de 2013, defendido e aprovado pela banca examinadora abaixo assinada:

Prof. MSc. Marcelo Beltro Caiado


Orientador
Percia Digital UCB

Prof. MSc. Paulo Roberto Corra Leo


Examinador
Percia Digital UCB

Braslia DF
2013

4
ANLISE DE MALWARE EM AMBIENTE WINDOWS
THIAGO ARREGUY SILVA VITORINO
Resumo:
Cdigos maliciosos so programas especificamente desenvolvidos para executar aes
danosas e atividades maliciosas em um computador. Malware, termo proveniente do ingls
malicious software, um software destinado a se infiltrar em um sistema de computador
alheio de forma ilcita, com o intuito de causar algum dano ou roubo de informaes, sejam
confidenciais ou no. Programas antivrus e antispyware so as ferramentas mais comuns para
preveno, porm esses utilitrios usualmente se aplicam a programas maliciosos cujas
assinaturas j so conhecidas e catalogadas em uma base de dados. Para criar as assinaturas
dos malwares e catalog-las, necessria uma anlise detalhada de seu cdigo, conhecida
como engenharia reversa. Dentro deste contexto, a abordagem deste trabalho foi feita atravs
de uma pesquisa qualitativa, descritiva e subjetiva, aplicada em laboratrio, num ambiente
controlado, onde foram realizados testes para verificar as tcnicas e ferramentas de anlise de
malware em ambiente Windows em trs amostras de malwares. Os resultados obtidos por
meio da anlise esttica e dinmica, ambas bsicas, sugerem que seja feita uma anlise
avanada.
Palavras-chave: Malware, Anlise de malware, Engenharia reversa, Windows.
1.

INTRODUO

Cdigos maliciosos (malware) so programas especificamente desenvolvidos para


executar aes danosas e atividades maliciosas em um computador (CERT, 2013). Malware,
termo proveniente do ingls malicious software (software malicioso), um software destinado
a se infiltrar em um sistema de computador alheio de forma ilcita, com o intuito de causar
algum dano ou roubo de informaes (confidenciais ou no). Vrus de computador, worms,
trojan horses e spywares so considerados malware. Tambm pode ser considerada malware,
uma aplicao legal que por uma falha de programao (intencional ou no) execute funes
que se enquadrem na definio citada.
Os programas antivrus e antispyware so as ferramentas mais comuns para
preveno. Esses utilitrios analisam um programa de computador antes de execut-lo e
encerram-no caso reconhea uma "assinatura" de um cdigo mal-intencionado. Muitos
antivrus tambm avaliam os programas para determinar se eles contm quaisquer
caractersticas relacionadas a vrus. Porm, esses utilitrios usualmente se aplicam a
programas maliciosos cujas assinaturas j so conhecidas e catalogadas em uma base de
dados.
Para criar as assinaturas do malwares e catalog-las, necessria uma anlise
detalhada de seu cdigo, conhecida como engenharia reversa. De acordo com Eilam (2005),
engenharia reversa um conjunto de tcnicas e ferramentas para entender o funcionamento de
um software. um processo de anlise de um sistema para identificar seus componentes e

5
suas inter-relaes, para criar representaes do sistema em um nvel mais alto de abstrao.
No caso do malware, aplicada na interpretao do seu cdigo de mquina para tentar entender
seu funcionamento.
A engenharia reversa pode ser feita de forma manual, atravs de uma anlise feita por
um programador, ou de forma automatizada, quando um software tenta identificar alguma
estrutura do malware. Normalmente isso feito para identificar a presena de um malware em
um programa.
Grande parte dos cdigos maliciosos so desenvolvidos para ambiente Windows
(VIRUSTOTAL, 2013), conforme estatstica mostrada na Figura 1. Os esforos para
desenvolver tcnicas e ferramentas para facilitar a anlise de malware so constantes, devido
ao aumento drstico da quantidade de cdigos maliciosos nos ltimos anos (Finjan Research
Center, 2009), que no cenrio nacional pode ser visualizado na Figura 2.
Figura 1 Estatstica mostrando que grande parte dos malwares so desenvolvidos para o sistema operacional
Windows.

Fonte: Virustotal (2013).


Figura 2 Incidentes Reportados ao CERT.br, Janeiro a Maro de 2013.

Fonte: CERT.br (2013).

No Grfico da Figura 2, a legenda para worm abrange todas as notificaes de


atividades maliciosas relacionadas com o processo automatizado de propagao de cdigos
maliciosos na rede, conforme relatado por CERT.br (2013).
Assim, dentro deste contexto, pretende-se fazer uma reviso terica dos principais

6
conceitos, tcnicas e ferramentas envolvidos na anlise de malware em ambiente Windows.
Ao final ser apresentado um estudo de caso de anlise de cdigos maliciosos em ambiente
Windows, por meio das tcnicas e ferramentas de anlise esttica e dinmica, apresentadas no
referencial terico.
1.1 PROBLEMA
Quais os principais conceitos, tcnicas e ferramentas envolvidos na anlise de
malware em ambiente Windows?
1.2 PRESSUPOSTO
A anlise de cdigos maliciosos se torna extremamente difcil se no forem utilizadas
as tcnicas e ferramentas adequadas.
1.3 PROPSITO
Levando em considerao que a maioria dos cdigos maliciosos so desenvolvidos
para ambiente Windows. Somando este fato ao aumento drstico na quantidade de malware
desenvolvido nos ltimos anos. Esta pesquisa, por meio de um estudo de caso, visa a difuso
de tcnicas e ferramentas utilizadas na anlise de malware em ambiente Windows.
1.4 OBJETIVOS GERAIS
Identificar os principais conceitos, tcnicas e ferramentas envolvidos na anlise de
malware em ambiente Windows.
1.4.1 Objetivos Especficos
Para alcanar o objetivo geral ser necessrio:
a) expor os principais conceitos tericos e tcnicas envolvidas na anlise bsica,
esttica e dinmica, de malware;
b) apontar as principais ferramentas utilizadas para anlise bsica, esttica e
dinmica de malware em ambiente Windows;
c) demonstrar atravs de um estudo de caso, o funcionamento das principais
tcnicas e ferramentas envolvidas na anlise bsica, esttica e dinmica de
malware em ambiente Windows.
2

REFERENCIAL TERICO

Este tpico apresenta os fundamentos relacionados a tcnicas, ferramentas e conceitos


envolvidos na anlise de malware em ambiente Windows. A Seo 2.1 descreve a reviso
bibliogrfica. A Seo 2.2 define os conceitos, tcnicas e ferramentas utilizados na anlise de
malware.
2.1 REVISO BIBLIOGRFICA
A ameaa dos cdigos e programas maliciosos segurana dos sistemas
computacionais fez com que surgissem muitos sistemas cujo propsito analisar, de maneira

7
dinmica e controlada, tais programas. Estes sistemas empregam diversas tcnicas para obter
o comportamento apresentado por amostras de malware durante sua execuo. A
complexidade destas tcnicas varia desde a monitorao de eventos atravs de interfaces no
nvel de privilgio dos usurios, passando pela desofuscao de programas maliciosos em
linguagens tpicas da Web, at a insero de cdigo em estruturas do kernel do sistema
operacional. Filho et al. (2011) apresentam as principais tcnicas utilizadas para efetuar a
anlise dinmica de malware, sejam estes do nvel do sistema operacional ou da Web.
Filho et al. (2010) prope um sistema de anlise de artefatos maliciosos para obter
informaes sobre a execuo do artefato e o trfego de rede gerado durante a anlise. O
sistema capaz de analisar arquivos do tipo PE32 (Portable Executable) dos sistemas
Windows.
Para criar contramedidas a ataques por programas maliciosos, necessrio entender o
comportamento destes programas. Sistemas de anlise dinmica ajudam a traar tais
comportamentos, mas geram muitos dados textuais que podem confundir o analista. Assim
tcnicas de visualizao podem ser empregadas, na tentativa de se identificar padres que
sirvam no auxlio anlise, possibilitando a descoberta de informaes teis. Grgio et al.
(2011) e Baruque et al. (2011) propem uma ferramenta interativa e visual para anlise de
comportamento de cdigo malicioso.
A propagao automtica de malwares uma sria ameaa na Internet e responde por
boa parte dos comprometimentos de sistemas computacionais. As ferramentas de segurana
como antivrus e firewalls tm evoludo consideravelmente nos ltimos tempos, no entanto os
malwares no ficaram para trs. A nova gerao de malwares possui a capacidade de
desabilitar softwares antivrus e ocultar-se no sistema operacional. Ceron et al. (2009) buscam
identificar as funcionalidades dos malwares mais utilizadas avaliando tambm a eficcia dos
sistemas de antivrus com relao s mesmas.
As botnets so consideradas uma das principais ameaas a segurana da Internet. Tais
ameaas caracterizam-se por serem muito dinmicas, de forma a diminuir a efetividade de
sistemas antivrus e IDS. Ceron et al. (2011) apresentam uma arquitetura de ferramentas para
mitigao e deteco de botnets, baseada em assinaturas de rede de mquinas comprometidas
por bots.
Para evitar mecanismos de proteo como antivrus, os desenvolvedores de malware
usam packers, programas para ofuscar o cdigo malicioso e dificultar sua deteco e anlise.
Martins et al. (2010), apresentam uma ferramenta multiplataforma e orientada a objetos para
identificar packers em arquivos de executveis do Microsoft Windows, permitindo a
agregao de novos mdulos para auxiliar na obteno de informaes sobre malware.
A quantidade de diferentes alvos aliada s diferentes finalidades dos ataques
perpetrados por softwares maliciosos em conjunto com o vasto arsenal de ferramentas
disponveis aos desenvolvedores gera uma quantidade de malwares que exige o mximo de
automatizao nas tarefas de anlise e prospeco dos mesmos. Um dos problemas a serem
tratados para a anlise esttica o empacotamento. Nesse contexto Park et al. (2011)
apresentam uma metodologia de reconhecimento de empacotamento de executveis, atravs
da utilizao de clculos estatsticos e de teoria da informao.
Programas maliciosos espionam o comportamento de usurios e comprometem a sua

8
privacidade. As tcnicas existentes para deteco de malware e anlise de amostras de cdigos
desconhecidos so insuficientes e tm deficincias significativas contra este tipo de atividade
maliciosa. O acesso informao e comportamento malicioso de processamento o trao
fundamental que separa aplicativos maliciosos de softwares benignos. Yin et al. (2007)
propem um sistema para detectar e analisar malwares, capturando suas caractersticas
fundamentais, de forma a permitir compreender rapidamente o comportamento de uma
amostra desconhecida.
Analisar estaticamente grandes amostras de malwares empacotados e criptografados
representa um desafio significativo para automatizar a identificao de seus atributos e
funcionalidades. Lyda et al. (2007) propem a sua identificao de forma rpida e eficiente
atravs da anlise estatstica da entropia de seus cdigos executveis.
Apenas tcnicas de anlise esttica podem no ser suficiente para identificar um
malware. Moser et al. (2007) apresentam um esquema de ofuscao binrio para explorar os
limites da anlise esttica na deteco de cdigo malicioso.
Os primeiros malwares eram muito primitivos e fceis de detectar, porm evoluram
para softwares sofisticados e complexos. A maioria dos mtodos atuais de deteco de
malware envolvem algoritmos de busca de strings, baseados na deteco de padres. Isto
pode incluir a utilizao do mtodo baseado em assinatura. Zabidi et al. (2011) propem uma
categorizao de malwares usando classificao e agrupamento, com o modelo de
aprendizagem adaptativa.
Software Weaponized o mais recente desenvolvimento em uma batalha de dcadas na
evoluo de vrus e antivrus. Malwares adaptativos e cdigos binrios com transformao
automatizadas so duas tecnologias ofensivas e defensivas, respectivamente, recentemente
emergentes que podem moldar o futuro da guerra ciberntica. Enquanto a primeira aprende a
se adaptar s defesas antivirais de forma totalmente automtica, a segunda se utiliza da
tecnologia mutao de cdigo para a defesa, transformando programas potencialmente
perigosos em programas de seguros. Nesse contexto Hamlen et al. (2013) discutem essas
tecnologias e suas funes dentro do cenrio de ataque e defesa.
Embora a anlise dinmica seja imune s tcnicas polimrficas, metamrficas e
criptogrficas, uma questo em aberto como capturar com preciso o comportamento de
malware. Jianming et al. (2011) propem um mtodo de captura de comportamento baseado
na pilha de execuo do malware.
Os sistemas antivrus tradicionais empregam recursos estticos para detectar
executveis maliciosos. Infelizmente, esta abordagem baseada em contedo pode ser ofuscada
por tcnicas tais como polimorfismo e metamorfismo. Yongtao et al. (2008) propem um
mtodo de deteco executvel malicioso usando um vetor caracterstico de dimenso 35,
onde cada dimenso representa uma caracterstica de comportamento em tempo de execuo,
correspondentes a chamadas de API Win32 e seus determinados parmetros.
Capturar o comportamento de um malware um dos pr-requisitos essenciais para
realizar sua anlise dinmica. Ying et al. (2012) estudam e projeta um sistema denominado
Osris, que faz uso da tcnica de mquina virtual para capturar o comportamento de malwares,
atravs do monitoramento das chamadas de API do Windows pelo processo em anlise.
Os cdigos dos malwares esto cada vez mais complexos e sofisticados, de forma que

9
os analistas gastam mais tempo para identificar a assinatura de um malware e desenvolver
rotinas de deteco e remoo, aumentando assim, o risco de se infectar sistemas crticos. A
fim de se evitar infeces mltiplas do mesmo sistema por uma malware, o mesmo costuma
utilizar marcadores de infeco para identificar um sistema como j infectado. Nesse
contexto, Wichmann et al. (2012) apresentam o conceito de usar esses marcadores para
vacinar sistemas contra infeces por uma famlia de malwares especficos, eliminando assim
a necessidade de um especialista humano para realizar a anlise.
Os programas maliciosos podem causar srios problemas de segurana para usurios
domsticos e at mesmo para sistemas corporativos altamente seguros. O principal vetor de
infeco atualmente usado por atacantes a Internet. Neste contexto, Afonso et al. (2012)
propem um framework hbrido para anlise de malwares de ambiente Web e de Sistemas
Operacionais, que oferece melhores taxas de deteco para uma gama mais ampla de tipos de
malwares.
De Melo et al. (2011), em seu artigo divulgam o conhecimento necessrio para que
profissionais interessados em anlise de malware desenvolvam habilidades esperadas em um
grupo de resposta a incidentes e forense computacional, focado em malware bancrio. A
abordagem utilizada terico-prtica, expondo principais conceitos e discusses sobre as
novas tendncias de desenvolvimento de cdigos maliciosos bem como suas contramedidas.
So apresentados modelos de conduo de incidentes e anlise de malware, com ferramentas
utilizadas no processo, apontando quais informaes so primordiais e as preocupaes
necessrias para se conter um incidente.
2.2 CONCEITOS, TCNICAS E FERRAMENTAS NA ANLISE DE MALWARE
Tendo Sikorski et al. (2012) como principal referencial terico, nos itens que se
seguem sero apresentados os principais conceitos, tcnicas e ferramentas utilizadas na
anlise de malware em ambiente Windows.
2.2.1 Objetivos da anlise de malware
O objetivo da anlise de malware geralmente fornecer a informao que se precisa
para responder de forma adequada a uma invaso de rede. Seus objetivos sero tipicamente
para determinar exatamente o que aconteceu, e para garantir que se tenha localizado todas as
mquinas e arquivos infectados. Ao analisar o cdigo malicioso suspeito, seu objetivo ser
tipicamente determinar exatamente o que um determinado cdigo binrio suspeito pode fazer,
como detect-lo em sua rede, e como medir e conter seu dano.
Depois de identificar os arquivos que exigem uma anlise completa, o passo seguinte
desenvolver assinaturas para detectar infeces de malware na rede, que podem ser
assinaturas baseadas em host e assinaturas de rede.
Assinaturas baseadas em host, ou indicadores, so usadas para detectar o cdigo
malicioso em computadores das vtimas. Estes indicadores, muitas vezes identificam os
arquivos criados ou modificados pelas mudanas que um malware especfico faz no registro
do Windows. Ao contrrio de assinaturas de antivrus, os indicadores se concentram no que o
malware faz para o sistema, no nas caractersticas do prprio software malicioso. Isso os

10
torna mais eficazes na deteco de malwares que mudam de forma ou que tenham sido
excludos do disco rgido.
Assinaturas de rede so usadas para detectar cdigos maliciosos atravs do
monitoramento do trfego da rede. Assinaturas de rede podem ser criadas sem a anlise do
malware, porm as assinaturas criadas com a ajuda da anlise do malware so geralmente
muito mais eficazes, oferecendo uma alta taxa de deteco e poucos falsos positivos.
Aps a obteno das assinaturas, o objetivo final descobrir exatamente como o
malware funciona. Essa muitas vezes a pergunta mais feita pela alta administrao, que quer
uma explicao completa, no caso de uma grande intruso. As tcnicas aqui apresentadas
permitiro determinar a finalidade e capacidades de programas maliciosos.
2.2.2 Tcnicas de anlise de malware
Existem duas abordagens fundamentais para se fazer a anlise de um malware: esttica
e dinmica. Anlise esttica envolve examinar o malware sem execut-lo, j a anlise
dinmica implica na execuo do malware. Ambas as tcnicas podem ser classificadas em
bsica e avanada.
A anlise esttica bsica consiste em examinar o arquivo executvel sem visualizar as
instrues do cdigo. Este tipo de anlise fornece informao sobre a funcionalidade do
malware, algo que o identifique, como se fosse uma assinatura. uma anlise direta e rpida,
mas ineficaz contra malwares sofisticados e pode deixar passar comportamentos importantes.
A anlise dinmica bsica implica em executar o malware e observar o seu
comportamento no sistema de modo a remover a infeco, produzir assinaturas, ou ambos.
Entretanto, antes de executar o malware, deve-se estabelecer um ambiente que permitir
estudar o comportamento do malware sem colocar em risco o sistema operacional ou a rede.
A anlise esttica avanada consiste em fazer uma engenharia reversa no cdigo do
malware, carregando este em um disassembler, e analisar as instrues do programa de modo
a tentar descobrir o que o programa faz. Esta tcnica requer conhecimentos especializado em
engenharia reversa de cdigos, construo de cdigos e conceitos do sistema operacional em
questo.
A anlise dinmica avanada emprega um debugger para examinar o estado interno de
um executvel malicioso em tempo de execuo.
Este artigo aborda apenas na anlise esttica e dinmica, ambas bsica.
2.2.3 Tipos de malware
Segundo SIKORSKI et al. (2012), os malwares podem ser classificados de acordo
com o seu comportamento nos seguintes tipos:
a) Backdoor Malicious: cdigo que permite um atacante, acesso a um computador.
b) Botnet: similar ao backdoor, no sentido que permite um atacante acesso a um
computador, mas todos os computadores infectados com o mesmo botnet recebero a
mesma instruo de um nico servidor de comando e controle.
c) Downloader: cdigo malicioso que existe apenas para fazer download de outro cdigo
malicioso.

11
d) Information-stealing malware: malware que coleta informaes do computador de
uma vtima e envia-as ao atacante.
e) Launcher: programa malicioso usado para dar inicio a execuo de outros softwares
maliciosos.
f) Rootkit: cdigo malicioso projetado para ocultar a existncia de outro cdigo.
g) Scareware: malware projetado para intimidar um usurio infectado a comprar algo,
normalmente se passando por um antivrus ou outro programa de segurana.
h) Spam-sending malware: malware que infecta a mquina do usurio e ento usa esta
mquina para enviar spam.
i) Worm ou vrus: cdigo malicioso que copia a si prprio e infecta outras mquinas.
Porm os malwares podem ser classificados em mltiplas categorias, assim
importante no ficar muito preso ao seu comportamento para classific-los.
Malwares tambm podem ser classificados, de acordo com o seu objetivo de ataque,
como direcionados ou em massa. Malware de ataque em massa, como o Scareware,
projetado para afetar tantas mquinas quanto possvel. Malwares direcionados, como por
exemplo um tipo de backdoor projetado para uma organizao especifica, so mais perigosos
que os malwares em massa, pois seu ataque no generalizado e os produtos de segurana
existentes provavelmente no lhe protegero. Malwares direcionados so quase sempre
sofisticados e sua anlise requer conhecimentos avanados.
2.2.4 Anlise esttica bsica
A anlise esttica, que normalmente o primeiro passo para se estudar um malware,
descreve o processo de anlise do cdigo ou a estrutura de um programa para determinar a sua
funo. Porm o programa em si no executado.
Segundo SIKORSKI et al. (2012), as seguintes tcnicas e ferramentas, envolvendo
anlise esttica, so teis para se extrair informao dos executveis e sero discutidas nesta
seo:
a) Ferramentas de antivrus para confirmar se um cdigo malicioso ou no.
b) Hashing para identificar o malware.
c) Informaes das strings de arquivos, funes e cabealhos.
d) Empacotamento e Ofuscao.
e) Formato de arquivo PE (Portable Executable).
f) Bibliotecas de Ligao e Funes.
g) Cabealho e sees de um arquivo PE.
Cada tcnica prov diferentes informaes que podem ser teis, dependendo do
objetivo. Normalmente usam-se vrias tcnicas para coletar tantas informaes quanto
possvel.
2.2.4.1 Scanning com antivrus
Ao analisar o malware em potencial, um bom primeiro passo testar sua

12
maliciosidade atravs de vrios programas antivrus, que j podem t-lo identificado. Mas as
ferramentas antivrus no so perfeitas, pois se baseiam em um banco de dados que contm
partes identificveis de cdigos suspeitos conhecidos (assinaturas de arquivo), bem como
anlise de comportamento e correspondncia de padres (heurstica), para identificar arquivos
suspeitos. Um problema que os desenvolvedores de malware podem facilmente modificar
seu cdigo, mudando assim a assinatura de seu programa e fugir da busca dos programas de
antivrus.
Alm disso, malwares novos frequentemente passam despercebidos por um software
antivrus, pois simplesmente sua assinatura no est na base de dados. Finalmente, a
heurstica, enquanto muitas vezes bem-sucedida na identificao de cdigo malicioso
desconhecido, pode ser contornada por malwares novos e nicos.
Como vrios programas antivrus usam assinaturas diferentes e tcnicas baseadas em
heurstica, til testar vrios programas antivrus diferentes contra o mesmo trecho de cdigo
malicioso suspeito. Sites como o VirusTotal1 permitem que se carregue um arquivo para que
seja feito o scanning por vrios programas antivrus, gerando assim um relatrio com o
nmero total de programas antivrus que identificaram o arquivo como malicioso, o nome do
malware em questo, e, se disponvel, informaes adicionais sobre o mesmo.
2.2.4.2 Hashing
Hashing, no contexto de anlise de malware, um mtodo comum usado para
identificar de forma nica um malware. O arquivo malicioso submetido a um programa
gerador de hash, que produz uma sequencia nica de caracteres que o identifica, uma espcie
de impresso digital do malware. O Message-Digest Algorithm 5 (MD5), funo hash, o
mais comumente utilizado para anlise de malware, embora o Secure Hash Algorithm 1
(SHA-1) tambm seja muito popular.
Como um padro da Internet (RFC 1321), o MD5 utilizado numa ampla variedade
de aplicaes de segurana, e tambm para verificar a integridade de arquivos. Para ambiente
Windows, pode-se usar o software WinMD5, que um pequeno e rpido utilitrio para
calcular o valor de hash MD5 para arquivos. Ele funciona com Microsoft Windows 98, Me,
2000, XP, 2003, Vista e Windows 7. Disponvel para download gratuitamente2.
O National Software Reference Library (NSRL) disponibiliza uma biblioteca de dados
contendo um conjunto de hash para serem empregadas em trabalhos de forense digital, (NIST,
2013). Esta base de dados contm assinaturas de software maliciosos e as concentram em um
conjunto de dados de referncia (Reference Data Set RDS), disponvel para download3.
Com esta base de dados possvel analisar e identificar os arquivos por meio de suas
assinaturas digitais.
2.2.4.3 Strings
String em um programa uma sequncia de caracteres, como UCB. Se um
1 http://www.virustotal.com
2 http://www.winmd5.com/
3 http://www.nsrl.nist.gov/Downloads.htm

13
programa imprime uma mensagem, se conecta a uma URL, ou copia um arquivo para um
local especfico, logo ele contm sequncias de strings.
Procurando em strings, pode ser uma maneira simples de obter dicas sobre a
funcionalidade de um programa. Por exemplo, se o programa acessa a uma URL ento
provavelmente vai-se ver o endereo da URL acessada, armazenado como uma string.
Normalmente as strings so armazenadas no formato ASCII ou Unicode. Ambos os
formatos so armazenados em sequncias de caracteres que terminam com NULL para indicar
que a sequncia est completa. Sequncias ASCII usam um byte por caractere, e sequncias
Unicode usam dois bytes por caractere.
Para ambiente Windows um programa para obter as strings de um arquivo pode ser
feito o download neste site4.
Por exemplo, se a string UCB fosse armazenada no formato ASCII, a sequncia de
caracteres armazenada equivalente em hexadecimal seria 0x55, 0x43, 0x42 e 0x00, onde 0x55
a representao ASCII da letra maiscula U, 0x43 representa a letra C e 0x42 representa a
letra B. O 0x00 no fim o terminador NULL. O formato Unicode equivalente a esta mesma
sequencia de caracteres seria 0x5500, 0x4300, 0x4200 e 0x0000.
Quando se busca por strings ASCII e Unicode em um arquivo executvel, o contexto e
formatao do arquivo so ignorados. Isso permite que se possa analisar qualquer tipo de
arquivo e detectar strings atravs de um arquivo inteiro, embora isso implique que se possa
identificar um conjunto de bytes como strings, enquanto os mesmos no o so. O programa
Strings procura por uma sequencia de trs ou mais sequncias de caracteres ASCII e Unicode,
seguido por uma sequncia de caractere de terminao.
Assim, s vezes as strings detectadas no so strings de verdade. Por exemplo, caso a
sequncia de bytes 0x56, 0x50, 0x33, 0x00, fosse encontrada, ela seria interpretada como
VP3, mas esses bytes podem no realmente representar essa sequncia, pois eles podem ser
um endereo de memria, instrues da CPU, ou dados utilizados pelo programa. Assim, o
programa Strings deixa por conta do usurio, a tarefa de filtrar strings invlidas. Felizmente, a
maioria das strings invlidas so bvias, porque eles no representam um texto com sentido.
2.2.4.4 Malwares empacotados e ofuscados
Os criadores de malware utilizam frequentemente empacotamento ou ofuscao para
tornarem seus arquivos mais difcil de se detectar ou analisar. Programas ofuscados so
aqueles que o autor do malware tentou esconder a execuo. Programas empacotados so um
subconjunto de programas ofuscados, em que o programa malicioso comprimido e no pode
ser analisado. Ambas as tcnicas limitam as tentativas de analisar estaticamente o malware.
Programas legtimos incluem quase sempre muitas strings, porm um malware que
empacotado ou ofuscado contm muito poucas strings. Ao varrer um arquivo executvel por
strings, e o mesmo retornar poucas strings, provavelmente ou o arquivo est ofuscado ou
empacotado, sugerindo que pode ser nocivo. Assim provvel que se precise utilizar outras
tcnicas alm da anlise esttica.
Uma maneira de detectar arquivos compactados com o programa PeiD, verso 0.95,
que apesar de no est mais sendo atualizado desde abril de 2011, ainda uma excelente
4 http://technet.microsoft.com/en-us/sysinternals/bb897439

14
ferramenta para detectar o tipo de empacotador ou compilador empregado na construo de
uma aplicao, o que torna muito mais fcil a anlise do arquivo compactado. possvel fazer
o download5, j que a pgina oficial do programa6 est descontinuada.
2.2.4.5 Formato de arquivo PE (Portable Executable)
At agora, discutiram-se ferramentas que fazem a varredura em executveis sem levar
em conta o seu formato. No entanto, o formato de um arquivo pode revelar muito sobre a
funcionalidade do programa. O formato de arquivo executvel porttil (PE) usado por
executveis do Windows, cdigo objeto e DLLs. O formato do arquivo PE uma estrutura de
dados que contm as informaes necessrias para carregador do sistema operacional
Windows gerenciar o cdigo executvel que est embrulhado. Quase todos os arquivos com
cdigo executvel que so carregados pelo Windows esto no formato de arquivo PE, apesar
de alguns arquivos em formatos legados aparecerem em raras ocasies. Arquivos PE
comeam com um cabealho que inclui informaes sobre o cdigo, o tipo de aplicao,
funes de biblioteca necessrias e requisitos de espao. As informaes no cabealho do PE
so de grande valor para o analista de malware.
2.2.4.6 Bibliotecas de Ligao e Funes
Uma das peas mais teis de informaes que se pode reunir sobre um executvel a
lista de funes que o mesmo importa. As importaes so funes usadas por um programa
que esto armazenados em um outro programa diferente, como o cdigo de bibliotecas que
contm funcionalidades comum a muitos programas. Bibliotecas de cdigo podem ser ligadas
ao executvel principal pela ligao.
Programadores importam bibliotecas para no precisar reimplementar determinada
funcionalidade em vrios programas. Bibliotecas de cdigo podem ser ligadas estaticamente
(static linking), em tempo de execuo (run-time linking), ou dinamicamente (dynamic
linking). Saber como o cdigo da biblioteca est ligado ao programa principal fundamental
para a anlise de malware, porque a informao que se pode encontrar no cabealho do
arquivo PE depende de como o cdigo da biblioteca foi ligado.
Ligao esttica o mtodo menos utilizado para ligao de bibliotecas, embora seja
comum em programas de UNIX e Linux. Quando uma biblioteca estaticamente ligada a um
executvel, todo o cdigo a partir dessa biblioteca copiado para o arquivo executvel, que
faz o executvel aumentar em tamanho. Ao analisar cdigo, difcil diferenciar entre o cdigo
estaticamente ligado e prprio cdigo do executvel, pois nada no cabealho do arquivo PE
indica que o arquivo contm o cdigo ligado.
Embora no seja popular em programas amigveis, ligao em tempo de execuo
comumente usado em malware, especialmente quando o mesmo embalado ou ofuscado.
Executveis que usam este tipo de ligao, conectam-se a bibliotecas apenas quando alguma
funcionalidade contida nela necessrio, no no incio do programa, mas em tempo de
execuo do programa.
5 http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/PEiD-updated.shtml
6 http://www.peid.info/

15
Vrias funes do Microsoft Windows permitem aos programadores importar funes
de ligao, que no listadas no cabealho do arquivo de um programa, sendo as duas mais
comumente utilizadas LoadLibrary e GetProcAddress, variantes como LdrGetProcAddress e
LdrLoadDll tambm so utilizadas. Estas funes permitem o programa principal acessar
qualquer funo contida em uma biblioteca do sistema, o que significa que, quando so
usadas, no se pode dizer estaticamente quais as funes esto sendo ligadas ao programa
suspeito.
De todos os mtodos de ligao, ligao dinmica o mais comum e o mais
interessante para os analistas de malware. Quando as bibliotecas so ligadas dinamicamente, o
sistema operacional procura pelas bibliotecas necessrias quando o programa carregado.
Quando o programa chama a funo da biblioteca ligada, esta funo executada de dentro da
biblioteca.
O cabealho do arquivo PE armazena informaes sobre cada biblioteca, que ser
carregada, e cada funo que ser utilizada pelo programa. As bibliotecas utilizadas e as
funes chamadas so muitas vezes as partes mais importantes de um programa, e identificlos particularmente importante, pois permite-nos dizer o que um programa faz. Por exemplo,
se um programa importa a funo URLDownloadToFile, pode-se imaginar que ele se conecta
Internet para baixar alguns contedos e que, em seguida, armazena em um arquivo local.
O programa DependencyWalker7, distribudo em algumas verses do Microsoft Visual
Studio e outros pactes de desenvolvimento da Microsoft, lista apenas funes ligadas
dinamicamente em um arquivo executvel.
O cabealho do arquivo PE tambm inclui informaes sobre as funes especficas
utilizadas por um executvel (funes importadas). Os nomes dessas funes do Windows
podem dar uma boa ideia sobre o que o executvel faz. A Microsoft fez um excelente trabalho
de documentao da API do Windows atravs da biblioteca do Microsoft Developer Network
(MSDN8).
Como as importaes, DLLs e EXEs exportam funes para interagir com outros
programas e cdigos. Tipicamente, uma DLL implementa uma ou mais funes e as exporta
para que um executvel possa import-las e us-las. O arquivo PE contm informaes sobre
que funes um arquivo exporta. Funes exportadas so mais comumente encontradas em
DLLs, pois elas so especificamente implementadas para fornecer funcionalidades utilizada
por EXEs. E EXEs no so projetados para fornecer a funcionalidade para outros EXEs,
assim funes exportadas so raramente encontradas. Assim, caso se venha a descobrir
funes exportadas em um executvel, com certeza elas fornecero informaes teis.
Em muitos casos, os autores de software nomeiam suas funes exportadas de uma
maneira que fornecem informaes teis. Uma conveno comum utilizar o nome usado na
documentao da Microsoft. Por exemplo, para executar um programa como um servio,
deve-se primeiro definir uma funo ServiceMain. A presena de uma funo exportada
chamada ServiceMain diz que o malware executado como parte de um servio. Infelizmente,
enquanto a documentao Microsoft chama esta funo ServiceMain, e comum para os
programadores a fazer o mesmo, a funo pode ter qualquer nome. Portanto, os nomes das
7 http://www.dependencywalker.com
8 http://msdn.microsoft.com/pt-br

16
funes exportadas so realmente de uso limitado contra malwares sofisticados. Se o malware
utiliza as exportaes, o programador ir muitas vezes ou omitir totalmente os nomes ou usar
nomes obscuros ou enganosos. As informaes de exportao podem ser visualizadas
utilizando o programa Dependency Walker.
2.2.4.7 O cabealho e as sees de um arquivo PE
Cabealhos de arquivo PE podem fornecer muito mais informaes do que as
importaes apenas. O formato do arquivo PE contm um cabealho seguido por uma srie de
seces. O cabealho contm metadados sobre o arquivo em si. Depois do cabealho vem as
seces do arquivo, cada uma contendo informaes teis. A seguir, tem-se as sees mais
comuns e interessantes em um arquivo PE:
a) .text: contm as instrues que a CPU executa. Todas as outras seces armazenam
dados e informaes de apoio. Geralmente, esta a nica parte que pode ser
executada, e deve ser a nica seco que inclui cdigo.
b) .rdata: normalmente contm as informaes de importao e exportao, que a
mesma informao disponibilizada tanto pelo Dependency Walker quanto pelo
PEview. Esta seo tambm pode armazenar outros dados somente de leitura
utilizados pelo programa. s vezes, o arquivo conter sees .idata e .edata, que
armazenam as informaes de importao e exportao, respectivamente.
c) .data: contm dados globais do programa, que so acessveis a partir de qualquer lugar
no programa. Dados locais no so armazenados nesta seo, ou em qualquer outro
lugar no arquivo PE.
d) .rsrc: inclui os recursos utilizados pelo executvel que no so considerados parte do
executvel, tal como cones de imagens, menus e strings. Strings podem ser
armazenadas na seo ou no programa principal, mas elas so frequentemente
armazenados nesta seo, para suporte a mltiplos idiomas.
Nomes de seo so muitas vezes consistentes em um compilador, mas podem variar
entre compiladores diferentes. Por exemplo, o Microsoft Visual Studio usa a seo .text para
cdigo executvel, mas o Borland Delphi usa CODE. O Windows no se preocupa com o
nome real, uma vez que utiliza outras informaes no cabealho do PE para determinar como
uma seo usada. Alm disso, os nomes das seces so frequentemente ofuscados para
tornar a anlise mais difcil. Felizmente, nomes padro so usados na maioria das vezes.
Pode-se usar a ferramenta PEview para visualizar as informaes contidas no
cabealhos dor arquivos PE. Pode-se tambm usar a ferramenta livre ResourceHacker9 para
navegar na seco .rsrc. Ao se clicar nos itens do Resource Hacker, pode-se visualizar as
strings, cones e menus, que so apresentados de forma idntica as utilizadas no programa.
Muitas outras ferramentas esto disponveis para consultar um cabealho PE. Duas
ferramentas teis so PEBrowse Profissional e PE Explorer. PEBrowseProfessional10
semelhante ao PEview. Ele permite olhar para os bytes de cada seo e mostra os dados
analisados. O PEBrowse Professional faz o melhor trabalho de apresentar a informao dos
9 http://www.angusj.com
10 http://www.smidgeonsoft.prohosting.com/pebrowsepro-file-viewer.html

17
recursos (seo .rsrc).
O PE Explorer11 tem uma rica interface grfica que permite navegar atravs das vrias
partes do arquivo PE e editar algumas partes do arquivo. Ele possui um editor de recurso que
timo para navegao e edio dos recursos do programa analisado. A principal
desvantagem desta ferramenta que ela no livre.
2.2.5 Anlise de malware em mquinas virtuais
Antes de executar um malware para fazer a anlise dinmica, deve-se criar um
ambiente seguro. Um malware novo pode ser cheio de surpresas, e se execut-lo em uma
mquina de produo, ele pode espalhar-se rapidamente para outras mquinas na rede e
remov-lo pode ser muito difcil. Um ambiente seguro lhe permitir investigar o malware,
sem expor sua mquina ou outras mquinas na mesma rede a um risco inesperado e
desnecessrio.
Pode-se usar as mquinas fsicas dedicadas ou mquinas virtuais para estudar um
malware de forma segura. Malwares podem ser analisados usando mquinas fsicas
individuais em redes isoladas, com mquinas que esto desconectados da Internet ou de
quaisquer outras redes para evitar que o malware se espalhe, permitindo assim que se execute
o malware em um ambiente real, sem colocar outros computadores em risco. Uma
desvantagem desse cenrio de teste, no entanto, a falta de uma conexo internet, pois
muitos malwares dependem de uma conexo internet para atualizaes, comandos e outras
caractersticas.
Outra desvantagem para anlise de malware em uma mquina fsica, comparado ao
uso de uma mquina virtual, a dificuldade de remoo do mesmo. Para evitar problemas,
normalmente utiliza-se uma ferramenta para gerenciar imagens de backup do sistema
operacional, como por exemplo o Norton Ghost, que podem ser restauradas aps a anlise ter
sido completada.
A principal vantagem de usar mquinas fsicas para a anlise de malware, que o
malware pode ser executado de forma diferente em mquinas virtuais, pois o malware pode
ter a capacidade de detectar que est sendo executado em uma mquina virtual e se comportar
de forma diferente, frustrando assim a anlise.
Por causa dos riscos e desvantagens que vm com o uso de mquinas fsicas para
analisar malware, as mquinas virtuais so mais comumente empregadas para fazer a anlise
dinmica.
2.2.5.1 Conectando o malware internet
Para fornecer um ambiente de anlise mais realista, s vezes necessrio conectar
internet a mquina em que est sendo feita a anlise, apesar dos riscos. O maior risco, claro,
que o computador poder executar atividades maliciosas, como espalhar o malware para
outras mquinas da rede, se tornar um n de um ataque distribudo de negao de servio, ou
simplesmente enviar spam. Assim nunca se deve conectar o malware Internet sem antes
realizar algumas anlises para determinar o que o malware pode fazer quando est conectado.
11 http://www.heaventools.com

18
A maneira mais comum de conectar uma mquina virtual Internet com uma placa
de rede em modo bridge, o qual permite que a mquina virtual possa se conectar mesma
interface de rede que o equipamento fsico. Outra maneira usar Network Address
Translation (NAT).
2.2.5.2 Snapshot
Snapshot um conceito nico para mquinas virtuais, que permitem salvar o estado
atual do computador e voltar para esse ponto mais tarde, semelhante a um ponto de
restaurao do Windows.
Depois de instalar o sistema operacional e as ferramentas de anlise de malware, e
configurar a rede, tire um snapshot da mquina para utiliza como snapshot base. Aps
executar o malware, completar a anlise e salvar os dados, reverta para o snapshot base, de
modo que se possa fazer tudo mais uma vez. Mesmo estando no meio de anlise, a maioria
das mquinas virtuais permitem retornar a um snapshot feito a qualquer momento, no
importando quantos snapshots foram feitos posteriormente.
2.2.6 Anlise dinmica bsica
A anlise dinmica qualquer anlise realizada aps a execuo de um malware.
Tcnicas de anlise dinmica so o segundo passo no processo de anlise de software
malicioso. A anlise dinmica normalmente realizado aps a anlise esttica bsica, quanto
esta chegou a um beco sem sada, seja devido ofuscao, empacotamento, ou o analista
esgotou as tcnicas de anlise esttica disponveis. Pode envolver monitoramento de malware
durante a sua execuo ou simplesmente um exame do sistema aps a execuo do malware.
Ao contrrio de uma anlise esttica, a anlise dinmica permite observar verdadeira
funcionalidade do malware, pois a existncia de uma sequncia de cdigos binrios no
significa que as aes oriundas dali, realmente sero executadas. A anlise dinmica tambm
uma maneira eficiente para identificar a funcionalidade do malware. Por exemplo, se o
malware em anlise um key-logger, a anlise dinmica pode permitir localizar no sistema o
arquivo de log do key-logger, descobrir os tipos de registros que ele mantm, decifrar para
onde ele envia as informaes coletadas, e assim por diante. Esse tipo de viso seria mais
difcil de obter utilizando apenas tcnicas de anlise esttica bsica.
Embora as tcnicas de anlise dinmica sejam extremamente poderosas, elas devem
ser utilizadas somente aps a concluso da anlise esttica bsica, porque a anlise dinmica
pode colocar a sua rede e sistema em risco. Tcnicas de anlise dinmica tambm tm suas
limitaes, porque nem todos os caminhos de cdigo podem ser executados quando um trecho
do malware executado. Por exemplo, no caso da um malware de linha de comando, que
necessita de argumentos, cada argumento, pode executar uma funcionalidade diferente do
programa, e sem saber as opes, no possvel analisar de forma dinmica todas as
funcionalidades do programa. A melhor aposta neste caso, ser a utilizao de tcnicas
avanadas estticas ou dinmicas, para descobrir como forar o malware a executar toda a sua
funcionalidade.

19
As seguintes tcnicas e ferramentas, envolvendo anlise dinmica, so teis para se
extrair informao dos executveis e sero discutidas nesta seo:
a) Sandbox;
b) Process Monitor;
c) Process Explorer;
d) Regshot;
e) Wireshark.
2.2.6.1 Sandbox
Vrios produtos de software tudo em um podem ser usados para se fazer a anlise
dinmica bsica, e os mais populares utilizam a tecnologia conhecida como sandbox. Uma
sandbox (caixa de areia), uma mecanismo de segurana para a execuo de programas noconfiveis em um ambiente seguro, sem medo de prejudicar os sistemas "reais". Caixas de
areia compem ambientes virtualizados que geralmente simulam os servios de rede de certa
forma a assegurar que o software ou malware sendo testado funcionar normalmente.
Muitas sandbox para anlise de malware como Norman SandBox, GFI Sandbox,
Anubis, Joe Sandbox, ThreatExpert, BitBlaze e Comodo Intsant Malware Analysis, analisaro
gratuitamente o malware. Atualmente, Norman SandBox e GFI Sandbox (anteriormente
CWSandbox) so os mais populares entre os profissionais da rea de segurana da
informao, conforme SIKORSKI et al. (2012).
Estas sandboxes fornecem sada de fcil entendimento e so timas para se fazer uma
triagem inicial, desde que se esteja disposto a enviar o malware em anlise aos websites das
sandboxes. Mesmo nas sandboxes automatizadas, pode-se escolher no submeter o malware
em anlise para um site pblico, j que o malware pode conter informaes sobre a empresa.
Uma sandbox no pode dizer exatamente o que o malware faz, mas ela pode lhe
informar sua funcionalidade bsica. Por exemplo, ela no pode lhe dizer que um determinado
malware um Gerente de Contas de Segurana (Security Accounts Manager SAM)
personalizado que faz um dump do hash, ou que tem um backdoor para um key-logger
criptografado. Estas so concluses que o analista deve chegar por conta prpria, a partir das
informaes fornecidas pela sandbox.
2.2.6.2 Process Monitor
Process Monitor, ou procmon, uma ferramenta de monitoramento avanado para
Windows, que fornece uma maneira de monitorar determinado registro, sistema de arquivos
de rede, processo, e atividade de thread. Combina e aumenta a funcionalidade dos duas
ferramentas legadas: Filemon e RegMon. Embora procmon capture uma grande quantidade de
dados, ele no captura tudo. Por exemplo, ele pode perder a atividade de um controlador de
dispositivo componente do modo usurio conversando com um rootkit via um dispositivo de
controle de entrada/sada, bem como certas chamadas de interfaces (GUI), tais como
SetWindowsHookEx. Embora o procmon possa ser uma ferramenta til, normalmente no
deve ser utilizado para registrar a atividade de rede, porque no trabalhar de forma consistente
em todas as verses do Microsoft Windows.

20
Procmon monitora todos as chamadas de sistema que pode reunir assim que ele
executado. Em uma mquina executando o sistema operacional Windows ocorrem muitas
chamadas de sistema (s vezes mais de 50.000 eventos por minuto), sendo impossvel
monitorar todas elas. Como o procmon usa a memria RAM para registrar eventos at que
seja dito para parar a captura, ele pode travar uma mquina virtual consumindo toda a
memria disponvel. Para evitar isso, execute o procmon por perodos limitados de tempo.
Esta ferramenta pode ser baixada como parte da Sute de ferramentas Sysinternals12.
2.2.6.3 Process Explorer
O Process Explorer, uma ferramenta gratuita da Microsoft extremamente poderosa que
para se fazer uma anlise dinmica. Ela pode fornecer informaes valiosas sobre os
processos em execuo de um sistema. Pode-se usar o Process Explorer para listar os
processos ativos, DLLs carregadas por um processo, vrias propriedades do processo, e as
informaes do sistema. Pode-se tambm us-lo para matar um processo, fazer log-off
usurios, e lanar e validar processos.
Esta ferramenta pode ser baixada como parte da Sute de ferramentas Sysinternals13.
2.2.6.4 Regshot
Regshot uma ferramenta de cdigo aberto para se fazer anlise dinmica, que
permite comparar dois snapshots da registry do Windows. Para usar o Regshot na anlise do
malware, basta tirar o primeiro snapshot, em seguida, executar o malware e esperar que ele
termine de fazer qualquer alteraes no sistema. Em seguida, tire o segundo snapshot, para
finalmente comparar os dois snapshots tirados. Esta ferramenta pode ser baixada
gratuitamente14.
2.2.6.5 Wireshark
Wireshark um sniffer de cdigo aberto, uma ferramenta de captura de pacotes muito
til na anlise dinmica. Pode-se us-la para capturar o trfego de rede gerado pelo malware e
analisar diferentes protocolos.
O Wireshark intercepta e registra o trfego de rede, fornecendo visualizao, anlise
de fluxo de pacotes, e anlise em profundidade de pacotes individuais. uma ferramenta que
pode ser usada tanto para o bem quanto para o mal. Pode ser utilizada para analisar as redes
internas e a utilizao da rede, depurar problemas de aplicaes e protocolos de estudo em
ao. Mas tambm pode ser usada para capturar senhas, protocolos de rede via engenharia
reversa, roubar informaes sensveis, e at espionar conversas on-line em uma lanhouse.
Wireshark pode ajudar voc a entender como o malware est realizando comunicao
de rede, atravs dos pacotes que o malware utiliza para se comunicar. Para usar o Wireshark
com este propsito, conecte-se Internet ou simule uma conexo Internet (utilizando
12 http://technet.microsoft.com/en-us/sysinternals/bb896645
13 http://technet.microsoft.com/en-us/sysinternals/bb896653
14 http://sourceforge.net/projects/regshot

21
INetSim por exemplo) e em seguida inicie a captura de pacotes com o Wireshark e execute o
malware. Esta ferramenta pode ser baixada gratuitamente15.
2.3 METODOLOGIA
Este trabalho tem como natureza a pesquisa aplicada. A abordagem do problema foi
atravs da pesquisa qualitativa, descritiva e subjetiva, aplicada em laboratrio, num ambiente
controlado, onde foram realizados testes para verificar as tcnicas e ferramentas de anlise de
malware em ambiente Windows.
Quanto aos objetivos, a pesquisa ser exploratria. Segundo Gil (2010), as pesquisas
exploratrias envolvem levantamento bibliogrfico e documental.
Quanto aos procedimentos Tcnicos, ser uma pesquisa Bibliogrfica e Documental,
que tem como finalidade colocar o investigador em contato com o que j se produziu a
respeito do tema (Gonsalves, 2005). Para isto, foram utilizados livros, artigos, publicaes,
revistas e sites sobre assuntos relevantes para conseguir alcanar os objetivos do trabalho.
2.3.1 Procedimentos tcnicos
Para verificar as tcnicas e ferramentas de anlise de malware em ambiente Windows,
utilizou-se malwares que foram recebidos por e-mail, conforme pode ser visualizado nas
Figuras 3, 4 e 5.
O malware#1, se passa por um boleto bancrio para quitao de dbitos, e ao se clicar
no link disponibilizado, feito o download do arquivo Anexo_Cliente039921.zip.
O malware#2 se passa por fotos relativas um servio e ao se clicar nos links
disponibilizados, feito o download dois arquivos, FotosFinais1605.zip e
Anexo_Cliente28-05-2013.zip.
O malware#3, se passa por um boleto relativo a uma kit, e ao se clicar no link
disponibilizado, feito o download do arquivo Anexo_Boleto.Cliente.zip.
Figura 3 Malware#1, boleto bancrio.

15 http://www.wireshark.org

Figura 4 Malware#2, fotos.

22

Figura 5 Malware#3, boleto.

Uma vez feito o download dos arquivos, para se comprovar que os mesmos eram
realmente arquivos .zip, verificou-se num editor hexadecimal se o cabealho dos arquivos
comeavam com os bytes 504B0304, conforme Garry Kessler (2013). Comprovados que
eram arquivos compactados, extraiu-se o seu contedo para dar inicio a anlise.
Antes de se dar inicio a anlise, estabeleceu-se um ambiente de laboratrio controlado,
optando-se pelo uso de uma mquina virtual, no caso a Oracle Virtual Box (VirtualBox,
2013), escolhida por ser uma mquina virtual de fcil utilizao e gratuita, instalando-se o
sistema operacional Windows XP SP3. Na Figura 6 pode ser visualizado, a esquerda, a tela
inicial do VirtualBox, e a direita, a tela do sistema operacional.
Figura 6 Ambiente controlado do laboratrio: VirtualBox com Windows XP SP3.

2.3.2 Anlise esttica


Ao se extrair o contedo do malware#1, arquivo Anexo_Cliente039921.zip, obtevese o arquivo Boleto Devio.exe. Este arquivo foi submetido ao site VirusTotal para averiguar
a maliciosidade do arquivo. A anlise feita pelo site, pode ser visualizada na Figura 7.

23
Ao se extrair o contedo do malware#2, arquivos FotosFinais1605.zip e
Anexo_Cliente28-05-2013.zip, obtiveram-se os arquivos Fotos Finais 17-05-2013.exe e
Fotos Finais 28-05-2013.cpl, respectivamente. Estes arquivos foram submetidos ao site
VirusTotal para averiguar a maliciosidade dos mesmos. A anlise feita pelo site, pode ser
visualizada nas Figura 8 e 9.
Ao se extrair o contedo do malware#3, arquivo Anexo_Boleto.Cliente.zip, obtevese o arquivo Documento Boleto 09433.cpl. Este arquivo foi submetido ao site VirusTotal
para averiguar a maliciosidade do arquivo. A anlise feita pelo site, pode ser visualizada na
Figura 10.
Todas as amostras de malwares, submetidas ao VirusTotal em 23/11/2013, foram
reconhecidas como cdigos maliciosos. O malware#1 j havia sido submetido para anlise
pelo VirusTotal em 29/05/2013 13:13:08, com uma taxa de deteco de 66% (31 de 47
antivrus). O malware#2 j havia sido submetido para anlise pelo VirusTotal em 17/05/2013
12:38:40, com uma taxa de deteco de 23% (11 de 47 antivrus). O malware#3 j havia sido
submetido para anlise pelo VirusTotal em 27/09/2013 11:56:19, com uma taxa de deteco
de 75% (36 de 48 antivrus).
Alm da taxa de deteco, a anlise feita pelo VirusTotal, fornece tambm informaes
detalhadas, como:
a) Hashing dos arquivos, identificando o malware;
b) Informaes das strings de arquivos, funes e cabealhos;
c) Cabealho e as sees do arquivo PE;
d) Se o malware empacotado ou no, atravs da entropia das sees;
e) Bibliotecas de ligao e funes.
Figura 7 Anlise do Malware#1, Boleto Devio.exe submetido ao site VirusTotal.

24

Figura 8 Anlise do Malware#2, Fotos Finais 17-05-2013.exe submetido ao site VirusTotal.

Figura 9 Anlise do Malware#2, Fotos Finais 28-05-2013.cpl submetido ao site VirusTotal.

25
Figura 10 Anlise do Malware#3, Documento Boleto 09433.cpl submetido ao site VirusTotal.

Mas mesmo com as informaes da anlise feita pelo VirusTotal, para fim de verificlas, submeteu-se os malwares em anlise aos programas PEiD e DependencyWalker.
As anlises feita pelo PEiD podem ser visualizadas nas Figuras 11, 12 e 13, para os
malwares #1, #2 e #3, respectivamente.
Figura 11 Malware#1, Boleto Devio.exe submetido ao PEiD.

Figura 12 Malware#2, Fotos Finais 17-05-2013.exe submetido ao PEiD.

26
Figura 13 Malware#3, Documento Boleto 09433.cpl submetido ao PEiD.

Pela anlise do PEiD, identificou-se que o malware#1 e o malware#2, provavelmente


foram desenvolvidos no Microsoft Visual Basic 5/6. Para o malware#3 no foi possvel
identificar o compilador utilizado.
Pela anlise de entropia do PEiD, o malware#1 provavelmente est empacotado, o
malware#2 no est empacotado e o malware#3 talvez esteja empacotado. A informao de
entropia fornecida corrobora com a informao de entropia fornecida pelo VirusTotal.
As anlises feita pelo DependencyWalker podem ser visualizadas nas Figuras 14, 15 e
16, para os malwares #1, #2 e #3, respectivamente.
Figura 14 Malware#1, Boleto Devio.exe submetido ao DependencyWalker.

Figura 15 Malware#2, Fotos Finais 17-05-2013.exe submetido ao DependencyWalker.

27
Figura 16 Malware#3, Documento Boleto 09433.cpl submetido ao DependencyWalker.

Pela anlise do DependencyWalker, verificou-se que o malware#1 e o malware#2


dependem da biblioteca MSVBVM60.dll, corroborando que com a informao do PEiD de
que o compilador utilizado foi o Microsoft Visual Basic 5/6. O malware#3 possui
dependncia de vrias DLL's do Windows.
2.3.3 Anlise dinmica
Ao se executar o malware#1, arquivo Boleto Devio.exe, uma tela informando um
erro foi mostrada, conforme pode ser visualizada na Figura 17.
Figura 17 Malware#1, Boleto Devio.exe, tela de execuo.

Provavelmente essa mensagem de erro foi proposital para iludir o usurio de que nada
foi feito, porm, vrias modificaes feitas na registry do Windows foram detectadas pela
ferramenta RegShot, conforme Figura 18 e um trfego de rede foi capturado pelo Wireshark,
conforme pode ser visualizado na Figura 19.
Figura 18 Malware#1, Boleto Devio.exe, relatrio do RegShot.
Created with Regshot 1.9.0 x86 ANSI
Comments:
Datetime: 2013/11/23 12:57:25 , 2013/11/23 12:58:46
Computer: TASVORG-3A47763 , TASVORG-3A47763
Username: Administrador , Administrador
Keys added: 18
Values added: 55
Values modified: 26
Total changes: 99

28
Figura 19 Malware#1, Boleto Devio.exe, captura do trfego de rede com o Wireshark.

Ao se executar o malware#2, arquivo Fotos Finais 17-05-2013.exe, foi mostrada a


mesma tela de erro obtida na execuo do malware#1, conforme a Figura 17. Da mesma
forma que na execuo do malware#1, vrias modificaes feitas na registry do Windows
foram detectadas pela ferramenta RegShot, conforme a Figura 20. Um trfego de rede foi
capturado pelo Wireshark, conforme pode ser visualizado na Figura 21.
Figura 20 Malware#2, Fotos Finais 17-05-2013.exe, relatrio do RegShot.
Created with Regshot 1.9.0 x86 ANSI
Comments:
Datetime: 2013/11/23 19:07:06 , 2013/11/23 19:09:31
Computer: TASVORG-3A47763 , TASVORG-3A47763
Username: Administrador , Administrador
Keys added: 11
Values deleted: 62
Values added: 10
Values modified: 12
Total changes: 95

29
Figura 21 Malware#2, Fotos Finais 17-05-2013.exe, captura do trfego de rede com o Wireshark.

Ao se executar o malware#3, arquivo Documento Boleto 09433.cpl, no foi exibida


tela alguma e o arquivo sumiu da pasta em que estava. Vrias modificaes feitas na registry
do Windows foram detectadas pela ferramenta RegShot, conforme a Figura 22, e um trfego
de rede foi capturado pelo Wireshark, conforme pode ser visualizado na Figura 23.
Figura 22 Malware#3, Documento Boleto 09433.cpl, relatrio do RegShot.
Created with Regshot 1.9.0 x86 ANSI
Comments:
Datetime: 2013/11/23 20:19:22 , 2013/11/23 20:20:57
Computer: TASVORG-3A47763 , TASVORG-3A47763
Username: Administrador , Administrador
Values deleted: 11
Values added: 17
Values modified: 10
Total changes: 38
Figura 23 Malware#3, Documento Boleto 09433.cpl, captura do trfego de rede com o Wireshark.

Da anlise dinmica realizada, constatou-se com o RegShot verificou-se que os


malwares em anlise efetuaram alteraes na registry do Windows. Com o Wireshark pode-se
constatar a tentativas de comunicao dos malwares com sites externos.

30
2.4 RESULTADOS E CONSIDERAES FINAIS
Na Figura 19, o pacote nmero 22 pode-se ver que o malware#1 tenta fazer uma
conexo com o endereo IP 187.73.33.46, enviando dados de um formulrio em PHP
(/mirela/recept.php) via mtodo POST. Rasteando-se o IP em questo pelo whois.registro.br
verificou-se que o mesmo est em nome da empresa Digirati Informtica, servios e
telecomunicaes com o contato Andre Nathan, e-mail andre@digirati.com.br.
Provavelmente uma empresa que oferece servios de hospedagem de sites, que foi usada por
quem realmente queria se beneficiar com o uso malware.
Na Figura 21, pode-se ver que o malware#2 tenta fazer uma conexo com o endereo
IP 187.73.33.46, no mesmo endereo que o malware#1 tentou se conectar. Corroborando para
o fato de que ambos vieram do mesmo e-mail remetente, conforme pode ser visualizado na
Figura 3, 4 e 5.
Na Figura 23, pela captura do trfego de rede, do malware#3, no foi constatado nada
significativo.
Da analise bsica feita, esttica e dinmica, no se pode concluir nada significativo
sobre as atividades dos malwares em anlise, exceto pelo servidor onde os malwares #1 e #2
tentaram se conectar.
Para fim de ser verificar se a tela da Figura 17, foi proposital, ou foi um erro mesmo
causado, por exemplo, por alguma incompatibilidade com a verso do sistema operacional em
que foi executado, sugere-se fazer uma anlise dinmica avanada, utilizando um depurador.
Mas por falta de tempo esta atividade ficar como sugesto nos trabalhos futuros.
3

CONCLUSO
Quando realizar a anlise de malware, importante ter em mente os trs os seguintes

passos:
a) No se prenda a detalhes. A maioria dos programas de malware so grandes e
complexos, e no se pode entender cada detalhe, assim foque nas principais
caractersticas. Quando se deparar com sees difceis e complexas, tente obter uma
viso geral antes de ficar preso nos detalhes.
b) Lembre-se que diferentes ferramentas e abordagens esto disponveis para trabalhos
distintos. No h uma abordagem pr-determinada, pois cada situao diferente, e
vrias ferramentas e tcnicas possuem funcionalidades semelhantes. Caso no tenha
sorte com uma ferramenta, tente outra. Se sua anlise no progredir, no gaste muito
tempo em uma seo, avance para outra. Tente analisar o malware a partir de um
ngulo diferente, ou apenas tente uma abordagem diferente.
c) Tenha em mente que a anlise de malware como um jogo de gato e rato. Como
novas tcnicas de anlise de malware so desenvolvidas, os autores de malware
respondem com novas tcnicas para frustrar tais anlises. Para ter sucesso como
analista de malware, deve-se ser capaz de reconhecer, entender e derrotar essas
tcnicas, e responder a mudanas na arte de anlise de malware.

31
3.1 TRABALHOS FUTUROS
Como possveis trabalhos para dar continuidade a esta pesquisa, apontar-se: dar
continuidade na anlise feita, utilizando tcnicas avanadas de anlise esttica e dinmica.
Abaixo segue uma breve descrio de assuntos que poderiam ser abordados.
Como discutido anteriormente, mtodos bsicos de anlise esttica e dinmica so
bons para uma triagem inicial, mas podem no fornecer informaes suficientes para analisar
completamente o malware.
Fazendo uma analogia, tcnicas de anlise bsica esttica, seriam como olhar para o
lado de fora de um corpo durante uma autpsia. Pode-se usar esta anlise para tirar algumas
concluses preliminares, porm necessria uma anlise mais aprofundada para obter todas
as informaes da funcionalidade do malware em anlise. Por exemplo, pode-se achar que
uma determinada funo importada, mas no se sabe como ou se ela usada.
Tcnicas de anlise dinmica tambm tm suas desvantagens. Por exemplo, este tipo
de tcnica pode informar como o malware responde ao receber um pacote especialmente
projetado, mas para aprender o formato do pacote, s em uma anlise mais aprofundada. a
que entra a desmontagem (disassembly), que uma tcnica avanada de anlise esttica que
exige habilidades altamente especializadas, que podem ser assustadoras para aqueles que so
novos em programao.
O Interactive Disassembler Professional (IDA Pro) um desmontador extremamente
poderoso distribudo pela Hex-Rays (Hex-Rays 2013). Embora o IDA Pro no seja o nico
desmontador, disponvel no mercado, o desmontador de escolha para muitos analistas de
malware, engenharia reversa e analistas de vulnerabilidade. Duas verses do IDA Pro esto
disponveis no mercado. Embora ambas as verses suportem executveis x86, a verso
avanada suporta muitos mais processadores do que a verso padro, principalmente x64. O
IDA Pro tambm suporta vrios formatos de arquivos, como Portable Executable (PE),
Common Object File Format (COFF), Executable and Linking Format (ELF), e a.out.
Um depurador (debugger) um pedao de software ou hardware utilizado para testar
ou examinar a execuo de um outro programa. Depuradores podem ajudar no processo de
desenvolvimento de software, uma vez que os programas costumam ter erros quando
executados na primeira tentativa. medida em que se desenvolve, pode-se fornecer a entrada
ao programa e ver o resultado, mas sem um depurador, no se pode visualizar como o
programa produz a sada.
Depuradores podem dar uma viso do que um programa est fazendo, em tempo de
execuo. So projetados para permitir que os desenvolvedores possam medir e controlar o
estado interno da execuo de um programa. Podem fornecer informaes sobre um
programa, que seria difcil, se no impossvel, de se obter com um desmontador.
Os desmontadores podem oferecer um instantneo do programa imediatamente antes
da execuo do primeiro ciclo de instrues, porm os depuradores podem fornecer uma viso
dinmica de um programa como ele executado. Por exemplo, depuradores podem mostrar os
valores de endereos de memria, como eles mudam durante a execuo de um programa.
A capacidade de medir e controlar a execuo de um programa pode fornecer uma
viso crtica durante a anlise de malware. Depuradores podem permitir que se veja o valor de
cada local de memria, registradores e argumentos passados para cada funo. Permitem

32
tambm alterar qualquer desses valores em tempo de execuo do programa. Por exemplo,
pode-se alterar o valor de uma nica varivel em qualquer ponto e tempo, sendo necessrio
apenas saber a localizao dessa varivel. Dois exemplos de depuradores so o OllyDbg e
WinDbg.
O OllyDbg (OllyDbg 2013), um depurador x86 desenvolvido pela Oleh Yuschuk,
fornece a capacidade para analisar malwares em tempo de execuo. frequentemente
utilizado por analistas de malware e engenharia reversa, pois uma ferramenta livre e de fcil
manuseio, possuindo muitos plug-ins que estendem as suas funcionalidades. O WinDbg
(WinDbg 2013) uma ferramenta livre da Microsoft. Embora no seja to popular como
OllyDbg para anlise de malware, tem muitas vantagens, a mais significativa o kernel
debugging.
Assim uma anlise avanada esttica e dinmica, utilizando desmontadores e
depuradores uma interessante proposta de continuidade do trabalho realizado neste artigo.

33
MALWARE ANALYSIS IN WINDOWS ENVIRONMENT
THIAGO ARREGUY SILVA VITORINO
Abstract:
Malicious programs are specifically designed to perform harmful actions and malicious
activities on a computer. The term malware, acronym to malicious software, is a software
designed to infiltrate a computer system alien unlawfully with intent to cause damage to or
theft of information, confidential or not. Anti-virus and antispyware programs are the most
common tools for prevention, but these utilities apply to malicious programs whose signatures
are already known and cataloged in a database. To create the malware signatures and catalog
them requires a detailed analysis of your code, known as reverse engineering. Within this
context, the approach of this work was done through a qualitative, descriptive and subjective
research, applied research laboratory in a controlled environment where tests were performed
to verify the technical and malware analysis tools in Windows environment in three samples
of malware. The results obtained by means of static and dynamic analysis, both basic, suggest
that advanced analysis is made.
Keywords: Malware, Malware analysis, Reverse engineering, Windows.

34
REFERNCIAS
AFONSO, V.M.; FILHO, D.S.F.; GREGIO, A.R.A.; DE GEUS, P.L.; JINO, M. A hybrid
framework to analyze web and OS malware. Communications (ICC), IEEE International
Conference, 2012, p. 966-970.
BARUQUE, A. O. C.; GRGIO, A. R. A.; DE GEUS, P. L.; Anlise Visual de
Comportamento de Cdigo Malicioso. XI Simpsio Brasileiro em Segurana da Informao e
de Sistemas Computacionais (SBSeg), 2011, p. 300-309.
CERON, J. M.; GRANVILLE, L.; TAROUCO, L. M. R.; Taxonomia de Malwares: Uma
Avaliao dos Malwares Automaticamente Propagados na Rede. IX Simpsio Brasileiro em
Segurana da Informao e de Sistemas Computacionais (SBSeg), 2009. p. 43-56
_________________________________________________ Uma arquitetura baseada em
assinaturas para mitigao de botnets. XI Simpsio Brasileiro em Segurana da Informao e
de Sistemas Computacionais (SBSeg), 2011. p. 105-118.
CERT.br. Centro de Estudos, Resposta e Tratamento de Incidentes de Segurana no Brasil.
Cartilha de Segurana para Internet. Disponvel em: <http://cartilha.cert.br/malware/>.
Acessado em: 29 out. 2013.
________ Centro de Estudos, Resposta e Tratamento de Incidentes de Segurana no Brasil.
Estatsticas.
Disponvel
em:
<http://www.cert.br/stats/incidentes/2013-jan-mar/tiposataque.html>. Acessado em: 05 nov. 2013.
DE MELO, L. P. et al. Anlise de Malware: Investigao de Cdigos Maliciosos Atravs de
uma Abordagem Prtica. XI Simpsio Brasileiro em Segurana da Informao e de Sistemas
Computacionais (SBSeg), 2011, p. 9-52.
EILAM, E. Reversing Secrets of Reversing Engineering. Wiley Publishing, Inc.,
Indianapolis, Indiana, 2005.
FINJAN RESEARCH CENTER. Cybercrime Intelligence: Cybercriminals use Trojans &
Money Nules to Rob Online Banking Accounts. 2009. Number 3 in 1, pages 19.
FERNANDES FILHO, D. S. et al. Tcnicas para Anlise Dinmica de Malware. XI Simpsio
Brasileiro em Segurana da Informao e de Sistemas Computacionais (SBSeg), 2011.
____________________________ Anlise Comportamental de Cdigo Malicioso Atravs da
Monitorao de Chamadas de Sistema e Trfego de Rede. Instituto De Computao. 2010, p.
33.
GARY
KESSLER.
File
Signatures
Table.
Disponvel
<http://www.garykessler.net/library/file_sigs.html>. Acessado em: 14 maio 2013.

em:

35

GIL, A. C.; Como Elaborar Projetos de Pesquisa. 5. ed. So Paulo: Atlas, 2010.
GONSALVES, Elisa Pereira. Iniciao Pesquisa Cientfica. 4. ed. Campinas, Sp: Alnea,
2005.
GRGIO, A. R. A.; SANTOS, R. D. C.; Visualization techniques for malware behavior
analysis. In: SPIE Defense, Security, and Sensing. International Society for Optics and
Photonics, 2011, p. 801905-801909.
HAMLEN, K.W.; Stealthy software: Next-generation cyber-attacks and defenses. Intelligence
and Security Informatics (ISI), IEEE International Conference, 2013, p. 109-112.
HEX-RAYa. IDA: About. Disponvel em: <https://hex-rays.com/products/ida/index.shtml>.
Acessado em: 20 nov 2013.
JIANMING, F.; XINWEN, L.; BINLING, C.; Malware Behavior Capturing Based on Taint
Propagation and Stack Backtracing. Trust, Security and Privacy in Computing and
Communications (TrustCom), IEEE 10th International Conference, 2011, p. 328-335.
LYDA, R.; HAMROCK, J.; Using entropy analysis to find encrypted and packed malware.
Security & Privacy, IEEE, 2007, p. 40-45.
MARTINS, Victor F. et al. xFile: Uma Ferramenta Modular para Identificao de Packers em
Executveis do Microsoft Windows. X Simpsio Brasileiro em Segurana da Informao e de
Sistemas Computacionais, 2010. p. 31-40.
MOSER, A.; KRUEGEL, C.; KIRDA, E.; Limits of static analysis for malware detection.
Computer Security Applications Conference, IEEE, 2007. p. 421-430.
NIST. National Institute of Standards and Technology Downloads. Disponvel em:
<http://www.nsrl.nist.gov/Downloads.htm>. Acessado em: 14 nov 2013.
OLLYDBG. OllyDbg Downloads. Disponvel em: <http://www.ollydbg.de/download.htm>.
Acessado em: 20 nov 2013.
PARK, D.; RUIZ, R.; MONTES, A.; Ferramenta para Reconhecimento de Executveis
Empacotados. International Conference On Forensic Computer Science (ICoFOCS), 2011, p.
173-181.
SIKORSKI, Michael; HONIG, Andrew; LAWLER, Stephen. Practical Malware Analysis: The
Hands-On Guide to Dissecting Malicious Software, 2012.

VIRTUALBOX. Oracle Virtual Box. Disponvel em: <https://www.virtualbox.org/>.


Acessado em: 05 mar. 2013.
VIRUSTOTAL. Estatsticas dos arquivos submetidos durante os ltimos 7 dias. Disponvel
em: <https://www.virustotal.com/pt-br/statistics/>. Acessado em: 29 out. 2013.
WICHMANN, A.; GERHARDS-PADILLA, E.; Using Infection Markers as a Vaccine against
Malware Attacks. Green Computing and Communications (GreenCom), IEEE International
Conference, 2012, p. 737-742.
WINDBG. Using Microsoft Windows Debugger (WinDbg). Disponvel
<http://kipirvine.com/asm/4th/debug/windbg/>. Acessado em: 20 nov. 2013.

em:

YIN, H. et al. Panorama: capturing system-wide information flow for malware detection and
analysis. Proceedings of the 14th ACM conference on Computer and communications
security, 2007, p. 116-127.
YING, C; JIACHE, L.; QIGUAN, M.; WEISHENG, L.; Osiris: A Malware Behavior
Capturing System Implemented at Virtual Machine Monitor Layer. Computational
Intelligence and Security (CIS), Eighth International Conference, 2012, p. 534-538.
YONGTAO, H.; LIANG, C.; MING, X.; NING, Z.; YANHUA, G.; Unknown Malicious
Executables Detection Based on Run-Time Behavior. Fuzzy Systems and Knowledge
Discovery, Fifth International Conference, 2008, p. 391-395.
ZABIDI, M.N.A.; MAAROF, M.A.; ZAINAL, A.; Ensemble based categorization and
adaptive model for malware detection. Information Assurance and Security (IAS), 7th
International Conference, 2011, p. 80 85.