DoS: Negação de Serviço e formas de defesa

Documentos relacionados
DoS: Negação de Serviço e formas de defesa

Auditoria e Segurança de Sistemas Segurança de Redes de Computadores Adriano J. Holanda

Ameaças e Contramedidas de Host

Este artigo abaixo foi produzido originalmente para a Network Core Wiki. Reproduzo-a aqui na íntegra. Publicado originalmente em 07/12/2007.

Gestão da Segurança da Informação Professor: Maurício AULA 04 Tipos de Ataques

Conceitos de Criptografia e o protocolo SSL

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Sistemas Distribuídos Modelo Cliente-Servidor

Execícios de Revisão Redes de Computadores Edgard Jamhour. Proxy, NAT Filtros de Pacotes

Ataques DoS e DDoS. Alessandro Santos Germer Rafael Ambiel Faccioli Roberto Röseling Badô. 1. Introdução

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

MINISTÉRIO DA SAÚDE. Secretária de Gestão Estratégica e Participativa da Saúde SGEP. Coordenação de Desenvolvimento dos Sistemas de Saúde - CDESS

Entendendo as Permissões de Arquivos no GNU/Linux

Ataques e Intrusões. Invasões Trashing e Engenharia Social. Classificação de Hackers

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

Redes Ponto a Ponto. Os drivers das placas de rede devem estar instalados.

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS PELA INTERNET Marcelo Henrique dos Santos -

Disciplina de Redes de Computadores Estudo Dirigido para a Prova II Professor Dr Windson Viana de Carvalho

Compartilhamento da internet, firewall

Entendendo como funciona o NAT

Endereço de Rede. Comumente conhecido como endereço IP Composto de 32 bits comumente divididos em 4 bytes e exibidos em formato decimal

Pacote (Datagrama) IP

SEG. EM SISTEMAS E REDES. 03. Vulnerabilidades em redes. Prof. Ulisses Cotta Cavalca <ulisses.cotta@gmail.com>

Resolução de Problemas de Rede. Disciplina: Suporte Remoto Prof. Etelvira Leite

Rede de Computadores II

Palestra sobre Segurança de Redes - Windows NT

ALTERNATIVA PARA CONEXÃO VIA INTERNET DE IP MASCARADO A IP REAL

Nmap Diferenças entre estados de porta (Parte 1)

SISTEMA MEDLINK E-TISS PASSO-A-PASSO (USE JUNTO COM A VÍDEO AULA)

MINISTÉRIO DA EDUCAÇÃO

Capítulo 5 Métodos de Defesa

Manual do Desktop Sharing. Brad Hards Tradução: Marcus Gama

Para cada questão responda se a afirmativa está certa ou errada, JUSTIFICANDO:


Aula 08. Firewall. Prof. Roitier Campos Gonçalves

O que é uma firewall? É um router entre uma rede privada e uma rede pública que filtra o tráfego com base num conjunto de regras.

Ataques para obtenção de informações

Roteamento Estático (1 ( )

REDES DE COMPUTADORES

Comandos Linux Comando tcpdump, guia de referência e introdução. Sobre este documento

Firewalls. Firewalls

Hackers. Seus dados podem ser inúteis, mas seu computador em si pode ainda ser um recurso valioso.

APÓS A INSTALAÇÃO, MÃOS À OBRA. E AO TECLADO. MANUAL DE INSTALAÇÃO

Redes de Computadores. 1 Questões de múltipla escolha. TE090 - Prof. Pedroso. 17 de junho de 2015

(In)Segurança Virtual. Técnicas de Ataque e Defesa

Ameaças a computadores. Prof. César Couto

Endereços de transporte TPDU. Nível de Rede Endereço de rede. Figura 1. Entidade de transporte

UNIVERSIDADE FEDERAL DE PELOTAS

Segurança com Iptables

Diagrama lógico da rede da empresa Fácil Credito

O que se tem, na prática, é a utilização do protocolo TCP/IP na esmagadora maioria das redes. Sendo a sua adoção cada vez maior.

Desenvolvido por: Rafael Botelho

Sistemas de Detecção de Intrusão

Sistemas para Internet 06 Ataques na Internet

Sistemas Operacionais. Prof. André Y. Kusumoto

17 Erros Mais Comuns ao Elaborar um Plano de Negócio Que Comprometem o Sucesso do Empreendedor

Guia: como instalar o Ubuntu Linux

Manual do Instar Mail v2.0

NORMAS PARA O USO DE SISTEMA DE PROTEÇÃO FIREWALL DE PERÍMETRO NO ÂMBITO DA REDE INFOVIA-MT

Usando o Nmap. A instalação do Nmap é bem simples. Após obter o código fonte execute os comandos abaixo: tar xjvpf nmap-3.48.tar.bz2 cd nmap-3.

1. TSA Inovação - TSA DT_Arquivo_de_Log_do_Integrador_Separado_por_Thread DT_Central_de_Ajuda_UX9...

Permitir a troca de mensagens de texto entre os dois alunos; Permitir que um aluno enviasse para o outro uma cópia de prova;

MANUAL DE USO E CONFIGURAÇÃO DO SOFTWARE SUPERVISÓRIO. BETTA SSB net V 2.01

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO

46. Para aumentar em 25% o tamanho da fonte da palavra continente, é

Roteiro para apresentação do Plano de Negócio. Preparamos este roteiro para ajudá-lo(a) a preparar seu Plano de Negócio.

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Instalação do Sirius sem estações. O primeiro passo é instalar o Firebird 1.5, ele se encontra no CD de instalação do Sirius na pasta Firebird.

Boletim Eletrônico de Recolhimento Manual do Sistema. Boletim Eletrônico de Recolhimento. Manual do Sistema

PHP e MySQL Autenticação de Usuários

Tema: Transbordamento da Tabela CAM ou em inglês CAM table overflow por meio da técnica de Arp Poisoning, Arp spoofing, MAC flooding.

Segurança a da Informação Aula 06. Aula 06

genérico proteção de rede filtragem dos pacotes Sem estado (stateless) no próprio pacote. Com estado (stateful) outros pacotes

13/10/11 TIPOS DE UTILITÁRIOS UTILITÁRIOS 0798 INTRODUÇÃO À PROGRAMAÇÃO TIPOS DE UTILITÁRIOS TIPOS DE UTILITÁRIOS

Enviado dados para o PHP através de formulário

Segurança de Redes de Computadores

1. O DHCP Dynamic Host Configuration Protocol

Firewall Iptables. Professor: João Paulo de Brito Gonçalves. Campus - Cachoeiro Curso Técnico de Informática

Execícios de Revisão Redes de Computadores Edgard Jamhour. Filtros de Pacotes Criptografia SSL

Redes de Computadores II

SERVIDORES REDES E SR1

Lista de Erros Discador Dial-Up

Notas da Aula 6 - Fundamentos de Sistemas Operacionais

Transcrição:

DoS: Negação de Serviço e formas de defesa TchêLinux Ulbra Gravataí http://tchelinux.org/gravatai Elgio Schlemer Ulbra Gravatai http://gravatai.ulbra.tche.br/~elgio 31 de Maio de 2008

Introdução Problemas de segurança Engenharia Social "A Arte de Enganar" Programas maliciosos virus, worms, capturadores de senhas,... Bugs de programação invasões, comprometimento do sistema DoS: Denied of Service "Apenas" tirar do ar

Tipos de negação de serviço Existem dois tipos de negação de serviço: Negação de serviço Local usuário malicioso precisa executar comandos na máquina Negação de serviço Remota usuário malicioso não executa comandos na máquina

DoS Local precisa executar comandos na máquina isto é, ter acesso, login, nele ou é um usuário legítimo malicioso (ou descuidado) ou roubou a senha de um usuário legítimo ou explorou alguma vulnerabilidade para executar comandos na máquina O que um DoS local pode fazer? esgotar algum recurso do sistema

Recursos da máquina: disco capacidade do disco rígido pode escrever no disco até esgotar sua capacidade serviços que precisam de espaço ficarão indisponíveis Exemplo: se lotar o /var/spool/mail não se recebe mais mensagens de email Demonstração Soluções: correto particionamento do disco rígido, quotas de uso demonstração das soluções

Recursos do SO: processos capacidade do escalonamento de processos atacante pode criar processos até lotar novos processos não poderão ser criados serviços ficam indisponíveis (ou lentos) Demonstração: usuário tchelinux executa byebyeproc root não consegue se logar, servidor HTTP fica FORA Soluções: quotas de processos por usuário com Pam Limits

Recursos da máquina: memória capacidade da memória atacante pode alocar memória até lotar serviços que precisam alocar memória não conseguirão serviços podem ficam indisponíveis Demonstração: usuário tchelinux executa byebyemem root não consegue se logar, servidor HTTP fica FORA Soluções: quotas de memória por usuário com Pam Limits

Demonstração Pam Limits Permite definir recursos que usuário pode usar disco: quota + particionamento memória, processos: pam limits Mostrando o arquivo /etc/security/limits.conf # limites para grupo root @root hard maxlogins 50 @root hard nproc 500 @root hard data 2000000 # limites para todos (exceto grupo root, # pois as regras anteriores precedem) * hard maxlogins 15 * hard nproc 20 * hard data 20000

DoS Local: Conclusão Fácil de resolver, é só configurar Particionar corretamente o disco durante a instalação para servidores!! Planejar antes Configurar quotas de disco nas partições que usuários poderão escrever Configurar quotas de recursos Permitir login apenas para quem realmente precisar DoS Local: não deveria ser um problema!!

Negação de serviço remota Derruba serviço ou sistema sem precisar executar comandos Obs: se explorou um bug para executar comandos, não é DoS remoto, é local (apenas usou um bug para poder executar comandos) DoS remoto: bugs nos aplicativos ataques ao protocolo

DoS Remoto: Bugs em programas O serviço possui problemas em sua programação Basta fazer algo para que ele caia Exemplo clássico: ping da morte: ICMP com dados maiores que o buffer do Windows. Pilha TCP caia (TUDO!) Um típico problema de buffer overflow Demonstração: um mini servidor HTTP com bug Exploração através de um simples navegador

Bugs em programas: Solução correção dos problemas de programação crítico: depende do fornecedor Linux: como eu posso mexer no código... proprietários: somente quando vier os tais Patches... : D boas práticas de programação requer mudança de mentalidade programar pensando em segurança caso do miniservidor: não usar gets para ler strings!

DoS Remoto: Ataques a protocolos Exploração de detalhes da pilha TCP/IP Alguns, não tem correção: correção seria implementar novos protocolos Exemplo: ping broadcast Envia se um ping com ip spoofado para todos todos respondem para o ip que cai Solução (fácil): tratar ip spoofing no firewall não responder a pings broadcast

Estudo de caso DoS remoto Syn Flood Baseado na forma como o TCP implementa confiabilidade Não há correção! defesa complicada, mas possível defesa impossível com regras de firewall muito embora alguns tutoriais na Internet digam o contrário exemplo do guia Foca Avançado que prega solução por firewall

Syn Flood Servidor precisa de recursos para cada conexão para os buffers de envio e recebimento para controle de confirmações, entre outros Ao receber o Syn (início de conexão), o servidor: aloca estes recursos define o seu número sequencial responde ao cliente com um Syn + Ack (handshake)

Syn Flood Se cliente não completar handshake após certo tempo: desaloca estes recursos envia um RST (reset) para o cliente Importante: até que o tempo se esgote, recursos ficam alocados E se cliente só fizer SYNs e nunca completar o handshake?

Syn Flood Cliente pode gerar pacotes Syn muito mais rapidamente do que o servidor pode tratá los Flood, inundação de Syns: servidor aloca tantos recursos para falsos clientes que fica sem recursos para atender um cliente legítimo Negação de serviço no servidor! hping3 faz flood

Defesa Syn Flood Muito complicado! Bloquear ips dos atacantes? FALHO: atacante precisa fazer ip spoofing para que ataque tenha sucesso Qual ip bloquear? Limitar quantidade de Syns no firewall? FALHO: firewall vai recusar Syns de clientes legítimos O próprio firewall acaba causando o DoS e o atacante pode explorar isto ainda mais fácil

Defesa Syn Cookie Alocação de recursos feita no final do handshake Somente se cliente for legítimo Cliente legítimo: alguém que completou o handshake como saber se o cliente completou o handshake? Armazenar Ip e porta no primeiro SYN FALHO: isto não é alocar recursos? Reconhecer cliente mesmo sem armazenar nada. COMO????

Funcionamento Syn Cookie Servidor gera seu número sequencial a partir de um HASH de 32 bits: envolvendo a porta e o IP do cliente informações de time stamp informação sigilosa (senha) que só o servidor tem Cliente legítimo deverá no último pacote do handhshake: Numero de ACK = número seqüencia do servidor + 1

Syn Cookie: Cliente legítimo Servidor Cliente Ip 10.1.0.4 Porta 3000 Segredo = 3456

Syn Cookie: Cliente legítimo Servidor Cliente Ip 10.1.0.4 Porta 3000 De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0 HASH (10.1.0.4,3000,3456) HASH32 = 17377737 NS = 17377737 Segredo = 3456

Syn Cookie: Cliente legítimo Servidor Cliente Ip 10.1.0.4 Porta 3000 De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0 Pacote SYN/ACK, NS-S=1737737, NACK=101 ESQUECE TUDO!! Não aloca nada Segredo = 3456

Syn Cookie: Cliente legítimo Servidor Cliente Ip 10.1.0.4 Porta 3000 De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0 Pacote SYN/ACK, NS-S=1737737, NACK=101 Pacote ACK, NS-C=101, NACK=1737738 HASH (10.1.0.4,3000,3456) HASH32 = 17377737 NS = 17377737 Cliente forneceu 17377738 acertou o cookie ALOCA RECURSOS Segredo = 3456

Syn Cookie: Atacante tentando Syn Flood Servidor Cliente Ip??? Porta??? De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0 Segredo = 3456

Syn Cookie: Atacante tentando Syn Flood Servidor Cliente Ip??? Porta??? De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0 HASH (172.21.0.4,300,3456) HASH32 = 926234331 NS = 926234331 ESQUECE TUDO!! Não aloca nada Segredo = 3456

Syn Cookie: Atacante tentando Syn Flood Servidor Cliente Ip??? Porta??? De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0 Para 172.21.0.4 Pacote SYN/ACK, NS-S=926234331, NACK=101 Segredo = 3456?

Syn Cookie: Atacante tentando passar Servidor Cliente Ip?? Porta?? De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 Segredo = 3456

Syn Cookie: Atacante tentando passar Servidor Cliente Ip?? Porta?? De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 Falso cliente não faz Syn, mas envia um ACK tentando fazer o servidor acreditar que já é a 3 etapa do handshake. Ele falsifica o Ip (172.10.3.4) e porta (300) de origem e inventa (advinha) um número de ACK (134538) para convencer o servidor Segredo = 3456

Syn Cookie: Atacante tentando passar Servidor Cliente Ip?? Porta?? De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 Falso cliente não faz Syn, mas envia um ACK tentando fazer o servidor acreditar que já é a 3 etapa do handshake. Ele falsifica o Ip (172.10.3.4) e porta (300) de origem e inventa (advinha) um número de ACK (134538) para convencer o servidor HASH (172.10.3.4,300,3456) HASH32 = 388642517 NS = 388642517 Cliente forneceu 134538 NÃO ACERTOU O COOKIE Não aloca recursos Envia reset (ou não?) Segredo = 3456

Syn Cookie: Atacante tentando passar Servidor Cliente Ip?? Porta?? De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 Falso cliente não faz Syn, mas envia um ACK tentando fazer o servidor acreditar que já é a 3 etapa do handshake. Ele falsifica o Ip (172.10.3.4) e porta (300) de origem e inventa (advinha) um número de ACK (134538) para convencer o servidor Para 172.10.3.4 Pacote RST Segredo = 3456?

Sobre Syn Cookie Atacante não consegue nada fazendo SYNs A menos que ele não minta sobre seu IP, para poder receber o cookie Mas ai ele se expõe e precisa participar do handshake Para enganar o servidor atacante precisa: quebrar um algoritmo de hash de 32 bits é fraco, mas qualquer coisa que leve segundos já inviabiliza adivinhar um número seqüencial de 32 bits (tentativa e erro) Linux tem Syn Cookie a muito tempo: echo 1 > /proc/sys/net/ipv4/tcp_syncookies

Conclusão Negação de serviço local não é problema depende do administrador configurar corretamente Negação de serviço remoto: Bugs: depende da correção Protocolo: difícil, requer defesas Syn Flood Não há defesa por com firewall Uma solução: Syn Cookie

DoS: Negação de Serviço e formas de defesa Elgio Schlemer http://gravatai.ulbra.tche.br/~elgio http://www.vivaolinux.com.br/artigos/verartigo.php?codigo=7070