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

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 mais

Análise de Malware: Investigação de Códigos Ma

Aná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 mais

Técnicas para Análise Dinâmica de Malware - Peotta-Wiki

Té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