análise de malware em ambiente windows

36
1 Pró-Reitoria de Pós-Graduação e Pesquisa Lato Sensu em Perícia Digital Trabalho de Conclusão de Curso ANÁLISE DE MALWARE EM AMBIENTE WINDOWS Autor: MSc. Thiago Arreguy Silva Vitorino Orientador: Prof. MSc. Marcelo Beltrão Caiado Brasília - DF 2013

Upload: romualdosf

Post on 20-Nov-2015

23 views

Category:

Documents


5 download

DESCRIPTION

Forense Computacional

TRANSCRIPT

  • 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 Ps-Graduao Lato Sensu em Percia Digital daUniversidade Catlica de Braslia, comorequisito parcial para obteno do certificadode Especialista em Percia Digital.

    Orientador: Prof. MSc. Marcelo BeltroCaiadoExaminador: Prof. MSc. Paulo Roberto CorraLeo

    Braslia DF2013

  • Artigo de autoria de Thiago Arreguy Silva Vitorino, intitulado ANLISE DEMALWARE EM AMBIENTE WINDOWS, apresentado como requisito parcial para obtenode certificado de especialista em Percia Digital da Universidade Catlica de Braslia, em 05de dezembro de 2013, defendido e aprovado pela banca examinadora abaixo assinada:

    Prof. MSc. Marcelo Beltro CaiadoOrientador

    Percia Digital UCB

    Prof. MSc. Paulo Roberto Corra LeoExaminador

    Percia Digital UCB

    Braslia DF2013

  • 4

    ANLISE DE MALWARE EM AMBIENTE WINDOWS

    THIAGO ARREGUY SILVA VITORINO

    Resumo:

    Cdigos maliciosos so programas especificamente desenvolvidos para executar aesdanosas e atividades maliciosas em um computador. Malware, termo proveniente do inglsmalicious software, um software destinado a se infiltrar em um sistema de computadoralheio de forma ilcita, com o intuito de causar algum dano ou roubo de informaes, sejamconfidenciais ou no. Programas antivrus e antispyware so as ferramentas mais comuns parapreveno, porm esses utilitrios usualmente se aplicam a programas maliciosos cujasassinaturas j so conhecidas e catalogadas em uma base de dados. Para criar as assinaturasdos malwares e catalog-las, necessria uma anlise detalhada de seu cdigo, conhecidacomo engenharia reversa. Dentro deste contexto, a abordagem deste trabalho foi feita atravsde uma pesquisa qualitativa, descritiva e subjetiva, aplicada em laboratrio, num ambientecontrolado, onde foram realizados testes para verificar as tcnicas e ferramentas de anlise demalware em ambiente Windows em trs amostras de malwares. Os resultados obtidos pormeio da anlise esttica e dinmica, ambas bsicas, sugerem que seja feita uma anliseavanada.

    Palavras-chave: Malware, Anlise de malware, Engenharia reversa, Windows.

    1. INTRODUO

    Cdigos maliciosos (malware) so programas especificamente desenvolvidos paraexecutar aes danosas e atividades maliciosas em um computador (CERT, 2013). Malware,termo proveniente do ingls malicious software (software malicioso), um software destinadoa se infiltrar em um sistema de computador alheio de forma ilcita, com o intuito de causaralgum 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 funesque se enquadrem na definio citada.

    Os programas antivrus e antispyware so as ferramentas mais comuns parapreveno. Esses utilitrios analisam um programa de computador antes de execut-lo eencerram-no caso reconhea uma "assinatura" de um cdigo mal-intencionado. Muitosantivrus tambm avaliam os programas para determinar se eles contm quaisquercaractersticas relacionadas a vrus. Porm, esses utilitrios usualmente se aplicam aprogramas maliciosos cujas assinaturas j so conhecidas e catalogadas em uma base dedados.

    Para criar as assinaturas do malwares e catalog-las, necessria uma anlisedetalhada de seu cdigo, conhecida como engenharia reversa. De acordo com Eilam (2005),engenharia reversa um conjunto de tcnicas e ferramentas para entender o funcionamento deum 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 entenderseu funcionamento.

    A engenharia reversa pode ser feita de forma manual, atravs de uma anlise feita porum programador, ou de forma automatizada, quando um software tenta identificar algumaestrutura do malware. Normalmente isso feito para identificar a presena de um malware emum programa.

    Grande parte dos cdigos maliciosos so desenvolvidos para ambiente Windows(VIRUSTOTAL, 2013), conforme estatstica mostrada na Figura 1. Os esforos paradesenvolver tcnicas e ferramentas para facilitar a anlise de malware so constantes, devidoao aumento drstico da quantidade de cdigos maliciosos nos ltimos anos (Finjan ResearchCenter, 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 operacionalWindows.

    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 deatividades maliciosas relacionadas com o processo automatizado de propagao de cdigosmaliciosos 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 ambienteWindows, por meio das tcnicas e ferramentas de anlise esttica e dinmica, apresentadas noreferencial terico.

    1.1 PROBLEMA

    Quais os principais conceitos, tcnicas e ferramentas envolvidos na anlise demalware em ambiente Windows?

    1.2 PRESSUPOSTO

    A anlise de cdigos maliciosos se torna extremamente difcil se no forem utilizadasas tcnicas e ferramentas adequadas.

    1.3 PROPSITO

    Levando em considerao que a maioria dos cdigos maliciosos so desenvolvidospara ambiente Windows. Somando este fato ao aumento drstico na quantidade de malwaredesenvolvido nos ltimos anos. Esta pesquisa, por meio de um estudo de caso, visa a difusode 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 demalware 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 demalware em ambiente Windows.

    2 REFERENCIAL TERICO

    Este tpico apresenta os fundamentos relacionados a tcnicas, ferramentas e conceitosenvolvidos na anlise de malware em ambiente Windows. A Seo 2.1 descreve a revisobibliogrfica. A Seo 2.2 define os conceitos, tcnicas e ferramentas utilizados na anlise demalware.

    2.1 REVISO BIBLIOGRFICA

    A ameaa dos cdigos e programas maliciosos segurana dos sistemascomputacionais fez com que surgissem muitos sistemas cujo propsito analisar, de maneira

  • 7

    dinmica e controlada, tais programas. Estes sistemas empregam diversas tcnicas para obtero comportamento apresentado por amostras de malware durante sua execuo. Acomplexidade destas tcnicas varia desde a monitorao de eventos atravs de interfaces nonvel de privilgio dos usurios, passando pela desofuscao de programas maliciosos emlinguagens tpicas da Web, at a insero de cdigo em estruturas do kernel do sistemaoperacional. Filho et al. (2011) apresentam as principais tcnicas utilizadas para efetuar aanlise 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 obterinformaes sobre a execuo do artefato e o trfego de rede gerado durante a anlise. Osistema capaz de analisar arquivos do tipo PE32 (Portable Executable) dos sistemasWindows.

    Para criar contramedidas a ataques por programas maliciosos, necessrio entender ocomportamento destes programas. Sistemas de anlise dinmica ajudam a traar taiscomportamentos, mas geram muitos dados textuais que podem confundir o analista. Assimtcnicas de visualizao podem ser empregadas, na tentativa de se identificar padres quesirvam 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 decomportamento de cdigo malicioso.

    A propagao automtica de malwares uma sria ameaa na Internet e responde porboa parte dos comprometimentos de sistemas computacionais. As ferramentas de seguranacomo antivrus e firewalls tm evoludo consideravelmente nos ltimos tempos, no entanto osmalwares no ficaram para trs. A nova gerao de malwares possui a capacidade dedesabilitar softwares antivrus e ocultar-se no sistema operacional. Ceron et al. (2009) buscamidentificar as funcionalidades dos malwares mais utilizadas avaliando tambm a eficcia dossistemas de antivrus com relao s mesmas.

    As botnets so consideradas uma das principais ameaas a segurana da Internet. Taisameaas caracterizam-se por serem muito dinmicas, de forma a diminuir a efetividade desistemas antivrus e IDS. Ceron et al. (2011) apresentam uma arquitetura de ferramentas paramitigao e deteco de botnets, baseada em assinaturas de rede de mquinas comprometidaspor bots.

    Para evitar mecanismos de proteo como antivrus, os desenvolvedores de malwareusam 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 paraidentificar packers em arquivos de executveis do Microsoft Windows, permitindo aagregao de novos mdulos para auxiliar na obteno de informaes sobre malware.

    A quantidade de diferentes alvos aliada s diferentes finalidades dos ataquesperpetrados por softwares maliciosos em conjunto com o vasto arsenal de ferramentasdisponveis aos desenvolvedores gera uma quantidade de malwares que exige o mximo deautomatizao nas tarefas de anlise e prospeco dos mesmos. Um dos problemas a seremtratados para a anlise esttica o empacotamento. Nesse contexto Park et al. (2011)apresentam uma metodologia de reconhecimento de empacotamento de executveis, atravsda 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 cdigosdesconhecidos so insuficientes e tm deficincias significativas contra este tipo de atividademaliciosa. O acesso informao e comportamento malicioso de processamento o traofundamental que separa aplicativos maliciosos de softwares benignos. Yin et al. (2007)propem um sistema para detectar e analisar malwares, capturando suas caractersticasfundamentais, de forma a permitir compreender rapidamente o comportamento de umaamostra desconhecida.

    Analisar estaticamente grandes amostras de malwares empacotados e criptografadosrepresenta um desafio significativo para automatizar a identificao de seus atributos efuncionalidades. Lyda et al. (2007) propem a sua identificao de forma rpida e eficienteatravs da anlise estatstica da entropia de seus cdigos executveis.

    Apenas tcnicas de anlise esttica podem no ser suficiente para identificar ummalware. Moser et al. (2007) apresentam um esquema de ofuscao binrio para explorar oslimites da anlise esttica na deteco de cdigo malicioso.

    Os primeiros malwares eram muito primitivos e fceis de detectar, porm evolurampara softwares sofisticados e complexos. A maioria dos mtodos atuais de deteco demalware envolvem algoritmos de busca de strings, baseados na deteco de padres. Istopode incluir a utilizao do mtodo baseado em assinatura. Zabidi et al. (2011) propem umacategorizao de malwares usando classificao e agrupamento, com o modelo deaprendizagem adaptativa.

    Software Weaponized o mais recente desenvolvimento em uma batalha de dcadas naevoluo de vrus e antivrus. Malwares adaptativos e cdigos binrios com transformaoautomatizadas so duas tecnologias ofensivas e defensivas, respectivamente, recentementeemergentes que podem moldar o futuro da guerra ciberntica. Enquanto a primeira aprende ase adaptar s defesas antivirais de forma totalmente automtica, a segunda se utiliza datecnologia mutao de cdigo para a defesa, transformando programas potencialmenteperigosos em programas de seguros. Nesse contexto Hamlen et al. (2013) discutem essastecnologias e suas funes dentro do cenrio de ataque e defesa.

    Embora a anlise dinmica seja imune s tcnicas polimrficas, metamrficas ecriptogrficas, uma questo em aberto como capturar com preciso o comportamento demalware. Jianming et al. (2011) propem um mtodo de captura de comportamento baseadona pilha de execuo do malware.

    Os sistemas antivrus tradicionais empregam recursos estticos para detectarexecutveis maliciosos. Infelizmente, esta abordagem baseada em contedo pode ser ofuscadapor tcnicas tais como polimorfismo e metamorfismo. Yongtao et al. (2008) propem ummtodo 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 pararealizar sua anlise dinmica. Ying et al. (2012) estudam e projeta um sistema denominadoOsris, 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 desenvolverrotinas de deteco e remoo, aumentando assim, o risco de se infectar sistemas crticos. Afim de se evitar infeces mltiplas do mesmo sistema por uma malware, o mesmo costumautilizar marcadores de infeco para identificar um sistema como j infectado. Nessecontexto, Wichmann et al. (2012) apresentam o conceito de usar esses marcadores paravacinar sistemas contra infeces por uma famlia de malwares especficos, eliminando assima necessidade de um especialista humano para realizar a anlise.

    Os programas maliciosos podem causar srios problemas de segurana para usuriosdomsticos e at mesmo para sistemas corporativos altamente seguros. O principal vetor deinfeco 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 SistemasOperacionais, que oferece melhores taxas de deteco para uma gama mais ampla de tipos demalwares.

    De Melo et al. (2011), em seu artigo divulgam o conhecimento necessrio para queprofissionais interessados em anlise de malware desenvolvam habilidades esperadas em umgrupo de resposta a incidentes e forense computacional, focado em malware bancrio. Aabordagem utilizada terico-prtica, expondo principais conceitos e discusses sobre asnovas tendncias de desenvolvimento de cdigos maliciosos bem como suas contramedidas.So apresentados modelos de conduo de incidentes e anlise de malware, com ferramentasutilizadas no processo, apontando quais informaes so primordiais e as preocupaesnecessrias 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 seseguem sero apresentados os principais conceitos, tcnicas e ferramentas utilizadas naanlise 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 precisapara responder de forma adequada a uma invaso de rede. Seus objetivos sero tipicamentepara determinar exatamente o que aconteceu, e para garantir que se tenha localizado todas asmquinas e arquivos infectados. Ao analisar o cdigo malicioso suspeito, seu objetivo sertipicamente 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 serassinaturas baseadas em host e assinaturas de rede.

    Assinaturas baseadas em host, ou indicadores, so usadas para detectar o cdigomalicioso em computadores das vtimas. Estes indicadores, muitas vezes identificam osarquivos criados ou modificados pelas mudanas que um malware especfico faz no registrodo Windows. Ao contrrio de assinaturas de antivrus, os indicadores se concentram no que omalware 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 sidoexcludos do disco rgido.

    Assinaturas de rede so usadas para detectar cdigos maliciosos atravs domonitoramento do trfego da rede. Assinaturas de rede podem ser criadas sem a anlise domalware, porm as assinaturas criadas com a ajuda da anlise do malware so geralmentemuito mais eficazes, oferecendo uma alta taxa de deteco e poucos falsos positivos.

    Aps a obteno das assinaturas, o objetivo final descobrir exatamente como omalware funciona. Essa muitas vezes a pergunta mais feita pela alta administrao, que queruma explicao completa, no caso de uma grande intruso. As tcnicas aqui apresentadaspermitiro 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: estticae dinmica. Anlise esttica envolve examinar o malware sem execut-lo, j a anlisedinmica implica na execuo do malware. Ambas as tcnicas podem ser classificadas embsica e avanada.

    A anlise esttica bsica consiste em examinar o arquivo executvel sem visualizar asinstrues do cdigo. Este tipo de anlise fornece informao sobre a funcionalidade domalware, 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 seucomportamento no sistema de modo a remover a infeco, produzir assinaturas, ou ambos.Entretanto, antes de executar o malware, deve-se estabelecer um ambiente que permitirestudar 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 domalware, carregando este em um disassembler, e analisar as instrues do programa de modoa tentar descobrir o que o programa faz. Esta tcnica requer conhecimentos especializado emengenharia reversa de cdigos, construo de cdigos e conceitos do sistema operacional emquesto.

    A anlise dinmica avanada emprega um debugger para examinar o estado interno deum 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 acordocom 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 amesma instruo de um nico servidor de comando e controle.

    c) Downloader: cdigo malicioso que existe apenas para fazer download de outro cdigomalicioso.

  • 11

    d) Information-stealing malware: malware que coleta informaes do computador deuma vtima e envia-as ao atacante.

    e) Launcher: programa malicioso usado para dar inicio a execuo de outros softwaresmaliciosos.

    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 porexemplo um tipo de backdoor projetado para uma organizao especifica, so mais perigososque os malwares em massa, pois seu ataque no generalizado e os produtos de seguranaexistentes provavelmente no lhe protegero. Malwares direcionados so quase sempresofisticados 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 suafuno. Porm o programa em si no executado.

    Segundo SIKORSKI et al. (2012), as seguintes tcnicas e ferramentas, envolvendoanlise esttica, so teis para se extrair informao dos executveis e sero discutidas nestaseo:

    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 doobjetivo. Normalmente usam-se vrias tcnicas para coletar tantas informaes quantopossvel.

    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 asferramentas antivrus no so perfeitas, pois se baseiam em um banco de dados que contmpartes identificveis de cdigos suspeitos conhecidos (assinaturas de arquivo), bem comoanlise de comportamento e correspondncia de padres (heurstica), para identificar arquivossuspeitos. Um problema que os desenvolvedores de malware podem facilmente modificarseu cdigo, mudando assim a assinatura de seu programa e fugir da busca dos programas deantivrus.

    Alm disso, malwares novos frequentemente passam despercebidos por um softwareantivrus, pois simplesmente sua assinatura no est na base de dados. Finalmente, aheurstica, enquanto muitas vezes bem-sucedida na identificao de cdigo maliciosodesconhecido, pode ser contornada por malwares novos e nicos.

    Como vrios programas antivrus usam assinaturas diferentes e tcnicas baseadas emheurstica, til testar vrios programas antivrus diferentes contra o mesmo trecho de cdigomalicioso suspeito. Sites como o VirusTotal1 permitem que se carregue um arquivo para queseja feito o scanning por vrios programas antivrus, gerando assim um relatrio com onmero total de programas antivrus que identificaram o arquivo como malicioso, o nome domalware 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 paraidentificar de forma nica um malware. O arquivo malicioso submetido a um programagerador de hash, que produz uma sequencia nica de caracteres que o identifica, uma espciede impresso digital do malware. O Message-Digest Algorithm 5 (MD5), funo hash, omais 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 variedadede aplicaes de segurana, e tambm para verificar a integridade de arquivos. Para ambienteWindows, pode-se usar o software WinMD5, que um pequeno e rpido utilitrio paracalcular 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 dadoscontendo 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 umconjunto 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 suasassinaturas digitais.

    2.2.4.3 Strings

    String em um programa uma sequncia de caracteres, como UCB. Se um

    1 http://www.virustotal.com2 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 umlocal especfico, logo ele contm sequncias de strings.

    Procurando em strings, pode ser uma maneira simples de obter dicas sobre afuncionalidade de um programa. Por exemplo, se o programa acessa a uma URL entoprovavelmente vai-se ver o endereo da URL acessada, armazenado como uma string.

    Normalmente as strings so armazenadas no formato ASCII ou Unicode. Ambos osformatos so armazenados em sequncias de caracteres que terminam com NULL para indicarque a sequncia est completa. Sequncias ASCII usam um byte por caractere, e sequnciasUnicode usam dois bytes por caractere.

    Para ambiente Windows um programa para obter as strings de um arquivo pode serfeito o download neste site4.

    Por exemplo, se a string UCB fosse armazenada no formato ASCII, a sequncia decaracteres 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 aletra B. O 0x00 no fim o terminador NULL. O formato Unicode equivalente a esta mesmasequencia de caracteres seria 0x5500, 0x4300, 0x4200 e 0x0000.

    Quando se busca por strings ASCII e Unicode em um arquivo executvel, o contexto eformatao do arquivo so ignorados. Isso permite que se possa analisar qualquer tipo dearquivo e detectar strings atravs de um arquivo inteiro, embora isso implique que se possaidentificar um conjunto de bytes como strings, enquanto os mesmos no o so. O programaStrings 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 asequncia de bytes 0x56, 0x50, 0x33, 0x00, fosse encontrada, ela seria interpretada comoVP3, mas esses bytes podem no realmente representar essa sequncia, pois eles podem serum endereo de memria, instrues da CPU, ou dados utilizados pelo programa. Assim, oprograma Strings deixa por conta do usurio, a tarefa de filtrar strings invlidas. Felizmente, amaioria 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 paratornarem seus arquivos mais difcil de se detectar ou analisar. Programas ofuscados soaqueles que o autor do malware tentou esconder a execuo. Programas empacotados so umsubconjunto de programas ofuscados, em que o programa malicioso comprimido e no podeser 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 porstrings, e o mesmo retornar poucas strings, provavelmente ou o arquivo est ofuscado ouempacotado, sugerindo que pode ser nocivo. Assim provvel que se precise utilizar outrastcnicas 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 deuma aplicao, o que torna muito mais fcil a anlise do arquivo compactado. possvel fazero 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 levarem conta o seu formato. No entanto, o formato de um arquivo pode revelar muito sobre afuncionalidade do programa. O formato de arquivo executvel porttil (PE) usado porexecutveis do Windows, cdigo objeto e DLLs. O formato do arquivo PE uma estrutura dedados que contm as informaes necessrias para carregador do sistema operacionalWindows gerenciar o cdigo executvel que est embrulhado. Quase todos os arquivos comcdigo executvel que so carregados pelo Windows esto no formato de arquivo PE, apesarde alguns arquivos em formatos legados aparecerem em raras ocasies. Arquivos PEcomeam 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 PEso 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 alista de funes que o mesmo importa. As importaes so funes usadas por um programaque esto armazenados em um outro programa diferente, como o cdigo de bibliotecas quecontm funcionalidades comum a muitos programas. Bibliotecas de cdigo podem ser ligadasao executvel principal pela ligao.

    Programadores importam bibliotecas para no precisar reimplementar determinadafuncionalidade em vrios programas. Bibliotecas de cdigo podem ser ligadas estaticamente(static linking), em tempo de execuo (run-time linking), ou dinamicamente (dynamiclinking). Saber como o cdigo da biblioteca est ligado ao programa principal fundamentalpara a anlise de malware, porque a informao que se pode encontrar no cabealho doarquivo PE depende de como o cdigo da biblioteca foi ligado.

    Ligao esttica o mtodo menos utilizado para ligao de bibliotecas, embora sejacomum em programas de UNIX e Linux. Quando uma biblioteca estaticamente ligada a umexecutvel, todo o cdigo a partir dessa biblioteca copiado para o arquivo executvel, quefaz o executvel aumentar em tamanho. Ao analisar cdigo, difcil diferenciar entre o cdigoestaticamente ligado e prprio cdigo do executvel, pois nada no cabealho do arquivo PEindica 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 algumafuncionalidade contida nela necessrio, no no incio do programa, mas em tempo deexecuo do programa.

    5 http://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/PEiD-updated.shtml6 http://www.peid.info/

  • 15

    Vrias funes do Microsoft Windows permitem aos programadores importar funesde ligao, que no listadas no cabealho do arquivo de um programa, sendo as duas maiscomumente utilizadas LoadLibrary e GetProcAddress, variantes como LdrGetProcAddress eLdrLoadDll tambm so utilizadas. Estas funes permitem o programa principal acessarqualquer funo contida em uma biblioteca do sistema, o que significa que, quando sousadas, no se pode dizer estaticamente quais as funes esto sendo ligadas ao programasuspeito.

    De todos os mtodos de ligao, ligao dinmica o mais comum e o maisinteressante para os analistas de malware. Quando as bibliotecas so ligadas dinamicamente, osistema operacional procura pelas bibliotecas necessrias quando o programa carregado.Quando o programa chama a funo da biblioteca ligada, esta funo executada de dentro dabiblioteca.

    O cabealho do arquivo PE armazena informaes sobre cada biblioteca, que sercarregada, e cada funo que ser utilizada pelo programa. As bibliotecas utilizadas e asfunes chamadas so muitas vezes as partes mais importantes de um programa, e identific-los 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 VisualStudio e outros pactes de desenvolvimento da Microsoft, lista apenas funes ligadasdinamicamente em um arquivo executvel.

    O cabealho do arquivo PE tambm inclui informaes sobre as funes especficasutilizadas por um executvel (funes importadas). Os nomes dessas funes do Windowspodem dar uma boa ideia sobre o que o executvel faz. A Microsoft fez um excelente trabalhode documentao da API do Windows atravs da biblioteca do Microsoft Developer Network(MSDN8).

    Como as importaes, DLLs e EXEs exportam funes para interagir com outrosprogramas e cdigos. Tipicamente, uma DLL implementa uma ou mais funes e as exportapara que um executvel possa import-las e us-las. O arquivo PE contm informaes sobreque funes um arquivo exporta. Funes exportadas so mais comumente encontradas emDLLs, pois elas so especificamente implementadas para fornecer funcionalidades utilizadapor EXEs. E EXEs no so projetados para fornecer a funcionalidade para outros EXEs,assim funes exportadas so raramente encontradas. Assim, caso se venha a descobrirfunes exportadas em um executvel, com certeza elas fornecero informaes teis.

    Em muitos casos, os autores de software nomeiam suas funes exportadas de umamaneira que fornecem informaes teis. Uma conveno comum utilizar o nome usado nadocumentao da Microsoft. Por exemplo, para executar um programa como um servio,deve-se primeiro definir uma funo ServiceMain. A presena de uma funo exportadachamada ServiceMain diz que o malware executado como parte de um servio. Infelizmente,enquanto a documentao Microsoft chama esta funo ServiceMain, e comum para osprogramadores a fazer o mesmo, a funo pode ter qualquer nome. Portanto, os nomes das

    7 http://www.dependencywalker.com8 http://msdn.microsoft.com/pt-br

  • 16

    funes exportadas so realmente de uso limitado contra malwares sofisticados. Se o malwareutiliza as exportaes, o programador ir muitas vezes ou omitir totalmente os nomes ou usarnomes obscuros ou enganosos. As informaes de exportao podem ser visualizadasutilizando 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 asimportaes apenas. O formato do arquivo PE contm um cabealho seguido por uma srie deseces. O cabealho contm metadados sobre o arquivo em si. Depois do cabealho vem asseces do arquivo, cada uma contendo informaes teis. A seguir, tem-se as sees maiscomuns e interessantes em um arquivo PE:

    a) .text: contm as instrues que a CPU executa. Todas as outras seces armazenamdados e informaes de apoio. Geralmente, esta a nica parte que pode serexecutada, e deve ser a nica seco que inclui cdigo.

    b) .rdata: normalmente contm as informaes de importao e exportao, que amesma informao disponibilizada tanto pelo Dependency Walker quanto peloPEview. Esta seo tambm pode armazenar outros dados somente de leiturautilizados pelo programa. s vezes, o arquivo conter sees .idata e .edata, quearmazenam as informaes de importao e exportao, respectivamente.

    c) .data: contm dados globais do programa, que so acessveis a partir de qualquer lugarno programa. Dados locais no so armazenados nesta seo, ou em qualquer outrolugar no arquivo PE.

    d) .rsrc: inclui os recursos utilizados pelo executvel que no so considerados parte doexecutvel, tal como cones de imagens, menus e strings. Strings podem serarmazenadas na seo ou no programa principal, mas elas so frequentementearmazenados nesta seo, para suporte a mltiplos idiomas.

    Nomes de seo so muitas vezes consistentes em um compilador, mas podem variarentre compiladores diferentes. Por exemplo, o Microsoft Visual Studio usa a seo .text paracdigo executvel, mas o Borland Delphi usa CODE. O Windows no se preocupa com onome real, uma vez que utiliza outras informaes no cabealho do PE para determinar comouma seo usada. Alm disso, os nomes das seces so frequentemente ofuscados paratornar a anlise mais difcil. Felizmente, nomes padro so usados na maioria das vezes.

    Pode-se usar a ferramenta PEview para visualizar as informaes contidas nocabealhos dor arquivos PE. Pode-se tambm usar a ferramenta livre ResourceHacker9 paranavegar na seco .rsrc. Ao se clicar nos itens do Resource Hacker, pode-se visualizar asstrings, cones e menus, que so apresentados de forma idntica as utilizadas no programa.

    Muitas outras ferramentas esto disponveis para consultar um cabealho PE. Duasferramentas teis so PEBrowse Profissional e PE Explorer. PEBrowseProfessional10 semelhante ao PEview. Ele permite olhar para os bytes de cada seo e mostra os dadosanalisados. O PEBrowse Professional faz o melhor trabalho de apresentar a informao dos

    9 http://www.angusj.com10 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 principaldesvantagem 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 umambiente seguro. Um malware novo pode ser cheio de surpresas, e se execut-lo em umamquina de produo, ele pode espalhar-se rapidamente para outras mquinas na rede eremov-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 edesnecessrio.

    Pode-se usar as mquinas fsicas dedicadas ou mquinas virtuais para estudar ummalware de forma segura. Malwares podem ser analisados usando mquinas fsicasindividuais em redes isoladas, com mquinas que esto desconectados da Internet ou dequaisquer outras redes para evitar que o malware se espalhe, permitindo assim que se executeo malware em um ambiente real, sem colocar outros computadores em risco. Umadesvantagem desse cenrio de teste, no entanto, a falta de uma conexo internet, poismuitos malwares dependem de uma conexo internet para atualizaes, comandos e outrascaractersticas.

    Outra desvantagem para anlise de malware em uma mquina fsica, comparado aouso de uma mquina virtual, a dificuldade de remoo do mesmo. Para evitar problemas,normalmente utiliza-se uma ferramenta para gerenciar imagens de backup do sistemaoperacional, como por exemplo o Norton Ghost, que podem ser restauradas aps a anlise tersido completada.

    A principal vantagem de usar mquinas fsicas para a anlise de malware, que omalware pode ser executado de forma diferente em mquinas virtuais, pois o malware podeter a capacidade de detectar que est sendo executado em uma mquina virtual e se comportarde forma diferente, frustrando assim a anlise.

    Por causa dos riscos e desvantagens que vm com o uso de mquinas fsicas paraanalisar malware, as mquinas virtuais so mais comumente empregadas para fazer a anlisedinmica.

    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 paraoutras mquinas da rede, se tornar um n de um ataque distribudo de negao de servio, ousimplesmente enviar spam. Assim nunca se deve conectar o malware Internet sem antesrealizar 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 placade rede em modo bridge, o qual permite que a mquina virtual possa se conectar mesmainterface de rede que o equipamento fsico. Outra maneira usar Network AddressTranslation (NAT).

    2.2.5.2 Snapshot

    Snapshot um conceito nico para mquinas virtuais, que permitem salvar o estadoatual do computador e voltar para esse ponto mais tarde, semelhante a um ponto derestaurao do Windows.

    Depois de instalar o sistema operacional e as ferramentas de anlise de malware, econfigurar a rede, tire um snapshot da mquina para utiliza como snapshot base. Apsexecutar o malware, completar a anlise e salvar os dados, reverta para o snapshot base, demodo que se possa fazer tudo mais uma vez. Mesmo estando no meio de anlise, a maioriadas mquinas virtuais permitem retornar a um snapshot feito a qualquer momento, noimportando 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 softwaremalicioso. A anlise dinmica normalmente realizado aps a anlise esttica bsica, quantoesta chegou a um beco sem sada, seja devido ofuscao, empacotamento, ou o analistaesgotou as tcnicas de anlise esttica disponveis. Pode envolver monitoramento de malwaredurante 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 verdadeirafuncionalidade do malware, pois a existncia de uma sequncia de cdigos binrios nosignifica que as aes oriundas dali, realmente sero executadas. A anlise dinmica tambm uma maneira eficiente para identificar a funcionalidade do malware. Por exemplo, se omalware em anlise um key-logger, a anlise dinmica pode permitir localizar no sistema oarquivo de log do key-logger, descobrir os tipos de registros que ele mantm, decifrar paraonde ele envia as informaes coletadas, e assim por diante. Esse tipo de viso seria maisdifcil de obter utilizando apenas tcnicas de anlise esttica bsica.

    Embora as tcnicas de anlise dinmica sejam extremamente poderosas, elas devemser utilizadas somente aps a concluso da anlise esttica bsica, porque a anlise dinmicapode colocar a sua rede e sistema em risco. Tcnicas de anlise dinmica tambm tm suaslimitaes, porque nem todos os caminhos de cdigo podem ser executados quando um trechodo malware executado. Por exemplo, no caso da um malware de linha de comando, quenecessita de argumentos, cada argumento, pode executar uma funcionalidade diferente doprograma, e sem saber as opes, no possvel analisar de forma dinmica todas asfuncionalidades do programa. A melhor aposta neste caso, ser a utilizao de tcnicasavanadas estticas ou dinmicas, para descobrir como forar o malware a executar toda a suafuncionalidade.

  • 19

    As seguintes tcnicas e ferramentas, envolvendo anlise dinmica, so teis para seextrair 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 anlisedinmica bsica, e os mais populares utilizam a tecnologia conhecida como sandbox. Umasandbox (caixa de areia), uma mecanismo de segurana para a execuo de programas no-confiveis em um ambiente seguro, sem medo de prejudicar os sistemas "reais". Caixas deareia compem ambientes virtualizados que geralmente simulam os servios de rede de certaforma 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, analisarogratuitamente o malware. Atualmente, Norman SandBox e GFI Sandbox (anteriormenteCWSandbox) so os mais populares entre os profissionais da rea de segurana dainformao, conforme SIKORSKI et al. (2012).

    Estas sandboxes fornecem sada de fcil entendimento e so timas para se fazer umatriagem inicial, desde que se esteja disposto a enviar o malware em anlise aos websites dassandboxes. Mesmo nas sandboxes automatizadas, pode-se escolher no submeter o malwareem 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 lheinformar sua funcionalidade bsica. Por exemplo, ela no pode lhe dizer que um determinadomalware 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-loggercriptografado. Estas so concluses que o analista deve chegar por conta prpria, a partir dasinformaes fornecidas pela sandbox.

    2.2.6.2 Process Monitor

    Process Monitor, ou procmon, uma ferramenta de monitoramento avanado paraWindows, que fornece uma maneira de monitorar determinado registro, sistema de arquivosde rede, processo, e atividade de thread. Combina e aumenta a funcionalidade dos duasferramentas legadas: Filemon e RegMon. Embora procmon capture uma grande quantidade dedados, ele no captura tudo. Por exemplo, ele pode perder a atividade de um controlador dedispositivo componente do modo usurio conversando com um rootkit via um dispositivo decontrole de entrada/sada, bem como certas chamadas de interfaces (GUI), tais comoSetWindowsHookEx. Embora o procmon possa ser uma ferramenta til, normalmente nodeve ser utilizado para registrar a atividade de rede, porque no trabalhar de forma consistenteem 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 muitaschamadas de sistema (s vezes mais de 50.000 eventos por minuto), sendo impossvelmonitorar todas elas. Como o procmon usa a memria RAM para registrar eventos at queseja dito para parar a captura, ele pode travar uma mquina virtual consumindo toda amemria 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 quepara se fazer uma anlise dinmica. Ela pode fornecer informaes valiosas sobre osprocessos em execuo de um sistema. Pode-se usar o Process Explorer para listar osprocessos ativos, DLLs carregadas por um processo, vrias propriedades do processo, e asinformaes do sistema. Pode-se tambm us-lo para matar um processo, fazer log-offusurios, 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, quepermite comparar dois snapshots da registry do Windows. Para usar o Regshot na anlise domalware, basta tirar o primeiro snapshot, em seguida, executar o malware e esperar que eletermine de fazer qualquer alteraes no sistema. Em seguida, tire o segundo snapshot, parafinalmente comparar os dois snapshots tirados. Esta ferramenta pode ser baixadagratuitamente14.

    2.2.6.5 Wireshark

    Wireshark um sniffer de cdigo aberto, uma ferramenta de captura de pacotes muitotil na anlise dinmica. Pode-se us-la para capturar o trfego de rede gerado pelo malware eanalisar diferentes protocolos.

    O Wireshark intercepta e registra o trfego de rede, fornecendo visualizao, anlisede fluxo de pacotes, e anlise em profundidade de pacotes individuais. uma ferramenta quepode ser usada tanto para o bem quanto para o mal. Pode ser utilizada para analisar as redesinternas e a utilizao da rede, depurar problemas de aplicaes e protocolos de estudo emao. Mas tambm pode ser usada para capturar senhas, protocolos de rede via engenhariareversa, roubar informaes sensveis, e at espionar conversas on-line em uma lanhouse.

    Wireshark pode ajudar voc a entender como o malware est realizando comunicaode rede, atravs dos pacotes que o malware utiliza para se comunicar. Para usar o Wiresharkcom este propsito, conecte-se Internet ou simule uma conexo Internet (utilizando

    12 http://technet.microsoft.com/en-us/sysinternals/bb89664513 http://technet.microsoft.com/en-us/sysinternals/bb89665314 http://sourceforge.net/projects/regshot

  • 21

    INetSim por exemplo) e em seguida inicie a captura de pacotes com o Wireshark e execute omalware. Esta ferramenta pode ser baixada gratuitamente15.

    2.3 METODOLOGIA

    Este trabalho tem como natureza a pesquisa aplicada. A abordagem do problema foiatravs da pesquisa qualitativa, descritiva e subjetiva, aplicada em laboratrio, num ambientecontrolado, onde foram realizados testes para verificar as tcnicas e ferramentas de anlise demalware em ambiente Windows.

    Quanto aos objetivos, a pesquisa ser exploratria. Segundo Gil (2010), as pesquisasexploratrias 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 arespeito 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 nasFiguras 3, 4 e 5.

    O malware#1, se passa por um boleto bancrio para quitao de dbitos, e ao se clicarno 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 linksdisponibilizados, feito o download dois arquivos, FotosFinais1605.zip eAnexo_Cliente28-05-2013.zip.

    O malware#3, se passa por um boleto relativo a uma kit, e ao se clicar no linkdisponibilizado, feito o download do arquivo Anexo_Boleto.Cliente.zip.

    Figura 3 Malware#1, boleto bancrio. Figura 4 Malware#2, fotos.

    15 http://www.wireshark.org

  • 22

    Figura 5 Malware#3, boleto.

    Uma vez feito o download dos arquivos, para se comprovar que os mesmos eramrealmente arquivos .zip, verificou-se num editor hexadecimal se o cabealho dos arquivoscomeavam com os bytes 504B0304, conforme Garry Kessler (2013). Comprovados queeram 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 osistema operacional Windows XP SP3. Na Figura 6 pode ser visualizado, a esquerda, a telainicial 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, obteve-se o arquivo Boleto Devio.exe. Este arquivo foi submetido ao site VirusTotal para averiguara 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 eAnexo_Cliente28-05-2013.zip, obtiveram-se os arquivos Fotos Finais 17-05-2013.exe eFotos Finais 28-05-2013.cpl, respectivamente. Estes arquivos foram submetidos ao siteVirusTotal para averiguar a maliciosidade dos mesmos. A anlise feita pelo site, pode servisualizada nas Figura 8 e 9.

    Ao se extrair o contedo do malware#3, arquivo Anexo_Boleto.Cliente.zip, obteve-se o arquivo Documento Boleto 09433.cpl. Este arquivo foi submetido ao site VirusTotalpara averiguar a maliciosidade do arquivo. A anlise feita pelo site, pode ser visualizada naFigura 10.

    Todas as amostras de malwares, submetidas ao VirusTotal em 23/11/2013, foramreconhecidas como cdigos maliciosos. O malware#1 j havia sido submetido para anlisepelo VirusTotal em 29/05/2013 13:13:08, com uma taxa de deteco de 66% (31 de 47antivrus). O malware#2 j havia sido submetido para anlise pelo VirusTotal em 17/05/201312:38:40, com uma taxa de deteco de 23% (11 de 47 antivrus). O malware#3 j havia sidosubmetido para anlise pelo VirusTotal em 27/09/2013 11:56:19, com uma taxa de detecode 75% (36 de 48 antivrus). Alm da taxa de deteco, a anlise feita pelo VirusTotal, fornece tambm informaesdetalhadas, 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 verific-las, 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 osmalwares #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, provavelmenteforam desenvolvidos no Microsoft Visual Basic 5/6. Para o malware#3 no foi possvelidentificar o compilador utilizado.

    Pela anlise de entropia do PEiD, o malware#1 provavelmente est empacotado, omalware#2 no est empacotado e o malware#3 talvez esteja empacotado. A informao deentropia fornecida corrobora com a informao de entropia fornecida pelo VirusTotal.

    As anlises feita pelo DependencyWalker podem ser visualizadas nas Figuras 14, 15 e16, 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#2dependem da biblioteca MSVBVM60.dll, corroborando que com a informao do PEiD deque o compilador utilizado foi o Microsoft Visual Basic 5/6. O malware#3 possuidependncia de vrias DLL's do Windows.

    2.3.3 Anlise dinmica

    Ao se executar o malware#1, arquivo Boleto Devio.exe, uma tela informando umerro 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 nadafoi feito, porm, vrias modificaes feitas na registry do Windows foram detectadas pelaferramenta 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 ANSIComments:Datetime: 2013/11/23 12:57:25 , 2013/11/23 12:58:46Computer: TASVORG-3A47763 , TASVORG-3A47763Username: Administrador , AdministradorKeys added: 18Values added: 55Values modified: 26Total 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 amesma tela de erro obtida na execuo do malware#1, conforme a Figura 17. Da mesmaforma que na execuo do malware#1, vrias modificaes feitas na registry do Windowsforam detectadas pela ferramenta RegShot, conforme a Figura 20. Um trfego de rede foicapturado 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 ANSIComments:Datetime: 2013/11/23 1 9 : 07 : 06 , 2013/11/23 1 9 : 09 : 31 Computer: TASVORG-3A47763 , TASVORG-3A47763Username: Administrador , AdministradorKeys added: 11Values deleted: 62Values added: 10Values modified: 12Total changes: 9 5

  • 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 exibidatela alguma e o arquivo sumiu da pasta em que estava. Vrias modificaes feitas na registrydo Windows foram detectadas pela ferramenta RegShot, conforme a Figura 22, e um trfegode 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 ANSIComments:Datetime: 2013/11/23 20 : 19 : 22 , 2013/11/23 20 : 20 : 57 Computer: TASVORG-3A47763 , TASVORG-3A47763Username: Administrador , AdministradorValues deleted: 11Values added: 17Values modified: 10Total 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 osmalwares em anlise efetuaram alteraes na registry do Windows. Com o Wireshark pode-seconstatar 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 umaconexo 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.brverificou-se que o mesmo est em nome da empresa Digirati Informtica, servios etelecomunicaes com o contato Andre Nathan, e-mail [email protected] uma empresa que oferece servios de hospedagem de sites, que foi usada porquem realmente queria se beneficiar com o uso malware.

    Na Figura 21, pode-se ver que o malware#2 tenta fazer uma conexo com o endereoIP 187.73.33.46, no mesmo endereo que o malware#1 tentou se conectar. Corroborando parao fato de que ambos vieram do mesmo e-mail remetente, conforme pode ser visualizado naFigura 3, 4 e 5.

    Na Figura 23, pela captura do trfego de rede, do malware#3, no foi constatado nadasignificativo.

    Da analise bsica feita, esttica e dinmica, no se pode concluir nada significativosobre as atividades dos malwares em anlise, exceto pelo servidor onde os malwares #1 e #2tentaram se conectar.

    Para fim de ser verificar se a tela da Figura 17, foi proposital, ou foi um erro mesmocausado, por exemplo, por alguma incompatibilidade com a verso do sistema operacional emque 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 seguintespassos:

    a) No se prenda a detalhes. A maioria dos programas de malware so grandes ecomplexos, e no se pode entender cada detalhe, assim foque nas principaiscaractersticas. Quando se deparar com sees difceis e complexas, tente obter umaviso geral antes de ficar preso nos detalhes.

    b) Lembre-se que diferentes ferramentas e abordagens esto disponveis para trabalhosdistintos. No h uma abordagem pr-determinada, pois cada situao diferente, evrias ferramentas e tcnicas possuem funcionalidades semelhantes. Caso no tenhasorte com uma ferramenta, tente outra. Se sua anlise no progredir, no gaste muitotempo em uma seo, avance para outra. Tente analisar o malware a partir de umngulo diferente, ou apenas tente uma abordagem diferente.

    c) Tenha em mente que a anlise de malware como um jogo de gato e rato. Comonovas tcnicas de anlise de malware so desenvolvidas, os autores de malwarerespondem com novas tcnicas para frustrar tais anlises. Para ter sucesso comoanalista de malware, deve-se ser capaz de reconhecer, entender e derrotar essastcnicas, e responder a mudanas na arte de anlise de malware.

    mailto:[email protected]

  • 31

    3.1 TRABALHOS FUTUROS

    Como possveis trabalhos para dar continuidade a esta pesquisa, apontar-se: darcontinuidade 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 sobons para uma triagem inicial, mas podem no fornecer informaes suficientes para analisarcompletamente o malware.

    Fazendo uma analogia, tcnicas de anlise bsica esttica, seriam como olhar para olado de fora de um corpo durante uma autpsia. Pode-se usar esta anlise para tirar algumasconcluses preliminares, porm necessria uma anlise mais aprofundada para obter todasas informaes da funcionalidade do malware em anlise. Por exemplo, pode-se achar queuma determinada funo importada, mas no se sabe como ou se ela usada.

    Tcnicas de anlise dinmica tambm tm suas desvantagens. Por exemplo, este tipode tcnica pode informar como o malware responde ao receber um pacote especialmenteprojetado, mas para aprender o formato do pacote, s em uma anlise mais aprofundada. aque entra a desmontagem (disassembly), que uma tcnica avanada de anlise esttica queexige habilidades altamente especializadas, que podem ser assustadoras para aqueles que sonovos em programao.

    O Interactive Disassembler Professional (IDA Pro) um desmontador extremamentepoderoso distribudo pela Hex-Rays (Hex-Rays 2013). Embora o IDA Pro no seja o nicodesmontador, disponvel no mercado, o desmontador de escolha para muitos analistas demalware, engenharia reversa e analistas de vulnerabilidade. Duas verses do IDA Pro estodisponveis no mercado. Embora ambas as verses suportem executveis x86, a versoavanada suporta muitos mais processadores do que a verso padro, principalmente x64. OIDA 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 testarou examinar a execuo de um outro programa. Depuradores podem ajudar no processo dedesenvolvimento de software, uma vez que os programas costumam ter erros quandoexecutados na primeira tentativa. medida em que se desenvolve, pode-se fornecer a entradaao programa e ver o resultado, mas sem um depurador, no se pode visualizar como oprograma produz a sada.

    Depuradores podem dar uma viso do que um programa est fazendo, em tempo deexecuo. So projetados para permitir que os desenvolvedores possam medir e controlar oestado interno da execuo de um programa. Podem fornecer informaes sobre umprograma, que seria difcil, se no impossvel, de se obter com um desmontador.

    Os desmontadores podem oferecer um instantneo do programa imediatamente antesda execuo do primeiro ciclo de instrues, porm os depuradores podem fornecer uma visodinmica de um programa como ele executado. Por exemplo, depuradores podem mostrar osvalores 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 umaviso crtica durante a anlise de malware. Depuradores podem permitir que se veja o valor decada 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 necessrioapenas saber a localizao dessa varivel. Dois exemplos de depuradores so o OllyDbg eWinDbg.

    O OllyDbg (OllyDbg 2013), um depurador x86 desenvolvido pela Oleh Yuschuk,fornece a capacidade para analisar malwares em tempo de execuo. frequentementeutilizado por analistas de malware e engenharia reversa, pois uma ferramenta livre e de fcilmanuseio, possuindo muitos plug-ins que estendem as suas funcionalidades. O WinDbg(WinDbg 2013) uma ferramenta livre da Microsoft. Embora no seja to popular comoOllyDbg para anlise de malware, tem muitas vantagens, a mais significativa o kerneldebugging.

    Assim uma anlise avanada esttica e dinmica, utilizando desmontadores edepuradores 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 maliciousactivities on a computer. The term malware, acronym to malicious software, is a softwaredesigned to infiltrate a computer system alien unlawfully with intent to cause damage to ortheft of information, confidential or not. Anti-virus and antispyware programs are the mostcommon tools for prevention, but these utilities apply to malicious programs whose signaturesare already known and cataloged in a database. To create the malware signatures and catalogthem requires a detailed analysis of your code, known as reverse engineering. Within thiscontext, the approach of this work was done through a qualitative, descriptive and subjectiveresearch, applied research laboratory in a controlled environment where tests were performedto verify the technical and malware analysis tools in Windows environment in three samplesof malware. The results obtained by means of static and dynamic analysis, both basic, suggestthat 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 hybridframework to analyze web and OS malware. Communications (ICC), IEEE InternationalConference, 2012, p. 966-970.

    BARUQUE, A. O. C.; GRGIO, A. R. A.; DE GEUS, P. L.; Anlise Visual deComportamento de Cdigo Malicioso. XI Simpsio Brasileiro em Segurana da Informao ede Sistemas Computacionais (SBSeg), 2011, p. 300-309.

    CERON, J. M.; GRANVILLE, L.; TAROUCO, L. M. R.; Taxonomia de Malwares: UmaAvaliao dos Malwares Automaticamente Propagados na Rede. IX Simpsio Brasileiro emSegurana da Informao e de Sistemas Computacionais (SBSeg), 2009. p. 43-56

    _________________________________________________ Uma arquitetura baseada emassinaturas para mitigao de botnets. XI Simpsio Brasileiro em Segurana da Informao ede 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: .Acessado em: 29 out. 2013.

    ________ Centro de Estudos, Resposta e Tratamento de Incidentes de Segurana no Brasil.Estatsticas. Disponvel em: . Acessado em: 05 nov. 2013.

    DE MELO, L. P. et al. Anlise de Malware: Investigao de Cdigos Maliciosos Atravs deuma Abordagem Prtica. XI Simpsio Brasileiro em Segurana da Informao e de SistemasComputacionais (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 SimpsioBrasileiro em Segurana da Informao e de Sistemas Computacionais (SBSeg), 2011.

    ____________________________ Anlise Comportamental de Cdigo Malicioso Atravs daMonitorao de Chamadas de Sistema e Trfego de Rede. Instituto De Computao. 2010, p.33.

    GARY KESSLER. File Signatures Table. Disponvel em:. Acessado em: 14 maio 2013.

  • 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 behavioranalysis. In: SPIE Defense, Security, and Sensing. International Society for Optics andPhotonics, 2011, p. 801905-801909.

    HAMLEN, K.W.; Stealthy software: Next-generation cyber-attacks and defenses. Intelligenceand Security Informatics (ISI), IEEE International Conference, 2013, p. 109-112.

    HEX-RAYa. IDA: About. Disponvel em: .Acessado em: 20 nov 2013.

    JIANMING, F.; XINWEN, L.; BINLING, C.; Malware Behavior Capturing Based on TaintPropagation and Stack Backtracing. Trust, Security and Privacy in Computing andCommunications (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 emExecutveis do Microsoft Windows. X Simpsio Brasileiro em Segurana da Informao e deSistemas 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:. Acessado em: 14 nov 2013.

    OLLYDBG. OllyDbg Downloads. Disponvel em: .Acessado em: 20 nov 2013.

    PARK, D.; RUIZ, R.; MONTES, A.; Ferramenta para Reconhecimento de ExecutveisEmpacotados. International Conference On Forensic Computer Science (ICoFOCS), 2011, p.173-181.

    SIKORSKI, Michael; HONIG, Andrew; LAWLER, Stephen. Practical Malware Analysis: TheHands-On Guide to Dissecting Malicious Software, 2012.

  • VIRTUALBOX. Oracle Virtual Box. Disponvel em: .Acessado em: 05 mar. 2013.

    VIRUSTOTAL. Estatsticas dos arquivos submetidos durante os ltimos 7 dias. Disponvelem: . Acessado em: 29 out. 2013.

    WICHMANN, A.; GERHARDS-PADILLA, E.; Using Infection Markers as a Vaccine againstMalware Attacks. Green Computing and Communications (GreenCom), IEEE InternationalConference, 2012, p. 737-742.

    WINDBG. Using Microsoft Windows Debugger (WinDbg). Disponvel em:. Acessado em: 20 nov. 2013.

    YIN, H. et al. Panorama: capturing system-wide information flow for malware detection andanalysis. Proceedings of the 14th ACM conference on Computer and communicationssecurity, 2007, p. 116-127.

    YING, C; JIACHE, L.; QIGUAN, M.; WEISHENG, L.; Osiris: A Malware BehaviorCapturing System Implemented at Virtual Machine Monitor Layer. ComputationalIntelligence and Security (CIS), Eighth International Conference, 2012, p. 534-538.

    YONGTAO, H.; LIANG, C.; MING, X.; NING, Z.; YANHUA, G.; Unknown MaliciousExecutables Detection Based on Run-Time Behavior. Fuzzy Systems and KnowledgeDiscovery, Fifth International Conference, 2008, p. 391-395.

    ZABIDI, M.N.A.; MAAROF, M.A.; ZAINAL, A.; Ensemble based categorization andadaptive model for malware detection. Information Assurance and Security (IAS), 7thInternational Conference, 2011, p. 80 85.