• Nenhum resultado encontrado

Análise de Artefatos Maliciosos

N/A
N/A
Protected

Academic year: 2021

Share "Análise de Artefatos Maliciosos"

Copied!
9
0
0

Texto

(1)

Análise de Artefatos Maliciosos

Angelo Carlos M. Carvalho¹², Luiz Otávio Duarte¹, Marcelo Carvalho Sacchetin¹, Antonio Montes¹

¹Divisão de Segurança de Sistemas de Informação – Centro de Pesquisas Renato Archer (CenPRA)

CEP 13069-901 – Campinas – SP – Brasil

²Instituto de Computação – Universidade Estadual de Campinas (Unicamp) Caixa Postal 6176 – Campinas – SP – Brasil

{angelo.carvalho, loduarte, marcelo.sacchetin, antonio.montes}@cenpra.gov.br

Abstract. The malware (worm, virus, trojan, spyware) analysis process

involves the use of specific techniques and tools that allow the identification of the malware objective and behaviors. Frequently, tools like virtual machines, disassemblers, decompilers and debuggers are used to help this process. Nowadays, malwares has been using anti-forensics techniques in order to identify the presence or avoid the use of analysis aid tools. The goal of this work is to present techniques to collect and analyze malware, as to present some anti-forensics techniques and some ways to mitigate them.

Resumo. O processo de análise de um artefato malicioso (worm, vírus, trojan,

spyware) envolve técnicas e ferramentas que permitem que o funcionamento e os objetivos do artefato possam ser identificados. Frequentemente, ferramentas como máquinas virtuais, disassemblers, descompiladores e depuradores são utilizadas para auxiliar este processo. Atualmente, alguns artefatos maliciosos utilizam técnicas anti-forense na tentativa de identificar a presença ou prevenir a utilização das ferramentas de auxílio às análises. O objetivo deste trabalho é demonstrar como é realizada a coleta e análise de artefatos e apresentar as técnicas empregadas por eles na tentativa de dificultar o processo de análise, e formas de contorná-las.

1. Introdução

Artefatos maliciosos, também conhecidos como malwares (malicious software), causam

diversos tipos de danos a empresas e pessoas como roubo de informações sigilosas, controle da máquina infectada para realizar operações sem a permissão que deveriam ter (como enviar e-mails ou acessar endereços) e perda de arquivos e de desempenho.

Com o constante desenvolvimento de novos artefatos maliciosos aliado ao grande número de artefatos já existentes tornou-se necessário analisá-los. Esta análise visa obter informações importantes, tais como determinar os danos que o artefato pode causar, seus objetivos e as tecnologias por eles empregadas.

Com base nas informações obtidas é possível classificar os artefatos maliciosos de acordo com a sua funcionalidade e o mecanismo de propagação. Assim podemos

(2)

desenvolver técnicas para detectar, evitar o funcionamento e eliminar, se possível, o artefato do sistema impedindo que outros artefatos que pretendam realizar operações indesejadas utilizando técnicas semelhantes atuem com sucesso.

Para dificultar a análise os malwares utilizam métodos para tentar “esconder” seus objetivos e impedir que as ferramentas de análise possam ser utilizadas, entretanto existem técnicas para que a análise possa ser concluída.

O objetivo deste trabalho de iniciação científica, do estudante Angelo Carlos M. Carvalho auxiliado por Luiz Otávio Duarte e Marcelo Carvalho Sacchetin e orientado por Antonio Montes, é criar um processo automatizado de coleta e análise de artefatos maliciosos, geração de relatórios e classificação dos artefatos analisados e realizar pesquisas sobre as técnicas anti-forense utilizadas pelos artefatos para melhorar a análise. Para auxiliar este projeto foi utilizado o sistema de monitoramento de tráfego de rede e uma honeynet do CenPRA.

2. Coleta dos Artefatos Maliciosos

A coleta de artefatos maliciosos neste projeto é realizada através de endereços presentes em blocklists [BlockList], que são listas com endereços que podem conter artefatos maliciosos, e endereços contidos em spams ou podem ser adquiridos através da

honeynet. Para auxiliar este processo foram desenvolvidos scripts para realizar a coleta

de forma automatizada, assim que um novo endereço é adicionado em uma das

blocklists ou é encontrado no corpo de algum spam nosso script visita este endereço em

busca de artefatos. É importante observar que nem todos os arquivos encontrados são maliciosos, já que alguns dos endereços obtidos podem conter artefatos nocivos. Os

scripts utilizados para a coleta podem ser configurados com opções como tamanho

máximo e mínimo dos artefatos que serão coletados, quantos endereços devem ser visitados a partir do original, quais os tipos de artefatos que serão coletados dentre outras.

Assim que encontrados os artefatos são copiados para a máquina de coleta, são armazenados de forma organizada por data e sofrem uma pré-análise onde é calculado o

hash do artefato e é verificado se ele já não foi coletado anteriormente, também é

determinado o tipo de artefato coletado como por exemplo “MS-DOS executable PE for MS Windows” ou “COM executable for DOS”. Em seguida as informações relativas ao artefato coletado são salvas em um banco de dados e serão utilizadas durante a análise.

Como resultado do desenvolvimento dos scripts novos artefatos são coletados diariamente, desde o início da execução dos scripts em Janeiro de 2007 até o fim de Junho deste mesmo ano foram capturados cerca de 2.700 artefatos possibilitando um estudo das novas tecnologias e formas de atuação dos artefatos capturados.

2.1. Coleta Através de Blocklists

Para evitar que endereços contendo arquivos hostis ou com finalidade maliciosa [Antiphishing] sejam acessados alguns navegadores utilizam listas que contêm endereços deste tipo para notificar o usuário quando uma tentativa de conexão para um endereço da lista é feita.

Estas listas são chamadas blocklists e nelas são adicionados novos endereços maliciosos frequentemente. Um dos scripts de coleta verifica os endereços adicionados

(3)

em diversas blocklists e visita estes endereços a procura de artefatos fazendo a cópia dos arquivos encontrados para serem estudados.

2.2. Coleta Através de Spams

Atualmente diversos spams são enviados diariamente e neles é frequente a presença de um ou mais endereços para que quem o recebeu acesse. Estes endereços podem conter artefatos maliciosos que seriam instalados na máquina do usuário que acessou o endereço contido no spam.

Foi criada uma conta de e-mail que recebe diversos spams que circulam pela Internet e é realizada uma busca por URLs contidas nestes spams que são utilizadas como uma base para o processo de coleta. Essas URLs são mais tarde requisitadas na tentativa de obter programas hostis.

2.3. Coleta Através da Honeynet

Uma honeynet [Spitzner 2004], [Honeynet] é um conjunto de honeypots, que são computadores conectados em uma rede para serem atacados enquanto toda a atividade é monitorada. Quando um invasor realiza um ataque na honeynet todas as suas ações, como a exploração de uma vulnerabilidade e tentativas de realizar atividades ilícitas, são estudadas.

Para a coleta de artefatos temos em funcionamento uma honeynet com diversos sistemas operacionais em plataformas Windows e Linux atuando como honeypots. Após um ataque todos os artefatos utilizados pelo atacante são analisados.

Na Figura 1 observa-se a arquitetura da honeynet e do ambiente isolado para análise dos artefatos capturados. Todo tráfego proveniente da Internet passa obrigatoriamente por um firewall antes de atingir os honeypots e vice-versa. No firewall também são implementados mecanismos de contenção para evitar que a honeynet se torne uma ferramenta para ataque contra outras redes.

Figura 1. Arquitetura da honeynet 3. Análise dos Artefatos Maliciosos

A análise de artefatos pode ser dividida em duas etapas principais, a estática e a dinâmica. Na análise estática o artefato não é executado sendo que é verificado

(4)

diretamente o código binário. São utilizadas ferramentas como disassemblers, que encontram o código assembly de um artefato, e os descompiladores, que encontram códigos em linguagem de alto nível. Para melhor entender estes códigos são utilizados os depuradores, que permitem a execução passo a passo do artefato, definição de pontos de parada além da exibição de valores de variáveis. Com o auxílio dos depuradores é possível identificar as ações do artefato detalhadamente.

Na análise dinâmica o artefato é executado e os efeitos gerados a partir de sua execução são analisados. Para auxiliar este processo são configuradas máquinas virtuais. Estas permitem que sistemas virtuais sejam criados possibilitando que o artefato seja executado com segurança. Além disso, podem ser gerados snapshots de instantes de interesse que podem ser posteriormente retomados.

Outras ferramentas [Sysinternals], [Foundstone] também são utilizadas para obter informações do estado da máquina em um dado instante. Dentre estas ferramentas destacam-se as que coletam informações tais como: os processos em execução, as entradas no registro, os arquivos afetados e as conexões estabelecidas.

3.1. Máquinas Virtuais

Uma máquina virtual [Vmware] é um computador fictício criado por um programa de simulação. Neste computador é instalado um sistema operacional que utilizamos para executar artefatos maliciosos e estudar suas ações.

Uma das vantagens de uma máquina virtual é que pode-se salvar estados, como por exemplo antes e depois do artefato ser executado sendo que todo o dano causado pelo artefato na máquina virtual no fim de cada análise pode ser reparado automaticamente. Para isso basta retornar ao estado anterior da máquina virtual em que o artefato não havia ainda entrado em execução, assim podem ser realizadas analises sucessivas.

Muitas vezes os artefatos maliciosos tentam alguma conexão com a Internet, seja para enviar algum e-mail, seja para conectar em algum site ou para baixar alguma outra ferramenta. Entretanto, por questões de segurança, na máquina virtual em que o programa está sendo analisado não há acesso à Internet. Então é necessário configurar uma outra máquina, que pode ser virtual ou não, para responder às requisições do artefato, simulando assim um ambiente real.

Todo o tráfego de rede gerado pelo artefato na máquina virtual é analisado. Nos casos em que os artefatos tentam enviar alguma mensagem podemos analisar o que foi enviado. Nos casos em que o artefato tenta coletar alguma nova ferramenta para executar no sistema o endereço desta ferramenta é salvo e o script de coleta procura por esta e outras ferramentas naquele endereço para serem analisadas, o mesmo é feito com os sites no qual o artefato tentou estabelecer conexão.

3.2. Sandbox

Devido ao grande número de artefatos coletados foi desenvolvida uma Sandbox, que é um ambiente utilizado para automatizar o processo de análise de artefatos, gerar o relatório da análise com os resultados obtidos e classificar os artefatos de acordo com suas atividades.

A Sandbox utiliza uma máquina virtual para executar os artefatos coletados. Primeiramente é executado um script que utiliza as ferramentas que avaliam o estado do

(5)

sistema, assim são obtidas as informações do sistema sem a atividade do artefato, então o artefato é executado e o script agora coleta informações do sistema com as alterações feitas pelo artefato.

Em seguida é executado um segundo script que verifica as diferenças entre os resultados obtidos pelo primeiro script antes e depois da execução do malware, assim identificamos as alterações no sistema que o artefato causou, como arquivos que foram criados, alterados ou excluídos, portas que foram abertas, processos que entraram em execução, programas que foram criados para serem executados automaticamente quando o sistema inicializar, tráfego na rede [Tcpdump] e outras.

Quando é identificado que foi colocado um programa para ser inicializado junto com o sistema é necessário reiniciar a maquina virtual para que aquele programa realize suas funções e executar novamente os scripts para identificar as novas alterações.

3.3. Sistema de Monitoramento de Tráfego de Rede

Muitas vezes é possível identificar um malware através da análise do tráfego de rede uma vez que estes, em geral, apresentam padrões de comportamento definidos, tais como acesso a endereços pré-determinados ou abertura de portas características para acessos externos.

Em um dos projetos em desenvolvimento pretende-se criar uma infra-estrutura onde seja possível registrar o comportamento de artefatos em uma base de dados, a partir da qual será possível determinar se acessos indevidos observados são decorrentes de máquinas comprometidas por artefatos maliciosos já analisados.

A utilização do sistema de monitoramento de tráfego em conjunto com a análise de artefatos pode também ser útil na identificação de máquinas comprometidas por novos artefatos já que a ação destes produz, geralmente, anomalias no tráfego de rede.

4. Classificação

Após terem sidos analisados os artefatos são classificados de acordo com o dano que causam e modo como se propagam. Alguns tipos de artefatos são Adwares que vêm ocultos a um outro artefato sem que se tenha o conhecimento, Worms que se propagam via rede (e-mails, falhas de segurança), Vírus que necessitam de um vetor de propagação (arquivo enviado por e-mail, sites com artefatos maliciosos, arquivo enviado via chat, mídia removível que contêm artefatos ocultos), Spyware que envia informações do computador infectado para outra pessoa sem o conhecimento do dono das informações, Trojans que ao serem executados abrem um canal de comunicação externo e Backdoors que permitem que outros possam acessar o computador e realizar operações sem o conhecimento e autorização que deveriam ter.

Como nomes diferentes podem representar um mesmo programa, os malwares coletados são indexados através de uma assinatura de seu código. Com o banco de dados também podemos obter informações como qual tipo de artefato malicioso que foi mais encontrado atualmente, qual packer é mais utilizado pelos artefatos e verificar a similaridade entre eles.

5. Pesquisa por Técnicas Anti-forense

Para evitar que a análise seja feita de forma completa alguns artefatos detectam a presença de depuradores ou se estão sendo executados em uma máquina virtual, e então

(6)

encerram seu funcionamento ou realizam outras operações específicas. Outra técnica utilizada é a do empacotamento de executável e anti-dumping, que servem para evitar que o código do artefato seja encontrado e a imagem do programa em execução não possa ser copiada da memória.

Estas técnicas dificultam sobremaneira a análise do artefato, porém existem métodos que permitem contornar estes problemas como, por exemplo, evitar que a máquina virtual e o depurador sejam detectados e utilizar desempacotadores de códigos executáveis.

5.1. Detecção de Máquina Virtual

Como foi visto anteriormente a máquina virtual é utilizada pois permite um maior nível de segurança durante o processo de análise entretanto esta não é totalmente eficiente, já que existem casos em que o artefato utiliza técnicas anti-forense para ocultar seu funcionamento.

Entre as técnicas anti-forense uma que se destaca é a detecção de máquina virtual na qual o artefato procura identificar se a máquina em que está sendo executado é uma máquina virtual e caso isso ocorra, o programa pode encerrar sua execução ou tomar alguma atitude inesperada.

Na maior parte das vezes técnicas como procurar por cadeias de caracteres conhecidas nos nomes dos dispositivos do sistema são empregadas. Algumas técnicas mais avançadas também estão sendo utilizadas como a do “redpill”, cujo código segue abaixo:

Figura 2. Código de detecção de máquina virtual

Este trecho de código gera uma determinada assinatura no código assembly obtido do artefato através de um disassembler [IDA Pro]. Assim uma forma de evitar a detecção da máquina virtual caso seja utilizada esta técnica é localizar a assinatura e editá-la fazendo com que o resultado do teste condicional m[5] > 0xd0 seja sempre falso. Porém alguns artefatos maliciosos, na tentativa de dificultar a compreensão do código assembly, utilizam a técnica de empacotamento.

5.2. Empacotamento

Atualmente, também é utilizado o empacotamento de executáveis unindo-se o código de descompressão e o próprio programa em um único arquivo executável. Essa tarefa é realizada por ferramentas que são denominadas packers. Além de diminuir o tamanho dos arquivos o empacotamento é utilizado para proteger programas da engenharia reversa e ocultar artefatos para não serem identificados. Alguns compiladores também utilizam tecnologias que empacotam o executável gerado.

(7)

identificação por um anti-vírus quando elas se instalam em uma máquina alvo. Outra finalidade do empacotamento é a ocultação do modo de funcionamento do artefato, caso a ferramenta maliciosa seja capturada e submetida a uma análise detalhada.

Para desempacotar o artefato é utilizado algum unpacker, porém o código fonte pode ter sido empacotado com uma tecnologia avançada, fazendo com que os atuais

unpackers não consigam desempacotá-lo. Então deve-se executar o artefato e copiar sua

imagem da memória, esta técnica é conhecida como dumping. 5.3. Anti-dumping

Outra tecnologia que vem sendo utilizada são os empacotadores com suporte ao chamado anti-dumping. O dumping é utilizado para obter o código de um artefato empacotado copiando a sua imagem da memória enquanto o artefato está em execução.

O objetivo do anti-dumping é dificultar a cópia do artefato em execução da memória, carregando apenas trechos de códigos na memória ao invés de carregar o código completo por exemplo, evitando assim a obtenção do código assembly desempacotado. Esta tecnologia dificulta o uso dos descompiladores e disassemblers, muitas vezes o código encontrado é muito diferente do código fonte original e muito difícil de entender. Então, para facilitar a análise deste código, são utilizados os depuradores.

5.4. Depuradores

Com os depuradores (debuggers) é possível executar o artefato e verificar todas as instruções que ele está realizando e obter informações como: valores de variáveis em um determinado instante, laços de instruções que o programa entrou e quantas vezes ele os executou, o resultado dos testes condicionais e outras informações. Assim é possível analisar o código detalhadamente e entender sua funcionalidade.

Com o objetivo de evitar que o código do artefato seja compreendido são utilizadas técnicas para detectar se o código está em estado de depuração e, caso esteja, o artefato pode encerrar sua execução ou realizar operações diferentes. Uma destas técnicas consiste em verificar o valor da função da API do Windows “IsDebuggerPresent()”. O seguinte trecho de código exemplifica sua utilização.

Figura 3. Código de detecção de uso do depurador O código assembly da função “IsDebuggerPresent()” segue abaixo:

Figura 4. Código da função IsDebuggerPresent

(8)

registrador que está no endereço [00000018h], e mover para o registrador “eax” o valor byte que dá suporte ao depurador. Para fazer com que esta função não funcione basta executar o seguinte código assembly, que fará com que a função retorne verdadeiro mesmo que o programa esteja sendo depurado, pois o valor do byte é mascarado.

Figura 5. Código que esconde o uso de depurador

Um outro método de verificar o uso do depurador seria realizar constantes verificações da imagem do artefato. Se uma interrupção ou uma parada for realizada a imagem muda e então o depurador é detectado.

No Windows um processo depurado se comunica com o depurador através de um recurso interno chamado LPC (Local Procedure Call) que cria uma porta de comunicação específica para a depuração e um processo só pode ser depurado por apenas um depurador. Sabendo disto um malware poderia criar um processo protetor, que se conecta ao processo depurado e evita que outros processos depuradores se conectem a ele. Este mecanismo pode ser contornado ocupando a porta de depuração antes do processo protetor, depurando-o também, já que ele é um processo filho do processo depurado, ou ainda alterando o código e recompilando-o sem as instruções que tenham sido identificadas como técnicas anti-forense, o que pode ser difícil dependendo do código assembly obtido.

6. Conclusão

Com os novos artefatos que são coletados e analisados diariamente observamos as diferentes formas como eles agem, os danos que causam, os meios que utilizam para se propagar e o tráfego de rede gerado por eles quando entram em execução. É necessário um constante estudo sobre as diferentes técnicas utilizadas por malwares para que se possa reduzir a quantidade de danos causados por eles de modo a detectar sua presença e evitar seu funcionamento.

Foram desenvolvidas técnicas para realizar análise e coleta de artefatos maliciosos e também foram pesquisadas e estudadas as técnicas atuais de anti-forense para obter melhores resultados nas análises. Foi feito um estudo sobre o código

assembly obtido dos artefatos, além da aplicação das técnicas aprendidas no ambiente

de máquinas virtuais.

Foram desenvolvidos scripts para coleta automatizada de artefatos utilizando endereços encontrados em blocklists, spams e endereços obtidos através da análise do tráfego de rede gerado por outros artefatos. Também foi desenvolvido um ambiente para análise automatizada dos artefatos coletados, bem como a geração de relatórios, classificação de artefatos e geração de dados estatísticos.

Referências

Spitzner, L. (2004) The Honeynet Project, “Know Your Enemy”, Addison Wesley Honeynet, http://www.honeynet.org/ - The Honeynet Project

(9)

Sysinternals, http://www.microsoft.com/technet/sysinternals/default.mspx – Ferramentas para analisar o estado do sistema

Foundstone, http://www.foundstone.com/ - Ferramentas para analisar o estado do sistema

IDA Pro, http://www.datarescue.com/ - IDA Pro Disassembler & Debugger, programa utilizado para obter o código assembly de artefatos

Tcpdump, http://www.tcpdump.org/ - Ferramenta utilizada para coletar o tráfego de rede gerado pela sandbox

Vmware, http://www.vmware.com/ - Máquina virtual utilizada no projeto Antiphishing, http://www.antiphishing.org/index.html – Site sobre phishing BlockList, http://www.malware.com.br/ - The Malware BlockList

Referências

Documentos relacionados

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Oncag, Tuncer & Tosun (2005) Coca-Cola ® Sprite ® Saliva artificial Compósito não é referido no estudo 3 meses 3 vezes por dia durante 5 minutos Avaliar o efeito de

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Essa revista é organizada pela Sociedade Brasileira de Planejamento Energético (SBPE) e por isso foram selecionados trabalhos que tinham como objetivo tratar a

Portanto, conclui-se que o princípio do centro da gravidade deve ser interpretado com cautela nas relações de trabalho marítimo, considerando a regra basilar de