Aquando - Montra de Projetos de Informática

Transcrição

Aquando - Montra de Projetos de Informática
Detecção de Botnets
Pedro Ferreira
nº-21307
Trabalho realizado sob a orientação de
Nuno Gonçalves Rodrigues
Engenharia Informática
2012/2013
i
ii
Detecção de Botnets
Relatório da UC de Projeto
Licenciatura em Engenharia Informática
Escola Superior de Tecnologia e Gestão
Pedro Ferreira
2012/2013
iii
iv
A Escola Superior de Tecnologia e Gestão não se responsabiliza pelas opiniões expressas
neste relatório.
v
vi
Certifico que li este relatório e que na minha opinião, é adequado no seu
conteúdo e forma como demonstrador do trabalho desenvolvido no
âmbito da UC de Projeto.
___________________________________________
Nuno Gonçalves Rodrigues
Orientador
Certifico que li este relatório e que na minha opinião, é adequado no seu
conteúdo e forma como demonstrador do trabalho desenvolvido no
âmbito da UC de Projeto.
___________________________________________
Arguente
Aceite para avaliação da UC de Projeto
vii
viii
Dedicatória
Dedico este trabalho à minha família, principalmente aos meus pais, que sempre me apoiaram
e que com esforço, me permitiram condições para conseguir terminar o curso. A eles um
muito obrigado pela paciência e pelo esforço que tiveram, para que pudesse cumprir o sonho
de ser Engenheiro Informático.
Á minha namorada, que sempre me apoiou e que teve paciência durante estes anos de
academia.
Aos meus amigos, que de uma forma ou de outra me ajudaram a realizar este trabalho e a
concluir esta etapa da minha vida académica.
A todos estes dedico este trabalho.
ix
x
Agradecimentos
Agradeço ao meu orientador, professor Nuno Rodrigues, pelo tempo dispensado para me
ajudar neste trabalho, bem como a ajuda que me deu na orientação para a sua realização.
Agradeço também, a todos os professores que tive ao longo das diferentes cadeiras, pelos
conhecimentos transmitidos, para que pudesse realizar este trabalho.
xi
xii
Resumo
A ampliação dos mecanismos de defesa no combate a ataques informáticos, ocasionou a
evolução dos programas maliciosos (malware), que se tornaram cada vez mais estruturados
para aruptura destas novas barreiras de segurança. Atualmente, as redes de computadores têm
vindo a ser afectadas por vários tipos de ataques informáticos, que deixam as suas máquinas
infectadas, agindo de forma automatizada e sem consciência por parte dos utilizadores,
formando aquilo que se designa por Botnet.
O protocolo DNS constitui uma importante parte da infra-estrutura da Internet, fornecendo
um serviço que se tornou essencial ao longo dos anos. A sua disponibilidade é crucial para o
bom andamento de quase todos os serviços da Internet.
Após uma contextualização sobre os diferentes tipos de ataques que um computador está
sujeito, e os diferentes tipos de botnets existentes, este trabalho propõe um sistema de análise
do tráfego DNS para detectar hosts infectados por malware.
Palavras-chave: Ameaças, ataques, botnet, DNS, blacklist, domain-flux, malware
xiii
xiv
Abstract
The expansion of the defense mechanisms to combat cyber attacks, led to the evolution of
malicious software (malware), which have become increasingly structured to break these
new safety barriers. Today, computer networks have been affected by various types of cyber
attacks that leave their infected machines, automated and acting without awareness by users,
forming what is known as Botnet.The DNS protocol is an important part of the infrastructure
of the Internet, providing a service that has become essential over the years. Their
availability is crucial to the smooth running of almost all Internet services. After an on the
different types of attacks that a computer is subject, and the different types of existing
botnets, this paper proposes a system for analysis of DNS traffic to detect hosts infected by
malware.
Keywords: Threats, attacks, botnet, DNS, blacklist, domain-flux, malware
xv
xvi
Conteúdo
Capitulo 1 .................................................................................................................................. 1
1
Introdução .......................................................................................................................... 1
1.1
Enquadramento ............................................................................................................ 1
1.2
Objectivos .................................................................................................................... 2
1.3
Organização do Trabalho............................................................................................. 2
Capitulo 2 .................................................................................................................................. 5
2
Segurança de Rede e Botnets ............................................................................................ 5
2.1
Vulnerabilidades, Ameaças e Ataques ........................................................................ 5
2.1.1
Ameaças e ataques ............................................................................................... 6
2.1.2
Motivações do atacante ........................................................................................ 6
2.1.3
Definição de Malware .......................................................................................... 7
2.2
Estado de arte na detecção de Botnets ....................................................................... 13
2.2.1
Arquitectura de uma Botnet ............................................................................... 14
2.2.2
Botmaster ........................................................................................................... 14
2.2.3
Servidor C&C ..................................................................................................... 14
2.2.4
Bot ou zombie .................................................................................................... 19
2.3
Ciclo de vida das Botnets .......................................................................................... 19
2.4
O que as Botnets podem causar? ............................................................................... 21
2.4.1
Ataques de DDoS ............................................................................................... 22
2.4.2
SPAM ................................................................................................................. 23
2.4.3
Sniffing e Keylogging ........................................................................................ 23
2.4.4
Pirataria .............................................................................................................. 24
2.5
Detecção de Botnets .................................................................................................. 24
2.5.1
Detecção baseada em assinaturas ....................................................................... 25
2.5.2
Anomalias........................................................................................................... 25
2.5.3
Detecção baseada em mineração ........................................................................ 26
2.5.4
Detecção baseado em logs de DNS ................................................................... 27
Capitulo 3 ................................................................................................................................ 29
3
Botnets e análise do trafego DNS ................................................................................... 29
3.1
Sistema de Domínio de Nomes ................................................................................. 29
Figura 13 – Hierarquia do sistema DNS ............................................................................ 30
3.1.1
Estrutura hierárquica do DNS ............................................................................ 30
3.1.2
Mensagens DNS ................................................................................................. 32
3.2
Monitorização do tráfego DNS.................................................................................. 35
3.3
Técnicas de Fast-flux e Domain-flux ........................................................................ 38
3.4
Trabalhos relacionados .............................................................................................. 44
xvii
Capitulo 4 ................................................................................................................................ 47
4 Implementação de um sistema de detecção de Botnets com base na análise de logs
DNS .......................................................................................................................................... 47
4.1
Arquitectura do sistema ............................................................................................. 47
4.1.1
Linguagem de programação e IDE’s usadas ...................................................... 48
4.1.2
Descrição genérica da aplicação ........................................................................ 49
4.2
Modelação ................................................................................................................. 50
4.2.1
Base de Dados .................................................................................................... 50
4.2.2
Diagrama de classes ........................................................................................... 52
4.3
Implementação e funcionalidades ............................................................................. 53
4.3.1
Funcionalidades .................................................................................................. 53
4.4
Testes e Resultados .................................................................................................... 56
Capitulo 5 ................................................................................................................................ 59
5
Conclusões e Trabalhos Futuros .................................................................................... 59
5.1
Trabalhos futuros ....................................................................................................... 60
Bibliografia ............................................................................................................................. 61
xviii
Lista de Figuras
Figura 1– Exemplo de botnet ................................................................................................ 13
Figura 2– Arquitectura de uma botnet ................................................................................ 14
Figura 3– Arquitectura de uma botnet de modelo centralizado ........................................ 15
Figura 4– Exemplo de um ataque ordenado pelo botmaster ............................................. 18
Figura 5– Exemplo de uma botnet P2P ............................................................................... 19
Figura 6– Ciclo de vida de uma botnet ................................................................................. 20
Figura 7– Botnet pronta com 3 bots ..................................................................................... 22
Figura 8– Atacante manda ordem de ataque para bots ..................................................... 22
Figura 9– Ataque DDoS ao alvo ............................................................................................ 23
Figura 10– Propagação de uma botnet ................................................................................. 27
Figura 11– Hieraquia do sistema DNS ................................................................................. 30
Figura 12– Formato de Mensagem DNS .............................................................................. 32
Figura 13– Estrutura de resource record ............................................................................ 33
Figura 14– Exemplo de uma mensagem DNS ...................................................................... 35
Figura 15– Diferenças entre DNS legitimo e de Botnet ...................................................... 37
Figura 16– ciclo de vida de uma solicitação web numa rede single-flux, comparada com
a de um servidor normal ........................................................................................................ 40
Figura 17– Exemplo de resultados de um comando "dig" ................................................. 41
Figura 18– Difenrença entre single-flux e double-flux ....................................................... 42
Figura 19– Exemplo de domain-flux .................................................................................... 43
Figura 20– Arquitectura da aplicação a implementar ........................................................ 47
Figura 21– Base de daos do sistema ...................................................................................... 51
Figura 22– Diagrama de classesdo sistema ......................................................................... 52
Figura 23– Pagina inicial na primeira vez que utiliza programa ...................................... 53
Figura 24– Janela para análise e mostragem de resultados ............................................... 54
Figura 25– Janela para analisar um dominio ...................................................................... 55
Figura 26– Janela para poder ir ao menu blacklist ............................................................ 56
Figura 27– Exemplo de ficheiro de logs ............................................................................... 57
Figura 28– Output do ficheiro analisado ............................................................................. 58
xix
13
Capitulo 1
1 Introdução
1.1 Enquadramento
Com o crescimento exponencial que as redes de computadores obtiveram nestas últimas duas
décadas, nomeadamente com o boom da Internet, apareceram indivíduos que abusaram destas
redes para fins menos lícitos. Estes hackers utilizam Botnets para lançar ataques de larga
escala na Internet, assim como, para obter informações confidenciais dos hosts infectados da
rede, normalmente designados por bots. Assim sendo, podemos dizer que uma Botnet é uma
rede de computadores comprometidos, controlados por uma entidade designada por
botmaster, que é responsável pela distribuição de código comprometido, de modo a angariar
mais bots para a sua Botnet, sendo igualmente responsável pelas instruções enviadas aos bots
de forma a estes poderem tomar as acções pretendidas. Contrastando com o comportamento
típico do início de actividade dos hackers, em que normalmente gostavam apenas de mostrar
as suas habilidades, hoje em dia a organização de uma Botnet é efectuada de modo a que se
possam obter lucros monetários. Assim, um atacante que use a rede infectada pode distribuir
spam, roubar contas de jogos, roubar números de cartões de crédito, praticar uma extorsão
através da ameaça de ataques de DoS (denialof service), lançar ataques de phishing, scanning
e espionagem. Esta capacidade de lançar ataques é atribuída ao número de hosts
comprometidos que sejam controlados pelo botmaster, que podem ser na ordem das centenas
ou milhares e que trabalhando em conjunto proporcionam ataques em maior escala.
Segundo[39],“códigos BotNet executam quase todas as formas de malware, desde spywares
para Downloaders, rootkits, spam e muito mais. Para ter um bom desempenho, os
1
“antídotos” devem proteger múltiplas camadas de segurança. A boa notícia é que essas
camadas são surpreendentemente eficazes contra botnets.”
1.2 Objectivos
O objectivo principal deste projecto é o de desenvolver uma aplicação informática que
permita detectar automaticamente, a presença de computadores infectados por malware,
através da análise do tráfego DNS.
Com base nesse pressuposto, foi decidido implementar um sistema que analise um ficheiro de
logs do servidor DNS, para detectar através do uso de uma blacklist e de querys anómalas, a
presença de botnets.
Assim, no âmbito deste trabalho pretende-se:

Conhecer e analisar as vulnerabilidades, ameaças e ataques a que uma rede pode estar
sujeita;

Identificar e analisar possíveis abordagens e metodologias para detecção de botnets;

Perceber a importância do protocolo DNS no uso da internet, bem como é composto e
utilizado na rede;

Analisar os logs de servidores de DNS e caracterizar os padrões de tráfego que possam
identificar a presença de malware na rede;

Desenvolver uma aplicação em C# que permita detectar automaticamente pedidos de
DNS com origem em aplicações maldosas.
1.3 Organização do Trabalho
Este trabalho é composto por 5 (cinco) capítulos, estruturados da seguinte forma:

O 1º Capítulo apresenta o cenário que motivou a realização deste trabalho e identifica
os objectivos propostos.

No 2º Capítulo é apresentada uma visão geral sobre a Segurança Informática,
baseando-se numa visão geral dos riscos, no perfil do atacante e nas suas motivações,
2
nas ameaças e tipos de ataques. É apresentado também a definição de botnet, assim
como as estruturações de como é composta, os tipos que existem e os modos de
detecção existentes, bem como uma breve descrição de cada.

O 3º Capítulo centra-se no levantamento do estado da arte na detecção de botnets
através da análise dos logs de um servidor DNS. É explicado o protocolo DNS tanto
nas suas definições bem como no principio de funcionamento. São explicadas algumas
técnicas de detecção de botnets através da análise do tráfego DNS e é ainda descrito
um pequeno tópico sobre trabalhos já realizados sobre esta matéria.

No 4º Capitulo é descrita a implementação do sistema para detecção debotnets. É
explicada a arquitectura do sistema bem como a sua modelação e funcionalidades. São
expostas as problemáticas da implementação bem como as decisões que levaram a que
a aplicação assim fosse feita. Finalmente são expostos alguns testes e resultados
obtidos, para verificação da funcionalidade do sistema.

E por último, no 5º Capítulo são apresentadas as considerações finais, possíveis ideias
de continuidade deste trabalho bem como as contribuições do mesmo.
3
4
Capitulo 2
2 Segurança de Rede e Botnets
Um “ataque informático” pode ser considerado como a exploração de uma falha num
sistema informático, ao nível do softwaredo mesmo, para atingir determinados
objectivos que são quase sempre de acção danosa e prejudicial ao sistema atacado.
Na Internet são diários os tipos de ataques a que somos sujeitos e para isso basta um
simples click. Os ataques são normalmente feitos a partir de máquinas infectadas, ou
seja, funcionam como contágio como se de uma doença se tratasse. As máquinas são
normalmente infectadas por malware, que provoca os ataques, esses claramente sem
consentimento e conhecimento do utilizador. Um utilizador da internet tem que estar
sempre alerta contra possíveis ameaças, muitas vezes mesmo ao receber ficheiros de
conhecidos nossos[1].
2.1 Vulnerabilidades, Ameaças e Ataques
Uma vulnerabilidade é definida como uma condição que, quando explorada por um
atacante, pode resultar numa violação de segurança. Exemplos de vulnerabilidades são
falhas no projeto, na implementação ou na configuração de programas, serviços ou
equipamentos de rede.
Um ataque de exploração de vulnerabilidades ocorre quando um atacante, aproveitandose de uma vulnerabilidade, tenta executar ações maldosas, como invadir um sistema,
aceder a informações confidenciais, disparar ataques contra outros computadores ou
tornar um serviço inacessível, etc.
5
2.1.1 Ameaças e ataques
Uma vulnerabilidade pode transformar-se numa ameaça, que pode ser explorada por
agentes agressores para se transformarem num ataque.
Um ataque consiste numa possível violação de um sistema computacional e pode ser
acidental ou intencional. Um ataque acidental é aquele que não foi planeado. Pode ser,
por exemplo, uma falha no hardware ou no software. Já um ataque intencional, como o
nome diz, está associado à intencionalidade premeditada. Pode ser desde uma
monitorização não autorizada do sistema, até a ataques sofisticados como aqueles
realizados pelos hackers.
Algumas das principais ameaças e ataques aos sistemas nas redes de computadores
envolvem destruição de informações ou recursos, modificação ou deturpação da
informação, roubo, remoção ou perda de informação, revelação de informações
confidenciais ou não, chegando até a paralisação dos serviços de rede.
Um ataque ocorre quando uma ameaça intencional é realizada. Os ataques ocorrem por
motivos diversos. Variam desde a pura curiosidade, passando pelo interesse em adquirir
maior conhecimento sobre sistemas, até ao extremo, envolvendo ganhos financeiros,
extorsão, etc. Quando isso acontece, a notícia da invasão é proporcional à fama de quem
a sofreu e normalmente representa um desastre em termos de repercussão pública.
2.1.2 Motivações do atacante
Ataques costumam ocorrer na Internet com diversos objectivos, visando diferentes
alvos e usando variadas técnicas. Qualquer serviço, computador ou rede que seja
acessível via Internet pode ser alvo de um ataque, assim como qualquer computador
com acesso à Internet pode participar num ataque.
Os motivos que levam os atacantes a desferir ataques na Internet são bastante diversos,
variando da simples diversão até a realização de ações criminosas. Alguns exemplos
são:
6

Demonstração de poder: mostrar a uma empresa que ela pode ser
invadida ou ter os serviços suspensos e, assim, tentar vender serviços ou
chantageá-la para que o ataque não ocorra novamente.

Prestígio: vangloriar-se, perante outros atacantes, por ter conseguido
invadir
computadores,
tornar
serviços
inacessíveis
ou
desfigurar sites considerados visados ou difíceis de serem atacados;
disputar com outros atacantes ou grupos de atacantes para revelar quem
consegue realizar o maior número de ataques ou ser o primeiro a
conseguir atingir um determinado alvo.

Motivações
financeiras:
utilizar
informações
confidenciais
de
utilizadores para aplicar golpes nas suas contas.

Motivações
ideológicas: tornar
inacessível
ou
invadir sites que
divulguem conteúdo contrário à opinião do atacante; divulgar mensagens
de apoio ou contrárias a uma determinada ideologia.

Motivações
comerciais: tornar
inacessível
ou
invadir sites e
computadores de empresas concorrentes, para tentar impedir o acesso
dos clientes ou comprometer a reputação destas empresas.
2.1.3 Definição de Malware
Malware ou software malicioso, é qualquer tipo de software que se instala numa
máquina sem a permissão do proprietário e realiza uma série de acções que podem ir
apenas de irritar o utilizador (como o pop-up das publicidades), até causar graves e
sérios danos ao seu hospedeiro (roubar identidades, senhas, impossibilitar segurança,
eliminardados, entre outros). É difícil caracterizar todos estes programas ilegais, pois a
sua definição varía de autor para autor. Alguns autores dividem em três grupos:
malware, crimeware e grayware. Outros, usam apenas dois grupos principais: o
grayware e malware, que inclui o crimeware. Tomando a última abordagem em
consideração, o primeiro grupo pode ser classificado como todas as aplicações que se
comportam de uma forma irritante ou indesejável, reduzindo o desempenho do
computador, pop-up, alguma publicidade extra ou, simplesmente, perturbar o utilizador.
No entanto, estes problemas são menos graves ou incómodos que malware, que é
7
orientado para danificar o computador e roubar dados pessoais ou confidenciais, entre
outras acções maliciosas. Infelizmente, a maior parte do ficheiro é desenvolvido para
realizar actividades ilegais.
Malwares recentes já não sãodesenvolvidos para ser intrusivos ou danificar o
computador, em vez disso, são projectados para ser de perfil baixo, por isso todas as
suas actividades podem continuar sob o radar. Existem várias categorias ou tipos de
malware, desde a forma mais conhecida - vírus - ouwabbits, o tipo mais raro de
malware. Como existem vários tipos e nomes de malware, é complicado para definir
uma barreira entre uma e outra definição. Na sequência do texto, são descritas algumas
das categorias e tipos de malware, dando uma breve visão geral.
2.1.3.1 Vírus
Vírus são programas ou segmentos de código que são instalados/copiados para um
computador sem que o utilizador tenha consentido ou conhecimento e que podem alterar
o normal funcionamento do computador assim como as restantes aplicações e tarefas do
mesmo[1].
Os vírus podem-se espalhar através do uso da Internet, por exemplo, fazendo o
download e instalação de programas maliciosos que possam intencionalmente “instalar”
um vírus assim como até mesmo clicando apenas em determinados sites, abertura de
ficheiros ou programas infectados, por e-mail ou partilha de discos[2].
2.1.3.2 Trojans
O Cavalo de Tróia ou Trojan Horse é um tipo de software malicioso que pode entrar
num computador disfarçado de um programa comum e legítimo. Tem como finalidade
possibilitar a abertura de uma porta de entrada, de forma que utilizadores malintencionados possam invadir o PC.
O invasor pode realizar tarefas simples como ter controlo sobre o rato ou teclado até a
utilização do IP da máquina infectada como ponte para outros ataques. Com o
crescimento da Internet, e com a facilidade com que é possível criar um trojan, faz com
que seja um perigo diariamente, porque não depende de falhas do sistema. É muito
difícil detectar, o que faz com que por vezes uma simples distracção do utilizador ao
8
instalar um programa duvidoso ou mesmo abrir um ficheiro duvidoso resulte na
infecção do computador[3,4].
2.1.3.3 Adware
Adwares são programas indesejáveis que exibem publicidade e anúncios sem a
autorização do utilizador tornando o computador mais lento assim como a ligação à
rede.
Normalmente são associados a spyware porque são semelhantes na sua infecção e
remoção.
Alguns adwares assumem características de spyware, uma vez que podem transmitir
informações sobre o utilizador para terceiros sem a autorização, e por vezes enviam
spam para as listas de contacto do e-mail do utilizador.
Com um grande crescimento e desenvolvimento dos adwares, este começaram a ter
capacidade de monitorizar a actividade e comportamentos dos utilizadores na Internet,
podendo mostrar a publicidade mais “correcta” para cada utilizador, podendo fornecer
esses comportamentos e hábitos a certos site[5,6].
2.1.3.4 Spyware
Spywares são programas espiões, isto é, são programas automáticos, em que a sua
finalidade é obter informações sobre uma ou mais actividades realizadas num
computador e transmite essa informação a uma entidade externa na Internet, sem o
conhecimento ou consentimento do utilizador. No entanto, isto não significa que todos
os spywares sejam programas “maus”. É verdade que existem muitos spywares criados
para actividades ilícitas, criados para obter informações pessoais e, com elas, praticar
actividades ilegais. No entanto, ainda assim, existem, por exemplo, empresas de
publicidade que utilizam spywares para, de forma legal, obter informações sobre os seus
clientes, de forma a oferecer ao cliente um específico anúncio.
Os spywares são diferentes dos cavalos de Tróia por não terem como objectivo que o
sistema do utilizador seja dominado ou manipulado por uma entidade externa[7,8,9].
9
2.1.3.5 Phishing
O Phishing é um tipo de ataque relativamente fácil de executar mas algo difícil de
interpretar logo à primeira vista, pois este método consiste no envio por parte do
atacante de um engodo. O engodo mais recorrente e se calhar até cada um de nós já foi
posto à prova neste ataque, consiste no envio de um e-mail muitas vezes com um link
(endereço) para o site do nosso banco ou outra entidade que possivelmente somos
filiados com o intuito de nos ludibriar, levando-nos a preencher com os nossos dados
confidenciais e assim posteriormente terem acesso aos nossos dados[1].
2.1.3.6 Rootkit
Rootkit é uma aplicação (ou conjunto de aplicações) que, utilizando funções do sistema
operativo, oculta a sua presença ou a presença de outros malwares, sendo que é por
vezes quase indetectável por programas anti-malware comuns.
Os rootkits podem ser bons ou maus. Os rootkits correctos podem ser parte integrante
ou ser instalados como uma aplicação legitima. Por essa razão é necessário ter atenção
nos possíveis resultados de um anti-rootkit.
Uma máquina pode ser infectada com um rootkit de várias formas, sendo o mais comum
através de algum cavalo de tróia ou até mesmo de um anexo suspeito de e-mail. Na
navegação na Internet, por vezes pode resultar na infecção de um rootkit, instalando
plug-ins maliciosos, mesmo que por vezes estes pareçam legítimos.
Por vezes basta apenas um click para haver uma infecção do computador, sendo que
também podem automaticamente nos serem roubadas informações pessoais e dar acesso
a invasores maliciosos [10,11,12].
2.1.3.7 Dialers
É um género de software que é instalado no computador e que utiliza a ligação com a
linha telefónica para ligar para um certo número de taxação especial, causando assim
enormes aumentos nos pagamentos da conta telefónica. Hoje em dia, os utilizadores que
tenham acesso à Internet por banda larga estão protegidos contra este malware, no
10
entanto os utilizadores com Internetdial-up por modem podem ainda ser atacados.
Alguns dialers ligam para Fornecedores de Acesso à Internet (ISPs) e foram
desenhados para fornecer assistência genuína [13].
2.1.3.8 Backdoors
Backdoor é um programa de controlo remoto que permite a um invasor ter acesso e
controlar um computador através da Internet.
Esta invasão surge através de uma falha de segurança que pode existir num programa ou
mesmo no sistema operativo e permite que a mesma seja possível, de forma que o
invasor possa ter acesso total da máquina.
Através dessa falha de segurança o computador poderá ser acedido remotamente, dando
ao invasor controlo total sobre a máquina, desde ver/modificar/apagar ficheiros, a
instalação de programas, desligar a máquina, conectar a outros computadores entre
outros[14,15].
2.1.3.9 Spam
O termo SPAM é utilizado para designar todo o correio electrónico não-solicitado pelo
utilizador e enviado em massa. Entende-se por não-solicitado quando uma mensagem de
correio electrónico enviada para alguém sem autorização/consentimento prévio,
enquanto enviada em massa corresponde ao envio para um grande número de
destinatários à mesma mensagem.
As newsletters de subscrição e comunicações a clientes são dois exemplos de
mensagens enviadas em massa que não são SPAM, isto se considerarmos que os clientes
deram autorização para que lhes seja enviado[17,18].
2.1.3.10
Keylogger
Keylogger é um programa (spyware) que tem como finalidade guardar informação, de
registar tudo o que é digitado, tendo como principal motivação guardar passwords,
números de cartões de créditos, logins e afins.
11
Por vezes este tipo de programas pode ser usado por empresas para controlar os seus
funcionários, no entanto, quase sempre é usado para fins maliciosos.
Durante a execução de um keylogger, sempre que o utilizador prime uma tecla, o
keylogger edita e guarda o LOG de dados, sendo que aos olhos mais atentos pode ser
perceptível um ligeiro atraso entre o tempo que se digita e o tempo em que aparece no
ecrã a tecla digitada, sendo que, mesmo assim, poderão ser apenas fracções de décimas
de segundos, dependendo claramente da capacidade de processamento das máquinas.
Com processadores de alta velocidade será quase impossível detectar esse atraso entre
os dispositivos de Entrada e Saída[19,20].
2.1.3.11
Ransonware
O Ransomware é uma ameaça informática que nos últimos tempos tem vindo a ser uma
prática muito comum. O Ransomware, também conhecidos como “sequestradores
digitais”, são trojans que após invadirem as máquinas impedem o acesso a várias
funcionalidades e até documentos.
Estes ataques podem ser de tal forma eficientes que por vezes podem codificar/encriptar
os dados, recorrendo a algoritmos bastante eficientes, e para voltar a aceder ou voltar a
ter acesso a esses dados, o invasor pede ao utilizador um montante monetário para que
possa ter de volta todos os seus dados, ficheiros, etc.
Em Portugal, o exemplo de Ransomware com mais impacto social foi uma burla
informática que usou o nome da PSP e tinha como objectivo principal extorquir
dinheiro aos utilizadores. As vítimas recebiam um email supostamente da PSP, onde era
referido que este tinha acedido a “sites de conteúdo pornográfico, pedofilia, violência
sobre menores, pelo que é condenado a pagar 100 euros”. Desta forma o utilizador é
intimidado a proceder ao pagamento de 100€ para um NIB, evitando assim o bloqueio
do computador, sendo que, o email não era da PSP, mas sim de um email “parecido”
com o que poderia ser da PSP[21,22].
12
2.2 Estado de arte na detecção de Botnets
Hoje em dia as Botnets são consideradas as maiores e mais perigosas ameaças da Web.
Provocam danos que podem ir desde o roubo de informações a infecções de malware
com o objetivo de praticar fraude e outros crimes. Mas, o que é realmente uma Botnet?
Uma botneté composta por um conjunto de máquinas comprometidas (bots) que podem
ser controladas remotamente por uma entidade denominada botmaster. No fundo, uma
rede de bots é um poderoso exército adormecido e às mãos de alguém que pode (e está!)
mal-intencionado, podendo causar dano a qualquer altura, não só a computadores mas à
própria rede. As acções desempenhadas pelas botnets, em geral, são prejudiciais à
estrutura da Internet, tais como ataque de negação de serviço distribuído (DDoS), envio
de spam, distribuição de malwaree roubo de informações. Estima-se que actualmente o
número de máquinas infectadas (bots) na Internet seja superior a dezenas de milhões.
A principal diferença em relação a outros tipos de malware é que, as Botnets possuem
um tráfego característico entre a máquina infectada e um servidor de controlo (C&C).
O grande valor de botnets é a capacidade de fornecer anonimato através da utilização de
um comando de multicamadas e controlo de arquitetura (C&C). Além disso, os bots
individuais não são fisicamente propriedade do botmaster, e podem estar localizados em
vários locais em todo o mundo. Diferenças no tempo, zonas, línguas e leis tornam difícil
investigar actividades maliciosas de botnets através das fronteiras internacionais. Estas
característicastornam asbotnets uma ferramenta atraente para os cibercriminosos, e de
facto é uma grande ameaça contra a segurança cibernética.
Figura 1 – Exemplo de uma botnet
13
2.2.1 Arquitectura de uma Botnet
A organização arquitectural da Botnet é composta por 3 (três) elementos básicos: O
Botmaster, o Servidor de Comando e Controlo, e o Cliente (Bot). Esta arquitectura
global da Botnet é apresentada na Figura 2.
Figura2 -Arquitetura da Botnet
2.2.2 Botmaster
Denomina-se de Botmaster o controlador humano da Botnet. Ele opera controlando
remotamente os Bots, através de comandos enviados ao Servidor C&C, que estabelece a
comunicação entre eles.
Geralmente a Botnet é controlada pelo seu criador, mas muitas Botnets são criadas para
comercialização e alugadas para acções criminosas [23].
2.2.3 Servidor C&C
A parte principal da Botnet é o servidor de C&C, responsável pela comunicação entre o
Botmaster e os Bots, através do encaminhamento de comandos para a execução de
acções. De acordo com a sua estrutura de comando e controlo (C&C) as Botnets podem
ser baseadas em IRC, baseadas em HTTP, ou baseadas emtráfego Peer to Peer (P2P).
Botnets P2P usam um protocolo P2P para evitar um ponto único de falha. Além disso,
14
Botnets P2P são mais difíceis de localizar e de desligar o seu servidor C&C. Botnets
mais tradicionais são baseadas no protocolo Internet Relay Chat (IRC), com comando
centralizado e mecanismo de controlo [23].
Em síntese, há duas grandes topologias de redesde Bots:

A rede centralizada com base no IRC ou no protocolo HTTP;

A rede descentralizada com base em protocolos P2P.
2.2.3.1 Topologia Centralizada
Nesta topologia, um ponto central é responsável pela troca de comandos entre o
Botmaster e os Clientes Bots. Neste modelo, o Botmaster escolhe um anfitrião,
normalmente um computador com acesso a banda larga, para ser o ponto central, ou
seja, o Servidor deC&C, que monitoriza o status dos Bots e envia as instruções dadas
pelo proprietário. Este servidor C&C executa determinados serviços de rede como IRC
ou HTTP. Esta topologia é a mais comum, devido à estrutura simples, facilidade de
gestão e alta velocidade. A principal vantagem desta topologia é a baixa latência de
mensagens utilizadas pelo Botmaster para a realização de ataques pelos Bots, uma vez
que todas as conexões acontecem através do Servidor C&C. A desvantagem deste
modelo é que o Servidor C&C é o ponto crítico. Se alguém conseguir descobrir a sua
acção, pode eliminá-lo e assim a Botnet inteira será inútil e ineficaz. A Figura 3 mostra
a arquitectura de comunicação de base para um modelo centralizado.
Figura 3 – Arquitectura de uma botnet de modelo centralizado
15
Os protocolos IRC e HTTP são dois protocolos comuns utilizados por Servidores C&C
para comunicação neste tipo de topologia [23].
2.2.3.1.1 Botnets baseadas no protocolo IRC
Tendo em conta o servidor de Controlo (C&C Server), e sabendo que este é um ponto
fulcral do sistema de uma Botnet, o mesmo pode operar sobre diferentes tipologias de
rede e usar diferentes mecanismos de comunicação, como os protocolos IRC e HTTP.
No início da expansão das Botnets o protocolo IRC foi o mais usado, devido ao facto de
ser mais simples de implementar e por uma questão de conveniência por parte dos
hackers, pois era também bastante popular. Este protocolo foi inicialmente desenhado
para conferências, no sentido de permitir uma comunicação em tempo real entre
utilizadores. Uma rede IRC podia conter um ou vários servidores que trocavam
informações entre si. De forma sucinta, numa rede deste tipo, um utilizador regista-se
com um identificador único na rede e junta-se a um canal existente de forma a debater
um determinado assunto com outros utilizadores.
Ao analisarmos uma Botnet baseada em IRC deve-se ter em conta o tópico do canal,
pois ele pode ser o meio de divulgar comandos aos bots. Uma sequência típica de
acções por parte de um zombie numa Botnet IRC é a seguinte: juntar-se ao canal,
executar a instrução do tópico do canal, manter a comunicação em aberto e escutar
outros comandos do Botmaster.
Grande parte do desenvolvimento de algoritmos de detecção de Botnets IRC baseou-se
na análise dos identificadores únicos, nicknames com que os zombies se ligam ao canal
IRC de comando e na análise de strings características da execução de comandos típicos
de Botnets[24].
2.2.3.1.2 Botnets baseadas no protocolo HTTP
Actualmente o desenvolvimento de Botnets passa em parte, pelo desenvolvimento de
bots HTTP, sendo que por volta de Abril de 2008 investigadores da empresa de
segurança Damballa descobriram que a BotnetKraken (também conhecida por Bobax)
16
infectou 50 empresas da lista Fortune 500, que apresenta as melhores 500 empresas a
nível mundial, e conseguiu atingir um número de 400.000 máquinas infectadas. Os
investigadores estimaram também que esta BotnetKraken conseguia enviar cerca de 9
milhões de mensagens de spam por dia. Os modelos actuais de detecção de Botnets
baseiam-se na análise de queries DNS que são enviadas dos bots para o servidor DNS
quando os bots se ligam a um servidor C&C, ou atacam determinado alvo. Cada vez
mais estes modelos de detecção irão apresentar mais falhas pois as Botnets estão a ser
desenvolvidas de forma a diminuir a sua interacção com os servidores DNS.
Tipicamente as Botnets HTTP usam o protocolo HTTP, que é bastante diferente do
comportamento de um bot IRC que mantém uma ligação e que não faz novas ligações
após a primeira ligação ao servidor de comando. Uma Botnet HTTP normalmente não
mantém uma ligação permanente ao servidor C&C. Em vez disso, os bots contactam
normalmente o servidor em intervalos regulares que habitualmente são passiveis de
serem configurados pelo Botmaster. Outra direcção que o estudo da detecção de Botnets
HTTP está a seguir é o método de correlação entre grupos, em que se observam as
semelhanças na actividade de rede entre dois ou mais bots para verificar se são da
mesma Botnet. No entanto, este método parte da premissa que haja pelo menos dois
hosts infectados pelo mesmo bot na rede monitorizada.
É óbvio que os criadores das Botnets baseadas no protocolo HTTP tentam esconder o
tráfego gerado pelas mesmas, no tráfego legítimo de um host comprometido. Os
investigadores do grupo de segurança TeamCymru descobriram que 46% dos servidores
de C&C usam um domínio próprio e que estes têm somente o objectivo de alojar um
servidor de comando de uma Botnet HTTP.
Para melhorar a eficácia das Botnets de topologia centralizada, muitos controladores
utilizam vários servidores para a realização dos ataques. Assim, a Botnet terá maior
abrangência e diminuição de carga de controlo dos Servidores C&C. Esta arquitectura
de múltiplos servidores é descrita na figura4 [23,24].
2.2.3.2 Topologia Descentralizada ou distribuída
Neste tipo de topologia, os bots não se comunicam com o servidor C&C central, mas
com outros Bots. Esta abordagem aumenta a confiabilidade da botnet, mas complica a
gestão e reduz a velocidade de acção, devido a inúmeras trocas de mensagens pelos
17
Botspara a realização dos ataques. Um exemplo deste tipo de topologia são as Botnets
P2P [24].
Figura 4 –Exemplo de um ataque ordenado pelo botmaster
2.2.3.2.1 Botnets P2P
As Botnets estruturadas numa rede P2P podem ser consideradas uma evolução natural
por parte dos Botmasters, pois estes notaram que o controlo de uma vasta rede de
máquinas infectadas (bots) iria atrair atenções por parte das autoridades competentes no
combate aos crimes informáticos.
Controlar uma Botnet de enorme tamanho sem uma estrutura de rede adequada não seria
uma escolha sensata pois os ISP, e mais em concreto os agentes da autoridade, têm feito
esforços cada vez maiores para derrubar as organizações criminosas que estão no
controlo das maiores Botnets. Assim sendo, as redes P2P são o melhor exemplo de uma
arquitectura distribuída, visto que no caso de um computador se desligar por ter sido
desinfectado ou porque foi banido por parte do ISP, uma Botnet com uma estrutura
centralizada iria perder de um modo mais perceptível funcionalidades. No entanto, no
caso de uma Botnet numa rede distribuída, mesmo que exista a perca de um dos
peers/bot da rede, os restantes irão reconstruir-se tentando ligar-se aos restantes peers
existentes. Uma das desvantagens no uso de uma rede distribuída é o facto de serem
mais lentas que uma rede centralizada e de não possuírem a capacidade de gerir um
18
grande número de bots. Mesmo assim, o Botmaster continua a poder ligar-se a um único
sistema comprometido para controlar os bots[24].
Figura 5 – Exemplo de uma botnet P2P
2.2.4 Bot ou zombie
É o computador ou dispositivo comprometido, controlado remotamente por um
botmaster para a execução de algumas ordens através dos comandos recebidos. Depois
que o código do malware for instalado no computador infectado, o computador tornarse um Bot ou Zombie. Os Bots normalmente propagam-se através da internet, a procura
de computadores desprotegidos e vulneráveis para infectar. Quando encontram um
computador desprotegido, infectam-no e depois enviam um relatório ao Botmaster [23].
2.3 Ciclo de vida das Botnets
Uma botnet típica pode ser criada e mantida em quatro fases: infecção inicial, injecção
secundária, conexão, actualização/manutenção. Este ciclo de vida está representado na
figura 6 [24, 25].
19
Figura 6 – Ciclo de vida de uma botnet

Infecção Inicial: Durante a fase de infecção inicial, o atacante, procura um alvo
numa sub-rede que seja vulnerável e infecta as vítimas através de métodos de
exploração diferentes, como por exemplo malware descarregado durante a
visualização de páginasweb ou automaticamente através da visualização de um
anexo de um email. Em redes sem fios, esta infecção pode ser facilitada pela
estrutura deste tipo de rede, pois o ataque pode ser lançado directamente no
dispositivo, sem necessidade de utilizar a estrutura da rede.

Injecção secundaria: Após a infecção inicial, na fase de injecção secundária, as
máquinas infectadas executam um script conhecido como shell-code. O Shellcode procura a imagem do binário da localização específica do bot actual via
FTP, HTTP ou P2P. O binário instala-se na máquina de destino. Uma vez que o
programa de bot está instalado, o computador transforma-se num "Zombie" e
executa o código malicioso. Este procedimento ocorre em grupo, visto que, os
Bots realizam as suas tarefas em conjunto. Após esta etapa, os Bots aguardam os
comandos que serão enviados pelo Botmaster ao Servidor C&C.

Conexão: Na fase de conexão, o programa cria um canal de comando e controle
com o servidor (C&C), e liga-os. Após estabelecer ligação com o servidor de
C&C, o zombie torna-se parte do exército botnet. Depois da ligação, as
20
actividades de comando e controle são iniciadas. O botmaster usa o canal C&C
para enviar comandos para o seu exército bot. Programas bot recebem e
executam comandos enviados pelo botmaster. O canal de C&C permite que o
botmaster controle remotamente as acções de um grande número de bots para
conduzir várias actividades ilícitas.

Actualização/Manutenção: A última fase é a de manter vivos e actualizados os
bots. Nesta fase, os bots são ordenados a descarregar um binário actualizado. Os
Botmasters podem precisar actualizar as suas botnets por diversas razões. Por
exemplo, podem precisar actualizar o binário bot para evitar novas técnicas de
detecção, ou podem ter a intenção de adicionar novas funcionalidades para seu
exército bot. Além disso, por vezes, os binários actualizados movem os bots para
servidores C&C diferentes. Este processo é chamado de migração e é muito útil
para botmasters manterem as suas botnets vivas. Botmasters tentam manter as
suas botnets invisíveis e portáteis usando Dynamic DNS (DDNS), que é um
serviço de resolução que facilita actualizações frequentes e mudanças de
servidores. Se as autoridades interromperem um servidor C&C num
determinado endereço IP, o botmaster pode facilmente configurar outra instância
do servidor C&C com o mesmo nome num endereço IP diferente. As mudanças
dos endereços IP nos servidores C&C propagam-se quase imediatamente para os
bots. Consequentemente os bots irão migrar para a nova localização do servidor
C&C e vão continuar vivas [25].
2.4 O que as Botnets podem causar?
O uso possível para máquinas comprometidas depende somente da imaginação e
perícias do atacante. Hackers e crackers beneficiam das botnets ganhando dinheiro,
vendendo botnets ”de qualidade”, descobrindo senhas de bancos, vendendo listas de emails, etc..
Seguem-se, os tipos de ataques mais comuns:
21
2.4.1 Ataques de DDoS
Um ataque do tipo DoS (Denialof Service - Negação de serviço) basicamente visa
indisponibilizar os serviços oferecidos por algum servidor de rede, como Web, mail ou
Domain Name Services (DNS). Indisponibilizar pode significar retirar totalmente o
servidor de operação, ou apenas deixá-lo lento, ao ponto do cliente abandonar o serviço
devido ao tempo de resposta. Um ataque DoS ou DDoS não implica que osite seja
invadido. Como os sistemas comprometidos estão sob controlo externo, existe uma
grande dificuldade do administrador do site atacado, responder ao DDoS.Na Figura 7,
temos uma botnet formada com 3 máquinas bots (indicadas com oRobot) e um
controlador (indicado com uma caveira) que está num servidorIRC. O servidor alvo é a
máquina mais a direita[26].
Figura 7: Botnet pronta com 3 bots
Figura 8: Atacante manda ordem de ataque para bots
22
Figura 9: Ataque de DDoS ao alvo.
Na Figura8, o controlador envia o comando para que as suas máquinas controladas
ataquem o servidor alvo.
Na Figura 9, todas as máquinas fazem um ataque de negação de serviço DDoS, tentando
deixar o servidor lento ou então tirá-lo do ar.
Muitos hackers usam de botnets para fazerem ataques de DDoS e cobram por isso.
Enquanto o servidor não pagar uma quantia X para o hacker, os ataques de DDoS
continuam.
2.4.2 SPAM
As Botnets são úteis para spammers. Elas podem, e são, usadas para coleccionar
endereços de e-mails e para mandar spam para vários endereços funcionando da mesma
maneira que o ataque de DDoS. Mensagens spam podem ser enviadas para a botnet
(vários bots) e então, estes bots mandam a mensagem. O spammer permanece anónimo
pois são as bots que enviam as mensagens.
2.4.3 Sniffing e Keylogging
Bots são também efectivos para usar a arte de escuta (sniffing). Observandoo tráfego de
dados pode-se conseguir muita informação. Este tipo de informação inclui hábitos do
23
utilizador, senhas, etc. O mesmo se aplica para keyloggin - capturar toda a informação
digitada pelo utilizador (e-mails, senhas, conta de banco, etc...).
2.4.4 Pirataria
Máquinas infectadas podem ser usadas como repositórios dinâmicos de material ilegal
(software pirata, pornografia, etc.).Muitas outras aplicações podem ser usadas por
botnets. Bots são somente ferramentas que sozinhas não fazem nada, mas que podem
ser facilmente adaptadas para várias tarefas que requerem um grande número de
máquinas controladas por alguém [25,26].
2.5 Detecção de Botnets
Apesar da longa presença de botnets maliciosas, poucos estudos formais examinam o
problema botnet. Até à data, muito pouco se sabe sobre o comportamento malicioso das
botnets. O Honeynet Project foi um dos pioneiro a fazer estudos do problema botnet. No
entanto, os esforços estão em andamento para, quantificar o problema das botnets,
detectar a presença debots nas redes, e as defesas contra ataques de design. A detecção
de Botnets tem sido um tema de grande pesquisa nos últimos anos. Soluções diferentes
têm sido propostas. Existem basicamente duas grandes abordagens para a detecção de
botnets.

Uma abordagem baseia-se na criação de honeynets. Muitos trabalhos discutem
como utilizar Honeynets para monitoramento e medição de botnets. No entanto,
as Honeynets são principalmente úteis para compreender a tecnologia e as
características das botnets, mas não necessariamente para detectar a infecção.

A outra abordagem para a detecção baseia-se no monitoramento e análise de
tráfego da rede. Técnicas de detecção, baseadas em monitoramento de tráfego
podem ser úteis para identificar a existência de botnets. Estas técnicas podem ser
classificadas como sendo baseadas em assinatura, anomalia, monitorização
baseada em DNS e baseada em mineração.
24
2.5.1 Detecção baseada em assinaturas
O conhecimento de assinaturas sobre o comportamento das botnets é útil para a sua
detecção. O sistema é baseado em modelos de detecção que são orientados ao simples
facto de que um bot recebe comandos de um botmaster e ao qual é respondido ao
pedido de forma característica. Com o estudo destes comportamentos cooperativos
foram aparecendo novas ferramentas de detecção, entre elas o BotHunter que modelou a
fase de infecção, recorrendo a um conjunto de comandos vagamente ordenados entre
um host interno e diversas entidades exteriores e usou estes modelos de modo a
comparar eventos suspeitos no aparecimento de infecções. OSnort é um sistema de
detecção de intrusão (IDS), que monitoriza o tráfego da rede para encontrar sinais de
invasão. Como a maioria dos sistemas IDS, o Snort é configurado com um conjunto de
regras ou assinaturas para registar o tráfego que é considerado suspeito. No entanto, as
técnicas de detecção baseadas em assinatura podem ser utilizados para detecção de
botnets conhecidos mas não é um método útil para as que são desconhecidas [25].
2.5.2 Anomalias
A detecção baseada em técnicas de anomalia baseia-se na análise de várias anomalias na
rede de tráfego, tais como alta latência de rede, grandes volumes de tráfego, ou tráfego
em portas incomuns, e o comportamento incomum do sistema, que pode indicar
presença de bots maliciosos na rede. Embora as técnicas de detecção de anomalias
resolvam o problema de detectar botnets desconhecidas, os problemas deste método
podem incluir a detecção de uma rede de IRC, que pode ser uma botnet, mas não foi
usado ainda para ataques, portanto, existe sem anomalias. Para resolver isso, Binkley e
Singh propuseram um algoritmo eficaz que combina, com base em detecção de
anomalia TCP, IRC e estatísticas de mensagens de IRC, para criar um sistema que pode
detectar claramente clientes de botnets. Este algoritmo também pode revelar servidores
C&C. No entanto, a abordagem Binkley poderia ser facilmente derrotada usando
simplesmente um código trivial para codificar os comandos de IRC. Em 2007,
Karasaridiset al apresentou um algoritmo para detecção e caracterização de botnets
usando análise passiva com base em dados de fluxo na camada de transporte. Este
25
algoritmo pode detectar comunicações criptografadas. Ela ajuda a quantificar o tamanho
de botnets, identificar e caracterizar a sua actividade sem ingressar na botnet.
Recentemente, Guet al. propuseram Botsniffer, que utiliza a detecção de anomalias na
rede para identificar os canais C&C num local da área da rede. Botsniffer baseia-se na
observação de que, os bots dentro da mesma rede, provavelmente demonstram uma
sincronização muito forte nas suas respostas e actividades. Por isso, emprega algoritmos
de análise de correlação para detectar correspondência espaço temporal do tráfego de
rede com um nível muito baixo nas taxas de falsos positivos [25].
2.5.3 Detecção baseada em mineração
Uma técnica eficaz para a detecção de botnets é identificar o tráfego do servidor C&C.
No entanto, o tráfego de C&C é difícil de detectar. Na verdade, as botnets utilizam
protocolos normais para comunicações C&C, logo o tráfego é semelhante ao tráfego
normal. Além disso, o tráfego de C&C não é de grande volume e não provoca alta
latência de rede. Portanto, as técnicas baseadas em anomalia não são úteis para
identificar o trafego C&C. Várias técnicas de mineração de dados, incluindo a
aprendizagem de máquina, classificação e agrupamento podem ser usadas de forma
eficiente para detectar o trafego C&C de uma botnet. Rishi, proposto em 2007, funciona
principalmente com base na monitorização de tráfego passivo para suspeitos anormais
apelidos de IRC, servidores de IRC, e portas incomuns do servidor. Eles usam análises
n-grama e um sistema de pontuação para detectar bots, que utilizam canais de
comunicação incomuns, que não são detectados pela intrusão clássica. No entanto, esta
abordagem é bastante limitada, na medida em que o apelido IRC pode ser alterado para
se assemelhar ao utilizador normal. Além disso, este método não possibilita detectar
comunicação encriptada. Em 2008, Strayeret al. Propôs uma solução utilizando técnicas
de aprendizagem automática, para a detecção de tráfego botnet. Eles mostraram que a
evidência de comandos e de actividades de controlo podem ser extraídos a partir de
características de fluxo usando análise de tráfego passiva. Eles adoptam um processo de
dois estágios, que, primeiro distingue fluxos de IRC, e então identifica o trafego C&C
da botnet e o tráfego de fluxos de IRC normais. Embora estas técnicas sejam eficazes
para detectar algumas botnets, são específicas para botnets baseadas em IRC. Além
disso, para uma análise precisa e detecção destas técnicas requer acesso à ao conteúdo.
26
Assim, não se pode detectar o trafego encriptado C&C. Masudet al. propôs uma robusta
e eficaz técnica de detecção baseada na detecção de tráfego botnet, por ficheiros de log
de mineração múltiplos. Eles apresentam uma correlação log múltipla para detecção do
tráfego C&C. Eles classificam um fluxo inteiro para identificar o tráfego C&C botnet.
Este método não impõe qualquer restrição ao protocolo de comunicação da botnet e,
portanto, aplicável às Botnets IRC. Além disso, este método não requer acesso para o
conteúdo de carga útil. Por isso, é eficaz mesmo se a carga C&C for criptografada ou
não estiver disponível. Botminer é a abordagem mais recente que se aplica a técnicas de
mineração de dados para a detecção de trafego C&C. Botminer é uma melhoria do
Botsniffer. Este agrupa tráfego de comunicação semelhante e tráfego malicioso similar.
Em seguida, executa correlação cruzada aglomerada, para identificar os hospedeiros que
têm padrões de comunicação semelhantes e que tem padrões de actividade similares em
ambas as partes. Botminer é uma avançada ferramenta de detecção de botnets que é
independente do protocolo e estrutura botnet. Botminer pode detectar botnets do mundo
real, incluindo Botnets com base em IRC, baseado em HTTP e baseado em P2P com
muita baixa taxa de falsos positivos [25].
Figura 10 – propagação de uma botnet
2.5.4 Detecção baseado em logsde DNS
Técnicas de detecção baseadas em DNS recorrem àsinformações de DNS geradas por
umabotnet.Técnicas de detecção baseadas em DNS são semelhantes às técnicas de
detecção de anomalias. Os bots normalmente iniciam conexão com o servidor C&C
para obter comandos. A fim de ter acesso aos servidores C&C, os bots realizam
27
consultas DNS para localizar o servidor respectivo, cujo nome é registado por um
serviço de DDNS. Assim, é possível detectar umabotnet através da monitorização e
anomalias do tráfego DNS. Dado que este tipo de técnicas é o objectivo central do
pressuposto trabalho, a sua descrição mais detalhada será efectuada no capítulo
seguinte.
28
Capitulo 3
3 Botnets e análise do tráfego DNS
3.1 Sistema de Domínio de Nomes
Ao falarmos de DNS, muitas vezes não é claro se nos estamosareferir ao Sistema de
Domínio de Nomes ou ao Serviço de Domínio de Nomes. Apesar de estarem fortemente
relacionados e serem interdependentes, as suas definições são distintas.
O DNS (domain name system) forma um sistema sofisticado que define um protocolo
aplicacional responsável por associar nomes de máquinas e endereços IP na Internet. O
DNS é um exemplo de um sistema distribuído de proporções mundiais, já que é sob o
seu sistema de resolução de nomes que a Internet inteira opera.
O Sistema de Nomes de Domínio (DNS) é baseado num sistema hierárquico denomes,
construído por uma base distribuída de máquinas, serviços, ou qualquer recurso
conectado à Internet ou numa rede privada. Associa várias informações com nomes de
domínios designados para cada uma das entidades participantes. Mais importante que
isso, o DNS fornece um serviço que realiza a tradução de nomes de domínios
(facilmente memorizáveis por utilizadores) para identificadores numéricos associados a
equipamentos de rede, com o propósito de localizar e endereçar esses equipamentos no
mundo inteiro. A vantagem de se utilizar este sistema deve-se ao facto de que os nomes
são mais fáceis de memorizar, além de que, caso o endereço de rede mude, o serviço ou
a máquina, ainda poderá ser encontrada pelo seu nome lógico, sem que o utilizador
precise decorar um endereço novo. Uma analogia bastante utilizada para explicar
comofunciona o DNS, é como se ele fosse uma "agenda telefónica"daInternet,
29
traduzindo nomes que são memorizados facilmente (nomes de domínio), por números
(endereços IP).
O Sistema de Domínio de Nomes também especifica como funcionatecnicamente este
serviço de dados. Ele define o protocolo DNS, uma descrição detalhada das estruturas
de dados utilizadas e as trocas de informação utilizadas no DNS, como parte da suíte de
protocolos utilizados na Internet[27, 28,29].
Figura 11 – Hierarquia do sistema DNS
3.1.1 Estrutura hierárquica do DNS
Como já referido, o DNS é um sistema de nomes de domínios hierárquico e distribuído,
ou seja, um domínio (como .com) pode ser particionado em diversos subdomínios e
assim por diante. Esses domínios podem ser representados por uma estrutura em árvore
onde no topo se encontram os domínios de alto nível (top-leveldomains) que
representam entidades genéricas (comerciais, governamentais, educacionais,etc.) e
países, e na base ou folhas, os subdomínios que ligam os respectivos hosts ao nome
hierárquico [29].
Cada domínio consiste em etiquetas de vários domínios separados por um “.". O
domínio identifica um caminho a partir do nó raiz da hierarquia DNS, e denotado o
mais à direita por “.”,até um nó que representa o domínio. Este nó contém um conjunto
de informações associado ao nome de domínio de forma a coleccionar registos de
recursos (RR’s). Por exemplo, um nome de domínio F.D.B.A. é um caminho do nó raiz
30
ao nó F. Este nó na árvore de DNS contém informações sobre o nome de domínio
FDBA.
A profundidade do nó de uma árvore de DNS é designado como nível de domínio, por
exemplo, “A.” é um nome de domínio de nível superior (TLD), “B.A.” é um domínio de
segundo nível, e assim por diante.
O sistema DNS é dividido em várias zonas, repartindo o espaço de nomes de domínios
entre nodos irmãos. Cada zona é responsável por um grupo de nodos, daí corresponder
os seus nomes de domínio e informações associadas para essa zona é autoritário. Essa
zona é identificada pelo nome de domínio do nó mais próximo do nó raiz. Cada zona
tem um ou mais servidores de autoridade onde RR´s dos seus nomes de domínio são
armazenados. Estes servidores oficiais completam o conhecimento dos nomes de
domínio dentro da sua zona e servem esta informação quando solicitado. Os servidores
oficiais ainda podem transmitir a sua autoridade sobre parte da zona para outros
servidores oficiais. Este modelo de DNS hierárquico faz o maior sistema distribuído da
Internet. Este modelo e mecanismo de cache, fornece tolerância a falhas de capacidade
para o sistema DNS [31].
Um cliente pode resolver um nome de domínio www.example.com usando um
resolvedor “stub”. Este resolvedor “stub” envia uma consulta DNS a solicitar um
resolvedor DNS recursivo (RDNS). Se o RDNS tiver informações sobre o nome de
domínio consultado em cache, então esta informação será devolvida para o resolvedor
“stub“. Caso contrário, o RDNS começa por consultar o servidor de raiz, e este
redirecciona o RDNS para o nome do servidor que está autorizado para o TLD “.com".
Este processo continua até que o RDNS atinja um servidor que esteja autorizado para
www.example.com. Ele irá consultar os RR’s relevantes e retornar uma resposta para o
resolvedor “stub” do cliente. Os RDNS também armazenam esses RRs para o nome de
domínio www.example.com por um certo período de tempo, de modo que possa
responder imediatamente se houver outro pedido desses RRs para este nome de
domínio. O período de tempo em que os RR são armazenados em cache RDNS,
depende do valor Time to Live (TTL) contido na informação retornada para RR’s
associados com o nome de domínio www.example.com do servidor oficial [29].
31
3.1.2 Mensagens DNS
Mensagens DNS de solicitação e resposta compartilham o mesmo formato, que é
mostrado na figura seguinte:
Figura 12 - Formato de mensagens DNS
O cabeçalho de uma mensagem DNS é formado pelos primeiros seis campos mostrados
na imagem, que ao todo possuem o tamanho fixo de 12 bytes.Dentro do cabeçalho
podemos encontrar os seguintes campos. [30]:

Identificação: o valor deste campo é de definido pela máquina que realiza a
solicitação, de forma a identificá-la.

Flags: esse campo é dividido entre outros oito campos. O campo QR indica se a
mensagem é uma solicitação ou resposta. O campo código indica se a
solicitaçãoé tradicional (valor 0), reversa (valor 1) ou de verificação do estado
interno do servidor DNS (valor 2). O campo AA indica se o servidor em questão
é um servidor autoritário, ou seja, é o responsável final pelo domínio em
questão. O campo TC indica se a mensagem foi desarticulada por ultrapassar o
limite de 512 bytes. O campoRD indica se a resolução será realizada de forma
recursiva ou iterativa. Comonem todos servidores possuem suporte a resoluções
recursivas, essa capacidade é indicada pelo campo RA que estará habilitado caso
o servidor em questão ofereça suporteàs resoluções recursivas. E, por fim, o
campo CResp apresenta o código de resposta associado à solicitação DNS,
32
sendo os códigos mais comuns de valor 0(indica ausência de erro) e de valor 3
(indica erro de nome).

Número de questões: número de perguntas realizadas. Esse número
normalmente é 1.

Número de respostas: número de respostas que serão enviadas. Este valor é, pelo
menos 1.

Número de registros de autoridades: número de servidores autoritários para o
domínio em questão

Número de outras informações: informações extras que possam ser relevantes na
mensagem
Assim, para ter acesso aum host que possui um endereço de rede através de um nome,
uma
aplicação
deve
fazer
uma
chamada
ao
procedimento
de
resolução
(resolver),passando o nome como parâmetro. O resolver, por sua vez, comunica com o
servidor DNS local,ao qual irá traduzir o nome fornecido para um endereço de rede (IP).
Essa tradução é feita através da associação do nome do domínio a recursos de registos
(resource records). Um resource record é identificado pelos campos demonstrados na
figura 15.
Figura 13 - Estrutura de resource record
Um resource recordé um tupla de cinco campos. Apesar de serem codificados em
binário para proporcionar maior eficiência, na maioria das exposições, os resource
recordsão mostrador como texto ASCII, uma linha para cada resource record. O
formato utilizado é:
33
Domain_nameTime_to_liveClassTypeValue(queengloba o RDLenght e o RData)

Domain_name: informa o domínio onde esse registo se aplica.

Time_to_live: fornece uma indicação da estabilidade do registo

O terceiro campo de cada registo de recurso é Class. No caso de informações
relacionadas à Internet, ele é sempre IN

O campo Type informa qual é o tipo do registo. Os tipos mais importantes estão
são: SOA, A, MX, NS, CNAME, PTR, HINFO e TXT.
 Um registo SOA (Inicio de Autoridade) fornece o nome da principal
fonte de informações sobre a zona do servidor de nomes.
 O tipo de registo mais importante é o registro A (Address). Ele contém
um endereço IP deumhost.
 O próximo tipo de registo mais importante é o registro MX. Ele especifica
o nome do host preparado para aceitar mensagens de correio electrónico
para o domínio especificado.
 Os registos NS especificam servidores de nomes.
 Os registosCNAME permitem a criação de nomes alternativos. A exemplo
do CNAME, PTR indica outro nome.
 Os registos HINFO permitem que as pessoas descubram a que tipo de
máquina e sistema operacional um domínio corresponde.
 Por fim, os registros TXT permitem que os domínios se identifiquem de
forma arbitrária.

Por fim, chegamos ao campo Value que engloba o RDLENGTH e RDATA. Esse
campo pode ser um número, um nome de domínio ou um string ASCII.
 O campo RDLENGTH representa o tamanho do registo de recurso, o qual
depende do valor atribuído ao campo TYPE.
 O campo RDATA representa os dados do registo, sendo que sua
semântica é de definida pelo tipo do registo. Por exemplo, para um
resource record do tipo A, o campo RDATA informará o endereço IP de
um host.
34
; Authoritative data for cs.vu.nl
cs.vu.nl. 86400 IN SOA star boss(952771,7200,7200,2419200,86400)
cs.vu.nl. 86400 IN TXT “DivisãoWiskunde de Informática.” cs.vu.nl.
86400 IN TXT “UniversidadeVrije Amsterdam.”
cs.vu.nl. 86400IN MX 1 zephyr.os.vu.nl.
cs.vu.nl. 86400IN MX 2 top.cs.vu.nl.
flits.cs.vu.nl 86400 IN HINFO Sun Unix
flits.cs.vu.nl 86400 IN A 130.37.16.112
flits.cs.vu.nl 86400 IN A 192.31.231.165
flits.cs.vu.nl 86400 IN MX 1 flits.cs.vu.nl.
flits.cs.vu.nl 86400 IN MX 2 zephyr.os.vu.nl.
www.cs.vu.nl 86400 IN CNAME star.os.nu.nl.
fto.cs.vu.nl 86400 IN CNAME zephyr.os.vu.nl.
Rowboat IN A 130.37.56.201
IN MX 1 rowboat
IN MX 2 zephyr
IN HINFO Sun Unix
figura 14 - exemplo de uma mensagem DNS.
3.2 Monitorização do tráfego DNS
Como já referido anteriormente, é possível detectar malware através da monitorização e
análise do tráfego DNS. Como os ataques vão cada vez mais sendo melhorados por
parte dos atacantes, para que sejam mais difíceis detecta-los e preveni-los, também
novas técnicas e novas maneiras de análise vão sendo aperfeiçoadas. Através da técnica
de análise do tráfego DNS, existem várias práticas aperfeiçoadas para melhor detectar
trafego malicioso.
Em 2005, Dagon propôs um mecanismo para identificar servidores C&C através da
detecção de nomes de domínio com uma anormal, ou temporalmente concentrada,
consulta das taxas DDNS. Esta técnica é semelhante à abordagem proposta pela
Kristoff, em 2004. No entanto, ambas as técnicas têm a mesma fraqueza e poderiam
facilmente ser evitadas usando falsas consultas DNS. Além disso esta técnica gera
35
muitos falsos positivos devido ao erro de classificação de domínios legítimos e
populares que usam DNS com curto tempo de vida (TTL).
Uma abordagem alternativa foi proposta por Schonewille e Van Helmond em 2006.
Esta abordagem baseou-se nas recorrentes taxas de resposta NXDOMAIN. A fim de
classificar as taxas de resposta anómalas, eles usam os algoritmos similares aos
utilizados no Dagon para classificar as taxas de consulta análogas. De acordo comas
suas respostas de observação DDNS, estas indicam os erros de nome (NXDOMAIN),
muitas vezes correspondentes a servidores C&C que foram fechados pelas autoridades.
Hosts que repetidamente emitam tais consultas podem ser infectados com um bot e eles
podem ter vulnerabilidade para permitir uma infecção semelhante. Esta abordagem é
muito eficaz para detectar vários nomes de domínio suspeitos e pode haver menos falsos
positivos, porque as respostas NXDOMAIN são mais susceptíveis de se referira DDNS
do que para outros nomes. Ramachandranet al. propôs um conjunto de técnicas para
identificar botnets usando análise passiva baseada na pesquisa de trafego DNS de nome
Lista Negra (DNSBL). Esta técnica resolve a possibilidade de realização de contrainteligência que nos ajuda a detectar actividade de reconhecimentoDNSBL, em que os
botmasters devem realizar pesquisas em DNSBL, para determinarem o estado de seus
bots da lista negra. O objectivo em desenvolver estes modelos é distinguir consultas
DNSBL emitidas pelos botmasters do tráfego DNSBL legítimo, para identificar bots
prováveis. Estas heurísticas poderiam ser usadas para detectar actividades de
reconhecimento em tempo real e permitem activar contramedidas. Como os botmasters
costumam fazer pesquisas de reconhecimento antes do uso de bots num ataque, este
DNSBL contra-inteligência pode ser usado para o início alertando para impulsionar
respostas. Além disso, a detecção desta técnica não requer comunicação directa com
qualquer componente da botnet, e não perturba a actividade da botnet. Eles
apresentaram o primeiro estudo que usa análise directa de logs DNSBL para inferir
outros tipos de comportamento na rede. No entanto, esta técnica corre o risco de falsos
positivos devido a contramedidas activas, como envenenamento de reconhecimento.
Além disso, esta abordagem não pode detectar reconhecimentos distribuídos.
Em 2007, Choi et al. propuseram um mecanismo de detecção baseado nas anomalias
das actividades do grupo no tráfego de DNS, que formam simultaneamente uma
actividade de grupo em consultas DNS enviadas por bots distribuídos. Eles definiram
características únicas de tráfego de DNS, como actividade de grupo para distinguir
36
consultas DNS de botnet de consultas DNS normais. Como o tráfego DNS aparece em
várias etapas do ciclo de vida da botnet, é possível detecta-las usando a propriedade
actividade de grupo do tráfego DNS. Eles também desenvolveram um mecanismo que
permite detectar a migração de servidores C&C. Esta anomalia é mais robusta do que
abordagens anteriores e podem detectar botnets, independentemente do tipo de bot e
botnet, olhando para as suas actividades de grupo no tráfego DNS. Além disso, pode
detectar botnets com canais codificados uma vez que utiliza a informação de cabeçalhos
de IP. No entanto, a principal desvantagem desta abordagem é o alto tempo de
processamento necessário para a monitorização em enorme escala de rede.
Na tabela seguinte, explicam-se as principais diferenças entre o trafego DNS gerado por
Botnets e por um utilizador comum.
IP’s acedidos por
Actividade e
nome de domínio
padrões de
Tipo de DNS
aparência
DNS Botnet
Grupo de Tamanho
Actividade aparece
Recorre
Limitado
intermitentemente
normalmente a
DDNS
DNS Utilizador
Actividade
Períodos de tempo
Comum
Aleatória
aleatórios e
Tipicamente DNS
contínuos
Figura 17 - Diferenças entre DNS legítimo e de Botnets
No primeiro caso, apenas os membros das Botnets enviam queries para o domínio do
servidor C&C enquanto os utilizadores legítimos normalmente nunca interpelam o
domínio do servidor de controlo. Assim, o número de endereços IP's diferentes que são
procurados no domínio da Botnet é na maior parte das vezes de tamanho fixo. Por outro
lado, numa utilização por parte de utilizadores comuns, estes procuram endereços de
domínios seguindo um método aleatório. No segundo ponto as actividades de grupo de
uma Botnet fazem com que os membros atuem e executem tarefas ao mesmo tempo,
assim as queries DNS ocorrem temporariamente e simultaneamente. No entanto, no
caso de utilizadores legítimos, as queriesDNS ocorrem de uma forma contínua ao invés
de um padrão de simultaneidade. Em relação ao tipo dos servidores DNS, as Botnets
normalmente recorrem a servidores dinâmicos, ao contrário do que acontece com o
37
trafego normal. Existe um estudo de um sistema BOTGaD baseado exclusivamente na
monitorização de tráfego DNS para detecção de actividades malignas, tendo por base as
Botnets centralizadas efectuarem actividades de DNS intensas [25].
3.3 Técnicas de Fast-flux e Domain-flux
Técnicas, como a criação de listas negras, utilizadas para detectar actividades maliciosas
tornaram-se mais concretas, pois métodos mais sofisticados foram utilizados por
botmasters, a fim de contornar essa detecção e o esforço de mitigação. O DNS é um
protocolo essencial na Internet, uma vez que fornece um mapeamento conveniente entre
nomes de domínio e os seus endereços IP correspondentes. Ironicamente, a flexibilidade
e disponibilidade global do DNS está a ser aproveitada por botnets para infra-estruturas
de controlo e comando resilientes. Fast-flux e domain-flux são duas técnicas que estão
atualmente a ser amplamente integradas nas botnets, a fim de melhorar sua resiliência.
Estas não são técnicas novas, bem como os princípios subjacentes às mesmas, pois têm
sido usadas por serviços legítimos à algum tempo. Detalhes destas técnicas são descritos
nas subsecções a seguir. O seu uso em actividades maliciosas é evidente nas evoluções
das técnicas utilizadas por hackers para criar botnets mais robustas [30].
3.3.1.1 Fast-flux (também conhecido como IP- flux)
Fast-Fluxé descrito pelo ICANN como:
“Mudanças rápidas e repetidas de registos de recursos A ou NS de uma zona DNS, que
tem o efeito de mudar rapidamente a localização (endereço IP) para que o nome de
domínio de um host da Internet (A) ou nome do servidor (NS) resolva "
Tecnicamente, essa mudança rápida é feita definindo um tempo de vida (TTL) baixo
para um dado registo DNS e muda o IP associado com frequência. Esta técnica tem sido
usada há muito tempo como um método de equilíbrio de carga por sistemas legítimos,
como por exemplo sites com elevada carga e altamente disponíveis, tais como motores
de pesquisa na Internet ou uma rede de distribuição de conteúdo (CDN).
38
Como o cibercrime evoluiu, esta técnica é agora usada de forma maliciosa, formando
um Serviço de Rede Fast-flux (FFSN), uma rede de hosts comprometidos que
compartilham o mesmo nome de domínio. Os endereços IP dos hosts são trocados
rapidamente dentro, e para fora da entrada de DNS, com base na disponibilidade dos
anfitriões e largura de banda. Normalmente FFSNs empregam um esquema de
distribuição de carga, nomeando alguns hosts para verificar a integridade dos outros nós
na rede. Com uma mudança tão rápida dos endereços IP, é quase impossível
interromper as FFSNs usando simplesmente bloqueio de endereços IP específicos. Uma
solução possível é a de suspender o domínio de nomes usados por FFSNs. No entanto,
esta é uma tarefa muito enfadonha uma vez que estes domínios são geralmente
registados junto de entidades que são resistentes ao bloqueio de domínios nomes.
Outra vantagem de FFSNs é o seu alto nível de anonimato, expondo os hospedeiros que
são normalmente configurados como redireccionadores de proxy cegos, que canalizam o
tráfego para os servidores de back-end, que servem o conteúdo real malicioso. Ao
canalizar o tráfego, os redireccionadores de proxy cegos interrompem qualquer tentativa
de controlo e revelam as identidades dos servidores de back-end. Consequentemente,
isto aumenta o tempo de vida dos servidores de back-end e torna mais simples de
configurar e gerir esses servidores. Mesmo podendo localizar esses servidores, é difícil
derrubá-los, pois normalmente residem em redes cúmplices ou comprometidas. Devido
ao elevado nível do anonimato e resiliência, FFSNs foram observadas a participar em
muitos diferentes tipos de práticas maliciosas, tais como hospedagem de conteúdo
ilegal, distribuição de malware, ou phishing. FFSNs são normalmente parte das botnets,
e osnós escolhidos para estar no FFSN, são seleccionados a partir de hosts
comprometidos com um endereço IP globalmente acessível e com alta largura de banda.
FFSNs escondem o canal C&C e guardam o código malicioso do bot.
Existem dois tipos de FFSN: single-flux e duble-flux. No primeiro caso, apenas os
registos de host são alterados, enquanto no segundo, tanto os registos do host como os
do servidor são alterados. Figura 16 mostra o ciclo de vida de uma solicitação web
numa rede single-flux, comparada com a de um servidor normal. A diferença é que,
embora os utilizadores acreditem que estão a navegar num conteúdo do servidor
legítimo, o redireccionador FFSN mudou o pedido para o servidor de back-end e
39
redireccionou
a
resposta
a
partir
deste
servidor
para
os
utilizadores.
Figura 16 – ciclo de vida de uma solicitação web numa rede single-flux, comparada com a de um
servidor normal
A figura 18 mostra os resultados do comando “dig”(domínio da informação groper é
uma rede de administração de ferramentas de linha de comando para consultar os
servidores de nomes DNS. Dig é uma ferramenta embutida em quase todas as
distribuições Linux.), para uma rede single-flux de serviços. Podemos ver que no
conjunto de endereços IP devolvidos para o mesmo nome de domínio após 30 minutos,
existem dois novos endereços de IP. Além disso, a maior parte dos endereços no
conjunto de IP’s devolvidos estão localizados em redes domésticas. R
;; WHEN: Sat Feb 3 20:08:08 2007
divewithsharks.hk.
1800
IN
A
70.68.187.xxx
[xxx.vf.shawcable.net]
divewithsharks.hk.
1800
IN
A
76.209.81.xxx
[SBIS-AS-AT&T Internet Services]
divewithsharks.hk.
1800
INA
85.207.74.xxx [adsl-ustixxx-74-207-85.bluetone.cz]
divewithsharks.hk.
1800
INA
90.144.43.xxx [d90-144-43-xxx.cust.tele2.fr]
divewithsharks.hk.
1800
INA
142.165.41.xxx[142-165-41-xxx.msjw.hsdb.sasknet.sk
divewithsharks.hk..
1800
IN
NS
ns1.world-wr.com.
divewithsharks.hk..
1800
IN
NS
ns2.world-wr.com.
ns1.world-wr.com.
87169
IN
ns2.world-wr.com.
87177
INA
.ca]
A
66.232.119.212 [HVC-AS - HIVELOCITY VENTURES CORP]
209.88.199.xxx [vpdn-dsl209-88-199-xxx.alami.net]
40
;; WHEN: Sat Feb 3 20:40:04 2007 (˜30 minutes/1800 seconds later)
divewithsharks.hk.
1800
INA
24.85.102.xxx[xxx.vs.shawcable.net] NEW
divewithsharks.hk.
1800
IN A
69.47.177.xxx[d47-69-xxx-177.try.wideopenwest.com]
divewithsharks.hk.
1800
INA
70.68.187.xxx
[xxx.vf.shawcable.net]
divewithsharks.hk.
1800
INA
90.144.43.xxx
[d90-144-43-xxx.cust.tele2.fr]
divewithsharks.hk.
1800
INA
142.165.41.xxx [142-165-41-xxx.msjw.hsdb.sasknet.sk
divewithsharks.hk.
1800
IN
NS
ns1.world-wr.com.
divewithsharks.hk.
1800
IN
NS
ns2.world-wr.com.
ns1.world-wr.com.
85248
IN
ns2.world-wr.com.
82991
INA
NEW
.ca]
A
66.232.119.xxx
[HVC-AS - HIVELOCITY VENTURES CORP]
209.88.199.xxx
[vpdn-dsl209-88-199-xxx.alami.net]
Figura 17 – Exemplo de resultados de um comando“dig”
No serviço de rede double-flux, quando o utilizador solicita mais um passo no conteúdo
tem lugar um processo para resolver o nome dos servidores de autoridade pelo domínio.
Numa rede double-flux, os servidores de nomes estão comprometidos com os hosts que
redireccionam as consultas DNS para um servidor DNS back-end e retornam as
respostas deste servidor para o utilizador. A Figura 19 ilustra a diferença entre singleflux e double-flux quando resolvem nomes de domínio.
Neste exemplo, não são apenas os endereços IP devolvidos para os registos A que são
alterados, mas também aqueles que são devolvidos para os registos NS. Note-se que
semelhante ao serviço de rede single-flux, o conjunto de endereços IP devolvidos está
localizado principalmente num “xDSLy” ou em dial-up de rede. Isso significa que as
interfaces associadas com esses endereços IP são na sua maioria de computadores
pessoais localizados nas casas das pessoas.
3.3.1.2 Domain-flux
Domain-flux é outra abordagem para ultrapassar as defesas no bloqueio do acesso aos
servidores C&C. Ao contrário de fast-flux onde os endereços IP são rapidamente
trocados, no domain-fluxsão alterados os nomes do domínio. Grande número de nomes
de domínios (ou subdomínios) são embutidos no executável do bot ou são gerados por
41
um algoritmo incorporado no bot, chamado DomainGenerationAlgorithm (DGA). O
botmaster tem a mesma lista de nomes de domínio, mas regista apenas um ou alguns
deles. Esses nomes de domínio apontam para os servidores C&C. Os bots encontram o
endereço do servidor C&C resolvendo sequencialmente ou aleatoriamente nomes de
domínio na lista até ter sucesso, localizando um servidor C&C num nome de domínio
registado pelo botmaster.
Figura 18: Diferença entre single-flux e double-flux
Listing 2.2: Results of dig command for a double-flux domain name [15]
;; WHEN: Wed Apr 4 18:47:50 2007
login.mylspacee.com.
177
IN
A66.229.133.xxx[c-66-229-133-xx.hsd1.fl.comcast.
login.mylspacee.com.
177
IN A 67.10.117.xxx [cpe-67-10-117-xxx.gt.res.rr.com]
login.mylspacee.com.
177
IN
net]
A70.244.2.xxx [adsl-70-244-2-xxx.dsl.hrlntx.swbell.
net]
mylspacee.com.
108877 IN
NS
ns3.myheroisyourslove.hk.
mylspacee.com.
108877 IN
NS
ns4.myheroisyourslove.hk.
mylspacee.com.
108877 IN
NS
ns5.myheroisyourslove.hk.
ns1.myheroisyourslove.hk.
854
IN
A
70.227.218.xxx [ppp-70-227-218-xxx.dsl.sfldmi.
ameritech.net]
ns2.myheroisyourslove.hk.854
IN
A70.136.16.xxx [adsl-70-136-16-xxx.dsl.bumttx.
sbcglobal.net]
ns3.myheroisyourslove.hk.854INA 68.59.76.xxx [c-68-59-76-xxx.hsd1.al.comcast.
net]
42
;; WHEN: Wed Apr 4 18:51:56 2007 (˜4 minutes/186 seconds later)
login.mylspacee.com.
161
INA 74.131.218.xxx[74-131-218-xxx.dhcp.insightbb.com]
NEW
login.mylspacee.com.
161INA 24.174.195.xxx[cpe-24-174-195-xxx.elp.res.rr.com]
NEW
login.mylspacee.com.
161INA65.65.182.xxx[adsl-65-65-182-xxx.dsl.hstntx.
swbell.net] NEW
;; WHEN: Wed Apr 4 21:13:14 2007 (˜90 minutes/4878 seconds later)
ns1.myheroisyourslove.hk. 3596 INA75.67.15.xxx[c-75-67-15-xxx.hsd1.ma.comcast
.net] NEW
ns2.myheroisyourslove.hk.3596 IN A 75.22.239.xxx [adsl-75-22-239-xxx.dsl.chcgil
.sbcglobal.net] NEW
ns3.myheroisyourslove.hk.3596 IN A 75.33.248.xxx[adsl-75-33-248-xxx.dsl.chcgil
.sbcglobal.net] NEW
Fiisting 2.3: Domain names generated by K
Figura 19 – Exemplo de domain-flux
As Botnets que usam domain-flux variam muito no número de nomes de domínio
gerados, no algoritmo utilizado, e como o algoritmo é semeado. Por exemplo, o
botConficker-A, utiliza a data e hora actual como uma semente para gerar 250 nomes de
domínio de três em três horas. Este número aumenta para 50 mil nomes de domínio no
botConfiker-C. Outro exemplo é o bot Torpig com sementes do DGA, com um dos
tópicos de tendências mais populares no Twitter. No entanto, todos estes bots têm
algumas características ou necessidades em comum. Em primeiro lugar, o número de
nomes de domínio gerados por bots tem de ser suficientemente grande, a fim de
conseguir esgotar um esforço de blacklisting. Em segundo lugar, os domínios gerados
não devem colidir com nomes de domínio existentes. Estas características do domainflux vieram sugerir algumas defesas. Por exemplo, como o número de nomes de
domínio que está a ser gerado aumenta, antes de chegar a um nome de domínio que é
efectivamente registado pelo botmaster, os bots causam um número significativo de
consultas DNS falhadas na rede quando consultam nomes de domínio inexistentes. Isto
poderia ser considerado como um comportamento anormal na rede, o que sugere que há
domain-flux. A fim de evitar colisões com os domínios existentes, o domínio de nomes
gerados aparecem geralmente para serem cadeias aleatórias, isto é, eles são geralmente
impronunciáveis, não tendo significado, ao contrário de serviços legítimos em que
nomes de domínio normalmente consistem de palavras significativas dum dicionário e
são pronunciáveis, assim esta característica pode indicar domain-flux. Alguns
43
botstentaram superar este problema por meio de algoritmos que geram domínios em
Inglês (ou outra linguagem). Um exemplo é o algoritmo usado pelo botKraken, que
combina as palavras geradas com sufixos de palavras comuns em Inglês como-able, dom, ou -ly. Os recursos fonéticos destas palavras também são explorados por alguns
algoritmos para fazer as palavras geradas o mais pronunciável possível.
Domain-flux fornece grandes vantagens ao botmaster, pois este só precisa de registar
alguns nomes de domínio na lista, a fim de manter o funcionamento da botnet, enquanto
os defensores têm de se registar ou bloquear todos os nomes de domínio na lista para
interromper o funcionamento da botnet. Além disso, no caso dos algoritmos que geram
procura de nomes de domínio, o algoritmo requer engenharia reversa do bot para saber a
lista de nomes de domínio que podem ser gerados, e esta tarefa de engenharia reversa
leva muito tempo[29].
Uma técnica similar à do domain-flux é também utilizada por algumas redes sociais ou
serviços de blog, como Wordpressz ou Tumblrx para personalizar páginas do utilizador
para a modificação do subdomínio do UniformResourceLocator (URL). No entanto, a
maioria dos nomes de domínio gerados por esses serviços estão associados com um ou
poucos domínios de base e são mais persistentes em relação aos nomes de domínios
utilizados pelo domain-flux. A diferença é que os serviços legítimos geram muitos
subdomínios dum pequeno número de domínios,enquantoque as botnets tentam espalhar
o seu uso numa parte muito maior do espaço de nome de domínio.
As técnicas fast- flux e domain-flux podem ser combinadas em conjunto para
proporcionar um elevado nível de anonimato, disponibilidade e resiliência para os
servidores C&C.
3.4 Trabalhos relacionados
Análise do trafego DNS é uma técnica emergente para a detecção de actividades
maliciosas na rede. Esta técnica tem sido afirmada por muitos pesquisadores como uma
técnica efectiva para detecção de botnets, especialmente aquelas com comportamentos
do tipo fast- flux e domain-flux.
Como a abordagem de análise DNS ganhou mais atenção na pesquisa de segurança na
comunidade, técnicas mais sistemáticas foram desenvolvidas para utilizar o DNS na
44
detecção de malware. Dois sistemas de reputação de domínio de nomes foram
propostos: NOTOS, por Antonakakis et al. [32] e EXPOSURE por L. Bilge et al. [33].
Estes são dois grandes sistemas de análise de trafego passivo DNS para a detecção de
malware, que foram criados e implantados em grandes redes ISP. A premissa desse
sistema é que o uso malicioso do serviço de DNS tem características únicas que podem
ser usadas para distinguir o uso malicioso do uso benigno. Assim, nestes dois sistemas,
os respectivos autores construíram um modelo de uso de DNS normal com base num
conjunto de características que foram extraídos de trafego DNS capturado. O desvio de
comportamentos de nomes de domínio malicioso são identificados por uma abordagem
à aprendizagem da máquina para detecção de anomalias.
Em NOTOS [32], as características de um nome de domínio é dividido em três tipos
diferentes: baseados em recursos de rede, com base em características da zona, e com
base em evidências características. Embora o tipo baseado em recursos de rede seja
usado para afastar o domínio de nomes benignos que utilizam DNS estável, o tipo
baseado em características da zona, extraí os nomes de domínio próprios (por análise de
corda ou informação) e utiliza-os para distinguir os nomes de domínio maliciosos e
nomes de domínio legítimos que pertencem a CDNs conhecidos. No plano baseado em
evidências características, o nome de domínio e os seus endereços IP mapeados são
verificados contra nome de domínios conhecidos e endereços IP maliciosos. A
pontuação e reputação de um nome de domínio são derivados por uma árvore de decisão
usando a estratégia Logit-Boost(LAD).
Da mesma forma, Exposure [33] usa um conjunto de 15 características que são
divididas em quatro grupos: com base nas características do tempo, com base nas
características da resposta DNS, baseado nas características do valor TTL e baseado nas
características e recursos de nomes de domínio. Estas características têm por objectivo
detectar diferentes aspectos dos nomes de domínio de comportamentos maliciosos. As
características baseadas no tempo captura os nomes de domínio de curta duração que
têm repetido padrões regularmente. As características baseadas na respostaDNS expõe
nomes de domínio cujos endereços IP mapeados, espalham mais de múltiplos sistemas
autónomos (ASs). Os recursos baseados no valor TTL detectam nomes de domínio que
possuem valores curtos TTL e se esses valores são alterados com frequência.
Finalmente, as baseadas em recursos de nomes de domínioidentificam nomes de
domínio que seriam estranhosao olhardos utilizadores. O algoritmo J48 de árvore de
45
decisão é usado para classificar e determinar se um nome de domínio é malicioso com
base nassuas características [29].
Na continuação de trabalhos anteriores, Antonakakis et al.[34], propôs um sistema de
monitorização de visão geral com o alto nível da hierarquia de DNS, para descobrir
anomalias em actividades maliciosas DNS. Ao contrário dos sistemas de detecção
anteriores, como Notos ou Exposure, que dependem da monitorização passiva do
trafego DNS recursivo (RDNS) e de um número limitado de servidores RDNs, Kopis
tira vantagens da visibilidade global do trafego DNS nos níveis superiores da hierarquia
DNS, para detectar nomes de domínios maliciosos.
Hao et al. [35] estuda os padrões de consulta iniciais de nomes de domínios maliciosos
durante curto período de tempo depois de serem registados. Este estudo revelou uma
série interessantede pesquisas relacionadas com comportamentos iniciais de nomes de
domínios maliciosos, incluindo o tempo entre o registo e o ataque, a localização da
infra-estrutura de DNS, e seus primeiros comportamentos de pesquisa. Essas
descobertas poderiam ser utilizadas como um guia para a concepção e construção de
sistemas de alerta precoce para detecção de nomes de domínios maliciosos baseados em
análises de DNS.
46
Capitulo 4
4 Implementação de um sistema de
detecção de Botnets com base na análise
de logs DNS
4.1 Arquitectura do sistema
Pretende-se, com o presente trabalho, desenvolver uma aplicação para análise offline de
ficheiros de logs de um servidor DNS (usando o BIND), para detecção de tráfego que
indicia a presença de clientes infectados por malware (e pertencentes a botnets).
Na figura 21 é representada a arquitectura geral do sistema a implementar
Figura 20 – Arquitectura da aplicação a implementar
47
4.1.1 Linguagem de programação e IDE’s usadas
A linguagem escolhida para realizar a aplicação foi a linguagem C# (C Sharp). Como
houve liberdade de escolha na linguagem, foi optada por esta devido ao maior
conhecimento sobre a mesma bem como um maior à vontade em relação a outro tipo de
linguagens.
É uma linguagem de programação orientadas por objectos fortemente tipada, possuindo
interfaces, espaços de nomes, aceita sobrecarga de operadores, excepções e gere
automaticamente a memória.
Tem como funcionalidades, a separação perante referências e tipos de valores para obter
um aproveitamento mais adequado da memória. Já traz integrado um suporte para
propriedades, faz passagem de parâmetros por referência e parâmetros de saída, todos os
dados derivam de objectos e existe a possibilidade de definir eventos e delgados [36].
Para
as
tarefas
de
desenvolvimento,
foi
usada
a
IDE
Microsoft
Visual C# 2010. Trata-se de uma ferramenta gratuita e poderosa e ao mesmo tempo
simplificada e fácil de usar para programadores Windows. Foi concebida no sentido de
facilitar a aprendizagem para estudantes, podendo também ser usada por qualquer outro
programador.
O sistema de base de dados escolhidos foi o MySQL dado que é necessário guardar
dados
relativos
à
análise
do
ficheiro.
O MySQL [37] é um sistema de gestão de base de dados (SGBD), que utiliza a
linguagem SQLcomo linguagem de criação, manipulação e interrogação. Os
responsáveis pela criação do MySQL facultam também clientes e drivers (como é o
caso do JDBC[5] para MySQL) paraacesso ao serviço. As principais características do
MySQL são: portabilidade (suporta praticamente qualquer plataforma actual);
compatibilidade (existem drivers ODBC (Open Data Base Connectivity), JDBC e.NET5
e módulos de interface para diversas linguagens de programação); excelente
desempenho, estabilidade e facilidade de uso.
Para desenvolver a base de dados em linguagem SQL do projecto, o software utilizado
foi o MySQLWorkbench [10] que é a ferramenta oficial do MySQL. É um ambiente
completo quepermite além de realizar consultas, criar diagramas e trabalhar com
48
engenharia reversapodendo a modelagem da base de dados assumir níveis lógicos e
físicos. O MySQL Workbench apresenta uma arquitectura extensível, sendo possível
visualizar a representaçãode tabelas, funções, entre outros.
4.1.2 Descrição genérica da aplicação
O método proposto para a realização do sistema tem como pressuposto analisar um
ficheiro .txtde logs DNS, gerado por um servidor BIND, e detectar se existem domínios
infectados ou se existem querys anómalas que possam indiciar a presença de botnets.
O sistema poderá também fazer uso da utilização de uma blacklist, previamente inserida
pelo utilizador, para comparação dos domínios existentes nesta, com os encontrados no
ficheiroa ser analisado. A blacklist pode conter nomes de domínio e ip’s, tendo que ser
inserida num ficheiro .txt.
Como já foi descrito num capítulo anterior, as botnets podem gerar um trafego DNS
anómalo o que indicia a sua presença. Segundo o domain-flux, uma grande quantidade
de mensagens de erro geradas com um espaço de tempo reduzido, e em que o domínio
seja o mesmo, pode indiciar a presença de uma botnet ou de algum tipo de malware.
Assim, o sistema fará uso desta técnica para detectar presença de uma elevada
quantidade de mensagens de erro correspondentes a queries para domínios inexistentes.
Com este sistema, o utilizador poderá verificar também se um determinado domínio se
encontra infectado com algum tipo de malware, desde que, este se encontre na blacklist
inserida.
O sistema terá dois tipos de blacklist:

A inserida pelo utilizador, que poderá fazer download de um site que forneça
blacklists e que sejam actualizadas regularmente.
Exemplos:
http://malc0de.com/bl/IP_Blacklist.txt;
http://www.malwaredomainlist.com/mdl.php;
http://exposure.iseclab.org/malware_domains.txt;
https://zeustracker.abuse.ch/blocklist.php.

E a criada pela aplicação à medida que encontra possíveis domínios infectados
através da análise dos ficheiros inseridos.
49
A aplicação mostrará as estatísticas da última análise bem como uma pequena descrição
dos últimos ficheiros analisados.
Assim a aplicação quando inicializada, apresenta as estatísticas da ultima análise feita.
Se for a primeira vez que utiliza a aplicação será mostrada uma mensagem de boas
vindas bem como uma breve explicação de como usar o sistema. Depois de iniciar, o
utilizador poderá fazer uma análise de um ficheiro de logs, bem como apenas de
domíniosisolados.
Se optar por analisar um ficheiro, o utilizador terá que procurar o ficheiro e assim
poderá partir para a análise. Terminada a análise do ficheiro, se existirem domínios que
se encontrem na blacklist, serão mostrados numa listview, bem como os domínios mais
encontrados ao longo do ficheiro (tanto nomes de domínio, como ip’s). Serão ainda
mostrados quantos ip’s foram encontrados, quantos nomes de domínio foram
analisados, quantas mensagens de erro foram processadas e quantas linhas do ficheiro
foram analisadas. Será ainda possível ver os domínios que possivelmente podem estar
infectados por uma botnet.
4.2 Modelação
4.2.1 Base de Dados
O sistema tem uma base de dados que permite guardar os diferentes tipos de dados
provenientes da análise dum ficheiro de logs DNS. Assim na figura 21 é mostrada a
estrutura da base de dados bem como as suas tabelas.
4.2.1.1 Tabelas

Blacklist: É responsável por guardar os domínios da blacklist inserida pelo
utilizador

Analise: é uma tabela que guarda dados temporários. Aquando da análise do
ficheiro, quando encontradas mensagens de “error” seguidas para o mesmo ip, é
aqui que esse domínio fica guardado enquanto é feitoo processamento. Quando é
terminada a sucessão de mensagens de “error” ou se o domínio estiver
50
infectado, esta tabela é esvaziada e o domínio é copiado para a tabela
blacklist_analise.

Blacklist_analise: Esta tabela guarda os domínios enviados pela tabela analise.
Aqui são guardados todos os domínios infectados encontrados da análise de um
ficheiro. Quando for iniciada outra análise, estes domínios serão enviados para a
tabela blacklist_personal, que guarda os domínios infectados de todas as análises
feitas.

Blacklist_personal: é responsável por guardar os domínios infectados
provenientes da tabela blacklist_análise. Esta tabela guarda todos os domínios
infectados provenientes das análises feitas, para fazer comparação com os
próximos ficheiros a serem analisados.

Nome_dominio: aqui ficamguardados todos os nomes de domínio encontrados
no ficheiro que está a ser analisado para posteriormente ser comparado com os
das blacklists para ver se existem domínios infectados. Na próxima analise, os
campos existentes serão eliminados.

Ip: faz o inverso da tabela nome_dominio mas ao invés, guardando os ip’s
encontrados.

Estatitisticas:responsável por guardar a data e o nome do último ficheiro
analisado
Figura 21 – Base de dados do
sistema
51
4.2.2 Diagrama de classes
O sistema desenvolvido é descrito no diagrama de classes abaixo representado. O
diagrama descreve as classes do sistema através dos seus respectivos relacionamentos.
Figura 22 – Diagrama de classes do sistema
A classe sistema define todos os métodos possíveis que o sistema pode ter.
A classe ficheiro representa o ficheiro de logs que se deseja analisar. Esta classe é
responsável por efectuar a respectiva análise do ficheiro e de chamar o método
listar_infectados, que irá chamar o método mostrar da classe infectados.
A classe infectados, representa os domínios infectados que forem encontrados no
ficheiro. Assim, depois de ser analisado o ficheiro, será possível mostrar um relatório
onde informará o utilizador quais os domínios que estão infectados.
A classe blacklist será responsável por representar os ip´s infectados conhecidos, para
posterior comparação aquando da análise de um ficheiro de logs.
52
4.3 Implementação e funcionalidades
A solução implementada para detecção dedomínios infectados passou pela análise
segundo comparação com blacklist e pela detecção de domain-flux. Assim, o sistema
quando iniciado irá mostrar as estatísticas do último ficheiro analisado bem como o dia
em que foi feita a última análise. Se o programa for iniciado pela primeira vez, será
mostrada uma mensagem de boas vindas e uma breve descrição de ajuda sobre como
usar o sistema (figura 23).
Figura 23: Página inicial na primeira vez que utiliza programa
4.3.1 Funcionalidades
Querendo então o utilizador analisar um ficheiro, basta ir ao separador análise e carregar
no ícone “ficheiro”. Posto isto irá aparecer o ecrã mostrado na figura 24.
53
Aqui, o utilizador deverá escolher o ficheiro que deseja analisar, tendo este que ser em
formato .txt. Depois de ser escolhido o documento, basta partir para análise, carregando
no botão “Analisar”. Automaticamente o sistema começará a analisar cada linha do
ficheiro para retirar todos os ip´s encontrados bem como os nomes de domínio. Estes
serão guardados nas tabelas anteriormente identificadasda base de dados.
Figura 24 – Janela para análise eapresentação de resultados
Ao mesmo tempo, é analisado se a linha é de “error” e se for irá ser realizada outro tipo
de análise. Essa análise começa por guardar o nome de domínio e o ip correspondente,
na tabela da base de dados “analise”, que é uma tabela que guarda apenas dados
temporários. Se na próxima linha do ficheiro, for encontrada outra linha de “error” e em
que o ip seja o mesmo, então a informação da tabela analise não se altera. Se isto
acontecer quatro vezes consecutivas, então existe a possibilidade da presença de uma
botnet. Posto isto é guardado o ip referente da tabela analise, na tabela blacklist_analise,
que guarda os domínios possivelmente infectados durante a análise do ficheiro.
Terminada a análise, são mostradas as informações mais relevantes ao utilizador, tais
como, os domínios infectados em comparação com a blacklist, os domínios infectados
pela possível presença de botnets, os nomes de domínio e os ip’s mais encontrados por
ordem decrescente. São ainda mostradas quantas linhas foram processadas, o número de
ip’s e nomes de domínio encontrados e as linhas de “error” também encontradas.
54
O utilizador pode também optar por analisar apenas um domínio. Para isso, basta ter
inserido uma blacklist, para que o sistema, procure se existe o domínio inserido na
blacklist incluída. Assim o utilizador só tem que ir ao separador “Analise” e escolher a
opção “Domínio”.
Figura 25 – janela para analisar um domínio
Mas, antes de o utilizador partir para a análise de um ficheiro, é aconselhado que insira
previamente uma blacklist, para que possa ser efectuada a análise completa. O utilizador
pode escolher inserir uma blacklist completa, ou apenas um domínio, ou ver a que
existe na base de dados, ou ate mesmo remover a blacklist completa ou apenas um
domínio. No final da utilização da aplicação, os dados ficam guardados nas tabelas
correspondentes, para que seja possível na próxima utilização, ver os dados encontrados
nesta análise. Mas quando o utilizador fizer uma nova analise, os dados da tabela
blacklist_analise serão copiados para a blacklist_personal, que irá guardar sempre os
domínios encontrados com possível infecção e botnet. Os dados das tabelas “ip”,
“nome_dominio”, “analise” e “blacklist_analise” serão eliminados, para que seja
possível efectuar nova análise.
55
Figura 26 – janela para poder ir ao menu blacklist
4.4 Testes e Resultados
Para se testar a aplicação de modo a apresentar resultados válidos, foi disponibilizado
um ficheiro de logs DNS do servidor de DNS do IPB, que continha toda a informação
que pudesse levar à detecção de malware. O ficheiro continha as informações de um dia
inteiro de logs. Assim, depois de adicionada uma blacklist, foi feita a análise do ficheiro
que demorou algum tempo devido à extensidade de querysrealizadas pela aplicação.
Depois de concluída a leitura do ficheiro e de toda a informação ter sido processada
pelo sistema foram apresentados os resultados.
56
O ficheiro era em formato .txt e é mostrado um exemplo de algumas linhas, na figura
27.
Figura 27: Exemplo de logs DNS
Depois de analisado o ficheiro,foi apresentadoo output que está expresso na figura 28.
Através da análise, foram encontrados alguns domínios infectados em comparação com
a blacklist inserida, bem como alguns domínios detectados através da aparição de
padrões que lavam a indiciar presença de botnets.
Como é mostrado na output, foram processadas 119linhas onde foram encontrados 2
dominios infectados, presentes nablacklist, bem como 5 dominios com elevado grau de
suspeita de estarem infectados por tentativa de domain-flux. São também mostrados os
nomes de dominio por ordem de maior aparição e também os ip’s.
Com esta análise, comprova-se a validade do sistema em realmente detectar presença de
malware em hosts que usam um servidor de DNS. Como se viu neste exemplo, a
57
presença de malware na rede é usual, o que leva à necessidade de uma maior
consciencialização dos utilizadores para este tipo de ameaças.
Figura 28: Output do ficheiro analisado
58
Capitulo 5
5 Conclusões e Trabalho Futuro
Com a realização deste trabalho os objectivos propostos foram cumpridos na sua grande
maioria. Depois de um grande estudo sobre vulnerabilidades da rede e de temática sobre
botnets, o conhecimento sobre esta matéria ficou muito acima daquilo que existia
aquando do início do trabalho.
Com o aumento do uso da Internet, cada vez mais novas formas de malware vão
aparecendo e técnicas de combate a essas ameaças vão ficando cada vez melhores. Hoje
em dia, a utilização de botnets, por parte de utilizadores mal-intencionados tem vindo a
aumentar. Estes botmasters, que controlam a sua rede de hosts infectados, utilizam este
“exército” para as mais variadas formas de ataque, que vai desde envio de spam até
ataques DDoS a grandes instituições. Como este tipo de ameaça tem vindo a crescer,
também novas técnicas vão aparecendo para as combater. A utilização do serviço de
DNS é uma das formas de poder analisar e detectar este tipo de ataques. Através da
análise dos logs gerados por um servidor DNS, é possível detectar querys e padrões
anómalos que possam indiciar a presença de malware.
Assim sendo, a aplicação que foi desenvolvida, pretende utilizar ficheiros gerados por
servidores de DNS e partir para uma análise em que no final sejam mostrados domínios
que possam estar infectados. Para isso o sistema retira todos os ip´s e nomes de domínio
e compara com uma blacklist de domínios infectados. Ao mesmo tempo, é analisado o
ficheiro de modo a detectar padrões anómalos que possam indiciar algum tipo de
malware. Uma das técnicas usadas é verificar se existem varias querys seguidas de erro
em que o domínio seja o mesmo. Segundo a técnica de domain flux, os botmasters
registam alguns domínios, e os seus bots vão fazendo pedidos de informação para esses
domínios, mas que às vezes podem não ter sido registados. Logo vão existir várias
mensagens de erro o que pode permitir concluir que esse host esteja infectado.
59
Esta técnica é de grande valor visto ser não intrusiva (não interage com o tráfego de
rede ou os utilizadores), pois é uma análise a nível offline.
5.1 Trabalho futuro
A aplicação desenvolvida funciona como prova de conceito, que no entanto precisa
evoluir para outros padrões de análise que não foram implementados neste sistema. Um
deles poderia ser analisar o trafego de modo a detectar botnets que utilizam fast-flux.
Outra melhoria necessária passa pela optimizaçãodo código desta aplicação, dado que o
tempo de processamento quando um ficheiro é extenso, é elevado, o que pode levar a
alguma perda de interesse na sua utilização por parte do utilizador.
60
Bibliografia
[1] Sistema de Detecção de Botnets-Projecto de informática 2011/2012, acedido em:
12/1/2013 -http://projinf.estig.ipb.pt/~a19228a19236/sdb.pdf
[2] Microsoft, Vírus informáticos: descrição, prevenção e recuperação, 2012, acedido
em: 12/1/2013http://support.microsoft.com/kb/129972/pt
[3] Panda Security, 2012, acedido em:
12/1/2013http://www.pandasecurity.com/portugal/homeusers/security-info/classicmalware/trojan/
[4] Pereira, Ana Paula, Tecmundo, O que é um Trojan?, Agosto de 2008, acedido em
acedido em: 12/1/2013http://www.tecmundo.com.br/seguranca/196-o-que-e-um-trojan.htm
[5]Honeycutt, Jerry, Como Proteger o seu Computador do Spyware e do Adware,
Outubro de 2004, acedido em:
12/1/2013http://www.microsoft.com/brasil/windowsxp/using/security/expert/honeycutt
_spyware.mspx
[6] Martins, Elaine, Tecmundo, Setembro 2008, acedido em:
12/1/2013http://www.tecmundo.com.br/spyware/271-o-que-e-adware-.htm
[7]Shetty, Sachin, Introduction to Spyware Keyloggers, Novembro de 2010, acedidoem:
12/1/2013 http://www.symantec.com/connect/articles/introduction-spyware-keyloggers
[8]Panda Security, 2012, acedido em:
12/1/2013http://www.pandasecurity.com/portugal/homeusers/securityinfo/cybercrime/spyware/
[9]Xavier, Andressa,Tecmundo, O que é Spyware?, Julho de 2008, acedido emacedido
em: 21/1/2013http://www.tecmundo.com.br/spyware/29-o-que-e-spyware-.htm
61
[10]Haumana, Origin and Current Meaning of Rootkit ,Junho 2012, acedidoem:
21/1/2013http://forum.kasperskyclub.com/index.php?showtopic=8676
[11]symantec, Windows RootkitOverview, 2005, acedido em:
21/1/2013https://www.symantec.com/avcenter/.../windows.rootkit.overview.pdf
[12] Barwinski, Luísa, Tecmundo, Junho de 2009, a acedido em:
21/1/2013http://www.tecmundo.com.br/antivirus/2174-o-que-e-rootkit-.htm
[13] Panda Security, acedido em:
4/3/201312/1/2013http://www.pandasecurity.com/homeusers/downloads/docs/product/h
elp/is/2012/po/690.htm
[14]Artigonal, Agosto de 2011, acedido em:
16/5/2013http://www.artigonal.com/seguranca-artigos/voce-sabe-o-que-e-backdoor5084941.html
[15] Entenda o que é um backdoor, acedido em:
16/5/2013http://www.crimespelainternet.com.br/entenda-o-que-um-backdoor/
[16]Diário Digital, Julho de 2012, acedido em:
17/5/2013http://diariodigital.sapo.pt/news.asp?id_news=583395
[17] spamhaus, The Definition of Spam, acedidoem:
24/5/2013http://www.spamhaus.org/consumer/definition
[18] Netfolio, O Que é o SPAM?,acedido em: 12/1/2013http://www.netfolio.pt/spam
[19] Wikipédia, Junho de 2012, acedido em: 12/1/2013 acedido em: 24/5/2013
http://pt.wikipedia.org/wiki/Keylogger
[20] Machado, Jonathan D, Tecmundo, Junho de 2012, acedido em: 24/5/2013
http://www.tecmundo.com.br/spyware/1016-o-que-e-keylogger-.htm
62
[21] Pinto, Pedro, Segurança Informática – Sabe o que é Ransomware?, Maio de 2012,
acedido em: 12/1/2013http://pplware.sapo.pt/windows/software/seguranca-2/seguranainformtica-sabe-o-que-ransomware/
[22]Karas, Eduardo Vieira, Ransomware: conheça o invasor que sequestra o
computador, Setembro de 2011, acedido em:
12/1/2013http://www.tecmundo.com.br/virus/13275-ransomware-conheca-o-invasorque-sequestra-o-computador.htm
[23] Neto, Raimundo Pereira: Sistema de detecção de Intrusos em Ataques Oriundos de
Botnets Utilizando Método De Detecção Hibrido, Junho 2011, acedido em:
12/1/2013http://www.tedebc.ufma.br/tde_arquivos/10/TDE-2012-04-30T103824Z640/Publico/dissertacao%20Raimundo.pdf
[24] Correia, Pedro : Caracterização Estatistica de Botnets, 2011 acedido em:
24/5/2013 https://ria.ua.pt/bitstream/10773/7394/1/244860.pdf
[25] Feily, Maryam e Shahrestani, Alireza, A Survey of Botnet and Botnet Detection,
2009acedidoem: 24/4/2013
[26] Arantes, Alison Carmo, Detecção e Remoção de botnets na rede do POP- MG,
Dezembro de 2005acedido em: 24/5/2013
[27]Hossain, Soraya, Detecção de aplicações envio de SPAM através da mineração de
trafego DNS, Dezembro de 2010, acedido em acedido em: 24/5/2013
http://www.lume.ufrgs.br/bitstream/handle/10183/28329/000767844.pdf?sequence=1
[28] Wikipedia, Domain Name System, acedidoem: 24/5/2013
http://pt.wikipedia.org/wiki/Domain_Name_System
[29] Hong, Linh Vu, DNS Traffic Analysis for Network-based Malware Detection,
Abril 2012acedidoem: 24/5/2013
63
[30] Arthur, Luiz, DNS – Domain Name System, Slides de suporte de aula de Redes de
Computador, Junho de 2009, acedido em: 24/5/2013
http://www.slideshare.net/luiz_arthur/redes-dns
[31]X. Hu, M. Knysz, and K. Shin, \Rb-seeker: auto-detection of redirection botnets," in
ISOC Network and Distributed System Security Symp, 2009acedidoem: 24/5/2013
[32] M. Antonakakis, R. Perdisci, D. Dagon, W. Lee, and N. Feamster, \Buildinga
dynamic reputation system for DNS," in 19th Usenix Security
Symposium,2010.acedidoem: 24/5/2013
[33] L. Bilge, E. Kirda, C. Kruegel, and M. Balduzzi, \EXPOSURE: FindingMalicious
Domains Using Passive DNS Analysis," in Proceedings of NDSS,2011acedidoem:
24/5/2013
[34] M. Antonakakis, R. Perdisci, W. Lee, N. Vasiloglou II, and D. Dagon, \Detecting
malware domains at the upper DNS hierarchy," in Proceedings ofthe 20th USENIX
Security Symposium, acedidoem: 24/5/2013
[35]S. Hao, N. Feamster, and R. Pandrangi, \Monitoring the Initial DNSBehavior of
Malicious Domains," in ACM SIGCOMM Internet MeasurementConference, Berlin,
Germany, November 2011 acedidoem: 24/5/2013
[36] Loureiro, H. C# 4.0 com Visual Studio 2010. FCA – Editora de Informática, LDA
– Junho de2011.acedido em: 24/5/2013
[37] José Cordeiro. http://projinf.estig.ipb.pt/~a20186/proj.pdfacedido em: acedido em:
24/5/2013
[38] Vicente Carlos, Pinto Jorge, Setembro de 2012, acedido em: 24/5/2013
http://projinf.estig.ipb.pt/~a21280a20556/Relatorio_a20556_a21280.pdf
[39] Pinzon, Scott;Nachreiner, Corey (2009) - Understanding and Blocking the New
Botnetsacedidoem: 24/5/2013
64
65

Documentos relacionados

ministério da defesa exército brasileiro departamento de ciência e

ministério da defesa exército brasileiro departamento de ciência e Esse projeto tem por finalidade desenvolver uma técnica de detectar botnets a partir da análise de um tráfego da internet através de propriedades de grafos de dispersão de tráfego (TDGs) e estabele...

Leia mais