MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA CURSO DE MESTRADO EM SISTEMAS E COMPUTAÇÃO REINALDO JOSÉ MANGIALARDO INTEGRANDO AS ANÁLISES ESTÁTICA E DINÂMICA NA IDENTIFICAÇÃO DE MALWARES UTILIZANDO APRENDIZADO DE MÁQUINA Rio de Janeiro 2015 INSTITUTO MILITAR DE ENGENHARIA REINALDO JOSÉ MANGIALARDO INTEGRANDO AS ANÁLISES ESTÁTICA E DINÂMICA NA IDENTIFICAÇÃO DE MALWARES UTILIZANDO APRENDIZADO DE MÁQUINA Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e Computação do Instituto Mili- tar de Engenharia, como requisito parcial para obtenção do título de Mestre em Sistemas e Computação. Orientador: Julio Cesar Duarte - D.Sc Rio de Janeiro 2015 c2015 INSTITUTO MILITAR DE ENGENHARIA Praça General Tibúrcio, 80-Praia Vermelha Rio de Janeiro-RJ CEP 22290-270 Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí- lo em base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de arquivamento. É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que seja feita a referência bibliográfica completa. Osconceitosexpressosnestetrabalhosãoderesponsabilidadedoautoredoorientador. XXXXXMangialardo, R. J. Integrandoasanálisesestáticaedinâmicanaidentifi- cação de malwares utilizando aprendizado de máquina/ Reinaldo José Mangialardo. – Rio de Janeiro: Instituto Militar de Engenharia, 2015. xxx p.: il., tab. Dissertação (mestrado) – Instituto Militar de Enge- nharia – Rio de Janeiro, 2015. 1. Análise de malwares. 2. Aprendizado de máquina. I. Título. II. Instituto Militar de Engenharia. CDD 629.892 2 INSTITUTO MILITAR DE ENGENHARIA REINALDO JOSÉ MANGIALARDO INTEGRANDO AS ANÁLISES ESTÁTICA E DINÂMICA NA IDENTIFICAÇÃO DE MALWARES UTILIZANDO APRENDIZADO DE MÁQUINA Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e Com- putação do Instituto Militar de Engenharia, como requisito parcial para obtenção do título de Mestre em Sistemas e Computação. Orientador: Julio Cesar Duarte - D.Sc Aprovada em xx de xxxxxx de xxxx pela seguinte Banca Examinadora: Julio Cesar Duarte - D.Sc do IME - Presidente Prof. Ronaldo Ribeiro Goldschmidt - D.Sc, do IME Prof. Cicero Nogueira Dos Santos - D.Sc, da IBM Rio de Janeiro 2015 3 Dedico este trabalho à minha esposa com muito amor, carinho e gratidão, pelo seu companheirismo, respeito, incentivo e paciência. 4 AGRADECIMENTOS Agradeço a todas as pessoas que contribuíram com o desenvolvimento desta disser- tação de mestrado, tenha sido por meio de críticas, idéias, apoio, incentivo ou qualquer outra forma de auxílio. Em especial, desejo agradecer às pessoas citadas a seguir. Ao meu pai José (in memoriam) e minha mãe Rosemari pelos valores transmitidos, pelo apoio e carinho. À minha esposa Andréa e aos meus queridos filhos Júlio e Yasmin pelo amor fraternal e familiar, solidariedade e companheirismo. Ao meu orientador Maj Julio Cesar Duarte pela paciência, compreensão e orientação. Por fim, a todos os professores e funcionários do Departamento de Engenharia de Sistemas (SE/8) do Instituto Militar de Engenharia. Reinaldo José Mangialardo 5 Não devemos admitir mais causas para as coisas na- turais do que as que são verdadeiras e suficientes para explicar suas aparências. Isaac Newton 6 SUMÁRIO LISTA DE ILUSTRAÇÕES ................................................ 9 LISTA DE TABELAS ..................................................... 10 LISTA DE ABREVIATURAS E SÍMBOLOS ................................. 11 1 INTRODUÇÃO .................................................. 14 1.1 Motivação.......................................................... 14 1.2 Objetivos .......................................................... 15 1.3 Justificativa ........................................................ 15 1.4 Organização da dissertação ........................................... 16 2 ANÁLISE DE MALWARES ...................................... 18 2.1 Os formatos de arquivos.............................................. 18 2.2 Análise de malwares ................................................. 23 2.2.1 Classificação dos malwares ........................................... 23 2.2.2 Técnicas de análise de malwares....................................... 27 2.2.2.1Análise estática de malwares.......................................... 29 2.2.2.2Análise dinâmica de malwares ........................................ 34 2.2.3 Técnicas de antianálise de malwares ................................... 38 2.2.3.1Ofuscação .......................................................... 38 2.2.3.2Antidisassembly..................................................... 42 2.2.3.3Anti-VM........................................................... 43 2.2.3.4Antidebugging ...................................................... 44 3 APRENDIZADO DE MÁQUINA ................................ 48 3.1 Algoritmos de aprendizado de máquina................................. 50 3.2 Algoritmos baseados em árvores de decisão: ID3, C4.5 e C5.0 ............. 52 3.2.1 ID3 ............................................................... 56 3.2.2 C4.5............................................................... 57 3.2.3 C5.0............................................................... 57 3.3 Algoritmos baseados em comitês de decisão ............................. 59 3.3.1 Random Forest ..................................................... 60 7 3.4 Validação e avaliação do aprendizado de máquina........................ 64 3.5 Framework de aprendizado de máquina ................................ 71 3.5.1 FAMA............................................................. 72 4 TRABALHOS RELACIONADOS ................................ 74 5 UNIFICAÇÃO DAS ANÁLISES DE MALWARES ............... 78 5.1 Preparação do ambiente de análise .................................... 79 5.2 Obtenção das amostras de malwares e não malwares ..................... 81 5.3 Escolha de características ............................................ 82 5.4 Execução das análises estática e dinâmica de malwares ................... 87 5.5 Preparação dos dados................................................ 90 5.6 Preparação dos algoritmos de aprendizado de máquina ................... 91 5.7 Análise dos resultados ............................................... 92 6 RESULTADOS ................................................... 93 7 CONCLUSÃO E SUGESTÕES DE TRABALHOS FUTUROS .... 97 8 REFERÊNCIAS BIBLIOGRÁFICAS ........................... 100 8 LISTA DE ILUSTRAÇÕES FIG.1.1 Distribuição de notificações por status e mês de criação .............. 16 FIG.2.1 Formato de Arquivo Windows Portable Executable .................. 21 FIG.2.2 Identificação digital de um arquivo ................................ 32 FIG.2.3 Programa pafish.exe identificando uma máquina virtual .............. 45 FIG.2.4 Programa vbox.c ................................................ 46 FIG.3.1 Processo de Aprendizado de Máquina Supervisionado ................ 49 FIG.3.2 SVM. Separação linear de hipóteses ................................ 52 FIG.3.3 SVM. Separação não linear de hipóteses. (a) Conjunto de dados não linear. (b) Fronteira não linear no espaço de entradas. (c) Fronteira linear no espaço de características. ....................... 53 FIG.3.4 Comitê de aprendizado ........................................... 59 FIG.3.5 Random Forest ................................................. 62 FIG.3.6 Árvore de Decisão ............................................... 62 FIG.3.7 Diagrama de Classes do FAMA ................................... 72 FIG.5.1 Etapas da Unificação da Análise de Malwares ....................... 78 FIG.5.2 Diagrama do ambiente de análise .................................. 79 FIG.5.3 Arquivos do CuckooMon ......................................... 80 FIG.5.4 Código de detecção de anti-vm .................................... 81 FIG.5.5 Identificação de malware pela análise estática ....................... 83 FIG.5.6 Relatório de análise estática ...................................... 88 FIG.5.7 Relatório de análise estática mostrando a recuperação de strings ....... 89 FIG.5.8 Relatório de detecção e nomeação de antivírus ...................... 90 FIG.5.9 Relatório de análise dinâmica ..................................... 91 FIG.5.10 Exemplo do arquivo .dat ......................................... 92 FIG.6.1 Resultados (Acurácia) ........................................... 95 FIG.6.2 Resultados (Revocação) .......................................... 96 9
Description: