Baixar este arquivo PDF - Revista TIS
Transcrição
Baixar este arquivo PDF - Revista TIS
ISSN 2316-2872 T.I.S. São Carlos, v. 3, n. 1, p. 102-113, jan-abr 2014 ©Tecnologias, Infraestrutura e Software Utilizando a Análise Dinâmica para entender Códigos Maliciosos: Um Estudo de Caso James Lima da Silva Schmidt, Eugeni Dodonov, Hélio Guardia Resumo: Com o surgimento de códigos maliciosos e suas proliferações em sistemas operacionais Windows, técnicas e metodologia surgiram para ajudar a “dissecar” os códigos maliciosos com o foco de entender e conter sua proliferação. Este artigo visa a demostrar uma das cinco técnicas da metodologia da análise forense de malwares, onde a técnica da análise dinâmica foi empregada para coletar informações a fim de descobrir e entender malwares. A reconstrução e a recriação de um cenário foram necessárias utilizando-se algumas ferramentas interligadas e, como resultado do experimento, informações importantes foram coletadas a respeito do código malicioso, contudo não foi possível somente com a análise dinâmica e utilizando a ferramenta Cuckoo SandBox identificar a natureza e os objetivos do malware de forma clara. Palavras-Chave: código malicioso, análise dinâmica, segurança Using Dynamic Analysis to understand Malicious Codes: a case study Abstract: With the outbreak of Malicious Codes and their proliferation on Windows operating systems, techniques and methodologies have emerged to help “dissecting” the Malicious Code in order to understand and stop their proliferation. This article aims at demonstrating one of the five techniques of Malware Forensic Analysis Methodology, where the Dynamic Analysis technique was used to collect information in order to discover and understand malware. The reconstruction and recreation of a scenario were required using some interconnected tools and, as a result ofthe experiment, important information about the malicious code was collected, but it was not possible to clearly identify the nature and goals ofmalware only with the dynamic analysis and the Cuckoo SandBox tool. Keywords: malware code, dynamic analysis, network security 1. INTRODUÇÃO Mercenários, terrorismo, fanatismo, espionagem, vingança. Sempre que são colocados em voga tais temas, o que primeiro vem à mente são bombas, agentes 007, guerras e outras coisas do gênero. Porém, esse é o cenário atual da Internet. Enviar um espião para roubar informações importantes de uma determinada empresa é coisa do passado, hoje se manda um e-mail para pessoas chaves da empresa contendo um pequeno worm capaz de roubar toda e qualquer informação acessada e digitada e, desta forma, é possível acessar informações secretas e confidenciais da empresa. A Internet tornou-se um cenário propício para verdadeiras batalhas onde se pode ver desde um simples phishing para capturar senhas de e-mails até elaborados sistemas interconectados com mais de milhares de computadores prontos para derrubar sistemas gigantescos. Nesse contexto, em 1969 quando Gregory Benford criou o primeiro vírus registrado – o Benford's viroses, (AYCOCK, 2006, p. 22), tal ato foi visto como uma inovação. Em 2010, na ocorrência de outro caso, a STUXNET1 , houve repercussão análoga no que se refere aos padrões da época. Entretanto, as consequências que um vírus pode causar e as tecnologias empregadas evoluíram. Esse worm, que surgiu em 2010, mostra aonde a situação atual da tecnologia de malware chegou e qual preço no futuro pode-se pagar para que armas como essa possam ser previstas e detectadas antes que algo pior aconteça. Diante desse cenário, objetiva-se mostrar a importância de um dos cinco requisitos na análise de malware sobre a ótica da investigação e metodologia forense. Baseado numa visão prática este estudo demonstra ferramentas existentes para fazer essas análises e como fazer para entender o que está acontecendo em um ambiente. Dessa forma, agir quando antivírus e outros sistemas ainda não conseguem detectar e remover o agente causador torna-se mais fácil. Este artigo está organizado da seguinte forma: na seção II é apresentada a conceituação de malwares; na seção III são apresentados tipos de metodologias e técnicas de análises; na ________________________________ 1 Stuxnet busca por sistemas de controle industriais e então modifica seus códigos para permitir que os atacantes tomem o controle desses sistemas sem que os operadores percebam. É o primeiro vírus de computador capaz de causar dano no meio físico. Ele é sofisticado, bem financiado, e poucos grupos atualmente têm a capacidade de criar esse tipo de ameaça. (SYMANTEC, Worm Stuxnet). Departamento de Computação - Universidade Federal de São Carlos (UFSCar) Caixa Postal 676 – 13.565-905 – São Carlos – SP – Brasil Autor para correspondência: [email protected], [email protected] James Lima da Silva Schmidt, Eugeni Dodonov, Hélio Guardia seção IV são apresentadas as ferramentas que utilizaremos para compor a análise; na seção V é apresentada a análise de um malware específico; na seção VI é apresentada, em forma de estudo de caso, a análise de malware na prática, onde são demonstradas algumas análises com impactos e a descrição dos casos; na seção VII são apresentados os resultados finais e as conclusões do estudo de caso. II. MALWARE Malwares ou códigos maliciosos, segundo a cartilha da entidade brasileira responsável por segurança na Internet CERT.BR (Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil), são programas criados e projetados unicamente para causar danos e executar atividades maliciosas em um computador. Tais programas tem como objetivo obter vantagens econômicas, coletar informações confidenciais e, muitas vezes, possibilitam a prática de golpes e a disseminação de spam. Assim, importante conhece-los e evita-los e a análise dinâmica de sua ação pode ajudar a identificar sua atuação dentro do ambiente e permitir com que os danos possam ser minimizados ou até eliminados. A partir do conceito apresentado e levando-se em consideração o relatório realizado pela Symantec (SYMANTEC, 2012) sobre ameaças à Internet, observam-se alguns dados interessantes sobre tais códigos maliciosos. Pode-se ver em tal relatório que os Estados Unidos permanecem em primeiro lugar, tanto em nível regional nas Américas como em nível mundial, no que se refere à origem de atividade de códigos maliciosos no ano de 2011. Ainda conforme o relatório da Symantec, as atividades maliciosas originadas de computadores infectados no Brasil fizeram com que o país fosse elevado para o topo da tabela como fonte de atividades maliciosas na América Latina em 2011, empatando com os Estados Unidos, e levando-o para o quarto lugar em nível mundial (SYMANTEC, 2012, p.9). Veja-se o resumo dos dados quantos aos principais países das Américas e a respectiva porcentagem da origem geográfica das atividades maliciosas de acordo com a compilação de dados: Figura 1: Atividade Maliciosa por Código Mali-cioso – Américas, 2011 (SYMANTEC, 2012, p.6). T.I.S. 2014; 3 (1): 102-113 Outro dado importante segundo o mesmo relatório (SYMANTEC, 2012, p.13) é a lista de códigos maliciosos que dominaram as Américas no período de 2011 e, onde um Worm chamado W32.Downadup, o qual foi detectado em 29 de dezembro de 2008, liderou a lista com uma porcentagem de 11.8% em todas as Américas. Observe-se a figura em que são apresentadas as principais amostras de códigos maliciosos em que ocorreram infecções potenciais observadas no ano de 2011: Figura 2: Principais amostrar de códigos maliciosos nas Américas, 2011 (SYMANTEC, 2012, p.13). A)Tipos de Malwares Existem vários tipos de malwares com diferentes objetivos e funções, seja para roubar senha de banco ou simplesmente para colher informações de preferências de determinados usuários para expor anúncios publicitários. Tais tipos de malwares são: Vírus: Programa de computador ou parte de um programa, na maioria das vezes malicioso, que se propaga na rede e em outros computadores através de cópias de si mesmo, torna-se parte de outros programas e arquivos (AYCOCK, 2006, p. 14). Segundo a CERT.br existem 4 variações de vírus, que são: • Vírus propagado por e-mail; • Vírus de script; • Vírus de Macro; • Vírus de Telefone Celular. Worm: da mesma maneira que com o vírus, a propagação de worms se dá através de cópias de si mesmo pela rede e afetando outros computadores (AYCOCK, 2006, p. 15); Bot e Bonet: programas de computadores capazes de controlar o hospedeiro remotamente. Tem propagação similar ao Worm e são capazes também de explorar vulnerabilidades em sistemas (CERT.br, 2006, p.14); Spyware: é um software que coleta informações de um computador e as transmite para outro computador ou até mesmo envia-as para outra pessoa. Tais informações podem ser usuários e senhas, endereços de e-mail, números de dados de contas bancárias, cartões de crédito, licenças de software, etc. (AYCOCK, 2006, p. 16); Existem três tipos de spywares: Keylogger, Screenlogger e o Adware. Backdoor: permite que o sistema comprometido tenha acesso livre pelo invasor, fazendo com o que sistema tenha sempre “uma porta dos fundos” de acesso ao sistema (CERT.br, 2006, p.11). 103 Utilizando a Análise Dinâmica para entender Códigos Maliciosos: Um Estudo de Caso Trojan Horse (Cavalo de Tróia): é um programa que inclui códigos maliciosos ou danosos dentro de programação aparentemente inofensiva. Executa as ações para as quais foi projetado e até mesmo outros atos danosos ao computador, tais como apagar ou danificar a tabela de alocação de arquivos (AYCOCK, 2006, p. 13). Existem diferentes tipos de Trojan são eles: • Trojan Downloader; • Trojan Dropper; • Trojan Backdoor; • Trojan DoS; • Trojan Destrutivo; • Trojan Clicker; • Trojan Proxy; • Trojan Spy; • Trojan Banker ou Bancos. Segundo a CERT.br essa classificação dos Cavalos de Tróia baseia-se nas categorias coletadas pelos softwares de anti-malware. Rootkit: programa desenvolvido para ocultar a presença de um invasor ou esconder outro código malicioso (CERT.br, 2006, p.16). Abaixo uma tabela comparativa demonstrando as ações e as formas de contágios: Figura 3: Resumo comparativo entre os códigos maliciosos (CERT.br). III. METODOLOGIAS E TÉCNICAS DE ANÁLISES Para começar a dissecar um malware é importante seguir alguns pontos relevantes tais como: • Metodologia; • Ferramentas; • Requisitos Técnicos. A metodologia irá definir a forma como deverá ser feita essa análise, quais os passos necessários, técnicas que serão utilizadas e quais ações são importantes. As ferramentas irão auxiliar no processo de investigação e análise. Requisitos técnicos são o conhecimento técnico sobre a metodologia e ferramentas. Porém, alguns autores acreditam que não são precisos conhecimentos técnicos para executar uma análise de malware, como declaram Michael Sikorski e Andrew Honig em seu livro “Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software”: “E você não precisa ser um super-hacker para realizar a análise de malware2.” (SIKORSKI e HONIG, 2012, p. 28) Entretanto, diferentemente do que tais autores pensam para este estudo de caso levou-se em consideração que requisitos técnicos são fundamentais para o experimento. A) Metodologia para análise de Malware Imagine-se uma empresa com um ambiente de mil estações de trabalho, todas com antivírus habilitado e atualizado, onde cada computador está interconectado na rede, os servidores têm mais de 10TB de arquivos altamente críticos. Então um malware é detectado em um computador e diante de tal situação ações equivocadas podem ser tomadas. Decisões erradas ou ações ineficientes podem gerar problemas ainda maiores se não forem tomadas medidas certas. Mas ficam os questionamentos: O antivírus estava atualizado? O firewall estava habilitado? Os softwares foram atualizados? E se a resposta é “sim” para todas as perguntas, então o que fazer? A metodologia das cinco fases para as análises de malwares foi descrita em dois livros dos autores James M. Aquilina, Eoghan Casey e Cameron H. Malinem seu livro “Malware Forensics: Investigating and Analyzing Malicious Code” (AQUILINA, CASEY e MALINEM, 2008, p. 24) e “Malware Forensics: Field Guide for Windows Systems” (AQUILINA, CASEY e MALINEM, 2012, p. 25) e apresenta a seguinte estrutura: • Fase um: preservação forense e análise de dados voláteis; • Fase dois: exame da memória; • Fase três: análise forense - Exame de discos rígidos; • Fase quatro: a análise estática de malware; • Fase cinco: análise dinâmica de malware. Neste artigo foca-se na quinta fase, que é a análise dinâmica de malware. Essa é uma das cinco etapas. Todavia, a experiência, outras técnicas e novas etapas podem ser _____________________________________________ 2 Versão Original: “And you don’t need to perform malware analysis”. 104 be an uber-hacker to T.I.S. 2014; 3 (1): 102-113 James Lima da Silva Schmidt, Eugeni Dodonov, Hélio Guardia aplicadas. Essas fases acima são apenas um modelo e não devem ser seguidas à risca, uma vez que os ambientes podem variar de acordo com seu grau de complexidade, tamanho, recursos, dispositivos e, ainda, cada sistema e ambiente pode propiciar uma atitude diferenciada perante o código malicioso (AQUILINA, CASEY e MALINEM, 2008, p. 24). Desta forma, de acordo com a situação prática, poderá ocorrer a necessidade de serem utilizas técnicas que não são descritas neste artigo. Fase um: Preservação forense e análise de dados voláteis Trata-se da preservação dos dados voláteis para fins de análises onde o sistema muda após uma infecção. Os dados precisam ser coletados e cuidado deve ser tomado a fim de preservar o ambiente para não causar mudanças. A lista abaixo mostra as categorias de como são classificadas as informações que são coletadas em tempo real em resposta a um malware (AQUILINA, CASEY e MALINEM, 2008, p. 27): Nivel 1 – Dados Voláteis: informações no momento da infecção, ou seja, dados de usuários logados, conexões de redes ativas e processos em execução no sistema. Nível 2 – Dados Voláteis: informações adicionais, como natureza do malware, finalidade, criticidade, incluindo as tarefas agendadas e área de transferência. Nível 1 – Dados Não voláteis: o status do sistema, suas configurações e definições que possam ter sido alteradas e essas informações são consultadas nas configurações do Registro e Políticas de auditoria; Nível 2 – Dados Não voláteis: informações que possam apoiar e ajudar na identificação da infecção buscando histórico e contextualizando para apoiar na descoberta da natureza e objetivo da infecção. Esses dados podem ser logs de eventos e histórico de navegação na Internet. Fase dois: Exame da Memória Trata-se da análise da memória do computador infectado tirando uma cópia física dos dados armazenados e analisandoos. Utilizando algumas ferramentas de análise forense podese ver conteúdos em execução, processos ocultos e que ainda estão na memória, arquivos abertos, processos terminados, conexões de redes ativas, localização física do agente causador e uma série de atividades que podem ser feitas para se conseguir informações úteis naquele instante. Despejos de memória também podem ser analisados nesse contexto e podem-se conseguir informações importantes para compreender o malware e seus objetivos (AQUILINA, CASEY e MALINEM, 2008, p. 123). Fase três: Análise Forense - Exame de discos rígidos Traçar provas da infecção é importante tendo em vista que podem ser encontrados nos sistemas de arquivos entradas de registros, logs de eventos, tabela de alocação e arquivos. A busca por informações que levem a encontrar dados relativos à infecção não é uma tarefa fácil e não será em todo lugar que se encontrará. A análise forense irá ajudar a manter um caminho e utilizar técnicas que possam apoiar na recuperação de arquivos, logs e sistemas. Para esse caso é importante seguir uma metodologia, através de repetidos T.I.S. 2014; 3 (1): 102-113 passos e documentar todo processo de avaliação e seus resultados. Nesse sentido é a afirmação de AQUILINA, CASEY e MALINEM, no livro“Malware Forencics - Investiganting and Analalyzing Mailicious Code” (2008, p. 194) (...) com uma medida de crítica, pensar sobre o papel de um investigador digital pode revelar informações necessárias para determinar a funcionalidade do malware e o seu objetivo principal (por exemplo, o furto de uma senha, roubo de dados, de controlo remoto), para detectar outros sistemas infectados, e para descobrir como o malware foi colocado no sistema (também conhecido como o vetor de intrusão). 3 Fase quatro: A análise estática de malware; Nesse contexto o malware será explorado. Alguns autores acreditam que a análise estática é o primeiro passo para se estudar malwares como é o caso dos autores do livro “Practical Malware Analysis” ao afirmarem que deve-se começar a exploração do malware com a análise estática, pois é normalmente o primeiro passo para o estudo do malware (SIKORSKI e HONIG, 2012, p.42). Neste passo, o malware não é executado, mas é feita uma análise da sua estrutura, suas funções e seus objetivos. Na análise estática pode-se confirmar que o arquivo é malicioso, porém algumas vezes uma análise estática básica pode ser inútil contra códigos maliciosos sofisticados, necessitando-se, assim, utilizar ferramentas e técnicas mais complexas para essa análise. Sikorski e Honig, em sua obra já citada (2012, p.2-3), utilizam outras técnicas as quais contemplam a metodologia que utilizaremos, sendo que uma das principais diferenças nesse caso é a ótica forense. As técnicas por eles demonstradas são: • Análise de Estática Básica; • Análise Dinâmica Básica; • Análise de Estática Avançada; • Análise Dinâmica Avançada; IV. F ERRAMENTAS O universo de ferramentas para fazer análise de malware é gigantesco e com funcionalidades e objetivos completamente diferentes, que podem ser unidos na busca de informações que levem ao entendimento completo do código malicioso analisado. As ferramentas desempenham um papel importantíssimo na coleta de dados, onde se pode ganhar tempo com o que poderia demorar horas em uma análise manual. Podem-se citar os seguintes exemplos de ferramentas: Vmware, KVM, VitualBox: são sistemas de virtualização importantes para recriação do cenário e gerenciamento das máquinas virtuais para simulação de ambientes. ____________________________________________ 3 Versão Original: (…) “with a measure of critical thinking on the part of a digital investigator, can uncover information necessary to determine malware functionality and its primary purpose (e.g., password theft, data theft, remote control), to detect other infected systems, and to discover how malware was placed on the system (a.k.a the intrusion vector)”. 105 Utilizando a Análise Dinâmica para entender Códigos Maliciosos: Um Estudo de Caso CuckooSandBox: é um software open source para automatizar a análise de arquivos suspeitos. Para isso, faz-se uso de componentes personalizados que monitoram o comportamento dos processos maliciosos durante a execução em um ambiente isolado (CUCKOO SANDBOX BOOK). VirusTotal: é um serviço gratuito que analisa arquivos suspeitos e URLs e facilita a rápida detecção de vírus, worms, cavalos de tróia, e todos os tipos de malware. (VIRUSTOTAL). SSDEEP: é um programa também chamado de hashes fuzzy, HPTC. Pode combinar entradas que têm homologias, com sequências de bytes idênticos na mesma ordem, embora bytes entre estas sequências possam ser diferentes em conteúdo e comprimento (SSDEEP). TCPDump: é um analisador de pacotes de dados poderoso, e libpcap, uma portátil biblioteca C / C + + para captura de tráfego de rede (TCPDUMP). Essas ferramentas foram utilizadas em um estudo de caso, onde se pode demonstrar em um ambiente controlado todas as informações que podem ser capturadas. Tais ferramentas apenas complementam a análise de malware dinâmica, podendo conseguir alguns dados em relação à análise de malware estática. A) Outras ferramentas para análise de malware Regshot: é um open-source (LGPL) que permite que se tire uma “foto” do registro de um sistema Windows e, em seguida, consiga compará-lo com um segundo - feito depois de fazer alterações no sistema ou instalação de um novo produto de software (AQUILINA, CASEY e MALINEM, 2008, p. 493). Process Hacker: é um visualizador de processo e de código aberto. Esta ferramenta irá ajudar na depuração de detecção de malware e monitoramento do sistema. Ela inclui o encerramento do processo por completo, visualização de memória / edição e outros recursos exclusivos e especializados. (PROCESS HACKER) O papel da ferramenta é auxiliar no processo de detecção, monitoramento e estudo de código malicioso ajudando a otimizar tempo e ações complexas. Cada passo da investigação deve ser levado em consideração desde a preservação do cenário até a sua possível reconstrução. A utilização de uma metodologia sugere uma sequência ou ações que devem ser seguidas para obter êxito. V. ANÁLISE DE MALWARE Michael Sikorski e Andrew Honig conceituam a análise de malware como a arte de dissecar os malwares com o objetivo de entender como eles funcionam, como identifica-los, eliminá-los ou derrota-los (2012, p. 28). O objetivo da análise do malware é conseguir fornecer informações para que uma possível contaminação possa ser contida, estabelecer padrões, detectar quais equipamentos foram contaminados e ainda localizar o arquivo causador do problema são primordiais para que qualquer prejuízo seja minimizado o quanto antes. Para Michael Sikorski e Andrew Honig (2012, p. 5) há algumas regras básicas para que a análise do malwares seja realizada. Primeiramente, os autores afirmam que não se deve ficar preso aos detalhes, uma vez que os malwares possuem uma estrutura complexa e cheia de códigos maliciosos onde se deve focar nas principais características do todo e não ficar focado em trechos de linha de códigos; Em segundo lugar, indicam que ao tentar-se com uma ferramenta ou técnica que não está dando certo, deve-se procurar uma abordagem diferente, substituir a ferramenta, trocar de técnica e tentar ver o malware sobre outra visão, não gastando muito tempo em qualquer assunto. E, pra finalizar, os citados autores asseveram que se deve lembrar que a análise de malware é um jogo, como um gato-erato, onde o desenvolvedor do malware procura sempre uma técnica diferente, um método novo para que a análise desses malware não seja realizada com sucesso. Assim, o analista de malware deve responder na “mesma altura” para ter sucesso. A) Análise Dinâmica Depois de descoberto o agente causador e iniciadas as etapas para cada uma com um critério de análise e objetivos diferenciados, chegou a hora da etapa cinco, a análise dinâmica entrar em cena e mostrar seus valores e porque a reconstrução do cenário é tão importante. Quando um malware é detectado, é preciso, em certos casos, fazer análises que envolvem não somente a integridade do ambiente, mas também a reconstrução do mesmo para analisar cada acesso executado, registro modificado ou arquivo alterado. Conforme os autores James M. Aquilina, Eoghan Casey e Cameron H. Malinem a análise dinâmica tem como objetivo realizar uma análise comportamental envolvendo desde a execução do código, monitorando seu comportamento, até a interação e os efeitos sobre o sistema infectado (2008, p. 490). Todos os passos desse processo consistem em fazer algo que parece não lógico, ou seja, executar o malware, reconstruir o cenário. Essas fases são importantes e são elencadas a seguir (AQUILINA, CASEY e MALINEM, 2008, p. 491): • Estabelecer a linha de base do Ambiente; • Preparação para Pré-execução; • Executar o Código Malicioso; • Sistema e Rede de Monitoramento; • Emulação do ambiente e ajuste; • Processar de espionagem; • Derrotar Ofuscação; • Descompilação; • Análise avançada PE; B) Estabelecer a linha de base do Ambiente Para que possa ser reproduzido o ambiente alvo de ataque ou programa malicioso alguns critérios importantes devem ser levados em consideração. O primeiro é a virtualização, tendo em vista que é atualmente o meio mais eficiente em fazer 106 T.I.S. 2014; 3 (1): 102-113 James Lima da Silva Schmidt, Eugeni Dodonov, Hélio Guardia novos ambientes e gerenciá-los, para que as ações durante a execução do malware possam ser controladas e suas atividades monitoradas de forma fácil, uma vez que o processo de administração de máquinas virtuais facilitará as atividades porque se deve parar, iniciar, por diversas vezes a máquina virtual sem falar na execução do malware toda vez que for necessário. A virtualização também ajuda na comparação de estados antes e depois da infecção, podendo fazer-se comparativos de memória e até de arquivos entre um ambiente e outro. Antes de iniciar qualquer operação com a execução de malwares é extremamente necessária a execução de um “snapshot” da máquina virtual, ou seja, uma foto do estado atual do computador fazendo com que a máquina infectada possa ser comparada e voltada ao seu estado anterior mesmo após a infecção pelo malware (AQUILINA, CASEY e MALINEM, 2008, p. 492). Outra solução que é extremamente recomendada é a SandBox, conhecida como “Caixa de Areia”, que permite fazer qualquer ação dentro desse ambiente sem afetar os outros sistemas, ficando inteiramente isolado. Dentro desse cenário precisa-se monitorar a integridade do computador utilizando-se de ferramentas para fazer esse trabalho, uma vez que manualmente é praticamente inviável. Ferramentas deverão monitorar arquivos de sistemas onde qualquer mudança, por mais simples que seja, possa ser monitorada, incluindo arquivos de .INI, Registros, alteração na MBR do disco (AQUILINA, CASEY e MALINEM, 2008, p. 492). O Software avaliado neste estudo é o Cuckoo SandBox, que traz uma série de funções para captar essas alterações conforme poderá ser visto na próxima sessão. C) Preparação para Pré-execução; A pré-execução é a fase onde se deve ter certeza que todas as ferramentas estão instaladas e iniciarão ao mesmo tempo em que o código malicioso for executado, necessitando captar toda e qualquer atividade desse código. Aquilina, Casey e Malinem (2008, p.497) afirmam que existem cinco área de monitoramento em um sistema Windows durante a realização da análise dinâmica de amostra de um código malicioso, que são: processos, sistema de arquivos, registros, atividades da rede e chamadas de API. Para monitorar esses aspectos da máquina virtual deve-se usar um monitoramento chamado de Ativo e Passivo, onde Passivo verifica a integridade do sistema antes e depois da infecção do sistema, sendo que com isso a análise entre o que ocorreu e o ocorrido são próximas, podendo ser facilmente comparada e analisada. As ferramentas que fazem essa verificação rodam em segundo plano durante a execução do malware e coletam informações que foram modificadas no sistema (AQUILINA, CASEY e MALINEM, 2008, p. 496). O monitoramento Ativo envolve justamente executar ferramentas ao mesmo tempo em que o Malware estiver sendo executado e capturar os processos, arquivos de sistemas, registros, Atividade da rede, e chamada de API. A figura abaixo ilustra como funcionam os T.I.S. 2014; 3 (1): 102-113 monitoramentos Ativo e Passivo e o que cada um é responsável por monitorar (AQUILINA, CASEY e MALINEM, 2008, p. 496): Figura 4: Monitoramento Ativo e Passivo na Análise Dinâmica D) Executar o Código Malicioso Após a preparação do ambiente virtual, necessário para isolação do código malicioso, e configuração do ambiente de análise dinâmica utilizando-se o Cuckoo SandBox é executado o código malicioso dentro da máquina virtual. Neste ponto deve-se estar pronto para executar o código malicioso. Antes, entretanto, deve-se executar um Snapshot, “fotografia” estado atual, da máquina virtual para que possa se gerenciar, voltar, caso seja necessário. Com ambiente preparado para receber o monitoramento, então se pode executar a amostra do código malicioso. Como mencionado anteriormente, o processo de análise dinâmica exige muitas pausas e inicializações para poder analisar os dados, a revisão dos dados coletados nas ferramentas de monitoramento, a reversão de máquina virtual, e reexecução da amostra, para assegurar que nenhum comportamento é perdido durante o decorrer da análise (AQUILINA, CASEY e MALINEM, 2008, p. 510). Uma forma de implementação é a Execução Simples, sendo que o método mais comum é simplesmente executar o código malicioso e começar a analisar. Porém, com dificuldades, porque nesse procedimento muitas vezes não há interação com o código malicioso ou com o sistema infectado. Porém a análise dinâmica básica é certamente uma opção viável. E) Sistema e Rede de Monitoramento; Depois de executado o código malicioso no ambiente preparado esse, por sua vez, deve estar sincronizado com o sistema de monitoramento para poder capturar todas as atividades por ele realizadas, uma vez que iniciado seu processo arquivos, atividades de redes, sistema de arquivos, processos e ações de API poderão ser alterados (AQUILINA, CASEY e MALINEM, 2008, p. 511) F) Emulação do ambiente e ajuste; Para que possa se fazer uma análise confiável algumas alterações no ambiente devem ser executadas como a resolução de nomes, caso um malware executado faça uma 107 Utilizando a Análise Dinâmica para entender Códigos Maliciosos: Um Estudo de Caso chamada a um domínio e esse por sua vez não responda a execução e a análise pode ser comprometida, mas toda ação deve ser monitorada para que o laboratório não seja uma arma e sim uma fonte a mais para conseguir dados necessários para o entendimento (AQUILINA, CASEY e MALINEM, 2008, p. 512). G) Espionagem de Processos Enquanto os processos são executados via chamadas da API essas devem ser monitoradas e todos os processos sendo ocultos ou não devem ser registrados para que as análises possam ter êxito (AQUILINA, CASEY e MALINEM, 2008, p. 516). H) Derrotar Ofuscação Algumas vezes alguns malwares vêm com outros códigos embutidos com o objetivo de contornar e, não serem detectados e até de não permitir fazer uma análise. Alguns malwares tem código criptografado, outros precisam ser descompactados para serem analisados. Tudo com o objetivo de frustrar a análise. A fim de explorar completamente um programa suspeito é importante fazer a análise do código utilizando uma técnica chamada disassembler, sendo necessário extrair o programa original de sua blindagem (AQUILINA, CASEY e MALINEM, 2008, p. 527). I) Descompilação Diante do resultado que as outras fases acima proporcionam, desde uma simples conexão a um determinado site até uma chamada remota para downloads de diversos arquivos, nesse passo é necessário fazer um disassembler que proporcionará a localização das entradas nos arquivos que fazem esse tipo de chamada. Segundo Aquilina, Casey e Malinem (2008, p. 543): O disassembler permite ao investigador digital explorar a linguagem assembly de um arquivo binário alvo ou as instruções que serão executadas pelo processador do sistema host4. J) Análise avançada PE; VI. ESTUDO DE CASO A estratégia deste estudo de caso é apresentar uma análise de malware reconstruindo um cenário para o seu diagnóstico através de sua análise dinâmica. Para tanto, foi utilizado um ambiente Ubuntu 64 bits instalado como máquina HOST, VirtualBox como sistema de virtualização para simular os ambientes infectados juntamente com o Cuckoo SandBox, um automatizador para análise dinâmica, integrado com TCPDump, SSDeep e VirusTotal. O objetivo é mostrar como um conjunto de ferramentas pode auxiliar nesse processo de análise dinâmica. Primeiramente, para entender o funcionamento do Cuckoo SandBox, apresenta-se o fluxograma onde os processos e seu funcionamento ajudam a entender os passos que o software segue para fazer a análise e saber em qual estágio ele segue determinado fluxo ou ação onde pode ser visto na figura 6. A estrutura de relatórios do Cuckoo SandBox é formada por logs, captura de tela, captura de tráfico de rede com extensão PCAP e o relatório em HTML O relatório salva o resultado da análise em vários arquivos no seguinte formato: análise/análise de número/diretório dos relatórios e cada um é mostrado abaixo (BOMAN): • report.html – Rastreamento da execução, que pode conter screenshots de desktop como imagens sequenciais no formato dentro de um arquivo HTML. • report.json - Rastreamento da execução e pode conter screenshots de desktop como imagens sequenciais no formato dentro de um arquivo JSON. • report.maec.xml - Rastreamento da execução; pode conter screenshots de desktop como imagens sequenciais no formato MCAE XML. • report.metadata.xml - hashes criptográficos de diversas amostras (Código Maliciosos). • report.pickle - Rastreamento da execução, que pode conter screenshots de desktop como imagens sequenciais no formato Python Pickle objetos. • report.txt - Rastreamento da execução no formato TXT. Para começar a análise do resultado provido por Cuckoo SandBox deve-se primeiro escolher qual malware vai ser analisado. Nesse estudo de caso utilizou-se um Trojan Horse com o seguinte nome: “Nota Fiscal 00356280011.zip” que chegou através de e-mail, como pode ser observado abaixo e o famoso malware chamado “Conficker”: Ainda de acordo com os autores acima citados (2008, p. 546) a Seção de Recursos (.Rsrc) do arquivo PE contém informações relativas aos nomes e tipos de recursos incorporados no arquivo. Os tipos incluem ícone, cursor, bitmap, menu, caixa de diálogo Enhanced Metafile, fonte, HTML, tabela de aceleração, tabela de entrada de mensagem, tabela de entrada texto, e informações sobre a versão, entre outros. ________________________________________ 4Versão original: “A disassembler allows the digital investigator to explore the assembly language of a target binary file, or the instructions that will be executed by the processor of the host system”. Figura 5: Descrição do e-mail que contém o Trojan Horse 108 T.I.S. 2014; 3 (1): 102-113 James Lima da Silva Schmidt, Eugeni Dodonov, Hélio Guardia assinatura confiável. Outro ponto importante é a forma como ele se apresenta ao usuário para que o usuário possa ser fisgado, tendo uma máscara de ser um comprovante de um serviço contratado. Ao baixar e executar o arquivo o computador estará infectado. O segundo malware “Conficker” foi capturado na rede local onde realiza métodos de infecção por compartilhamento de pastas e/ou falta de atualização no sistema operacional e/ou senhas fracas. O passo seguinte da análise é verificar se realmente a ferramenta escolhida pode ajudar na análise dinâmica do malware. O malware primeiramente foi analisado em uma ferramenta chamada VirusTotal que pode ser integrada ao Cuckoo SandBox ou executada diretamente pelo site. O primeiro malware foi inserido no site para análise e o relatório apresentado demonstra que vários antivírus não detectam esse Trojan, como pode ser visto abaixo. De 43 antivírus testados apenas 28 conseguiram detectar o malware: Figura 7: Análise do “Nota Fiscal 00356280011.zip” pelo programa VirusTotal. O “Conficker” quando analisado pelo VirusTotal de 44 antivírus testados apenas 4 não conseguiram detectar o malware, diferente do Trojan anterior que somente 28 antivírus detectaram o malware. Figura 6: Fluxograma do Cuckoo SandBox (BO-MAN) O malware “Nota Fiscal 00356280011.zip” chegou através do e-mail tendo passado pelo antispam e contém uma T.I.S. 2014; 3 (1): 102-113 Figura 8: Análise do “Conficker” pelo programa VirusTotal. 109 Utilizando a Análise Dinâmica para entender Códigos Maliciosos: Um Estudo de Caso Agora passa-se para as análises dos malwares dentro do cuckoo sandbox. Quando realizados os testes no cuckoo foram gerados os relatórios com os seguintes itens analisados: A) Detalhes dos arquivos analisados. Nessa sessão são incluídas as assinaturas dos arquivos, seu tipo, nome, extensão, tamanho, os hashes em MD5, SHA1, SHA 256, SHA512, o hash SSDEEP, quando possível também a assinatura PeiD. Com somente tais dados já se consegue verificar e buscar informações sobre o Trojan “Nota Fiscal 00356280011.zip” em bancos de dados conhecidos. Os resultados da busca são apresentados a seguir: Figura 9: Detalhes do arquivo analisado. A mesma busca e verificação foi realizado sobre o malware “Conficker”: Figura 10: Detalhes do arquivo analisado. B) Screenshot da execução da máquina Quando o arquivo está em análise vários screenshots são retirados para visualizar a ação do malware. Caso aconteça um erro ou uma interrupção ou uma ação que requeira interação com usuário é possível mapear através da visualização uma possível ação ocorrida. Quanto ao malware “Nota Fiscal 00356280011.zip” 8ocorreu um erro - “Erro: O arquivo está em formato desconhecido ou danificado”. Com essa mensagem não fica claro o que o malware está fazendo, conforme pode-se ver abaixo: Figura 11: Erro ocorrido quando da execução do Malware “Nota Fiscal 00356280011.zip”. 110 T.I.S. 2014; 3 (1): 102-113 James Lima da Silva Schmidt, Eugeni Dodonov, Hélio Guardia Semelhantemente, o código malicioso “Conficker” apresentou um erro de tela de erro de biblioteca, como pode ser visto na figura abaixo: E) Atividade de Redes Os pacotes capturados pelo software quanto ao código malicioso “Nota Fiscal 00356280011.zip” mostram uma tentativa de conexão no gateway (192.168.50.1) da máquina e no servidor host (192.168.50.100) da máquina virtual. Além disso, foi feita uma requisição de DNS request para “dl.dropbox.com”, como se vê a seguir: Figura 12: Erro ocorrido quando da execução do Malware “Conficker”. Figura 15: IP´s e endereços requisitados pelo Mal-ware “Nota Fiscal 00356280011.zip”. C) Análise do Malware disassembler Nesse terceiro passo o cuckoo conseguiu capturar as bibliotecas que os walwares utilizam, alocação de memória e inclusive maiores informações sobre seus dados, onde cada informação nesse contexto é importante para descobrir qual a sua real ação. D) Sistema de Arquivos O “Conficker” tentou conexões no gateway (192.168.1.254) da máquina e no servidor host (192.168.1.106) da máquina virtual. Além disso, foi feita uma requisição de DNS request para “www.maxmind.com”, além de tentar efetuar uma requisição de arquivo para uma possível atualização, como se vê a seguir: Ele monitora toda e qualquer mudança no sistema de arquivos do computador onde cada arquivo removido ou modificado é registrado. No caso do malware “Nota Fiscal 00356280011.zip” nenhum arquivo foi alterado como pode ser visto: Figura 13: Demonstração de que nenhum arquivo foi removido pelo Trojan Horse “Nota Fiscal 00356280011.zip”. Já o malware “Conficker” apresentou a remoção e/ou criação de cinco arquivos: Figura 16: IP´s e endereços requisitados pelo “Conficker”. Figura 14: Demonstração dos arquivos foi removi-dos e/ou criados pelo “Conficker”. T.I.S. 2014; 3 (1): 102-113 F) Análise de comportamento Nesse passo, o malware “Nota Fiscal 00356280011.zip” está sendo analisado e toda sua ação monitorada e descrita no 111 Utilizando a Análise Dinâmica para entender Códigos Maliciosos: Um Estudo de Caso relatório que mostra que acessou/criou/alterou/modificou 10 arquivos no HD. Incluindo o Autoexec.bat. A figura abaixo mostra os arquivos que foram manipulados pelo malware de alguma forma: Figura 17: Arquivos manipulados pelo Malware “Nota Fiscal 00356280011.zip” Porém a lista não para por aí, foram alterados mais de 50 chaves registros. Essas alterações ajudam a entender qual o objetivo deste malware. Como por exemplo, o malware alterou as opções de segurança do Internet Explorer, adicionando o domínio dropbox.com nas configurações do IE. Não diferente do “Nota Fiscal 00356280011.zip” o malware “Conficker” também alterou e manipulou diversos arquivos e alterou e criou mais de 100 registros no computador infectado. G) Análise dos processos e resultados Todos os processos que foram executados tiveram seu registro e com isso foi possível ver quais processos ficaram em execução e quais chamadas API foram registradas com mais de 500 atividades monitoradas pelos dois Códigos Maliciosos. Nessa etapa é possível identificar pelos arquivos e registros alterados/criados/removidos que se trata de um Trojan capaz de alterar as configurações de segurança do Internet Explorer, mudar as configurações do autoexec.bat, alterar o serviço TCP/IP do Windows, inserir o site dropbox.com nas configurações de segurança do Internet Explorer, alterar o serviço RPC e uma infinidades de outras ações. Já o “Conficker’’ alterou/criou/deletou diversos arquivos e posteriormente tentou realizar uma atualização realizando uma conexão com o site www.maxmind.com solicitando um arquivo com o nome de “GeoIP.dat.gz” e o processo principal do vírus é chamado de “rundll32.exe” o que confundi o usuário ao detectá-lo. Estes resultados podem ser utilizados para comparação de ambientes antes e depois da infecção pelos malwares, utilizando-se deles para criação de antivírus que possam corrigir as falhas deixadas pelos códigos maliciosos. Outro ponto importante é a verificação das requisições que eles fizeram para que num possível infecção possa-se diminuir sua proliferação bloqueando os endereços de internet por eles consultados. VII. CONCLUSÃO Este artigo enfatizou um estudo acerca da utilização da técnica da análise dinâmica de malwares como forma de analisar códigos maliciosos visando uma metodologia na ótica forense e ferramentas para automatizar a técnica proposta. A utilização do Cuckoo Sandbox foi testada para demonstrar que se podem automatizar etapas que às vezes poderiam levar horas até que informações sobre as ações de um malware fossem integradas. Cuckoo, VirusTotal e todas as outras ferramentas de apoio foram de suma importância para a realização da análise, mesmo cada uma trabalhando de forma totalmente independente. Uma visão interessante é a possibilidade de poder reconstruir o cenário e entender como o código malicioso age. Lembrando que a reconstrução foi apenas uma opção apresentada, sendo que outros ambientes podem requerer total preservação dos dados ou até mesmo uma análise mais detalhada do hard disk. Analisando o objetivo desse trabalho, que é verificar como a análise dinâmica numa ótica forense pode ajudar a coletar informações úteis para o entendimento de um código malicioso, depois dos testes realizados, conclui-se que a análise de dinâmica utilizando o Cuckoo SandBox auxilia, e muito, na coleta de dados. Porém, somente com ela não é possível identificar os objetivos e a natureza de um malware. Os resutados colhidos mostram uma série de arquivos alterados e criados, registros do windows modificados com mais de trezentos acessos e alterações, alguns screenshot capturados. Porém, os resultados apresentados não ajudaram na identificação da natureza e objetivo dos malwares e também foi executada uma análise de detecção sobre quais os antivírus capturariam ou detectariam os malwares. Desta forma, a análise dinâmica avançada e a utilização de outras ferramentas e métodos podem ser feitas para descobrir e entender qual realmente é o objetivo do código malicioso. Entretanto, se mesmo assim não forem encontradas tais respostas outras técnicas devem ser utilizadas, como Análise Estática ou Análise forense do Disco Rígido. REFERÊNCIAS B IBLIOGRÁFICAS AQUILINA, James M.; CASEY, Eoghan; MALIN, Cameron H. Malware Forensics: Investigating and Analyzing Malicious Code. Burlington: Syngress, 2008. AQUILINA, James M.; CASEY, Eoghan; MALIN, Cameron H. Malware Forensis Field Guide for Windows Systems: Digital Forensics Field Guides. Waltham: Elsevier, 2012. AYCOCK, John. Computer Viruses and Malware. Canada: Springer, 2006. BOMAN, Michael. MART - Malware Analyst Research Toolkit: Cuckoo Sandbox. Michael Boman blog. [S.l.], 25 de junho de 2012. Disponível em: http://blog.michaelboman.org/2012/06/mart-malware112 T.I.S. 2014; 3 (1): 102-113 James Lima da Silva Schmidt, Eugeni Dodonov, Hélio Guardia analyst-research-toolkit_25.html. Acesso em: 26 de outubro de 2012. CERT.br, Cartilha de Segurança para a Internet – Códigos Maliciosos (Malware). Disponível em: http://cartilha.cert.br/malware/. Acesso em: 23 de outubro de 2012. CERT.br, Cartilha de Segurança para a Internet – Parte VIII: Códigos Maliciosos. Versão 3.1. Outubro de 2006. Disponível em: http://cartilha.cert.br/. Acesso em: 23 de outubro de 2012. CUCKOO SANDBOX BOOK. Documentação Oficial do Produto. Disponível em: http://cuckoosandbox.org/doc/current/html/. Acesso em: 24 de outubro de 2012. PROCESS HACKER. Overview – Process Hacker. Disponível em: http://processhacker.sourceforge.net/. Acesso em: 22 de outubro de 2012. SIKORSKI, Michael; HONIG, Andrew. Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software. São Francisco: No Starch Press, 2012. SSDEEP. Fuzzy Hashing and ssdeep. Disponível em: T.I.S. 2014; 3 (1): 102-113 http://ssdeep.sourceforge.net/. Acesso em: 25 de outubro de 2012. SYMANTEC. Relatório sobre Ameaças à Segurança na Internet Principais Conclusões: Região das Américas. Symactec, 2012. Disponível em: http://www.symantec.com/content/pt/br/enterprise/threatre port/LAM-ISTR17-pt.pdf. Acesso em: 22 de outubro de 2012. SYMANTEC. Worm Stuxnet. Disponível em: http://www.symantec.com/pt/br/theme.jsp?themeid=stuxn et. Acesso em: 22 de outubro de 2012. TCPDUMP. Documentação Oficial do Produto. Disponível em: http://www.tcpdump.org/. Acesso em: 24 de outubro de 2012. TECMUNDO. O que é Spyware?. Disponível em: http://www.tecmundo.com.br/spyware/29-o-que-espyware-.htm. Acesso em: 23 de outubro de 2012. VIRUSTOTAL. VirusTotal – Free Online Virus, Malware and URL Scanner. Disponível em: https://www.virustotal.com/. Acesso em: 24 de outubro de 2012. 113
Documentos relacionados
Crie uma sandbox melhor
A evolução conjunta do malware e da análise de detecção Os criminosos cibernéticos e os estrategistas de segurança de TI estão presos em uma corrida armamentista crescente. Conforme o malware usad...
Leia maisAnálise de Malware: Investigação de Códigos Ma
crescente desses códigos maliciosos [Finjan Research Center 2009] representa uma preocupação, não somente para as empresas, mas também para entidades governamentais, que devem se preocupar com amea...
Leia maisTécnicas para Análise Dinâmica de Malware - Peotta-Wiki
malware samples and how to build a simple system to analyze malware using open-source and free tools. Finally, we describe in details a case study about the analysis of a malware sample that starts...
Leia mais