FATEC SÃO JOSE DOS CAMPOS
FLAVIO LUCIO ARAYA MOREIRA
ANÁLISE DE TRÁFEGO EM REDES TCP/IP NA DETECÇÃO DE INTRUSÃO
SÃO JOSÉ DOS CAMPOS
2009
I
FLAVIO LUCIO ARAYA MOREIRA
ANÁLISE DE TRÁFEGO EM REDES TCP/IP NA DETECÇÃO DE INTRUSÃO
Trabalho de graduação apresentado à FATEC
de São José dos Campos, como parte dos
requisitos necessários para a obtenção do título
de Tecnólogo.
Orientador: Esp. Renan França Gomes Nogueira
SÃO JOSÉ DOS CAMPOS
2009
II
FLAVIO LUCIO ARAYA MOREIRA
ANÁLISE DE TRÁFEGO EM REDES TCP/IP NA DETECÇÃO DE INTRUSÃO
Trabalho de graduação apresentado à FATEC
de São José dos Campos, como parte dos
requisitos necessários para a obtenção do título
de Tecnólogo.
_______________________________________________
Dr. José Carlos Lombardi
_______________________________________________
Me. Carlos Henrique Lourenço Feichas
_______________________________________________
Esp. Renan França Gomes Nogueira
___/___/___
DATA DE APROVAÇÃO
III
A minha família, aos meus colegas e
meus animais de estimação.
IV
Agradecimentos
Agradeço ao professor e orientador Renan França Gomes Nogueira pelo apoio no
desenvolvimento deste trabalho e ao demais professores pelo conhecimento compartilhado.
Aos colegas da faculdade pela ajuda mútua ao longo desses anos na faculdade.
A família pela força e incentivo em todos esses anos.
E a Deus que me guiou durante estes anos de luta e dedicação.
V
“Não existe um caminho para a felicidade.
A felicidade é o caminho”
Mahatma Gandhi
VI
RESUMO
Conforme os meios de comunicações avançam, facilitando assim a vida do homem, surgem
problemas com relação a sua má utilização ou simplesmente por falta de conhecimento destes
sistemas. Visando prevenir e corrigir esses problemas é necessária a conscientização dos usuários
e a utilização de ferramentas que protejam os sistemas informatizados assim como a informação
propriamente dita. Essas ferramentas são conhecidas como firewalls, antivírus e IDS (Intrusion
detection system). IDS ou sistemas de detecção de intrusão são projetados para detectar ataques a
uma rede ou computador, comunicando o administrador da rede através de alertas a fim de evitar
maiores prejuízos para a empresa ou para o utilizador do sistema. A cada dia que passa a
quantidade de ataques se intensificam tornado assim, um IDS, uma ferramenta indispensável em
uma rede. Para este trabalho optou-se pela ferramenta freeware Snort. Esta ferramenta foi
submetida a uma seqüência de ataques, rodando em um ambiente virtual, projetado para este fim.
Ao final dos testes, foram verificados os resultados obtidos, a fim de constatar a eficiência da
ferramenta, demonstrando que através da análise de tráfego em redes TCP/IP é possível detectar
comportamentos anômalos, tentativas de intrusão e ataques.
VII
ABSTRACT
As mass media advances, making man's life easier, problems arrive concerning the miss
utilization or simply the lack of knowledge about such systems. Aiming to prevent and correct
those problems the critical consciousness of the users is needed, as well as the use of tools that
protect the information systems and the information itself. Such tools are known as firewalls,
antivirus, and IDS. IDS or intrusion detection systems are built to detect attacks towards a
network or computer, alerting the network administrator through alarms in order to avoid bigger
damages to the company or user. The quantity of attacks is intensified as time passes, making an
IDS an indispensable tool on a network. For this work the freeware most worldwide used tool,
Snort, was chosen. This tool was submitted to several attacks while operating on a virtual
environment designed for the tests. At the end of the tests the obtained results were presented in
order to give proof of the tool's efficiency, it was shown that with TCP/IP networks
traffic analysis it is possible to detect abnormal behaviors, attempts to invade and attacks.
VIII
LISTA DE FIGURAS
1.1
Novas assinaturas de códigos maliciosos.............................................................12
2.1
Os 4 níveis conceituais da tecnologia TCP/IP e os objetos que trafegam
entre níveis ............................................................................................................15
2.2
Vários protocolos nas diferentes camadas da tecnologia TCP/IP ...................17
2.3
Datagrama IP, mostrando os campos no cabeçalho IP ....................................19
2.4
Formato da mensagem ICMP .............................................................................20
2.5
Tipos e códigos de um Pacote ICMP ..................................................................21
2.6
Formato da mensagem UDP ...............................................................................23
2.7
Formato da mensagem TCP ................................................................................24
2.8
Estabelecimento de uma conexão TCP ..............................................................25
2.9
Encerramento de uma conexão TCP ..................................................................26
3.1
Sistema de Detecção por Abuso ..........................................................................35
3.2
Sistemas de Detecção de intrusão baseados em rede ........................................36
3.3
Sistema de Detecção baseado em Hosts ..............................................................38
3.4
Sistema de Detecção de Intrusão Distribuído ....................................................39
3.5
Arquitetura do Snort ...........................................................................................41
3.6
Esquema de funcionamento de um farejador de pacotes .................................41
3.7
Pré-Processador do Snort ....................................................................................42
3.8
Mecanismo de Detecção .......................................................................................43
3.9
Cabeçalho de uma regra do Snort.......................................................................45
4.1
Arquitetura cliente-servidor com servidor Windows .......................................51
4.2
Inteface gráfica do NMAP – Zenmap.................................................................52
4.3
Hydra e suas opções de uso..................................................................................53
4.4
Interface gráfica do Mestasploit Framework.....................................................54
4.5
Software Valhala Honeypot.................................................................................55
4.6
Hping e suas opções de uso...................................................................................55
4.7
Resultados obtidos com o Snort sendo demonstrados no Base.........................58
IX
LISTA DE TABELAS
2.1
Exemplos de protocolos no nível de aplicação e suas respectivas portas.........28
3.1
Opção de Flags TCP no Snort..............................................................................47
4.1
Resultados Obtidos...............................................................................................57
4.2
Resultado da análise de geração de falsos positivos...........................................59
X
LISTA DE SIGLAS E ABREVIATURAS
ARP: Address Resolution Protocol
CPU: Central Processor Unit
DIDS: Distributed Intrusion Detection System
DNS: Domain Name System
FTP: File Transfer Protocol
HIDS: Host Intrusion Detection System
HTTP: Hyper Text Transfer Protocol
IANA: Internet Assigned Numbers Authority
ICMP: Internet Control Message Protocol
IDS: Intrusion Detection System
IMAP: Internet Message Access Protocol
I/O: Input/Output
IP: Internet Protocol
MAC: Media Access Control
NIC: Network Interface Card
NIDS: Network Intrusion Detection System
NFS: Network File System
NTP: Network Time Protocol
POP: Post Office Protocol
RARP: Reverse Address Resolution Protocol
RFC: Request for Comment
RPC: Remote Procedure Call
SMTP: Simple Mail Transfer Protocol
SNMP: Simple Network Management Protocol
SSH: Secure Shell
TCP: Transmission Control Protocol
UDP: User Datagram Protocol
XI
SUMÁRIO
1
INTRODUÇÃO.....................................................................................................13
1.1
Motivação...............................................................................................................13
1.2
Objetivos................................................................................................................14
1.2.1
Objetivo Geral.......................................................................................................14
1.2.2
Objetivos Específicos............................................................................................14
1.3
Metodologia...........................................................................................................14
1.4
Organização do Trabalho.....................................................................................15
2
TCP/IP....................................................................................................................16
2.1
Camadas do Modelo TCP/IP...............................................................................16
2.2
Protocolos de resolução de endereço ARP e RARP...........................................18
2.3
Protocolo IP...........................................................................................................19
2.4
Protocolo ICMP.....................................................................................................21
2.5
Protocolo UDP.......................................................................................................23
2.6
Protocolo TCP.......................................................................................................24
2.6.1
Estabelecimento de uma conexão TCP...............................................................25
2.6.2
Encerramento de uma conexão TCP...................................................................26
2.7
Protocolos de Aplicação........................................................................................27
2.8
Considerações Finais.............................................................................................30
3
SEGURANÇA EM REDES E IDS......................................................................31
3.1
Confidencialidade, Integridade e Disponibilidade.............................................31
3.2
Ameaças.................................................................................................................32
3.3
Objetivos da segurança.........................................................................................32
3.4
IDS..........................................................................................................................33
3.4.1
Detecção de intrusão por anomalia.....................................................................34
3.4.1.1
Abordagem estatística...........................................................................................34
3.4.1.2
Abordagem por prognósticos de padrões...........................................................35
3.4.2
Detecção de intrusão por abuso...........................................................................35
3.4.3
Classificação de Sistemas de Detecção de Intrusão por Funcionalidade........36
3.4.3.1
Sistemas de Detecção baseados em rede.............................................................36
XII
3.4.3.2
Sistemas de Detecção baseados em Host.............................................................38
3.4.3.3
Sistemas de Detecção Distribuídos......................................................................39
3.4.4
Snort.......................................................................................................................41
3.4.4.1
Farejador...............................................................................................................42
3.4.4.2
Pré-Processador...................................................................................................43
3.4.4.3
Mecanismo de detecção........................................................................................44
3.4.4.4
Componente de Alerta\Registro..........................................................................45
3.4.4.5
Regras no Snort.....................................................................................................45
3.4.4.6
Ação da Regra.......................................................................................................46
3.4.4.7
Protocolos...............................................................................................................47
3.4.4.8
Opções de Regras..................................................................................................47
3.5
Honeypots..............................................................................................................49
3.5.1
Honeypots de baixa Interatividade......................................................................49
3.5.2
Honeyposts de alta Interatividade.......................................................................50
3.6
Considerações Finais.............................................................................................50
4
ANÁLISE DE TRÁFEGO EM REDES TCP\IP................................................51
4.1
Arquitetura de teste..............................................................................................51
4.2
O ambiente de teste...............................................................................................52
4.3
Casos de Teste........................................................................................................57
4.4
Tipos de Ataques utilizados..................................................................................57
4.5
Resultados obtidos.................................................................................................58
4.6
Considerações Finais.............................................................................................60
5
CONCLUSÃO.......................................................................................................62
5.1
Experiências Obtidas............................................................................................62
5.2
Trabalhos Futuros.................................................................................................63
REFERÊNCIAS............................................................................................................................64
13
1
INTRODUÇÃO
1.1.
Motivação
As redes de computadores representaram um grande avanço nos meios de comunicação,
permitindo a troca de informações em frações de segundos seja em qualquer lugar do globo
terrestre. Contudo surgem problemas com relação à segurança da informação que trafega pela
rede e dos serviços disponíveis na rede.
O Relatório Symantec de Ameaças à Segurança na Internet analisa e discute as atividades das
ameaças ocorridas durante um período de um ano. Ele inclui atividades de ameaças na Internet,
vulnerabilidades, códigos maliciosos, phishing, spams, riscos à segurança e futuras tendências.
A figura 1.1 representa o relatório de ameaças de segurança da Internet da Symantec (publicado
em 2008) e mostra o número de novas ameaças que surgiram desde 2002.
Figura 1.1 – Novas assinaturas de códigos maliciosos
Fonte: Symantec Corporation
14
1.2
Objetivos
Nas sessões a seguir são apresentados os objetivos deste Trabalho.
1.2.1.
Objetivo Geral
O objetivo desse trabalho é demonstrar que através da analise de tráfego em redes tcp/ip é
possível detectar comportamentos anômalos, tentativas de intrusão e o ataque propriamente dito.
1.2.2.
•
Objetivos Específicos
Selecionar ferramentas, sendo estas freeware ou opensource, e utilizar as mais adequadas
para simular ataques e a respectiva detecção de intrusão;
•
Com base nas ferramentas escolhidas, simular ataques em um ambiente de teste;
•
Após a simulação de ataques, analisar os dados obtidos com IDS e verificar a eficácia do
sistema.
1.3
Metodologia
A metodologia utilizada nesta monografia foi baseada em livros de redes de computadores de
renome, de segurança em redes assim como no acesso a sites reconhecidos mundialmente na área
de segurança. Muitas destas referências foram recomendadas por profissionais da área de
15
segurança. As ferramentas utilizadas na execução prática dos testes foram baseadas nessas
referências bibliográficas assim como indicadas por profissionais na área de redes e segurança.
Para tanto, serão utilizados sistemas de detecção de Intrusão que automatizam o processo de
análise de tráfego.
1.4
Organização do Trabalho
Este Trabalho está organizado como segue:
a) O Capítulo 2 apresenta uma visão sobre TCP/IP e mais especificamente os
protocolos que serão utilizados na realização dos ataques.
b) No Capítulo 3 será feita uma apresentação sobre conceitos básicos de segurança
em redes, Honeypots e também sistemas de detecção de intrusão, demonstrando
os tipos de IDS e como é o funcionamento de cada um.
c) O Capítulo 4 mostra a arquitetura de rede e a implementação do que virá a ser o
ambiente de teste onde serão realizados os ataques e as ferramentas utilizadas,
serão apresentados também os resultados obtidos, mediante a realização dos
ataques, com IDS e breves comentários sobre seu comportamento.
d) No Capítulo 5 apresenta a conclusão do trabalho, sendo composta das
considerações finais, experiências obtidas e dos trabalhos futuros.
16
2
TCP/IP
Este capítulo mostra uma revisão teórica sobre a tecnologia TCP/IP, assunto fundamental para o
entendimento do funcionamento de sistemas de detecção de intrusão, assim como os ataques
utilizados neste trabalho. É também apresentada a pilha de protocolos TCP/IP, com uma breve
descrição sobre as camadas que a compõe assim como seus respectivos protocolos. Serão
apresentados também alguns protocolos da camada de aplicação que merecem atenção quanto à
segurança deles em redes de computadores.
2.1
Camadas do Modelo TCP/IP
Optou-se pela abordagem down-top, por ser a maneira evolutiva dos meios de telecomunicações,
sendo assim, apresenta de uma maneira simples para complexa conforme vão subindo as camadas
do modelo TCP/IP.
Segundo (COMER, 2000), o modelo TCP/IP está dividido em quatro camadas construídas em
cima de uma quinta camada de hardware.
FIGURA 2.1 - Os 4 níveis conceituais da tecnologia TCP/IP e os objetos que trafegam entre
níveis.
FONTE: adaptada de Comer (2000, p. 184)
17
a) Camada de aplicativo: É o nível mais alto do modelo TCP/IP, é nele que os usuários
rodam aplicativos e estes acessam serviços através das redes TCP/IP. Um aplicativo
interage com um dos protocolos do nível de transporte para enviar ou receber dados,
escolhendo assim o meio de transporte adequado podendo ser, uma seqüência
individual de mensagens ou um fluxo contínuo de bytes. Nessa camada os dados são
passados de forma adequada para a camada de transporte para que possam ser
transmitidos.
b) Camada de Transporte: A camada de transporte provê a comunicação entre
programas aplicativos, também conhecida como comunicação fim-a-fim. Essa camada
estabelece e regula o fluxo de informações e pode fornecer transporte confiável.
c) Camada de Rede: A camada de rede trata das informações entre as maquinas. Esta
camada recebe da camada de transporte um pedido para enviar um pacote junto com a
identificação da maquina destino. O pacote é encapsulado em um datagrama IP e
preenchido com endereços lógicos de origem e destino entre outros dados e usa um
algoritmo para decidir se o datagrama será entregue diretamente ou enviado para um
roteador.
d) Camada de Enlace de Dados: A camada de Enlace recebe os datagramas IP e os
encapsula em frames, preenchendo o cabeçalho de cada frame com os endereços
físicos de origem e destino, entre outros dados. Esta camada é responsável também
por transmitir os frames para uma rede especifica. Na camada de enlace de dados está
o driver da placa de rede, por onde é feita a comunicação com a camada física.
e) Camada Física: A camada Física corresponde ao hardware que tratará os sinais
elétricos. Esta camada recebe os frames da camada de enlace e os converte em sinais
elétricos que iram trafegar pelo meio físico até a próxima interface de rede que pode
ser o host destino ou o roteador da rede.
18
FIGURA 2.2 - Vários protocolos nas diferentes camadas da tecnologia TCP/IP.
FONTE: adaptada de Stevens (1994, p. 6).
2.2
Protocolos de resolução de endereço ARP e RARP
Os nós da rede possuem um ou mais endereços de IP, porém esses endereços não podem ser
usados para transmitir pacotes, já que o hardware da camada de enlace não reconhece endereços
da Internet.
Então supondo que o host 1 queira se comunicar com o host 2 e saiba apenas o ip dele, um pacote
de difusão será enviado para a Ethernet perguntando a quem pertence o endereço ip em questão, e
o host 2 respondera com seu endereço Ethernet. É o protocolo ARP (Address Resolution Protocol)
quem faz essa pergunta e recebe a resposta (TANENBAUM, 2003).
O Protocolo RARP (Reverse Adress Resolution Protocol) realiza o contrário do protocolo ARP,
ele encontra o endereço IP correspondente a um endereço Ethernet. Ele é muito utilizado em
estações de trabalho sem disco, pois é necessário obter uma imagem do sistema operacional a
19
partir de um servidor de arquivos. Para tanto ele precisa de um endereço IP, sendo este solicitado
como um pedido em broadcast pela rede, então o servidor RARP vê essa solicitação e procura o
endereço Ethernet recebido em seus arquivos de configuração e envia o endereço IP
correspondente.
2.3
Protocolo IP
O Protocolo IP (Internet Protocol) pode ser considerado como a base para toda comunicação em
redes TCP/IP, já que todos os protocolos da pilha TCP/IP dependem dele (COMER, 2000).
O Protocolo IP possui um mecanismo de transmissão sem conexão e não-confiavel já que essas
funções são de protocolos de mais alto nível. O IP possui três definições. A Primeira, o protocolo
IP define a unidade de transferência de dados, ou seja, ela especifica o formato exato dos dados
(Datagrama IP). Segunda, o IP é responsável pelo roteamento, escolhendo o caminho por aonde
os dados irão. Terceira, inclui regras baseadas na entrega não confiável de pacotes, dizendo assim
aos hosts e gateways como deve ser processado o datagrama, como e quando mensagens de erro
devem ser geradas e as condições em que pacotes devem ser descartados.
Basicamente um datagrama é constituído de um cabeçalho mais a área de dados.
A Figura 2.3 mostra o cabeçalho de um Datagrama e uma descrição de seus campos.
20
FIGURA 2.3 - Datagrama IP, mostrando os campos no cabeçalho IP.
FONTE: adaptada de Stevens (1994, p. 34).
O Campo IP Version contém a versão do protocolo IP utilizada para criar o Datagrama. Hdr
Length contem o tamanho do cabeçalho do datagrama mais opções caso estas existam. Type of
Service especifica como o datagrama deve ser tratado. Total Length fornece o comprimento do
datagrama IP, ou seja, é o tamanho do cabeçalho mais os dados. Identification serve para
identificar o datagrama enviado. O campo Flags é dividido em três partes: R, DF e MF, sendo R
o bit reservado e que normalmente tem o valor 0, DF o bit responsável por dizer que o datagrama
não deve ser fragmentado, e MF o bit responsável por informar que o datagrama esta
fragmentado e existem mais fragmentos. Offset indica a posição do fragmento no datagrama. TTL
é o contador que indica o numero Maximo de roteadores que o datagrama pode passar. Protocol
indica qual o protocolo de transporte usado. Source IP Adress e Destination IP Adress possuem
os endereços lógicos de origem e destino, respectivamente.
O cabeçalho do datagrama pode ter de 20 bytes a 60 bytes dependendo das opções do Hrd Length.
21
2.4
Protocolo ICMP
O protocolo ICMP (Internet Control Message Protocol) foi acrescentado à pilha de protocolos
TCP/IP com a finalidade de que os roteadores forneçam erros ou informações sobre ocorrências
inesperadas e também que os hosts testem a disponibilidade do destino.
As mensagens ICMP trafegam pela rede através de datagramas IP. Contudo, o destino final desta
mensagem não chega a nível de aplicativo ou do usuário, e sim do Software IP daquela maquina
onde será tratado. O formato de uma mensagem ICMP é apresentado na figura 2.4.
FIGURA 2.4 - Formato da mensagem ICMP.
FONTE: adaptada de Stevens (1994, p. 70).
Embora cada mensagem ICMP possua seu próprio formato, todas elas possuem os campos Type,
Code, CheckSum em comum. Type identifica a mensagem. Code fornece informações adicionais
sobre o tipo da mensagem e Checksum para tratamento de erros.
O protocolo ICMP é utilizado para relatar erros e também solicitação de informação e resposta de
informação, podendo, portanto, ser dividido em mensagens ICMP de erro e mensagens ICMP de
informação.
As condições para que um destino seja considerado alcançável, testado através de uma solicitação
de eco e de resposta ao eco, é que primeiramente o software IP no host origem envie o datagrama,
em seguida os roteadores intermediários devem rotear o datagrama corretamente, e por ultimo a
22
máquina destino deve estar ativa ou pelo menos respondendo a interrupções, e o trajeto de
retorno deve ter rotas corretas.
Sempre que houver um erro que impeça que o roteador roteie ou entregue o datagrama, o mesmo
deve enviar uma mensagem de destinatário inacessível de volta a origem e em seguida descarta o
datagrama recebido (COMER, 2000).
Mensagens ICMP são identificadas pelo campo Type sendo que o valor do campo Code depende
do Type podendo ter um ou mais valores diferentes, como mostra a figura 2.5.
Figura 2.5: Tipos e códigos que um pacote ICMP pode ter
FONTE: adaptada de Stevens (1994, p. 73).
23
2.5
Protocolo UDP
O protocolo UDP (User Datagram Protocol) opera na camada de transporte logo acima da
camada de rede e utiliza o IP para enviar e receber datagramas de uma aplicação para a outra. Ele
assim como o IP, é um protocolo sem conexão e sem garantia de entrega, ou seja, não usa
confirmação para garantir que as mensagens cheguem, não ordena as mensagens de entrada e não
fornece um controle de velocidade das informações que fluem entre as máquinas. Contudo ele
acrescenta a habilidade de distinguir múltiplos destinos em um único host através da utilização de
portas.
Uma mensagem UDP possui duas partes: um cabeçalho UDP e uma área de dados como na
Figura 2.6.
FIGURA 2.6 - Formato da mensagem UDP.
FONTE: adaptada de Stevens (1994, p. 144).
O campo Source port number contem o numero da porta utilizado pela aplicação na máquina
origem. O campo Destination Port Number contem o numero da porta utilizado pela aplicação na
maquina destino. A porta de origem é opcional, quando usada, especifica para qual porta devem
ser enviadas as respostas. O campo UDP Length contém o tamanho do cabeçalho UDP mais o
tamanho dos dados. O campo UDP Checksum é opcional e nem sempre é usado para diminuir o
overhead, através de uma rede local altamente confiável.
24
2.6
Protocolo TCP
O TCP (Transmission Control Protocol) é um protocolo de transporte que ao contrario do UDP, é
orientado a conexão e oferece garantia de entrega. Uma conexão é como uma chamada telefônica,
ou seja, é necessário que o outro lado da ponta aceite a comunicação, portanto é fechado um
circuito virtual entre origem e destino. Quanto à garantia de entrega, significa que antes do host
enviar os dados ele precisa de uma confirmação quanto à chegada dos dados, sem contar que os
dados são seqüenciados de forma que os pacotes são identificados permitindo que os dados sejam
reordenados caso cheguem fora de ordem e descartados caso haja pacotes duplicados. Outra
funcionalidade do protocolo TCP é o controle de fluxo, em que um host informa ao outro quantos
bytes ainda poderão ser aceitos, evitando sobrecarga de buffer.
O formato de uma mensagem é mais complexo apresentando campos utilizados no controle da
comunicação e transmissão de dados entre hosts como na figura 2.7.
FIGURA 2.7 - Formato da mensagem TCP.
FONTE: adaptada de Stevens (1994, p. 225).
25
Os campos Source Port Number e Destination Port Number, identificam as portas utilizadas para
comunicação pelos aplicativos de origem e destino respectivamente. Quando combinados com o
IP de origem e destino, identificam sem equivoco a conexão. Sequence Number identifica a
posição no stream do segmento, sendo que o primeiro segmento recebe um valor atribuído pelo
SO chamado de Initial Sequence Number (ISN). Acknowledgement Number identifica o numero
de seqüência do próximo segmento. Hrd Length contem o tamanho do cabeçalho do segmento.
Reserved é reservado para utilização futura. Bits de código identificam a finalidade e o conteúdo
do segmento, eles definem como interpretar outros campos do cabeçalho. Window Size prove o
controle de fluxo, informando o numero Maximo de bytes que podem ser recebidos por um host.
Urgent Pointer informa que os dados a partir do byte por ele indicado têm maior prioridade.
2.6.1
Estabelecimento de uma conexão TCP
O protocolo TCP utiliza um processo conhecido como three-way handshake, para estabelecer
uma conexão. No primeiro passo o host envia um segmento com a Flag SYN (synchronize) no
campo de código, passando ao servidor o numero da seqüência inicial dos dados que serão
enviados. No segundo passo a maquina destino responde com um segmento com ambas Flags
SYN e ACK ativados, indicando que confirma o primeiro segmento SYN. No ultimo passo o host
envia um segmento com a Flag ACK apenas confirmando o SYN enviado pelo servidor,
conforme ilustrado na figura 2.8.
26
FIGURA 2.8 – Estabelecimento de uma conexão TCP.
FONTE: adaptada de Comer (2000, p.238).
2.6.2
Encerramento de uma conexão TCP
Para o termino de uma conexão é utilizado um handshake de três vias modificado, que na
verdade, são quatro mensagens. Quando não houver mais dados a serem enviados o aplicativo
informa ao TCP, que, envia um segmento com a Flag FIN dizendo para encerrar a conexão
naquele sentido, que é respondido com um segmento contendo um ACK. O outro lado da
conexão pode continuar enviando dados, até que não haja mais dados a enviar, realizando o
mesmo processo de envio de um segmento FIN, sendo respondido com um segmento ACK.
Contudo além do encerramento normal de uma conexão, existem situações em que é necessário
um termino forçado da conexão. Para tanto se utiliza a Flag RST, em que a outra extremidade
responde a esse segmento com essa Flag, abortando a conexão. O TCP se encarrega de informar
ao aplicativo que ocorreu um reset. Quando um reset é utilizado, a transferência em ambas às
direções cessa imediatamente e recursos como buffers passam a ser liberados (COMER, 2000).
Este processo é ilustrado na figura 2.9.
27
FIGURA 2.9 – Encerramento de uma conexão TCP.
FONTE: adaptada de Comer (2000, p.240).
2.7
Protocolos de Aplicação
As aplicações, também chamadas de serviços, operam na camada mais alta do modelo TCP/IP
que é a camada de Aplicação. Estes protocolos estão associados a parâmetros como (Número da
porta, identificadores, entre outros), que são nomeados pela IANA (Internet Assigned Numbers
Authority), que é um órgão responsável por atribuir valores únicos para os parâmetros destes
protocolos.
O número das portas pode ser dividido em três categorias:
a) Portas privilegiadas (0 – 1023): São portas reservadas para serviços e processos do
sistema, ou por aplicações executadas por usuários privilegiados.
b) Portas registradas (1024 – 49151): São portas usadas na maioria dos sistemas, por
processos de usuários não privilegiados ou por aplicações executadas por usuários
sem privilégios.
28
c) Portas dinâmicas ou privadas (49152 – 65535): São portas que não sofrem nenhum
controle por parte da IANA.
A seguir alguns protocolos do nível de aplicação:
a) FTP (File Transfer Protocol): Este protocolo permite o compartilhamento de arquivo
entre hosts. Contudo, o FTP oferece algumas vantagens alem da função de transferência
de arquivo como por exemplo:
a. Acesso interativo: Permite que as pessoas interajam facilmente com servidores
remotos.
b. Especificação de formato: Permite que o cliente especifique o tipo e o formato
dos dados armazenados, como por exemplo, o usuário pode determinar se um
arquivo contém texto ou números binários e se os arquivos de textos usam os
conjuntos de caracteres ASCII ou EBCDIC.
c. Controle de autenticação: Requer que os clientes efetuem um login no servidor
para poder requisitar a transferência de arquivos.
b) SMTP (Simple Mail Transfer Protocol): Protocolo responsável pelo envio de correio
eletrônico. Por se tratar de um serviço simples, ele não especifica como a mensagem é
armazenada ou a freqüência com que o sistema de correio eletrônico tenta enviar
mensagens. A comunicação entre o cliente e um servidor consiste em um texto ASCII
legível (COMER, 2000).
c) Telnet: É um protocolo simples de terminal, que permite que um usuário estabeleça uma
conexãoTCP com um servidor de terminal remoto mediante uma autenticação. O Telnet
oferece três serviços básicos. Primeiro, define um terminal virtual de rede, fornecendo
uma interface padrão para sistemas remotos. Segundo, o Telnet fornece um conjunto de
opções ao cliente como por exemplo, negociar o tipo de dados passados pela conexão. E
por ultimo, não obriga a entrada do cliente via teclado nem a saída indicada na tela.
d) DNS (Domain Name System): Protocolo de nomes de domínio que implementa uma
hierarquia de nome de máquinas. Um nome de domínio consiste em uma seqüência de
subnomes separados por um ponto indo de maneira hierárquica da direita para a esquerda.
29
e) HTTP (Hyper Text Transfer Protocol): Protocolo responsável pela transferência de
hipertexto e multimídia é também conhecido como WWW (World Wide Web).
f) POP (Post Office Protocol): Protocolo que permite que um cliente obtenha mensagens de
correio eletrônico, armazenadas em um servidor POP3.
g) SNMP (Simple Network Management Protocol): É um protocolo utilizado no
gerenciamento de redes TCP/IP. Este protocolo coleta informações da rede provindas de
hosts, gateways ou equipamentos de transmissão. Essas informações são utilizadas para
detectar a presença de falhas no funcionamento desses componentes da rede.
Tabela 2.1: Exemplos de protocolos no nível de aplicação e suas respectivas portas
Aplicação\Serviço Porta
FTP
21
SSH
22
TELNET
23
SMTP
25
DNS
53
FINGER
79
HTTP
80
POP3
110
Sun RPC
111
NTP
123
IMAP
143
SNMP
161
NFS
2049
30
2.8
Considerações Finais
Este capítulo fez uma abordagem sobre as camadas do modelo TCP/IP assim como alguns
protocolos em suas respectivas camadas, que serão abordados nos tópicos a seguir, sendo de
fundamental importância
O próximo capítulo irá abordar a questão de segurança em redes, dando uma visão sobre
conceitos de segurança em redes, políticas, ataques além de abordar as ferramentas que são o
foco deste trabalho, os IDS´s, e também Honeypots para simular os serviços.
31
3
SEGURANÇA EM REDES E IDS
Segurança em redes se baseia em três princípios: confidencialidade, integridade e disponibilidade.
A interpretação desses três aspectos varia de acordo com o contexto. A interpretação de um
aspecto em um dado ambiente depende das necessidades individuais, customizadas e leis de uma
organização particular.
A seguir serão apresentados conceitos básicos sobre segurança e em seguida IDS e Honeypots.
3.1
Confidencialidade, Integridade e Disponibilidade
a) Confidencialidade é o acesso da informação apenas a pessoas autorizadas. Mecanismos
de controle de acesso auxiliam a confidencialidade, como por exemplo, a criptografia que
modifica a maneira como se vêem os dados tornando a informação incompreensível.
b) Integridade diz respeito ao estado da informação, ela garante que a informação não é
destruída ou corrompida, garantindo assim a prevenção de mudanças impróprias ou não
autorizadas. Mecanismos de integridade podem ser divididos em mecanismos de
prevenção e mecanismos de detecção. Mecanismos de prevenção são baseados em
autenticação adequada e controles de acesso. Mecanismos de detecção não previnem
violações de integridade, eles simplesmente reportam que a integridade do dado não é
mais confiável, analisando eventos do sistema ou o próprio dado.
c) Disponibilidade se refere à capacidade de usar a informação ou recurso quando desejado.
Os sistemas normalmente são desenvolvidos com base em modelos estatísticos de uso,
com um padrão de uso esperado.
32
3.2
Ameaças
Uma ameaça é uma potencial violação da segurança (Bishop, 2002). A violação não
necessariamente precisa acontecer para ser considerada uma ameaça. O fato de que uma violação
possa ocorrer significa que aquelas ações que poderiam causar isso devem ser protegidas ou
preparadas contra. Estas ações são conhecidas como ataques e as pessoas que realizam são
chamados de atacantes.
Os três princípios de segurança de um sistema – confidencialidade, integridade e disponibilidade
contra atacam ameaças a segurança de um sistema. Shirey (1994) divide as ameaças em quatro
grandes grupos: disclosure (acesso não autorizado); deception (aceitação de dados falsos);
disruption (interrupção ou prevenção correta da operação); e usurpation (controle não autorizado
de alguma parte do sistema).
3.3
Objetivos da segurança
Uma Política de segurança é um estado que define o que é e o que não é permitido.
Um Mecanismo de segurança é um método, ferramenta ou procedimento que fortalece a política
de segurança. Dada uma especificação de política de segurança de ações seguras ou não seguras,
estes mecanismos de segurança podem: prevenir, detectar ou recuperar-se do ataque. As
estratégias podem ser usadas juntas ou separadas.
Prevenção significa que um ataque irá falhar. Um exemplo simples de prevenção são as senhas
que visam prevenir o acesso de usuários não autorizados. Teoricamente uma vez implementado
um mecanismo de prevenção, o recurso protegido não precisa ser monitorado.
33
Detecção é muito utilizado quando um ataque não pode ser prevenido. Mecanismos de detecção
aceitam que um ataque irá ocorrer, e determinam quando o ataque esta sendo realizado ou quando
já tenha ocorrido reportando o mesmo. O ataque pode ser monitorado a fim de prover dados a
respeito de sua natureza, gravidade e resultados. Típicos sistemas de detecção monitoram vários
aspectos do sistema procurando informações ou ações que indiquem um ataque.
Recuperação são mecanismos que primeiramente param um ataque e tentam reparar o dano
ocorrido. Por exemplo se um atacante apaga um arquivo, o mecanismo de recuperação deveria
restaurar o arquivo de fitas de backup. Mais do que isso um mecanismo de recuperação envolve a
identificação e reparo da vulnerabilidade usada pelo atacante já que o mesmo pode retornar. Em
alguns casos é função desse mecanismo realizar uma retaliação, fazendo um contra ataque no
atacante.
3.4
IDS
Intrusion Detection System ou Sistemas de Detecção de Intrusão são tecnologias de software e
hardware desenvolvidas para detectar comportamento anômalo na rede ou em um computador.
Uma intrusão pode ser vista como uma tentativa ou a ocorrência em si de maneira não autorizada
de acesso a informação, manipulação da informação ou tornar um sistema não confiável ou
indisponível.
As técnicas para detecção de intrusão podem ser divididas em duas categorias: detecção de
intrusão por anomalia e detecção por abuso.
34
3.4.1
Detecção de intrusão por anomalia
Essa técnica de detecção de intrusão é baseada na idéia de que todo evento intrusivo gera um
comportamento anômalo, já que um intruso ao invadir um sistema gera um comportamento
anômalo pois ele não conhece exatamente o padrão de recursos de uma máquina. Contudo essa
idéia é uma teoria de como deveria ser uma invasão, mas na prática isso nem sempre acontece
gerando eventos que são conhecidos como:
a) Intrusivo e não anômalo: Chamado de falso-negativo, é uma atividade intrusiva porém
não representa um comportamento anômalo.
b) Não Intrusivo e anômalo: Chamado de falso-positivo, é uma atividade não intrusiva, mas
por representar um comportamento anômalo é considerado um ataque.
c) Não intrusivo e não anômalo: É considerada uma atividade normal
d) Intrusivo e anômalo: Considerado uma intrusão, pois representa uma atividade intrusiva e
anômala ao mesmo tempo.
IDS por anomalia são baseados em perfis de sistema, portanto eles analisam o comportamento do
sistema que ele esta instalado. Esses sistemas são baseados em alguns tipos de abordagens.
3.4.1.1
Abordagem estatística
Neste tipo de abordagem, o sistema analisa as atividades do usuário e processos do sistema e gera
perfis de comportamento destes. Periodicamente é gerado um valor indicativo de anormalidade
baseado em medidas de anormalidades relacionadas ao perfil do usuário. Essas medidas de
atividades, relacionadas a um perfil podem ser, tempo de uso da CPU, número de conexões na
rede em um certo período, acesso a arquivos,utilização de processos envolvendo I/O, freqüência
de login a partir de um determinado local, utilização de servidor de e-mail, compiladores, shells,
editores do sistema, etc. O perfil do usuário é armazenado em um perfil corrente que em
35
intervalos regulares é comparado com o perfil armazenado, a fim de detectar comportamento
anômalo. Alguns sistemas utilizam um modelo estático, e não altera o perfil armazenado uma vez
definido.
3.4.1.2
Abordagem por prognósticos de padrões
Neste tipo de abordagem, tenta-se prever eventos futuros, baseando-se em evento ocorridos.
Geralmente esses eventos não são aleatórios e sim previsíveis, pois normalmente seguem um
padrão. Uma anomalia é detectada caso a seqüência de eventos a seguir sejam iguais ao padrão
previsto. Uma desvantagem deste modelo é que nem todos os comportamentos são conhecidos.
3.4.2
Detecção de intrusão por abuso
Este tipo de detecção de intrusão se baseia na idéia de que ataques podem ser representados na
forma de padrões e assinaturas (seqüência de eventos que levam a uma intrusão). Na maioria dos
IDS há um módulo de detecção por abuso, já que técnicas estatísticas isoladas são limitadas na
detecção de intrusão de todos os eventos de segurança, conforme ilustrado na figura 3.1
Uma desvantagem ou limitação deste tipo de detecção é que são utilizadas vulnerabilidades
conhecidas, sendo que novas vulnerabilidades não são reconhecidas. Um aspecto relacionado aos
IDS que utilizam este método é como desenvolver uma assinatura de modo a esta englobar todas
as possíveis variações e que esta assinatura não se encaixe em atividades não intrusivas.
36
Figura 3.1: Sistema de Detecção por Abuso
FONTE: Sundaram (2000, p. 4).
3.4.3
Classificação de Sistemas de Detecção de Intrusão por Funcionalidade
Sistemas de Detecção de Intrusão podem ser divididos em três categorias quanto ao tipo de
análise.
a) Sistemas de Detecção baseados em rede (NIDS)
b) Sistemas de Detecção baseados em host (HIDS)
c) Sistemas de Detecção distribuídos (DIDS)
3.4.3.1
Sistemas de Detecção baseados em rede
Este tipo de sistema (Network Intrusion Detection System) deriva seu nome através do fato de que
ele monitora um segmento de rede ou sub-rede. Isto é feito mudando o modo de operação da
placa de rede (NIC – Network Interface Card). Normalmente uma NIC opera em modo não
promiscuo, ouvindo apenas pacotes destinados ao seu próprio endereço de controle de acesso a
media (MAC). Para monitorar todo trafego da sub-rede, a placa de rede deve aceitar não somente
pacotes endereçados a ela como também os que não são endereçados a ela (modo promíscuo).
37
Para que isto ocorra não apenas a placa deve estar em modo promiscuo, caso os dispositivos que
interligam as maquinas na rede seja um hub, todas as portas receberam os pacotes já que um hub
envia os pacotes a todas as portas. Caso seja um switch a porta onde este conectado o NIDS, deve
estar em modo monitoramento recebendo assim o trafego das outras máquinas.
A figura 3.2 mostra uma rede usando três NIDS. As unidades foram colocadas em segmentos de
rede estratégicos monitorando assim o trafego de todos dispositivos em seus segmentos.
Figura 3.2: Sistemas de Detecção de intrusão baseados em rede
FONTE: Bayle (2002, p.12)
38
3.4.3.2
Sistemas de Detecção baseados em Host
Sistemas de Detecção baseados em Host (HIDS – Host Intrusion Detection System) diferem de
NIDS em dois pontos. Primeiro, um HIDS protege somente o sistema onde esta instalado e não
toda a sub-rede. Segundo, a interface de rede do sistema normalmente opera em modo não
promiscuo, o que representa uma vantagem em alguns casos – nem todas NICs são capazes de
operar em modo promiscuo, apesar das placas modernas poderem. Além de que o modo
promiscuo pode forçar muito a CPU em maquinas lentas.
Outra vantagem dos HIDS é a habilidade de montar uma regra bem especifica em um sistema em
particular. Por exemplo, não há necessidade de configurar regras múltiplas destinadas a detectar
Network File System (NFS) exploits em um host que não utiliza NFS. Podendo aperfeiçoar as
regras, haverá uma melhora no desempenho e diminuição de falsos positivos. Mas a maior
vantagem dos HIDS é a capacidade de detectar mudanças especificas nos arquivos e no sistema
operacional do host. É possível monitorar tamanho de arquivos e checksum a fim de garantir que
arquivos do sistema não foram maliciosamente modificados. Também é possível interceptar
rogue call system (chamadas de sistemas não autorizadas executadas por um atacante) que podem
ser uma tentativa de explorar uma vulnerabilidade local. E por ultimo um HIDS pode visualizar
trafego que chega somente a um host, o que significa que um NIDS não capturaria.
Desvantagens de HIDS são relacionadas à escolha do IDS de acordo com seu sistema operacional.
Um IDS age como um serviço adicionando assim carga ao host o que irá gerar consumo de
recursos. Outra desvantagem é com relação ao gerenciamento, pois em redes com muitos nós,
esta será uma tarefa complexa.
A figura 3.3 mostra uma rede usando HIDS em alguns servidores específicos assim como
algumas máquinas clientes. Como mencionadas anteriormente as regras para um servidor de email, por exemplo, são configuradas para proteger o servidor, de exploits de servidores de e-mail,
enquanto o servidor web de Web exploits. Máquinas individuais podem ser configuradas com
regras padrões. Novas regras podem ser adicionadas periodicamente.
39
Figura 3.3: Sistema de Detecção baseado em Hosts
FONTE: Bayle (2002, p.14)
3.4.3.3
Sistemas de Detecção Distribuídos
Um Sistema de Detecção Distribuído ou DIDS (Distributed Intrusion Detection System) é uma
combinação de sensores NIDS e sensores HIDS, distribuídos ao longo de uma rede, e todos eles
reportando a um sistema central. Logs de ataques são gerados nos sensores e enviados
(periodicamente ou continuamente) para a estação central, onde eles serão armazenados em um
banco de dados central. Novas assinaturas são criadas ou adquiridas da Internet para a estação de
gerenciamento assim que disponíveis, e essas assinaturas podem ser enviadas para os sensores de
acordo com suas necessidades bases.
40
Diferentes tipos de sensores podem ou não ser gerenciados pelo mesmo servidor. Alertas podem
ser enviados para um sistema de mensagens usado para comunicar o administrador de IDS.
A figura 3.4, mostra um sistema DIDS formado por quatro sensores e uma estação de
gerenciamento central. Sensores NIDS 1 e NIDS 2 estão operando em modo promiscuo stealth1 e
estão protegendo os servidores públicos. Os sensores NIDS 3 e NIDS 4 estão protegendo os
sistemas baseados em host.
Figura 3.4 Sistema de Detecção de Intrusão Distribuído.
FONTE: Bayle (2002, p.15)
1
Um NIDS em modo stealth significa que ele não esta visível à rede onde esta monitorando. Normalmente isto é
feito não fornecendo um endereço IP para o NIC que esta monitorando, é usado um dispositivo conhecido como
“Tap” que somente permite a recepção do tráfego. Este método de observar o tráfego da rede é a chave para prevenir
que atacantes descubram algo sobre seu NIDS.
41
Uma das maiores vantagens de NIDS é a capacidade de observar sistemas geograficamente
distribuídos.
As transações entre sensores e gerentes devem ser encriptadas. Pois se enviadas em modo de
texto plano pode ser interceptadas e lidas facilmente por atacantes. Outra desvantagem é quanto
ao congestionamento da rede, o que pode fazer com que as mensagens enviadas entre sensores e
gerentes não sejam recebidas e processadas.
3.4.4
Snort
O Snort é um IDS freeware muito popular e utilizado pela comunidade e empresas. É um NIDS
baseado em assinaturas, sendo que elas podem ser criadas ou adquiridas no site oficial do
fornecedor < www.snort.org/>.
A arquitetura do Snort é composta basicamente por quatro componentes:
•
Farejador
•
Pré-processador
•
Mecanismo de detecção
•
Alerta/Registro
A figura 3.5 mostra a arquitetura do Snort:
42
Figura 3.5 – Arquitetura do Snort
Fonte: CASWELL et AL., 2003, p.26.
3.4.4.1
Farejador
Os farejadores de tráfego são dispositivos de hardware ou software desenvolvidos para capturar
os pacotes que trafegam na rede, alguns deles são capazes de analisar diferentes protocolos para
transformar os dados de maneira legível. A figura 3.6 mostra o funcionamento do farejador.
Figura 3.6: Esquema de funcionamento de um farejador de pacotes.
Fonte: CASWELL et AL., 2003, p.27.
Para que seja possível capturar tráfego em uma rede, o snort utiliza no Windows a biblioteca
Winpcap, permitindo capturar os dados que chegam no host e os que são destinados a outras
máquinas também.
43
3.4.4.2
Pré-Processador
Este componente é responsável pela classificação dos dados capturados pelo farejador.
CASWELL et AL(2003) diz que os pacotes capturados são verificados em relação a certos plugins, como por exemplo um plug-in de portscan, determinando assim o comportamento do mesmo.
Quando detectado o comportamento do pacote, ele é enviado para o mecanismo de detecção.
Uma vantagem de se utilizarem plug-ins, é a possibilidade de desativar os mesmos de acordo
com o perfil da rede onde o IDS é instalado. A figura 3.7 mostra o esquema do Pré-Processador.
Figura 3.7: Pré-Processador do Snort
Fonte: CASWELL et AL., 2003, p.28.
44
3.4.4.3
Mecanismo de detecção
Considerado a parte mais importante de qualquer IDS, é neste mecanismo que os dados vindos do
pré-processador serão comparados com as regras definidas de ataques definidos. Quando um
pacote corresponde com a informação de alguma regra, ele é enviado para o sistema de alerta.
As regras podem ser criadas pelo próprio usuário assim como podem ser baixadas do site oficial
do Snort, onde é desenvolvido pela equipe Snort. A figura 3.8 mostra o esquema do Mecanismo
de Detecção.
Figura 3.8 Mecanismo de Detecção
Fonte: CASWELL et AL., 2003, p.29.
45
3.4.4.4
Componente de Alerta\Registro
Os dados que chegam ao mecanismo de detecção e correspondem com alguma regra, geram um
registro ou alerta, que é disparado por um plug-in de saída.
Os plug-ins fornecem a capacidade de configurar logs e alerta de maneira fácil e amigável de ler
e entender.
Muitos plug-ins são utilizados como banco de dados para armazenar os dados de saída, assim
como servidores web para demonstrar os dados processados de maneira bem legível.
3.4.4.5
Regras no Snort
As assinaturas no Snort são compostas de regras que podem ser divididas basicamente em
cabeçalho e corpo, assim como em um pacote TCP/IP. Os cabeçalhos identificam a ação a ser
tomada, qual protocolo está em uso, porta, endereço IP e rede de origem e destino. O cabeçalho
pode ser dividido em quatro categorias:
a) Ação da Regra
b) Protocolo
c) Informação de Origem
d) Informação de Destino
A figura 3.9 mostra os campos de uma regra Snort.
46
Figura 3.9: Cabeçalho de uma regra do Snort
Fonte: FONTE: Bayle (2002, p.196)
O Snort trabalha com variáveis de rede. As mais utilizadas são as variáveis $EXTERNAL_NET
que declara um valor para a rede externa e $HOME_NET para a rede a ser protegida.
A declaração de regras no Snort obedece o modelo:
<tipo_de_alerta> <protocolo> <rede_origem> <porta_origem> ->
<rede_destino> <porta_destino> (Cabeçalho da Regra; Opções; sid:X;...);
Ex: alert tcp any any -> any 12345 (msg:" Test Message";)
3.4.4.6
Ação da Regra
Uma ação define o que fazer com a informação que vem do pré-processador. O Snort possui
cinco ações a serem tomadas:
a) Alert – Gera um alerta usando um método selecionado e então loga o pacote;
b) Log – Loga o pacote;
c) Pass – Ignora o pacote;
47
d) Activate – Alerta e então ativa outra regra dinâmica;
e) Dynamic – Permanece inativa até ser ativado por uma regra activate, então atua como
uma regra de log;
3.4.4.7
Protocolos
Para Protocolos, o Snort suporta atualmente:
a) TCP;
b) UDP;
c) ICMP;
3.4.4.8
Opções de Regra
O Snort não precisa do campo corpo para criar uma regra, porém as opções utilizadas no corpo da
regra aprofundam a análise da informação, identificando assim ataques mais complexos.
Existem quatro categorias para analisar a carga útil do pacotes, sendo que em cima dessas
categorias temos diversas opções. As categorias são:
a) Meta-data -> Essas opções provêem informação sobre a regra, mas não tem qualquer
efeito durante a detecção;
b) Payload -> Todas essas opções procuram por dados dentro do payload(seção DATA) do
pacote e podem ser inter-relacionadas;
c) Non-payload -> Essas opções procuram por dados fora do payload;
d) Post-detection -> Essas opções são regras específicas que acontecem após uma regra ter
sido detectada.
48
Em cada categorias, temos opções que são utilizadas no corpo da regra, a seguir serão citadas
algumas das opções utilizadas, para uma lista completa e detalhada, consulte o manual do Snort:
a) Msg: Quando gerado um alerta, imprime uma mensagem escrita na forma de String
A opção msg informa a ferramenta de log e alerta qual a mensagem que deve ser impressa
quando o alerta for dado.
Formato: msg ”mensagem texto aqui”;
b) Reference: Permite as regras incluírem URL´s de referência ao ataque. Isto categoriza e
provê informação relevante sobre o ataque.
Formato: reference: <id system>,<id>; [reference: <id system>,<id>;]
Ex: log tcp any any -> any 12345 (reference:CVE, CAN-2002-1010; reference:URL,
www.poc2.com; msg:" NetBus";)
c) Sid: Utilizado para categorizar, distinguir e identificar ID de regras únicas no Snort.
A numeração segue um padrão que precisa ser obedecido da seguinte maneira:
a. < 100 – Reservada para uso Futuro;
b. 100 – 1000000 – Regras incluídas com a distribuição do Snort;
c. > 1000000 – Regras usadas localmente;
d) Priority: Emite um nível de alerta para a regra. Essa opção é importante na definição de
alertas críticos.
Formato: priority: <PRIORITY_VALUE>;
Ex: alert udp any any -> $INTERNAL 21974 (priority:1; msg: "Bad Worm Backdoor";)
e) Flag: Esta opção permite determinar se cada Flag potencial esta marcada, desmarcada ou
usada em combinação com outra Flag.
Formato: flags: <TCP_VALUE(s)>;
A tabela 3.1 mostra as opções de flags usadas no snort com a opção Flag.
49
Tabela 3.1 Opção de Flags TCP no Snort
TCP Flags Descrição da Flag
A
Checa se a Flag ACK esta ativa
Checa se a Flag FIN esta ativa
F
Checa se a Flag Push esta ativa
P
Checa se a Flag RST esta ativa
R
Checa se a Flag SYN esta ativa
S
Checa se a Flag URG esta ativa
U
Checa se nenhuma Flag esta ativa
0
Determina se uma flag esta ativa e seguida de outra flag
qualquer
+
Determina se um conjunto de flags esta ativo
*
a) Content: Analisa a carga útil do pacote a fim de localizar determinada string.
Formato: content: “STRING”
Exemplo: alert tcp any any -> any 23 (content: "administrator"; nocase;)
3.5
Honeypots
Honeypots são sistemas computacionais de segurança cuja finalidade é ser sondado, atacado ou
comprometido. Podem ser divididos em Honeypots de baixa interatividade e alta interatividade.
3.5.1
Honeypots de baixa Interatividade
Honeypots de baixa interatividade emulam sistemas e serviços, os quais serão expostos a ataques.
São mais fáceis de instalar, configurar e capturam quantidade menor de informações se
comparado com honeypots de alta interatividade e oferecem menos riscos, pois a emulação dos
serviços permite controlar o que pode ser feito ou não.
Exemplos de honeypots de baixa interatividade são o software Valhala e o Honeyd.
50
3.5.2
Honeypots de alta Interatividade
Utilizam os serviços, sistemas e aplicações reais da máquina. São mais complexos, oferecem
maior risco devido ao contato direto com o atacante e capturam maior quantidade de dados.
Exemplos de honeypots de alta interatividade são as honeynets e as honeynets virtuais.
Uma Honeynet é uma ferramenta de pesquisa, que consiste de uma rede projetada
especificamente para ser comprometida, e que contém mecanismos de controle para prevenir que
seja utilizada como base de ataques contra outras redes. Podem ser físicas ou virtuais, sendo esta
ultima por exemplo um software de virtualização como oVMware.
3.6
Considerações Finais
Este capítulo explicou a questão das políticas de seguranças, focando a parte de IDS, mais
precisamente o Snort, além de dar um breve enunciado sobre Honeypots para melhor
entendimento do ambiente simulado.
O capítulo a seguir apresentará a proposta deste trabalho, propriamente dita, onde serão
executados os testes, para testar a eficácia do Snort, através de diversas ferramentas usadas em
auditoria de segurança.
51
4
ANÁLISE DE TRÁFEGO EM REDES TCP\IP
Para verificar a eficiência e observar o funcionamento do Snort, foi montado um ambiente de
teste com máquinas virtuais isoladas. Para tanto foram utilizadas as regras disponibilizadas no
site do Snort, utilizando assim suas configurações padrão.
Este capítulo apresenta a arquitetura de rede e a especificação dos softwares e hardware para o
estudo de caso que será realizado.
A organização deste capítulo segue da seguinte maneira:
a) 4.1 Arquitetura de teste: A arquitetura da rede utilizada nos testes realizados, sendo esta
reproduzida através de máquinas virtuais.
b) 4.2 O ambiente de teste: Provê as configurações físicas e lógicas dos elementos ativos
utilizados no ambiente de teste.
c) 4.3 Ferramentas: Aqui serão apresentadas as configurações dos programas utilizados na
realização dos ataques.
d) 4.4 Tipos de Ataques utilizados: Descrição dos ataques utilizados.
e) 4.5 Resultados obtidos: Demonstração dos resultados obtidos com o Snort.
4.1
Arquitetura de teste
A rede que será utilizada para desenvolver o ambiente de teste será composta por três maquinas
clientes e uma servidora além de uma máquina invasora.
Ambiente de Teste: Um servidor Windows Server 2003, três máquinas clientes Windows xp
Professional, uma maquina intrusa rodando Windows xp Professional. A figura 4.1 mostra o
ambiente de teste.
52
Figura 4.1: Arquitetura cliente-servidor com servidor Windows Server 2003
4.2
O ambiente de teste
A configuração das máquinas utilizadas para reproduzir o cenário de teste é apresentada a seguir:
a)
Servidor Windows: Nesta máquina foi instalado no Virtual Pc (Disponível em <
www.microsoft.com/windows/virtual-pc/>) o Windows Server 2003 com 1 GB RAM,
rodando o Snort 2.8.4.1, Valhala 1.7, Winpcap 4.0.2 (Disponível em <www.winpcap.org/>),
o banco de dados MySql 5.1 ( Disponivel em < www.mysql.com/>) para armazenamento
do histórico dos ataques, a ferramenta BASE 1.4.4 (Basic Analysis and Security Engine.
Disponivel em < http://base.secureideas.net/>) que foi usada para exibição dos relatórios
de ataques através do servidor web Apache 2.2.14 configurado com o módulo de acesso a
linguagem PHP 5.3.0 (Disponível em < php.net/index.php>).
b)
Máquina Atacante: Virtual Pc com Windows XP SP3 com instalação default e 256 MB
RAM.
53
c) Máquinas Clientes: Virtual Pc com Windows XP SP3 com instalação default 256 MB
RAM.
A seguir serão apresentadas algumas ferramentas usadas em segurança em rede e auditoria que
serão utilizadas nesse trabalho:
a) Nmap 4.76 (Lyon 2008): É uma ferramenta livre e de código aberto usada em auditoria de
segurança e exploração de vulnerabilidades em redes. Nmap determina quais hosts estão
disponíveis na rede, quais serviços estes hosts estão oferecendo, quais SO´s eles estão
executando além de identificar quais filtros de pacotes e firewall estão em uso, sem contar
muitas outras características. Sua interface gráfica é mostrada na figura 4.2
a. Vantagens: Flexível – Suporta dezenas de técnicas avançadas de mapeamento.
Poderoso – Usado para scannear redes com milhares de computadores. Portável –
Roda em diversas plataformas como Linux, Windows, Mac OS, etc. Popular –
Muito utilizado por pessoas de todo o mundo além de vir incluso em muitas
Distribuições Linux como RedHat, Debian, Gentoo, FreeBSD, etc. Aclamado –
Vencedor de vários prêmios incluindo Produto de Segurança da Informação do
ano pelo Linux Journal.
Figura 4.2: Inteface gráfica do NMAP – Zenmap
54
b) Hydra 5.4 (Hauser, 2006): É uma ferramenta freeware, usada para quebrar autenticações
de rede de maneira rápida, que suporta muitos serviços diferentes, entre eles: Telnet, FTP,
HTTP, HTTPS, smb, entre outros. Hydra realiza ataques do tipo dicionário contra mais de
30 protocolos. A figura 4.3 mostra as opções do software.
Figura 4.3: Hydra e suas opções de uso
c) Metasploit 3.2 (Haper et al, 2008) : Metasploit é uma ferramenta gratuita, que torna muito
fácil a aquisição, desenvolvimento e execução de exploits para vulnerabilidades de
softwares de computadores. Ele vem com milhares de exploits para vulnerabilidades de
softwares conhecidas. Metasploit roda em plataformas Linux, BSD, Mac OS X e
Windows. Disponível em <www.metasploit.com/>. A figura 4.4 mostra a interface
gráfica do software.
55
Figura 4.4: Interface gráfica do Mestasploit Framework
d) Valhala (Marcos, 2008): O Valhala é o único honeypot totalmente em português para o
sistema Windows e é opensource. Ele é um honeypot de baixa interatividade, o que
significa que possui um risco menor de comprometimento do que honeypots baseados em
sistemas operacionais reais. Disponível em <valhalahoneypot.sourceforge.net/>. A figura
4.5 mostra a interface do software.
56
Figura 4.5: Software Valhala Honeypot
e) Hping2 rc3: Ferramenta para ataques do tipo DoS (negação de serviço). Disponível tanto
para Linux quanto para Windows. A figura 4.6 mostra as opções do software.
Figura 4.6: Hping e suas opções
57
f) TcpReplay32: Ferramenta usada para gerar tráfego de rede baseado em um arquivo criado
no formato tcpdump. Foi usado o comando: tcpreplay –i(Interface) –r(rate Mbps) 100
–v(verbose)
–l=100(Loop)
<nome
do
arquivo
tcpdump>.
Disponível
em
<http://sourceforge.net/projects/tcpreplay/>.
4.3
Casos de Teste
Os testes executados testaram a capacidade de o IDS detectar ataques. Os testes foram executados
a fim de verificar a eficácia da ferramenta Snort usando suas regras padrões, disponíveis no site
do fabricante, diante dos diferentes tipos de ataques realizados com a presença de tráfego de rede.
4.4
Tipos de Ataques utilizados
a) Portscan: Scaneamento de portas, afim de detectar quais portas estão abertas e quais
serviços estão rodando nelas;
Comando utilizado: nmap –sS (TCP SYN) <ip destino>; nmap –sT(TCP Connect) <ip
destino>; nmap –sN(TCP NULL) <ip destino>. Disponível em <nmap.org/>.
b) Ataque de dicionário: tentativa de acesso aos serviços através de uma lista com senhas
para um determinado login;
Comando utilizado: hydra –L(Nome do usuário) login –p(carrega um txt com senhas) file
<ip> FTP\telnet. Disponível em <www.thc.org/thc-hydra/>.
c) Denial of Service: Ataque que visa saturar uma máquina para que ela não consiga
responder requisições dos serviços oferecidos por ela;
Foi utilizado o seguinte comando para gerar o ataque: hping –c( packet count) 100
<host destino> ; hping -i(intervalo) m1(1 milisegundo) –c 100 <host destino>; hping 8(scan mode) –c 100 <host destino>. Disponível em <www.hping.org/>
58
d) Exploits: programas que exploram vulnerabilidades de softwares geralmente a fim de
obter acesso a máquina alvo ou executar código arbitrário;
Esses ataques foram realizados nessa ordem, utilizando as ferramentas citadas na seção de
ferramentas. Depois de realizado um ataque, os resultados obtidos com o IDS foram
documentados e apresentados na tabela 4.1.
4.5
Resultados obtidos
Os resultados a seguir demonstram a quantidade de ataques gerados, detecção e os tipos de
ataques utilizados.
A tabela 4.1 foi utilizada para melhor representar os resultados obtidos.
Tabela 4.1 Resultados Obtidos
Snort: Quantidade de ataques reconhecidos
Ataques
Gerados
Detectados
%
Portscan
3
3 100%
Dic.Ataque
2
2 100%
DoS
3
1
33%
Exploit
5
3
60%
Como pode ser verificado na Tabela1, nem todos os ataques puderam ser detectados. O Snort
mostrou-se muito eficaz na detecção de portscan, que representa sempre o inicio de um ataque.
As falhas na detecção podem ser atribuídas a dois fatores:
a) Falta de atualização das assinaturas: Como qualquer outro programa usado na segurança
de sistemas que precisa de uma base de dados para detectar uma ameaça, como por
59
exemplo, um antivírus, um IDS que não possui uma assinatura em seu conjunto de regras,
não é capaz de detectar um ataque.
b) Falha na configuração do IDS: Como dito anteriormente, as regras foram utilizadas com
suas configurações padrões e o ambiente virtual rodado em máquinas virtuais, sem a
utilização de mídias e interfaces de redes físicas.
Tal resultado deve-se ao fato, também, de que o equipamento onde o IDS estava instalado tinha
um poder de processamento limitado, sendo assim seu desempenho depende da capacidade da
máquina onde esta instalado, para processar mais informações que chegam à rede. Ainda com
relação à configuração do IDS, o mesmo foi utilizado com várias regras de serviços que não
estavam sendo utilizados, limitando o IDS apenas para os serviços a serem utilizados, a
quantidade de testes a serem realizados diminui, permitindo assim que o mesmo analise um maior
número de informações em um período de tempo menor.
A figura 4.7 mostra o resultado do ataque , nmap –sT, no Base através do navegador.
Figura 4.7: Resultados obtidos com o Snort sendo demonstrados no Base.
60
Tabela 4.2 – Resultado da análise de geração de falsos positivos.
Ataque
Portscan
Dic.Ataque
DoS
Exploits
Tipo
Detectado
Falso Positivo
nmap -sT <ip>
Sim
1
nmap -sS <ip>
Sim
2
nmap -sN <ip>
Sim
1
hydra –L login –p file <ip> FTP\telnet
Sim
1
hping –c 100 <host destino>
Sim
2
hping -1 –c 100 <host destino>
Não
1
hping -8 –c 100 <host destino>
Não
3
IIS Unicode Remote Command Execution
Sim
4
Web Server Transversal
Sim
7
Microsoft RPC DCOM interface Overflow
Sim
3
Microsoft IIS 5.0 IDQ Path
Não
2
Microsoft SQL Server Resolution Overflow
Não
1
Como pode ser verificado pela tabela 4.2, o Snort demonstrou eficácia na detecção de muitos
ataques, porém ocorreram muitos falsos positivos, devido à utilização de todas as regras ao
mesmo tempo, o que fez com que ele detectasse ataques inexistentes, totalmente diferentes
daqueles que realmente estavam sendo realizados.
O próximo capítulo irá apresentar a conclusão da proposta oferecida neste trabalho.
4.6
Considerações Finais
Este capítulo descreveu o ambiente de teste, onde foram realizados os ataques, que testaram a
eficiência do Snort como IDS, além da descrição dos ataques realizados contra ele, e os softwares
utilizados no ambiente de teste. Foram descritos os resultados obtidos, além de comentários sobre
a eficiência do mesmo.
61
O próximo capítulo apresentará as conclusões finais deste trabalho, mediante a proposta e os
resultados obtidos.
62
5
CONCLUSÃO
Este trabalho apresentou a eficácia dos sistemas de detecção de intrusão baseados em rede e
assinaturas, que através da análise do tráfego, são capazes de identificar ataques destinados a
máquinas da rede alvo. Foi efetuada uma bateria de testes a fim de testar a eficiência do IDS e
comprovar que o mesmo é capaz de identificar ataques e alertar o administrador da rede.
5.1
Experiências obtidas
Diferente dos softwares utilizados no dia a dia, um IDS não pode ser configurado de maneira
eficaz por uma pessoa inexperiente, pois é necessário conhecimento avançado em redes (tipos de
protocolos, funcionamento interno, meios de comunicação, criptografia, roteamento), normas de
segurança (política de segurança, conhecimento de vulnerabilidade de softwares, tipos de ataques
que podem ser realizados) e atualizações das regras do fabricante assim como novas
vulnerabilidades que são descobertas todos os dias por hackers e especialistas em segurança.
O uso das configurações padrões do Snort, como utilizado neste trabalho, mostrou certa margem
de erros, o que deve ser evitado por um administrador de rede que pretende garantir a segurança
de sua rede com um IDS como o Snort.
A configuração do Snort é considerada complexa, pois seu arquivo de configuração padrão
possui muitas linhas e não possui interface gráfica para configuração do mesmo. Qualquer
alteração em seu funcionamento deve ser feita em seu arquivo “.conf” através dos parâmetros de
configuração. Outro ponto quanto a configuração manual, diz respeito a sintaxe, pois qualquer
parâmetro errado pode interferir no funcionamento do sistema.
63
Portanto, para implantar com eficiência o Snort, deve-se entender bem a configuração, assim
como, saber as vulnerabilidades da rede que pode ser atacada, para não comprometer assim sua
eficácia.
5.2
Trabalhos Futuros
Como sugestão para outros trabalhos sobre este assunto, pode ser abordada a análise minuciosa
das regras específicas para determinados tipos de serviços ou ataques assim como o
desenvolvimento de novas regras, com base em testes realizados em ambientes de testes ou casos
de usos. Uma questão levantada com a utilização do Snort é a utilização de outros sistemas para
funcionar em conjunto com ele, no caso um banco de dados, um servidor web e um front end
para visualizar os dados, sendo assim a pesquisa e desenvolvimento de uma solução que torne
menos complexa a configuração e funcionamento do Snort, talvez seja um trabalho a ser
continuado.
Outra sugestão sobre a continuidade deste trabalho seria a análise de outras soluções para IDS a
fim de verificar a eficiência das mesmas, pois em alguns casos, soluções pagas são de qualidade
equivalente ou superior há softwares freeware e open source.
64
REFERÊNCIAS
Bayle. J. Snort 2.1 Intrusion Detection. 2 ed. Massachusetts: Syngress, 2002.
Bishop, M. Computer Security: Art and Science. Addison – Wesley, 2002.
Burns et al. Security Power Tools. 1 ed. California: O’Reilly Media, 2007.
Campos, G. Criando Regras para o Snort. Disponível em
< www.intruders.com.br/artigos/snoc_criando_regras_snort_v02.pdf>. Acesso em: 01 Out. 2009.
CASWELL, Brian et al. Snort 2: Sistema de detecção de intrusão. Rio de Janeiro: Alta
Books, 2003.
Chaves, M. Análise de Estado de Tráfego de Redes TCP/IP para Aplicação em Detecção de
Intrusão. Disponível em
<http://mtc-m05.sid.inpe.br/col/sid.inpe.br/jeferson/2003/06.30.09.23/doc/publicacao.pdf>
Acesso em: 15 set. 2009.
Comer, D. E. Interligação em Rede com TCP/IP . 4. ed. New Jersey: Prentice Hall,
2000. v. 1 princípios, protocolos e arquiteturas.
Even, Loras. Intrusion Detection FAQ: Running Snort under Windows. Disponível em
< http://www.sans.org/security-resources/idfaq/snort.php>. Acesso em 06 set. 2009.
Internet protocol: DARPA Internet program, protocol specification. Request for Comments
RFC 791. Disponivel em <http://www.rfc-editor.org/rfc/rfc791.txt>. Acesso em: 31 mar. 2009.
Lyon, Gordon, Software NMap. Disponível em <http://nmap.org/download.html>. Acesso em:
09 jul. 2009.
65
Postel, J.; Reynolds, J. File transfer protocol (FTP). Request for Comments RFC
959. Disponível em <http://www.rfc-editor.org/rfc/rfc959.txt>. Acesso em: 01 abr. 2009.
Roech, M. Snort Manual 2.8.3. SourceFire, Inc, 2008.
Simple mail transfer protocol: Request for Comments RFC 821. Disponível em
<http://www.rfc-editor.org/rfc/rfc821.txt>. Acesso em: 01 abr. 2009.
Shiry, R. Security Architecture for Internet Protocols: A Guide for Protocol Designs and
Standards. Disponível em <www.ietf.org/id-info/draft-irtf-psrg-secarch-sect1-00.txt>. Acesso
em 05 abr. 2009.
Sundaram, A. An introduction to intrusion detection. Disponível em
< http://www.acm.org/crossroads/xrds2-4/intrus.html >. Acesso em: 29 jul. 2009.
TANENBAUM, Andrew Stuart. Redes de computadores. 4. ed. Rio de Janeiro: Campus,
2003.
TELNET protocol specification. Request for Comments RFC 854. Disponível em
<http://www.rfc-editor.org/rfc/rfc854.txt>. Acesso em: 01 abr. 2009.
Transmission control protocol: DARPA Internet program, protocol specification. Request for
Comments RFC 793. Disponível em <http://www.rfc-editor.org/rfc/rfc793.txt>. Acesso em: 30
Mar 2009.
User datagram protocol: Request for Comments RFC 768. Disponível em
<http://www.rfc-editor.org/rfc/rfc768.txt>. Acesso em: 30 mar. 2009.
Download

Analise de Trafego em Redes