Академический Документы
Профессиональный Документы
Культура Документы
CAMPUS SERRA
Serra, 2010
(FICHA CATALOGRÁFICA)
68 f. : il. ; 31 cm
CDD 005.8
Franzvitor Almeida Fiorim
COMISSÃO EXAMINADORA
______________________________________________
Orientador
______________________________________________
______________________________________________
Neste trabalho foi feito o estudo e a implementação de uma ferramenta honeypot virtual
de baixa interatividade na redes do Ifes – Instituto Federal de Educação Tecnológica do
Espirito Santo. Por meio de experimentação em um ambiente real, os dados foram coletados e
analisados posteriormente por um conjunto de ferramentas e scripts especializados com o
intuito de entender as características de determinados ataques e mensurar a exposição de uma
máquina sem mecanismos de defesa a internet. Este trabalho poderá ser útil como base para
outros trabalhos relacionados à detecção de atividades maliciosas em redes de computadores.
This work was done the study and implementation of a virtual honeypot tool of
interactivity in the networks of low IFES - Instituto Federal de Educação Tecnológica do
Espirito Santo. Through experimentation in a real environment, the data were collected and
later analyzed by a set of specialized tools and scripts in order to understand the characteristics
of certain attacks and measure the exposure of a machine without defense mechanisms to the
Internet. This could be useful as a basis for other work related to the detection of malicious
activity on networks of computers.
Figura 5.3: Histograma relativo ao número de pacotes recebidos pelos honeypots em relação a
hora do dia. ...............................................................................................................................43
LISTA DE QUADROS
Tabela 4: Lista de países que mais enviaram pacotes para os honeypots virtuais.....................45
Tabela 5: Porcentagem de pacotes recebidos pelos honeypots virtuais no período de coleta dos
dados.........................................................................................................................................45
IP Internet Protocol
1 Introdução...............................................................................................................16
1.1 Contexto......................................................................................................................... 16
1.2 Motivação....................................................................................................................... 18
1.3 Objetivo.......................................................................................................................... 18
1.4 Metodologia.................................................................................................................... 18
1.5 Estrutura da monografia.................................................................................................18
2 Fundamentação Teórica........................................................................................20
2.1 Honeypot........................................................................................................................ 20
2.1.1 Classificação dos honeypots....................................................................................................... 20
2.1.2 Nível de interatividade ................................................................................................................ 21
2.1.3 Estrutura dos Honeypots............................................................................................................. 24
2.1.4 Visão geral de cinco honeypots................................................................................................... 24
2.1.5 Benefícios de um Honeypot........................................................................................................ 26
3 Ferramentas utilizadas..........................................................................................28
3.1 Honeyd........................................................................................................................... 28
3.1.1 Recursos...................................................................................................................................... 29
3.1.2 Configuração do Honeyd............................................................................................................. 31
3.1.3 Logs do Honeyd........................................................................................................................... 32
3.2 Honeycomb.................................................................................................................... 33
3.2.1 Rastreamento de conexões......................................................................................................... 35
3.2.2 Análise de protocolos................................................................................................................... 35
3.2.3 Exibição das assinaturas............................................................................................................. 36
4 Proposta..................................................................................................................37
4.1 Implementação do ambiente..........................................................................................37
4.2 Ganhos........................................................................................................................... 39
4.3 Problemas encontrados.................................................................................................40
5 Resultados Obtidos...............................................................................................41
5.1 Dados capturados..........................................................................................................41
15
1.1 Contexto
O crescimento dos sistemas computacionais conectados em rede e a oferta cada vez maior
dos serviços oferecidos pela Internet, trazem às instituições o desafio de oferecê-los de
maneira confiável, estável e íntegra. Com essa popularização e crescimento tecnológico
surgiram dificuldades para manter a segurança e estabilidade da infraestrutura envolvida.
A segurança das redes de computadores não pode ser restrita apenas a aspectos técnicos
como firewall's, roteadores, ou outras tecnologias. Envolve também usar aspectos políticos e
sociais, inseridos, normalmente, na política de segurança a rede.
A ausência de mecanismos de detecção de ataques contribui para que essas redes sejam
alvo de ataques, sem que alertas sejam produzidos, desta maneira os administradores das redes
não são informados sobre essas ações. Além disso, a falta de informações sobre ataques a rede
pode dar aos administradores a falsa sensação de proteção e segurança.
18
1.2 Motivação
1.3 Objetivo
1.4 Metodologia
A metodologia adotada neste trabalho foi observar os ataques que chegam ao honeypot de
maneira passiva para análise posterior dos dados obtidos. O conjunto de análise destes dados
será realizado por ferramentas especializadas e scripts personalizados para a obtenção de
estatísticas a partir dos arquivos de log gerados pelo honeypot.
2.1 Honeypot
Pode-se definir um honeypot como um recurso computacional, cujo valor está no uso não
autorizado ou ilícito deste recurso. Ou segundo Neil Provos [1],“Um honeypot é um recurso
computacional de segurança dedicado a ser sondado, atacado ou comprometido.”
Honeypots não substituem sua infraestrutura de segurança, pois não faz nenhum tipo de
prevenção. Muito embora, o monitoramento do trafego de dados do honeypot nos permite
recolher informações que não são disponíveis por NIDS (Network Intrusion Detection
System). Por exemplo, podemos registrar os caracteres digitados em uma sessão interativa,
mesmo que o tráfego de rede seja criptografado. Os NIDS para detectar comportamento
malicioso necessitam de assinaturas conhecidas de ataques e muitas vezes não conseguem
detectar comportamento não conhecidos. Por outro lado, honeypots podem detectar
vulnerabilidades ainda não conhecidas. Por exemplo, podemos detectar comportamento
malicioso ao observar o tráfego de rede do honeypot, mesmo se os meios da exploração não
forem conhecidos [1]. Com base nestes comportamentos maliciosos pode-se inferir quais os
melhores mecanismos de segurança para a rede em questão.
Há diferentes tipos de honeypots e estes variam de acordo com o contexto em que eles são
aplicados, cada um tendo suas vantagens e desvantagens. O tipo de honeypot a ser usado
depende do objetivo a ser alcançado.
21
Esta abordagem, no entanto, tem vários inconvenientes. Pois, o atacante poderá ter acesso
a dados pessoais ou comprometer o sistema. Por isso, máquinas virtuais podem ser uma boa
opção para este modelo. Visto que, a máquina virtual não teria nenhuma função operacional,
e poderia ser facilmente substituídas em caso de comprometimento do sistema. Algumas
opções de virtualização disponíveis para honeypots de alta interatividade são: VMware1, User
Mode Linux2 (UML) e VirtualBox3 [1]. O The Honeynet Project mantém um projeto de
honeypot de alta interatividade chamado Honeywall4 [3].
Honeypots de alta interatividade podem fazer qualquer coisa que é permitido fazer com
um sistema real. Eles normalmente são sistemas computacionais convencionais, como um
computador comum, um roteador ou um switch. Porém, este sistema não têm tarefas
convencionais na rede e não há usuários regularmente ativos. Assim, ele não deve ter qualquer
processo incomum, nem gerar qualquer tráfego de rede, além dos daemons regulares ou
serviços em execução no sistema. Estes pressupostos ajudam na detecção de ataques, pois
cada interação com um dos honeypots é suspeito e pode apontar para uma ação possivelmente
1 Vmware – http://www.wmware.com/
2 User Mode Linux – http://user-mode-linux.sourceforge.net/
3 VirtualBox - http://www.virtualbox.org
4 Honeywall - https://projects.honeynet.org/honeywall/
22
mal-intencionada. Esta ausência de falsos positivos é uma das principais vantagens dos
honeypots de alta interação, em comparação com sistemas de detecção de intrusão (IDS).
Uma desvantagem que deve-se levar em consideração é o fato de que o atacante pode
diferenciar uma máquina real de uma virtual. Nesse caso, um atacante avançado
comprometeria a honeypot virtual e depois voltaria o honeypot ao estado inicial, a fim de
enganar o investigador, ocultando os dados referentes ao período em que ocorreu o ataque.
A quantidade de informação gerada sobre o atacante, por este tipo de honeypot é muito
limitada. Honeypots de baixa interatividade registram basicamente:
Alguns exemplos interessantes de uso deste tipo de honeypot são para detecção de
servidores comprometidos efetuando ataques como varredura de portas, detecção de
worms/vírus e determinar a tendência dos ataques.
6 Zero-day é uma ameaça que explora vulnerabilidades desconhecidas ou que não há correção disponível.
24
Quando há grandes faixas de endereçamento IP, uma melhor estrutura seria a estrutura de
honeypots virtuais. Pois esta estrutura seria menos custosa, pelo fato de implementação e
administração rápida.
Neste conjunto também fazem parte os honeypots de alta interatividade que fazem uso de
ferramentas de virtualização como VirtualBox, VMWare, Xen, User Mode Linux, etc.
Existem várias soluções de honeypots disponíveis, nesta sessão, serão destacadas cinco
soluções diferentes. Dentre elas, serão abordadas soluções proprietárias e livres, de diferentes
plataformas e níveis de interatividade.
25
BackOfficer Friendly (BOF) é uma solução simples e livre de honeypots desenvolvido por
Marcus Ranum. É uma solução de baixa interatividade, com suporte a varias versões
Windows [4]. Porém seus recursos são limitados a ouvir portas.
2.1.4.2 Specter
2.1.4.3 Honeyd
2.1.4.4 ManTrap
7 OpenSource ou código aberto é uma terminologia usada para um padrão de desenvolvimento de software em que o
código fonte acompanha o software.
8 UNIX/Like são sistemas operacionais baseados em UNIX.
26
2.1.4.5 Honeynet
Honeypots podem ser usados para fins de produção ou de investigação. Se usado para fins
produtivos pode efetuar prevenção, detecção ou auxiliar na resposta de um ataque. Já quando
usado para fins de investigação, será efetuado coleta de informações, para estudar as
atividades do atacante, ou alerta e prevenção de ataque ou trafego malicioso. Normalmente
honeypots de alta interatividade são usados para fins de investigação e honeypots de baixa
interatividade para fins produtivos.
Uma das aplicações de honeypots é a ajuda contra ataques automatizados como worms.
Estes ataques podem ser resumidos em varrer redes à procura de sistemas vulneráveis. Caso
encontre algum sistema vulnerável, esse tipo de ferramenta automatiza o ataque, e em seguida
assume o controle do sistema. Nessa situação, uma medida contra worms é retardar a
27
varredura, podendo até pará-los. Pois quando esses honeypots são alvo de varreduras, a
interação com o atacante se torna mais lenta. Isso é feito usando truques TCP como o
tamanho de janela zero, caracterizando-o em um padrão de exploração, com isso pode-se
retardar ou impedir a propagação de um worm[5]. Honeypots de baixa interatividade podem
ser usados também para confundir invasores humanos, ao fazê-los perderem tempo com os
serviços limitados. Mesmo que um atacante saiba que uma instituição faça uso de uma solução
de honeypots, ele ficará intimidado, pois ele não saberá quais são os serviços ou sistemas reais,
e quais são os do honeypot. Assim, o ataque pode ser identificado pelo honeypot.
Outras aplicação de honeypots, é o uso destes mecanismos para resposta a incidentes. Por
exemplo, se uma empresa tem um serviço crítico sendo executado em uma máquina que foi
alvo de algum ataque, como fazer uma boa analise forense se este serviço não pode ficar
offline? A alternativa é realizar a analise forense com o serviço em produção o que pode
comprometer a analise. Honeypots são de grande valor em situações como a anterior, porque
podem ser usados em paralelo com os sistema reais, possibilitando, assim, se fazer uma melhor
analise destes honeypots para verificar o impacto de incidentes a sistema que executa um
serviço crítico. Visto que pode-se subir ou descer serviços de honeypots, pois os mesmos não
deveriam ter nenhum trafego de rede.
3.1 Honeyd
A interação do Honeyd com os atacantes é limitada apenas ao nível de rede. Por isso, ao
invés de simular todos os aspectos de um sistema operacional, simula sua pilha TCP/IP. O
Honeyd precisa fazer com que seus honeypots virtuais operem em múltiplos endereços IP
simultaneamente, de maneira a preencher a rede com vários honeypots virtuais, simulando
diferentes sistemas operacionais e serviços. A fim de aumentar o realismo da simulação, este
framework é capaz de simular topologias de rede, o que dá suporte a tunelamento e
mecanismo de balanceamento de carga.
3.1.1 Recursos
Logo abaixo é apresentado alguns recursos do Honeyd de acordo com Neil Provos [1].
Foi utilizado neste trabalho o daemon Arpd, pois é a alternativa indicada como tools no
site oficial do Honeyd11.
12 FingerPrinting é uma coleta passiva dos atributos de configuração de um dispositivo computacional, por meio de uma
rede de computadores.
31
O Honeyd usa a base de dados do fingerprinting do próprio Nmap como referência para o
comportamento dos protocolos TCP e UDP. Por outro lado, a base de dados do Xprobe, é
usada como referência para o comportamento do protocolo ICMP.
create default
3.1.2.1 Comandos
◦ open significa que as portas estão abertas por padrão, afeta pacotes UDP ou TCP.
◦ reset indica que todas as portas são fechadas por padrão. Se for para para o
protocolo UDP, o honeypot responderá com uma mensagem ICMP de destino
inalcançável. Se for TCP, responderá um RST ao pacote SYN.
O Honeyd suporta várias maneiras de registro de log. As quais podem ser divididos em
dois níveis: os logs a nível de conexão (eventos referentes a camada de rede e transporte) e os
logs que registram atividades dos serviços (ou seja os eventos da aplicação, sendo seu formato
definido por cada serviço).
Origem Destino
Data Protocolo T Info Cometario
IP Porta IP Porta
02/04/10 15:35 tcp(6) S 10.3.6.139 1827 10.1.2.124 3128 [Windows XP SP1]
02/04/10 15:35 tcp(6) - 10.3.6.139 4378 10.1.2.84 8080 48 S [Windows XP SP1]
02/04/10 15:36 tcp(6) - 10.4.7.196 2671 10.1.2.175 2380 40 RA [FreeBSD 5.0-5.1]
02/04/10 15:39 tcp(6) E 10.3.6.139 1827 10.1.2.123 3128 9950 240
02/04/10 15:40 Icmp(1) - 10.3.5.182 10.1.3.99 11(0): 56
A primeira coluna (Data) apresenta o momento em que o o pacote foi recebido pelo
Honeyd. Já a segunda coluna (Protocolo) contém informações sobre o protocolo utilizado,
geralmente TCP, UDP ou ICMP. A terceira coluna (T) exibe o tipo de conexão, que pode ser:
S para inicio de conexão, E para fim de conexão, e - para representar que não há nenhuma
conexão estabelecida. As quatro colunas seguintes são atribuídas a informações sobre IP e
porta (IP de origem, IP de destino, porta de origem e porta de destino), sendo que para alguns
protocolos essa coluna não se aplica, pois eles não utilizam portas (como é o caso do ICMP
que pertence a camada de rede) [8]. A coluna Info contém informações sobre a conexão ou o
pacote, como por exemplo: tamanho do pacote e flags do cabeçalho. A última coluna
(Comentário) contém um palpite sobre o sistema operacional que originou a conexão ou
tentou se conectar ao honeypot com base no fingerprinting.
3.2 Honeycomb
Honeycomb é um sistema para geração automáticas de assinaturas para NIDS's. Esse sistema é
um extensão para o honeypot de código aberto Honeyd e tem suporte as assinaturas do Snort
e Bro, que são os NIDS's de código aberto mais conhecidos. A pequena abrangência de IDS's
suportados deve-se porque não há um padrão definido para as assinaturas. Logo, cada IDS
possui um padrão diferente para suas assinaturas.
A integração do Honeycomb com o Honeyd tem muitas vantagens sobre uma abordagem
que captura tráfego direto na rede. A primeira delas é que não há duplicação de esforço: pois
o Honeyd acessa o tráfego de rede, inspecionando o tráfego por meio do uso da biblioteca
libcap e passando pacotes relevantes as pilhas de rede dos hosts simulados e eventualmente
para sistemas configurados. Logo, poupa-se esforço visto que, uma vez que se faz uso de
pacotes que já foram transferidos para o espaço do usuário [9].
Tem-se também a vantagem pelo fato de não existir o problema de cold-start, uma vez
que não existe a dessincronização do estado atual das conexões. Porque quando o Honeyd
recebe um pacote que inicia uma nova conexão, o Honeycomb fica sabendo que a mesma
conexão foi iniciada. A questão de perder o início de uma conexão deixa de ser um problema,
que é comumente encontrado em sistemas que rastreiam o tráfego de rede diretamente para a
inspeção do tráfego [9].
35
O Honeycomb mantém o estado para um número limitado de conexões TCP e UDP 14, o
qual possui peculiaridades com relação a maneira de manter os estados das conexões de rede.
Como o objetivo é gerar assinaturas a partir da comparação do novo tráfego que chega ao
honeypot com aos tráfego vistos anteriormente, não se pode apagar todos os estados de
conexões imediatamente quando uma conexão é terminada (o que pode ocorrer pelo cliente ou
servidor). Ao invés disso, marcam-se apenas as conexões como terminadas, mas as mantém o
maior tempo possível, ou até ter certeza que não será benéfico armazená-las por mais tempo.
Conexões que trocam uma quantidade grande de informação são potencialmente mais
valiosas para detectar padrões de tráfego novos. Porém, o sistema também precisa prevenir
que port scans transbordem a capacidade das tabelas hash de conexões, o que pode causar a
perda de conexões valiosas. Por isto, tanto conexões UDP como TCP são armazenadas em
dois estágios: primeiro as conexões são armazenadas em uma tabela handshake e, se ocorrer
troca de pacotes na conexão, são então movidas posteriormente para uma tabela established.
Por exemplo, uma tipica requisição HTTP é armazenada em duas mensagens: uma para o
HTTP request (requisição) e uma para o HTTP reply (resposta). Para o UDP é similar,
mensagens são criadas para todos os payloads15 que vem em uma direção, desprezando-se
quaisquer outros dados de outra direção, como mostra a Figura 3.2.
14 Quando é falado de conexões UDP, deseja-se referir a pacotes trocados entre os mesmos pares de endereço IP e porta.
15 Payload, ou carga útil, refere-se ao dado real sendo transmitido. É seguido por um cabeçalho que identifica o
transmissor e o receptor do dado sendo transportado, e é descartado ao chegar no destinatário.
36
A análise do protocolo de rede é feita nos níveis da camada de rede (IP) e transporte
(TCP e UDP), usando técnicas de header-walking utilizadas em processos de normalização de
tráfego. No lugar de anomalias detectadas corretamente, são armazenadas a assinatura em si,
como por exemplo os deslocamentos (offset) inválidos de fragmentação IP e combinações não
usuais de flags TCP. Para realizar essas checagens, o Honeycomb não precisa fazer qualquer
comparação com os pacotes visto por ele anteriormente.
Após essas verificações, o Honeycomb faz então a comparação de cabeçalhos com cada
conexão do mesmo tipo (TCP ou UDP) atualmente armazenada. Se a conexão armazenada já
foi movida para o segundo nível da tabela hash, então o Honeycomb tenta olhar a mensagem
correspondente e usar os cabeçalhos associados com a mensagem. Se algum tipo de
sobreposições (como identificadores IP ou faixa de rede) são detectadas, a análise de
assinaturas é clonada e torna-se específica para os fluxos comparados. Os fatos descobertos
são então armazenados na forma de uma nova assinatura.
O conteúdo das assinaturas geradas são enviados periodicamente para o módulo de saída
que implementa o formato dos registros de assinaturas. Durante o desenvolvimento deste
trabalho, apenas os módulos que convertem os registros da assinatura nos formatos lidos pelo
Bro16 e Snort 17, e um módulo que escreve as strings das assinaturas em um arquivo estavam
implementados.
16 Bro - http://www.bro-ids.org/
17 Snort - http://www.snort.org/
4 PROPOSTA
Foi feita a escolha por honeypots de baixa interatividade devido a vários fatores como: a
possibilidade de aprender os conceitos básicos envolvidos nos ataques de forma mais simples
do que a requerida na análise de incidentes de honeypots de alta interatividade, os recursos
computacionais disponíveis para a realização dos experimentos, o menor custo de manutenção
e devido a melhor adequação do contexto da rede onde foram instalados.
O primeiro item executado para a montagem do ambiente foi a alocação de uma máquina
física para à execução do experimento. Como dito na Fundamentação Teórica, os honeypots
de baixa interatividade não necessitam de uma máquina que tenha um alto poder de
processamento e/ou grande capacidade de memória, com isso pode-se usar máquinas que já
não são mais adequadas para ambientes de produção. O qual foi o caso neste trabalho, a
máquina utilizada já não fazia parte das máquinas alocadas para ambiente de produção,
pertencia a um dos laboratórios de informática do campus Serra, porém foi substituída. Suas
configurações incluem o processador Intel Pentium 4 de 3.0GHhz e 1GB de memória RAM.
Estas configurações são mais do que suficientes para a execução do Honeyd.
O sistema operacional utilizado foi a distribuição GNU/Linux CentOS 5.4, pois a mesma
possibilitou a instalação do Honeyd com a integração do plugin Honeycomb, sem que
houvessem problemas de segmentation fault, como constatado no Debian GNU/Linux versão
5.0.
38
Foi disponibilizado pelo Ifes uma sub-rede /28 (que contém 16 endereços IP), porém só
podem ser utilizados 14 (quatorze) endereços IP, sendo o primeiro alocado para endereço de
rede e o último para endereço de broadcast. Dentre os 14 (quatorze) endereços IP validos,
foram utilizados nesse trabalho 10 (dez), pois os outros 4 (quatro) endereços foram
disponibilizado para outros projetos. Portanto, a subdivisão destes 10 (dez) IP's foi feita da
seguinte forma: um endereço para a máquina física (que hospedará o Honeyd e suas
“emulações”) e outros 9 (nove) IP's serão destinados aos templates do Honeyd, conforme
pode ser visto na Figura 4.1.
Para que os honeypots virtuais gerenciados pelo Honeyd pudessem receber as requisições
de atacantes externos foi necessário que o tráfego destinado aos endereços IP's dos quais eles
estavam configurados fosse direcionado para a máquina física. Dentro deste contexto foi
utilizado o ARPd, que é um daemon cuja tarefa é responder às requisições ARP, realizadas
para descobrir qual máquina responderá por determinado endereço IP. Assim, o ARPd produz
o pacote ARP de resposta e diz que a interface da máquina física pode responder a requisições
referentes a determinado endereço IP configurado para um honeypot virtual do Honeyd.
Quando o pacote chega até a interface da máquina física, o Honeyd pode então capturá-lo e
fazer as devidas operações com o mesmo, seja abrir, manter, fechar uma conexão, ou ainda
repassar o pacote para determinado serviço que esteja configurado.
O plugin Honeycomb foi compilado separadamente e depois integrado ao Honeyd. Ele foi
utilizado apenas para verificar o funcionamento do mecanismo de plugins do Honeyd e para
avaliar como ocorre a geração de assinaturas de detecção de intrusão e as razões para geração
deste tipo de assinaturas.
4.2 Ganhos
Dentre os ganhos do uso desta ferramenta pode-se notar o baixo custo de tempo, tanto
para implementação quanto para a manutenção, visto que não é necessário um
acompanhamento constante para evitar o comprometimento do sistema, como acontece em
honeypots de alta interatividade.
Como é utilizado um honeypot virtual, tem-se o economia de hardware, pois pode-se ter
vários templates de diferentes sistemas operacionais no mesmo sistema real.
Pelo fato do Honeyd consumir poucos recursos de hardware, foi possível emular os 10
(dez) templates utilizados para povoar a rede disponível para este trabalho em uma mesma
máquina física. E mesmo com o Honeyd e o plugin Honeycomb a carga máxima do sistema
real não ultrapassou 9% e carga média 0.9%.
40
É importante ressaltar que toda rede a qual os honeypots faziam parte não deveriam
receber qualquer tipo de tráfego, pois não se tratava de uma rede de produção. Logo, assumiu-
se que todo o tráfego direcionado aos endereços IP alocados aos honeypots eram tentativas de
ataque/intrusão.
Para análise do arquivo de log gerado pelo Honeyd foi utilizado a ferramenta Sawmill18,
pois o tamanho do arquivo de log analisado foi de 28 MB. Foram feitos testes com o
Honeyview e o Honeysum, que são indicados como tools no site oficial do Honeyd para gerar
gráficos de seus logs, porém no quesito qualidade dos gráficos e organização das informações
o Sawmill demonstrou melhores resultados.
A primeira análise realizada foi a do número de pacotes recebido por dia pelos honeypots
durante os 40 dias de observação. A qual pode-se observar de acordo com a Figura 5.1. Já a
Tabela 2 mostra os dias com maior trafego de pacotes referentes ao período de coleta de
dados.
Com base na Tabela 2 pode-se notar a grande diferença entre os três dias com maior
trafego (28, 27 e 19 de Março) e a média de tráfego(8.847 pacotes por dia) de todo o período
de coleta. Por isso, optou-se posteriormente por fazer uma análise pontual desses dias para
tentar descobrir algumas características dos ataques que neles ocorreram.
Por conseguinte, foi examinado o número de pacotes recebidos em relação aos dias da
semana. A Figura 5.2 exibe o comparativo a quantidade de pacotes recebidos pelos honeypots
virtuais em relação a este critério. Com base nesta figura, pode-se notar que os números de
pacotes recebidos em um dia não se difere tanto se comparado a algum outro dia da semana.
Logo, pode-se concluir que os ataques não tiveram um dia especifico para acontecer,
principalmente pelo fato de em sua maioria serem automatizados.
43
Na Figura 5.3 demonstra a relação quanto à distribuição dos pacotes recebidos em relação
a hora do dia. Nesta relação, é notória a queda em relação aos pacote recebidos no período
entre 2:00 e 7:00 horas. Uma possível justificativa é obtida analisando os seguintes tópicos:
• Mais de 78% dos ataques são originados por maquinas com Windows XP
SP1.
Figura 5.3: Histograma relativo ao número de pacotes recebidos pelos honeypots em relação a hora do dia.
19 Botnets são uma coleções de robôs que atuam sob um único gerenciamento, se tornaram uma ameaça importante à
segurança da rede.
20 O ultimo SP (Service Pack) do Windows XP é o SP3.
44
A Tabela 3 contém estatísticas em relação aos protocolos mais utilizados. Note que há
protocolos da camada de transporte (TCP e UDP) e protocolos da camada de rede (ICMP e
IGMP).
Pacotes
Protocolo
Numero Porcentagem
TCP(6) 247,304 73.2 %
ICMP(1) 52,224 15.5 %
UDP(17) 38,266 11.3 %
IGMP(2) 28 0.0 %
De acordo com a Tabela 3 o protocolo com mais pacotes recebidos é o TCP (73,2%),
isso devido a esse protocolo ser muito utilizado por worms e port scan. Por outro lado,
pacotes UDP, que neste trabalho representaram 11.3%, são normalmente utilizados em
ataques de negação de serviço.
Pacotes ICMP representaram 15,5% do total de pacotes recebidos; neste caso não há
como determinar o motivo de seu uso uma vez que eles podem ser utilizados desde para a
varredura de hosts a partir de ping feitos por usuários (ou worms) até ataques de negação de
serviço baseados no envio de pacotes ICMP.
Apenas uma pequena parcela dos pacotes (28 pacotes) foram relativos ao protocolo
IGMP. Com base nesse protocolo não é possível afirmar a natureza destes pacotes uma vez
que o Honeyd apenas registra poucas informações sobre eles. As vulnerabilidades mais
comuns que utilizam esse tipo de protocolo estão relacionadas a falhas na família de sistemas
operacionais Windows.
A Tabela 4 lista os países que mais enviaram pacotes para os honeypots. Note que apesar
desta lista, o verdadeiro controlador dos ataques pode não pertencer aos países listados
abaixo, o mesmo pode ter comprometido hosts dos países listados para só então atingir o alvo.
45
Um outro aspecto analisado foi a quantidade de pacotes recebidos por cada honeypot
virtual criado. A Tabela 5 mostra exatamente o percentual de pacotes recebidos por cada
endereço IP dos honeypots virtuais.
IP Porcentagem
a.b.c.3 25.2 %
a.b.c.5 21.8 %
a.b.c.8 9.3 %
a.b.c.10 8.4 %
a.b.c.4 8.0 %
a.b.c.9 7.7 %
a.b.c.11 7.1 %
a.b.c.7 6.8 %
a.b.c.6 5.7 %
46
O próximo quesito avaliado foi a relação de pacotes recebidos com as 10 (dez) portas de
destino que receberam maior tráfego, como mostra a Tabela 6.
Portas Pacotes
445 24.6 %
139 20.0 %
1433 13.4 %
22 6.1 %
137 3.2 %
135 2.7 %
8080 2.1 %
80 1.8 %
138 1.4 %
4899 1.2 %
A porta 445 é utilizada pelo SMB (Server Message Block) em sistemas Windows. Esse
serviço possibilita o compartilhamento de arquivos entre sistema Windows. É também
utilizadas por trojans e backdoors como: Nimda, Lioten, Sasser e Spybot.
As portas 137, 138 e 139 são utilizadas pelo serviços de NetBIOS do Windows. O
NetBIOS fornece um conjunto uniforme de comandos para solicitação de serviços de baixo
nível, exigidos para gerenciar nomes, orientar sessões e enviar datagramas entre os nós de uma
rede. Um exemplo de uso malicioso destas portas é quando o atacante faz ataques de DDOS
as sessões de NetBIOS. Mas também pode ser usado por ferramentas de invasão como:
Chode, Nimda, Msinit e Bugbear.
A porta 1433 é utilizada normalmente pelo serviço Microsoft SQL Server para edições
para desktop, que são geralmente fornecidas com outras aplicações da Microsoft. Um dos
worms que explora esta porta é o Slammer, cujo seu pico de atividade ocorreu no ano de
2003.
47
A porta 22 é a porta padrão utilizada pelos servidores SSH. É utilizada também por
trojans como o Adore SSHD e o Shaft.
A porta 135 é usada pelo DCE/RPC Locator service (que é usado para gerenciar
remotamente serviços como o servidor DHCP, DNS e WINS). Um exemplo de worm que
utiliza essa porta é o Blaster, sendo seu período de maior propagação entre os anos de 2003 a
2005.
As portas 80 e 8080 são utilizadas normalmente por servidores Web (como exemplo
Apache, Microsoft IIS e o Apache Tomcat).
A porta 4899 é uma das portas utilizadas pelos serviços de controle/acesso remoto VNC e
Radmin.
Outro item avaliado foi a relação dos 10 (dez) sistemas operacionais que mais originaram
ataques. Como base na Tabela 7, pode-se notar que a grande maioria dos ataques, onde foi
possível realizar a resolução remota do sistema operacional do host através da base de
fingerprinting do Nmap ou do Xprobe, eram provenientes de sistemas Windows. Em menor
escala temos Linux e outros sistemas operacionais como Solaris e FreeBSD.
O fato de que a maioria dos pacotes recebidos terem sido originados de sistemas
Windows é coerente a lista de portas mais utilizadas para os ataques como mostra a Tabela 6,
pois a maioria está ligada a serviços que executados exclusivamente em estações Windows.
Após restringir a análise do arquivo de log à parte relativa aos ataques ocorridos no dia
28/03/2010, procurou-se analisar os outros campos afim de descobrir que tipo de ataque
ocasionou o número de ataques maior do que o dobro da média de pacotes recebidos por dia,
que é de 8.847.
Ao utilizar essas estatísticas extraídas por meio da ferramenta de leitura de logs Sawmill,
detectou-se que dos 17.850 pacotes recebidos, 69,9% desses utilizavam o protocolo TCP,
enquanto 24,5% utilizavam UDP e apenas 5,6% eram de mensagens ICMP. Foi também
verificado que a maioria dos pacotes (65,3%) teve como destino o IP a.b.c.3, mas não foi
possível determinar a razão deste comportamento, visto que havia outro template com as
mesmas configurações e esse obteve praticamente o mesmo percentual de pacotes recebidos
do que os demais endereços IP alocados a este trabalho.
Ao analisar os endereços IP de origem dos pacotes, observou-se que 23,2% deles vieram
do endereço 187.113.92.167, que é um endereço IP de origem brasileira, mais especificamente
do estado do Espirito Santo. No momento do ataque a máquina alocada a este IP utilizava o
sistema operacional com kernel Linux 2.6.1-7.
As portas que mais receberam pacotes foram a 445/TCP e 139/TCP, com respectivamente
10,7% e 10,6% do total de pacotes recebidos. Os serviços Windows que utilizam essas portas
tem um longo histórico de vulnerabilidades exploradas, um exemplo seria o Conficker.
Neste dia foi recebido pacotes originados de sistemas FreeBSD e NetBSD, porém ambos
juntos não ultrapassam o percentual de 0,1% do total de pacotes recebidos.
49
Ao analisar esses logs, nota-se que dos 17.315 pacotes recebidos neste dia, 52,6% desses
utilizavam o protocolo TCP, enquanto 39,6% utilizavam UDP e apenas 7,8% eram de
mensagens ICMP. A maioria dos pacotes (51,6%) teve como destino o IP a.b.c.3, mas
também não foi possível determinar a razão deste comportamento, visto que havia outro
template com as mesmas configurações e esse obteve praticamente o mesmo percentual de
pacotes recebidos do que os demais endereços IP alocados a este trabalho.
Neste dia foi recebido pacotes originados de sistemas como NetBSD, SunOS e
ExtremeWare, porém juntos não ultrapassam o percentual de 0,3% do total de pacotes
recebidos.
Após restringir a análise do arquivo de logs à parte relativa aos ataques ocorridos no dia
19/03/2010, procurou-se analisar os outros campos afim de descobrir que tipo de ataque
50
ocasionou o número de ataques próximo ao dobro da média de pacotes recebidos por dia, que
é de 8.847.
Utilizando então as estatísticas, detectou-se que dos 17.245 pacotes recebidos, 87,4%
desses utilizavam o protocolo TCP, enquanto 7,8% eram de mensagens ICMP e apenas 4,8%
utilizavam UDP. Foi também verificado que os pacotes foram recebidos por todos os
honeypots virtuais em nível praticamente equivalente.
Após a observação da maior parte dos pacotes terem sido originados pelo endereço IP
200.168.125.31, foi feito então uma analise das portas que receberam maior quantidade de
pacotes originados deste IP. Porém, nenhuma das portas receberam uma quantidade de
pacotes superior a 0,1% do total. Devido os pacotes terem como origem mais de 5.015 portas
diferentes e nenhuma delas recebeu mais do que 0,1% do total de pacotes, pode-se concluir
que este IP efetuou um ataque de varredura de portas, a fim de identificar vulnerabilidades.
O único sistema operacional diferente do família Microsoft Windows que originou ataque
neste dia foi o Linux versão do kernel 2.6.1-7, que foi responsável por 2,3% do total de
pacotes recebidos. Dentre os ataques originados por sistemas Linux, 81,1% dos ataques foram
originados pelo endereço IP 201.6.118.136, endereço esse pertencente a uma empresa de
internet a cabo, também de São Paulo – Brasil. Quanto a porta de destino que mais recebeu
pacotes originados de maquinas Linux foi a porta 22/TCP com 92,8% dos pacotes .
Possivelmente um ataque com o propósito de explorar os servidores SSH que usam a porta 22
como padrão em sistemas Unix-like.
multicast, gerados por algumas máquinas que pertenciam a mesma sub-rede onde foram feitos
os experimentos.
6 CONSIDERAÇÕES FINAIS
6.1 Considerações
Foi constatado o quão exposta está uma máquina com acesso direto a internet, sem
proteções como firewall, antivírus e outros mecanismos de segurança. Pois no ambiente
montado para o experimento no primeiro dia, obteve por exemplo um número de pacotes
próximo a média total (8.847 pacotes por dia), já no segundo dia foi obtido um número de
pacotes maior do que a média total.
Analisando os resultados obtidos neste trabalho, conclui-se ainda que o aumento atual das
ameaças de segurança é um fator decisivo para que a instituição se preocupe cada vez mais
com a a segurança da rede e justifique um maior incentivo de novos trabalhos nessa área e no
uso da tecnologia de honeypots.
[1] Neil Provos; Thorsten Holz. Virtual Honeypots: From Botnet Tracking to Intrusion
Detection, Addison Wesley Professional, 2007. ISBN 978-0-321-33632-3
[2] The Honeynet Project. Know Your Enemy: Revealing the Security Tools, Tactics, and
Motives of the, Addison Wesley Professional, 2001. ISBN 978-0201746136.
[3] Honeynet Project. Research Alliance, Know Your Enemy: Honeywall CDROM, 2005.
Acessado em 23 de agosto de 2010. Disponível em:
<http://old.honeynet.org/papers/cdrom/roo/index.html>.
[4] Lance Spitzner. Honeypots: Tracking Hackers, Addison Wesley, 2002. ISBN 0321108957.
[5] Lance Spitzner. Honeypots Definitions and Value of Honeypots, 2003. Acessado em 23 de
agosto de 2010. Disponível em: <http://www.tracking-hackers.com/papers/honeypots.html>.
[6] Roger A. Grimes. Honeypots for Windows, Apress, 2005. ISBN 1590593359.
[7] Honeynet Project. Know Your Enemy: Honeynets, 2006. Acessado em 23 de agosto de
2010. Disponível em: <http://old.honeynet.org/papers/honeynet/>.
INTRODUÇÃO
Esse guia de instalação e configuração do Honeyd com plugin Honeycomb tem como
objetivo prover, instruções simples de como instalar o Honeyd e o Honeycomb de forma
rápida e precisa, tendo em vista uma eventual implementação de um honeypot de baixa
interatividade. Avaliei ser necessária tal abordagem para que, com os códigos de exemplo que
fazem parte de nosso modelo de instalação, seja possível familiarizar-se rapidamente com a
ferramenta e suas possibilidades. Nos capítulos finais, são apresentadas configurações
sugeridas para o Honeyd.
PRÉ-REQUISITOS
SISTEMA OPERACIONAL
PACOTES REQUERIDOS
• Compilador Python
• Compilador Perl
Você pode usar gerenciador de pacotes YUM para instalá-los, seguindo os comandos
abaixo:
INICIANDO A INSTALAÇÃO
#> cd ~/downloads
#> cd libevent-1.4.8-stable
Rode o script de configuração da biblioteca Libevent, passando o diretório onde será feita
a instalação, da seguinte maneira:
58
#> make
Instale os binários
#> cd ..
#> http://prdownloads.sourceforge.net/libdnet/libdnet-
1.11.tar.gz?download
#> cd libdnet-1.11
Rode o script de configuração da biblioteca Libdnet, passando o diretório onde será feita
a instalação, da seguinte maneira:
#> make
Instale os binários:
#> cd ..
INSTALAÇÃO DO HONEYD
#> cd honeyd-1.5c
#> make
Instale os binários:
#> cd ..
#> cd libstree-0.4.2
#> ./configure
#> make
62
Instale os binários:
#> cd ..
INSTALAÇÃO DO HONEYCOMB
#> cd honeycomb-0.7
#> make
Instale os binários:
#> cd honeyd
#> make
Instale os binários: