Introdução
Introdução
A análise de malware é o processo de dissecar softwares maliciosos para entender seu funcionamento, como identificá-los e como neutralizá-los. O malware, que inclui vírus, trojans, worms, rootkits, scareware e spyware, causa danos a usuários, computadores e redes. Essa análise é importante devido ao grande número de programas maliciosos existentes e à crescente demanda por profissionais qualificados na área, especialmente em resposta a incidentes de segurança cibernética.
Este livro não aborda a busca por malware, mas sim como analisá-lo após sua detecção, com foco principal no sistema operacional Windows e em arquivos executáveis, que são os mais comuns e desafiadores. A obra evita discussões sobre scripts maliciosos e programas Java, concentrando-se em métodos para dissecação de ameaças avançadas, como backdoors, malware encoberto e rootkits.
Este livro ensina como e quando usar várias técnicas de análise de malware. Compreender o momento adequado para aplicar uma técnica específica pode ser tão importante quanto conhecer a técnica em si, pois o uso da abordagem errada na situação inadequada pode resultar em uma perda de tempo frustrante. Embora não sejam abordadas todas as ferramentas, devido à constante evolução delas, o foco está nas habilidades essenciais.
Exercícios de laboratório ao final da maioria dos capítulos permitem que você pratique as habilidades ensinadas. Esses laboratórios apresentam desafios com malwares realistas projetados para demonstrar os tipos mais comuns de comportamento que você encontrará no malware do mundo real. Os laboratórios foram elaborados para reforçar os conceitos ensinados no capítulo, sem sobrecarregá-lo com informações não relacionadas. Cada laboratório inclui um ou mais arquivos maliciosos (https://github.com/mikesiko/PracticalMalwareAnalysis-Labs), algumas perguntas para guiá-lo, respostas curtas para as perguntas e uma análise detalhada do malware.
Os laboratórios simulam cenários realistas de análise de malware, possuindo nomes de arquivos genéricos que não fornecem informações sobre a funcionalidade do malware. Assim como no caso do malware real, você começará sem informações e precisará usar as habilidades que aprendeu para reunir pistas e descobrir o que o malware faz.
A maioria dos capítulos contém três laboratórios: o primeiro é geralmente o mais fácil e a maioria dos leitores deve conseguir completá-lo; o segundo é de dificuldade moderada, e a maioria dos leitores precisará de alguma ajuda das soluções; o terceiro é mais difícil, e apenas os leitores mais habilidosos conseguirão completá-lo sem ajuda das soluções.
“Sumário”
Os capítulos 1 a 3 abordam técnicas básicas de análise de malware que podem ser utilizadas por pessoas sem experiência em segurança ou programação para realizar triagem de malware.
Capítulo 0, “Introdução à Análise de Malware”: Estabelece o processo e a metodologia geral de análise de malware.
Capítulo 1, “Técnicas Básicas Estáticas”: Ensina formas de obter informações de um executável sem executá-lo.
Capítulo 2, “Análise de Malware em Máquinas Virtuais”: Orienta sobre como configurar máquinas virtuais para usar como um ambiente seguro para executar malware.
Capítulo 3, “Análise Dinâmica Básica”: Apresenta técnicas eficazes e fáceis de usar para analisar um programa malicioso em execução.
Os capítulos 4 a 14 cobrem material mais intermediário, fornecendo as principais ferramentas e habilidades necessárias para analisar a maioria dos programas maliciosos, embora exijam algum conhecimento de programação.
Capítulo 4, “Curso Rápido de Assembly x86”: Introdução à linguagem de assembly x86, que fornece uma base para usar o IDA Pro e realizar análises detalhadas de malware.
Capítulo 5, “IDA Pro”: Ensina a usar o IDA Pro, uma das ferramentas mais importantes de análise de malware, que será utilizada ao longo do livro.
Capítulo 6, “Reconhecendo Construções de Código C em Assembly”: Fornece exemplos de código C em assembly e ensina como entender a funcionalidade de alto nível do código assembly.
Capítulo 7, “Analisando Programas Maliciosos do Windows”: Cobre uma ampla gama de conceitos específicos do Windows necessários para entender programas maliciosos.
Capítulo 8, “Depuração”: Explica o básico da depuração e como usar um depurador para analistas de malware.
Capítulo 9, “OllyDbg”: Ensina a usar o OllyDbg, o depurador mais popular para analistas de malware.
Capítulo 10, “Depuração do Kernel com WinDbg”: Aborda como usar o depurador WinDbg para analisar malware em modo kernel e rootkits.
Capítulo 11, “Comportamento do Malware”: Descreve funcionalidades comuns do malware e como reconhecer essas funcionalidades durante a análise.
Capítulo 12, “Lançamento de Malware Encoberto”: Discute como analisar programas maliciosos que ocultam sua execução dentro de outro processo.
Capítulo 13, “Codificação de Dados”: Demonstra como o malware pode codificar dados para dificultar a identificação de suas atividades no tráfego de rede ou no host da vítima.
Capítulo 14, “Assinaturas de Rede Focadas em Malware”: Ensina a usar a análise de malware para criar assinaturas de rede que superam aquelas feitas apenas a partir de tráfego capturado.
O material mais avançado nos capítulos 15 a 19 é útil até mesmo para analistas experientes, pois explora estratégias e técnicas para analisar programas sofisticados, como aqueles que utilizam técnicas de anti-disassembly, anti-debugging ou packing.
Capítulo 15, “Anti-Disassembly”: Explica como alguns autores de malware projetam seus programas para serem difíceis de desmontar e como reconhecer e vencer essas técnicas.
Capítulo 16, “Anti-Debugging”: Descreve os truques que autores de malware usam para dificultar a depuração de seu código e como superar esses obstáculos.
Capítulo 17, “Técnicas Anti-Máquina Virtual”: Demonstra técnicas usadas por malware para dificultar a análise em máquinas virtuais e como contornar essas técnicas.
Capítulo 18, “Packers e Unpacking”: Ensina como o malware utiliza packing para esconder seu verdadeiro propósito e fornece uma abordagem passo a passo para descompactar programas empacotados.
Capítulo 19, “Análise de Shellcode”: Explica o que é shellcode e apresenta dicas e truques específicos para analisar shellcode malicioso.
Capítulo 20, “Análise de C++”: Instruções sobre como o código C++ se apresenta após a compilação e como realizar a análise de malware criado em C++.
Capítulo 21, “Malware de 64 Bits”: Discute por que autores de malware podem usar malware de 64 bits e o que você precisa saber sobre as diferenças entre x86 e x64.
Apêndice A, “Funções Importantes do Windows”: Descreve brevemente funções do Windows comumente usadas em malware.
Apêndice B, “Ferramentas para Análise de Malware”: Lista ferramentas úteis para analistas de malware.
Apêndice C, “Soluções para os Laboratórios”: Fornece soluções para os laboratórios incluídos nos capítulos ao longo do livro.
Atualizado