SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
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
                                                                    HASH (10.1.0.4,3000,3456)
              De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0   HASH32 = 17377737
Ip 10.1.0.4
Porta 3000                                                          NS = 17377737




                                                                                   Segredo = 3456
Syn Cookie: Cliente legítimo

                                                                           Servidor
 Cliente
              De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0
Ip 10.1.0.4
Porta 3000
                                                                    ESQUECE TUDO!!
                                                                    Não aloca nada
                    Pacote SYN/ACK, NS-S=1737737, NACK=101




                                                                                Segredo = 3456
Syn Cookie: Cliente legítimo

                                                                              Servidor
 Cliente
                De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0
Ip 10.1.0.4
Porta 3000



                      Pacote SYN/ACK, NS-S=1737737, NACK=101




                                                                      HASH (10.1.0.4,3000,3456)
              Pacote ACK, NS-C=101, NACK=1737738                      HASH32 = 17377737
                                                                      NS = 17377737
                                                                      Cliente forneceu 17377738
                                                                      acertou o cookie
                                                                      ALOCA RECURSOS


                                                                                     Segredo = 3456
Syn Cookie: Atacante tentando Syn Flood

                                                                    Servidor
  Cliente
             De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0
  Ip ???
 Porta ???




                                                                         Segredo = 3456
Syn Cookie: Atacante tentando Syn Flood

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




                                                                                   Segredo = 3456
Syn Cookie: Atacante tentando Syn Flood

                                                                           Servidor
  Cliente
             De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0
  Ip ???
 Porta ???



                                                                       1
                                                                     10
                                                                   K=
                                                                 AC
                                                               ,N
                                                              31
                                                           343
                                                         62
                                                     = 92
                                                    -S
                                                  NS
                                               K,
                                            /AC
                                          YN
                                       teS
                                     co
                                 4 Pa
                              .0.
                          2.21
                        17
                   ra
                 Pa
                                                                                Segredo = 3456


             ?
Syn Cookie: Atacante tentando passar

                                                                       Servidor
Cliente
           De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538
 Ip ??
Porta ??




                                                                            Segredo = 3456
Syn Cookie: Atacante tentando passar

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




                                                                                      Segredo = 3456
Syn Cookie: Atacante tentando passar

                                                                       Servidor
Cliente
           De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538
 Ip ??
Porta ??       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




                                            T
                                          RS
                                    ote
                                 Pac
                              .4
                           0.3
                        2.1
                      17
                   ra
                 Pa
                                                                            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

Más contenido relacionado

Destacado

Hackeando Mentes - Engenharia social
Hackeando Mentes - Engenharia social Hackeando Mentes - Engenharia social
Hackeando Mentes - Engenharia social Abraão Állysson
 
ENGENHARIA SOCIAL: EXPLORANDO O ELO MAIS FRACO DA SEGURANÇA DA INFORMAÇÃO
ENGENHARIA SOCIAL: EXPLORANDO O ELO MAIS FRACO DA  SEGURANÇA DA INFORMAÇÃO ENGENHARIA SOCIAL: EXPLORANDO O ELO MAIS FRACO DA  SEGURANÇA DA INFORMAÇÃO
ENGENHARIA SOCIAL: EXPLORANDO O ELO MAIS FRACO DA SEGURANÇA DA INFORMAÇÃO Diego Souza
 
Segurança da informação nas redes sociais
Segurança da informação nas redes sociaisSegurança da informação nas redes sociais
Segurança da informação nas redes sociaisMilena Gonçalves
 
Engenharia Social: Amiguinhos Virtuais, Ameaças Reais
Engenharia Social: Amiguinhos Virtuais, Ameaças ReaisEngenharia Social: Amiguinhos Virtuais, Ameaças Reais
Engenharia Social: Amiguinhos Virtuais, Ameaças ReaisRafael Jaques
 
Segurança dos sistemas de informação
Segurança dos sistemas de informaçãoSegurança dos sistemas de informação
Segurança dos sistemas de informaçãoRodrigo Gomes da Silva
 
Palestra Sobre Engenharia Social
Palestra Sobre Engenharia SocialPalestra Sobre Engenharia Social
Palestra Sobre Engenharia SocialDavi Rodrigues
 
Entendendo a Engenharia Social
Entendendo a Engenharia SocialEntendendo a Engenharia Social
Entendendo a Engenharia SocialDaniel Marques
 
Engenharia Social - A arte de enganar
Engenharia Social - A arte de enganarEngenharia Social - A arte de enganar
Engenharia Social - A arte de enganarAnderson Zardo
 
Como Lidar com a Mente
Como Lidar com a MenteComo Lidar com a Mente
Como Lidar com a MenteDora Guiseline
 
Hackeando Mentes - Engenharia Social
Hackeando Mentes - Engenharia SocialHackeando Mentes - Engenharia Social
Hackeando Mentes - Engenharia SocialBruno Alexandre
 
Como iniciar e manter conversas com pessoas desconhecidas
Como iniciar e manter conversas com pessoas desconhecidasComo iniciar e manter conversas com pessoas desconhecidas
Como iniciar e manter conversas com pessoas desconhecidasAres_Bruno
 
Gatilhos Mentais: o que são e como aplicar
Gatilhos Mentais: o que são e como aplicarGatilhos Mentais: o que são e como aplicar
Gatilhos Mentais: o que são e como aplicarMateada
 
Engenharia Social: A Doce Arte de Hackear Mentes
Engenharia Social: A Doce Arte de Hackear MentesEngenharia Social: A Doce Arte de Hackear Mentes
Engenharia Social: A Doce Arte de Hackear MentesRafael Jaques
 

Destacado (20)

Engenharia social
Engenharia socialEngenharia social
Engenharia social
 
Hackeando Mentes - Engenharia social
Hackeando Mentes - Engenharia social Hackeando Mentes - Engenharia social
Hackeando Mentes - Engenharia social
 
ENGENHARIA SOCIAL: EXPLORANDO O ELO MAIS FRACO DA SEGURANÇA DA INFORMAÇÃO
ENGENHARIA SOCIAL: EXPLORANDO O ELO MAIS FRACO DA  SEGURANÇA DA INFORMAÇÃO ENGENHARIA SOCIAL: EXPLORANDO O ELO MAIS FRACO DA  SEGURANÇA DA INFORMAÇÃO
ENGENHARIA SOCIAL: EXPLORANDO O ELO MAIS FRACO DA SEGURANÇA DA INFORMAÇÃO
 
Segurança em redes sociais
Segurança em redes sociaisSegurança em redes sociais
Segurança em redes sociais
 
Engenharia Social
Engenharia SocialEngenharia Social
Engenharia Social
 
Segurança da informação nas redes sociais
Segurança da informação nas redes sociaisSegurança da informação nas redes sociais
Segurança da informação nas redes sociais
 
Engenharia Social: Amiguinhos Virtuais, Ameaças Reais
Engenharia Social: Amiguinhos Virtuais, Ameaças ReaisEngenharia Social: Amiguinhos Virtuais, Ameaças Reais
Engenharia Social: Amiguinhos Virtuais, Ameaças Reais
 
Segurança dos sistemas de informação
Segurança dos sistemas de informaçãoSegurança dos sistemas de informação
Segurança dos sistemas de informação
 
Palestra Sobre Engenharia Social
Palestra Sobre Engenharia SocialPalestra Sobre Engenharia Social
Palestra Sobre Engenharia Social
 
Entendendo a Engenharia Social
Entendendo a Engenharia SocialEntendendo a Engenharia Social
Entendendo a Engenharia Social
 
Engenharia Social
Engenharia SocialEngenharia Social
Engenharia Social
 
Engenharia Social - A arte de enganar
Engenharia Social - A arte de enganarEngenharia Social - A arte de enganar
Engenharia Social - A arte de enganar
 
Como Lidar com a Mente
Como Lidar com a MenteComo Lidar com a Mente
Como Lidar com a Mente
 
Mentalismo multiplo
Mentalismo multiploMentalismo multiplo
Mentalismo multiplo
 
Hackeando Mentes - Engenharia Social
Hackeando Mentes - Engenharia SocialHackeando Mentes - Engenharia Social
Hackeando Mentes - Engenharia Social
 
Como iniciar e manter conversas com pessoas desconhecidas
Como iniciar e manter conversas com pessoas desconhecidasComo iniciar e manter conversas com pessoas desconhecidas
Como iniciar e manter conversas com pessoas desconhecidas
 
Gatilhos Mentais: o que são e como aplicar
Gatilhos Mentais: o que são e como aplicarGatilhos Mentais: o que são e como aplicar
Gatilhos Mentais: o que são e como aplicar
 
25 maneiras de influenciar pessoas
25 maneiras de influenciar pessoas25 maneiras de influenciar pessoas
25 maneiras de influenciar pessoas
 
10 Estratégias de Manipulação
10 Estratégias de Manipulação10 Estratégias de Manipulação
10 Estratégias de Manipulação
 
Engenharia Social: A Doce Arte de Hackear Mentes
Engenharia Social: A Doce Arte de Hackear MentesEngenharia Social: A Doce Arte de Hackear Mentes
Engenharia Social: A Doce Arte de Hackear Mentes
 

Similar a DoS: Negação de Serviço e formas de defesa - Elgio Schlemer

Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvemIgnacio Nin
 
Trabalho rede de computadores 6º si
Trabalho rede de computadores   6º siTrabalho rede de computadores   6º si
Trabalho rede de computadores 6º siMarcos Vinícius Brum
 
Segurança e Forense em Redes de Computadores
Segurança e Forense em Redes de ComputadoresSegurança e Forense em Redes de Computadores
Segurança e Forense em Redes de ComputadoresEuler Neto
 
Apostilas modelo cliente servidor
Apostilas   modelo cliente servidorApostilas   modelo cliente servidor
Apostilas modelo cliente servidorDaniel Silveira
 
WANs e Roteadores Cap. 10 TCP/IP Intermediário - CCNA 3.1 Wellington Pinto de...
WANs e Roteadores Cap. 10 TCP/IP Intermediário - CCNA 3.1 Wellington Pinto de...WANs e Roteadores Cap. 10 TCP/IP Intermediário - CCNA 3.1 Wellington Pinto de...
WANs e Roteadores Cap. 10 TCP/IP Intermediário - CCNA 3.1 Wellington Pinto de...Wellington Oliveira
 
PABX IP utilizando Asterisk
PABX IP utilizando AsteriskPABX IP utilizando Asterisk
PABX IP utilizando AsteriskHelio Loureiro
 
Como recuperar senhas WEP de redes wireless com Backtrack
Como recuperar senhas WEP de redes wireless com BacktrackComo recuperar senhas WEP de redes wireless com Backtrack
Como recuperar senhas WEP de redes wireless com BacktrackNatanael Simões
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)elliando dias
 
Camada de transporte capitulo 3
Camada de transporte   capitulo 3Camada de transporte   capitulo 3
Camada de transporte capitulo 3fernandao777
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linuxelliando dias
 
Economize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCacheEconomize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCacheRodrigo Immaginario
 
DDoS - Ataque de negação de serviço
DDoS - Ataque de negação de serviçoDDoS - Ataque de negação de serviço
DDoS - Ataque de negação de serviçoGustavo Neves
 
Mini-Curso de Sockets no Unipê
Mini-Curso de Sockets no UnipêMini-Curso de Sockets no Unipê
Mini-Curso de Sockets no UnipêElenilson Vieira
 
INT303 - Boot Remoto de Linux no Windows Server 2008 R2
INT303 - Boot Remoto de Linux no Windows Server 2008 R2INT303 - Boot Remoto de Linux no Windows Server 2008 R2
INT303 - Boot Remoto de Linux no Windows Server 2008 R2mestresemhd
 
Lista 03 respostas
Lista 03 respostasLista 03 respostas
Lista 03 respostasForça Tauá
 

Similar a DoS: Negação de Serviço e formas de defesa - Elgio Schlemer (20)

Datacenter na nuvem
Datacenter na nuvemDatacenter na nuvem
Datacenter na nuvem
 
Trabalho rede de computadores 6º si
Trabalho rede de computadores   6º siTrabalho rede de computadores   6º si
Trabalho rede de computadores 6º si
 
Segurança e Forense em Redes de Computadores
Segurança e Forense em Redes de ComputadoresSegurança e Forense em Redes de Computadores
Segurança e Forense em Redes de Computadores
 
Apostilas modelo cliente servidor
Apostilas   modelo cliente servidorApostilas   modelo cliente servidor
Apostilas modelo cliente servidor
 
Skype
SkypeSkype
Skype
 
WANs e Roteadores Cap. 10 TCP/IP Intermediário - CCNA 3.1 Wellington Pinto de...
WANs e Roteadores Cap. 10 TCP/IP Intermediário - CCNA 3.1 Wellington Pinto de...WANs e Roteadores Cap. 10 TCP/IP Intermediário - CCNA 3.1 Wellington Pinto de...
WANs e Roteadores Cap. 10 TCP/IP Intermediário - CCNA 3.1 Wellington Pinto de...
 
PABX IP utilizando Asterisk
PABX IP utilizando AsteriskPABX IP utilizando Asterisk
PABX IP utilizando Asterisk
 
Como recuperar senhas WEP de redes wireless com Backtrack
Como recuperar senhas WEP de redes wireless com BacktrackComo recuperar senhas WEP de redes wireless com Backtrack
Como recuperar senhas WEP de redes wireless com Backtrack
 
Aula 5 semana
Aula 5 semanaAula 5 semana
Aula 5 semana
 
Camada de transporte parte1
Camada de transporte parte1Camada de transporte parte1
Camada de transporte parte1
 
Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)Linux Servidor Proxy(squid)
Linux Servidor Proxy(squid)
 
Camada de transporte capitulo 3
Camada de transporte   capitulo 3Camada de transporte   capitulo 3
Camada de transporte capitulo 3
 
redes
redesredes
redes
 
Alta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores LinuxAlta Disponibilidade na Prática utilizando servidores Linux
Alta Disponibilidade na Prática utilizando servidores Linux
 
Economize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCacheEconomize o Consumo de Link WAN com o BranchCache
Economize o Consumo de Link WAN com o BranchCache
 
DDoS - Ataque de negação de serviço
DDoS - Ataque de negação de serviçoDDoS - Ataque de negação de serviço
DDoS - Ataque de negação de serviço
 
Mini-Curso de Sockets no Unipê
Mini-Curso de Sockets no UnipêMini-Curso de Sockets no Unipê
Mini-Curso de Sockets no Unipê
 
INT303 - Boot Remoto de Linux no Windows Server 2008 R2
INT303 - Boot Remoto de Linux no Windows Server 2008 R2INT303 - Boot Remoto de Linux no Windows Server 2008 R2
INT303 - Boot Remoto de Linux no Windows Server 2008 R2
 
Lista 03 respostas
Lista 03 respostasLista 03 respostas
Lista 03 respostas
 
Redes 04 - transporte
Redes   04 - transporteRedes   04 - transporte
Redes 04 - transporte
 

Más de Tchelinux

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Tchelinux
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeTchelinux
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Tchelinux
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Tchelinux
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeTchelinux
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...Tchelinux
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Tchelinux
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...Tchelinux
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Tchelinux
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeTchelinux
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeTchelinux
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Tchelinux
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...Tchelinux
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...Tchelinux
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Tchelinux
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Tchelinux
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.Tchelinux
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Tchelinux
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygameTchelinux
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Tchelinux
 

Más de Tchelinux (20)

Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
Do Zero ao YouTube em menos de 10 softwares livres - Vinícius Alves Hax - Tch...
 
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio GrandeInsegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
Insegurança na Internet - Diego Luiz Silva da Costa - Tchelinux 2019 Rio Grande
 
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
Explorando Editores de Texto Open Source - Gabriel Prestes Ritta - Tchelinux ...
 
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
Desenvolvendo Jogos com PyGame - Jerônimo Medina Madruga - Tchelinux 2019 Rio...
 
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio GrandeMe formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
Me formei. E agora? - Matheus Cezar - Tchelinux 2019 Rio Grande
 
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
APIs, REST e RESTful: O que os programadores precisam saber? - Marcos Echevar...
 
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
Shell Script: Seu melhor amigo na automatização de instalações e configuraçõe...
 
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
WebRTC: Comunicação aberta em tempo real - Nelson Dutra Junior - Tchelinux 20...
 
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
Introdução à programação funcional com Clojure - Victor Hechel Colares - Tche...
 
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio GrandeConstruindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
Construindo um Data Warehouse - Vítor Resing Plentz - Tchelinux 2019 Rio Grande
 
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio GrandeBikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
Bikeshedding - Márcio Josué Ramos Torres - Tchelinux 2019 Rio Grande
 
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
Produção de textos com Latex - Samuel Francisco Ferrigo - Tchelinux Caxias do...
 
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
A tecnologia no futuro e nas mãos de quem ela estará - Jaqueline Trevizan, Ne...
 
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
oVirt uma solução de virtualização distribuída opensource - Daniel Lara - Tch...
 
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
Sistemas Embarcados e Buildroot - Renato Severo - Tchelinux Caxias do Sul 2019
 
Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.Com que ônibus eu vou? Uma gentil introdução ao Python.
Com que ônibus eu vou? Uma gentil introdução ao Python.
 
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
O TCC... um dia ele chega! (The beautiful and easy LaTeX way.
 
Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes. Não deixe para testar depois o que você pode testar antes.
Não deixe para testar depois o que você pode testar antes.
 
Desenvolvendo jogos com pygame
Desenvolvendo jogos com pygameDesenvolvendo jogos com pygame
Desenvolvendo jogos com pygame
 
Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?Essa câmera faz fotos muito boas, né?
Essa câmera faz fotos muito boas, né?
 

DoS: Negação de Serviço e formas de defesa - Elgio Schlemer

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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!!
  • 10. 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
  • 11. 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
  • 12. 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!
  • 13. 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
  • 14. 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
  • 15. 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)
  • 16. 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?
  • 17. 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
  • 18. 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
  • 19. 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????
  • 20. 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
  • 21. Syn Cookie: Cliente legítimo Servidor Cliente Ip 10.1.0.4 Porta 3000 Segredo = 3456
  • 22. Syn Cookie: Cliente legítimo Servidor Cliente HASH (10.1.0.4,3000,3456) De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0 HASH32 = 17377737 Ip 10.1.0.4 Porta 3000 NS = 17377737 Segredo = 3456
  • 23. Syn Cookie: Cliente legítimo Servidor Cliente De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0 Ip 10.1.0.4 Porta 3000 ESQUECE TUDO!! Não aloca nada Pacote SYN/ACK, NS-S=1737737, NACK=101 Segredo = 3456
  • 24. Syn Cookie: Cliente legítimo Servidor Cliente De 10.1.0.4, porta 3000 Pacote SYN, NS-C=100 NACK=0 Ip 10.1.0.4 Porta 3000 Pacote SYN/ACK, NS-S=1737737, NACK=101 HASH (10.1.0.4,3000,3456) Pacote ACK, NS-C=101, NACK=1737738 HASH32 = 17377737 NS = 17377737 Cliente forneceu 17377738 acertou o cookie ALOCA RECURSOS Segredo = 3456
  • 25. Syn Cookie: Atacante tentando Syn Flood Servidor Cliente De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0 Ip ??? Porta ??? Segredo = 3456
  • 26. Syn Cookie: Atacante tentando Syn Flood Servidor Cliente HASH (172.21.0.4,300,3456) De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0 HASH32 = 926234331 Ip ??? Porta ??? NS = 926234331 ESQUECE TUDO!! Não aloca nada Segredo = 3456
  • 27. Syn Cookie: Atacante tentando Syn Flood Servidor Cliente De 172.21.0.4, porta 300 Pacote SYN, NS-C=100 NACK=0 Ip ??? Porta ??? 1 10 K= AC ,N 31 343 62 = 92 -S NS K, /AC YN teS co 4 Pa .0. 2.21 17 ra Pa Segredo = 3456 ?
  • 28. Syn Cookie: Atacante tentando passar Servidor Cliente De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 Ip ?? Porta ?? Segredo = 3456
  • 29. Syn Cookie: Atacante tentando passar Servidor Cliente De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 Ip ?? Porta ?? 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
  • 30. Syn Cookie: Atacante tentando passar Servidor Cliente De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 HASH (172.10.3.4,300,3456) Ip ?? HASH32 = 388642517 Porta ?? Falso cliente não faz Syn, mas envia um ACK NS = 388642517 tentando fazer o servidor acreditar que já é a 3 Cliente forneceu 134538 etapa do handshake. NÃO ACERTOU O COOKIE Não aloca recursos Ele falsifica o Ip (172.10.3.4) e porta (300) de Envia reset (ou não ?) origem e inventa (advinha) um número de ACK (134538) para convencer o servidor Segredo = 3456
  • 31. Syn Cookie: Atacante tentando passar Servidor Cliente De 172.10.3.4 porta 300 Pacote ACK, NS-C=101, NACK=134538 Ip ?? Porta ?? 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 T RS ote Pac .4 0.3 2.1 17 ra Pa Segredo = 3456 ?
  • 32. 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
  • 33. 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
  • 34. 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