Segurança em Sites Internet Prof. M. Sc. Claudio Monteiro Universidade Luterana do Brasil - ULBRA Centro Universitário Luterano de Palmas - CEULP Curso de Bacharelado em Sistemas de Informação *** Grupo de Pesquisa Aplicada em Redes de Computadores - GPARC***
Nosso 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
1 - Introdução
2 - Motivação Serviço de Nomes História DNS DNS - Domain Name System
Unix: O Sistema Operacional Multiusuário Multitarefa Autenticação no nível de usuário
Unix: O Sistema Operacional Controle de Permissões por Arquivos Administração por Usuários e Grupos
Unix: 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!!!
Unix: O Sistema Operacional Sequência de Comandos Shell que podem dar séries dores de cabeça em administradores de sistemas Unix Situação: Usuário cria esse arquivo shell e o chama de “ls” (comando básico do Unix). Cria uma arquivo qualquer e pede ao adminis- trador do sistema para apagá-lo... Como o Adm não desconfia, ele loga e executa o “ls” feito pelo usuário.
Unix: O Sistema Operacional Exemplo da inicialização da variável PATH nos vários shells: sh, ksh e csh Observe que no exemplo acima o diretório “.” é o primeiro da lista de PATH... Isso garante que qualquer comando dado pelo usuário com esse path será procurado no diretório corrente primeiro...
Conectividade: Uma grande necessidade Solicitaçã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
Conectividade: Uma grande necessidade Exemplos de conexão usando o protocolo de aplicação http com a ajuda de um browser
Conectividade: Uma grande necessidade 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, mostrando a listagem dos arquivos localizados remotamente.
Seguranç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 um bom meio de comunicação de dados.
TCP/IP: O Vilão? O IP - Nível de Rede O UDP - Nível de Transporte O TCP - Nível de Transporte R 10.0.0.37 192.5.48.6 128.10.2.3 128.10.0.0 192.5.48.0 10.0.0.0
TCP/IP: O Vilão? Redes Interligadas Rede 1 G Rede 4 Rede 5 Rede 2 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
TCP/IP: O Vilão? O TCP e o Famoso “Aperto de Mão Triplo” Slide 3
TCP/IP: O Vilão? Portas de Serviço e Sockets Abertura de socket TCP com a porta 25 Interação com o servidor na porta 25
Considerações sobre os protocolos 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.
Camada de Rede IP Aplicação Mensagem Transporte Segmento Rede Datagrama IP Bits e Quadro Aplicação Transporte Física Rede IP
Datagrama IP Vers Hlen Service Type Total Length Identification Flags Fragment Offset Time to Live Protocol Header Checksum Source IP Address Destination IP Address Options (if any) Padding Data 4 8 16 31 . . . 24 19
Protocolo UDP (User Datagram Protocol) Quando Utilizar o UDP? Aplicações que implementam mecanismo de entrega confiável Pequena quantidade de dados a transmitir Protocolo UDP (User Datagram Protocol)
Localização do Protocolo UDP na Arquitetura TCP/IP Mensagem Segmento Datagrama IP Bits e Quadro Aplicação Transporte Física Rede UDP
Formato do datagrama UDP DNS PORT = 53
Placa de Rede / Fax Modem Nível de Aplicação Aplicação Aplicação Definição de portas SMTP FTP DNS NFS Port TCP UDP Transporte Protocol IP Rede Endereço IP Física Placa de Rede / Fax Modem
Demonstrações Conexão TCP com a porta 110 da máquina “localhost” Aplicação desenvolvida segundo a API de sockets para Unix que explora uma vulnerabilidade na implementação do protocolo de aplicação POP
Demonstrações Login feito pelo usuário redes Sniffer em ação, produzindo um log com a senha digitada pelo usuário redes na seção de login
Demonstrações Conexão FTP feita com uma máquina Unix. Verifique que o login foi autenticado sem senha e que o diretório “incoming” possui permissões de escrita para qualquer usuário. Isso normalmente é usado por servidores que necessitam que seus próprios usuários mantenham seus repositórios atualizados. Isso permite que seja “plantada” uma aplicação no servidor, que possua características especiais para produzir uma Back Door
Demonstrações Resultado: Visualização do arquivo de senhas do servidor
Demonstrações O Spoofing de IP Firewall Máquina 01 da Rede Local Máquina Atacante Firewall Máquina 02 da Rede Local
Demonstraçõ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. Servidor DNS www.oi.com = 10.10.10.1 www.cade.com = 35.35.2.80 www.cade.com www.oi.com www.av.com = 20.20.20.80 www.ufg.br =50.75.96.8 www.ufg.br www.av.com
Será que o site da Ulbra esta no endereço Demonstrações: Serviços de Nomes Nomes de domínios Os Nomes de Domínios são utilizados para facilitar a identificação da origem de uma determinada informação. Será que o site da Ulbra esta no endereço 200.167.132.241 ? Ou 200.162.132.235 ? O site da ulbra esta no endereço: www.ulbra-to.br Mané Joãozinho www.ulbra-to.br = 200.167.132.241
Demonstrações: Serviços de Nomes Processamento de Requisições www.ulbra-to.br = 150.161.6.11 dns.ola.com www.ulbra-to.br terp.umd.edu Cliente1.ola.com br NS fpsp.fapesp.br www.ulbra-to.br www.ulbra-to.br cache Resolver Name Server fpsp.fapesp.br 150.161.6.11 ulbra-to.br NS dns.ulbra-to.br www.ulbra-to.br A 150.161.6.11 www.ulbra-to.br dns.ulbra-to.br Pacote DNS
Demonstrações: Serviços de Nomes 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 Nomes
Implementação do IP SPOOFING Demonstrações: Serviços de Nomes Implementação do IP SPOOFING ... 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;
Falsificação de IP em Pacotes DNS - DNS SPOOF Demonstrações: Serviços de Nomes Falsificação de IP em Pacotes DNS - DNS SPOOF www.ulbra-to.br = 1.2.3.4 www.ulbra-to.br terp.umd.edu cliente1.ola.com Pacote Ignorado Pacote Ignorado br NS fpsp.fapesp.br www.ulbra-to.br cache Resolver Name Server Servidor DNS - dns.ola.com S.O. NT ou LINUX 1.2.3.4 www.ulbra-to.br A 1.2.3.4 atacante.rold.com
Implementação da Falsificação de IP em Pacotes DNS Demonstrações: Serviços de Nomes Implementação da Falsificação de IP em Pacotes DNS www.ulbra-to.br = 1.2.3.4 www.ulbra-to.br terp.umd.edu cliente1.ola.com Pacote Ignorado Pacote Ignorado br NS fpsp.fapesp.br www.ulbra-to.br cache Resolver Name Server Cliente2.ola.com dns.ola.com 1.2.3.4 SNIFF Captura a pergunta enviada por dns.ola.com www.ulbra-to.br A 1.2.3.4 Rede Ethernet DNSspoof.c Invasor
Demonstrações: Serviços de Nomes 7 - Conseqüências * Alterar a Origem da Informação * Driblar mecanismos de defesas baseados em wrappers Visualizando página Web indesejada cliente1.ola.com www.ulbra-to.br cache Resolver Name Server 1.2.3.4 1.2.3.4 GET /index.html Servidor WEB 1.2.3.4 cliente1.ola.com Página Web Requisitada
Conclusões Após a implementação de um programa que realiza a falsificação de endereços IP's em pacotes de respostas enviados para servidores DNS, realizamos vários experimentos, que nos permitiram concluir que servidores DNS configurados sob os sistemas operacionais Linux e WindowsNT se encontram vulneráveis, podendo ter seu cache poluído com uma resposta falsa.
Estrutura de uma Mensagem Enviada por um Servidor DNS
DNS packet header (Cabeçalho do Pacote DNS)
Seção de Pergunta do Pacote DNS
Seção de Resposta do Pacote DNS Voltar
6.1 - Conteúdo do Pacote DNS na Pergunta Enviada
6.2 - Informações Necessárias para Montar o Pacote de Resposta * ID do cabeçalho DNS * Nome a ser resolvido da seção de pergunta * Endereço IP de destino * Porta de origem Voltar
Encapsulamento de Dados Data Aplicação Transporte Rede Física Header Encapsulamento de Dados