Proteja seu BIND9 do problema de DNS Cache Poisoning
De gutocarvalho.net
Recentemente foi descoberta uma vulnerabilidade do protocolo DNS e o BIND9 é vulnerável a ela.
Conteúdo |
[editar] instrodução a DNS
O procotocolo DNS ou Domain Name System, traduzindo, Sistema de Nome de Domínios, é um protocolo crítico para a infra-estrutura da internet, através dele é possível trazudir endereços legíveis para nós seres-humanos em endereços ip, como por exemplo o host linux-foundation.org é traduzido para o endereço IP (internet protocolo) 140.211.169.101. Os sistemas da internet entedem o que é 140.211.169.101, sabem como encontrar este endereço, sabem se comunicar com este endereço, buscar e enviar informações para o computador que utiliza este endereço, mas sem o DNS estes sistemas não saberiam como se comunicar com o host "linux-foundation.org". A internet como é hoje depende de forma crítica do bom funcionamento dos sistemas DNS, veja é possível acessar um site, seja FTP (File Transfer Protocolo) ou HTTP (Hypertext Transfer Protocolo), porém no dia a dia seria impraticável decorar endereços IP, lembrando que estes são divididos em 4 octetos, sendo 4 grupos de 8 bits, totalizando de 32 bits. O DNS é o protocolo que facilitou o uso da internet.
A tradução do nome linux-foundation.com é chamada de resolução de DNS, quando digitamos no navegador ou no cliente de ftp um endereço DNS, tal qual www.linuxfoundation.org ou ftp.linux-foundation.org, internamente estes programas solicitam uma resolução de DNS a um serviço de DNS. Aliás podemos dizer que qualquer programa que funcione na internet utiliza a resolução de DNS para funcionar, seja um cliente de e-mail, seja um cliente de mensagens instatâneas como o jabber por exemplo. Falando em jabber, quando você entra com seu usuário e senha e clica em "conectar/entrar" o cliente do jabber tentará se conectar no servidor jabber.org, para isto precisará fazer a resolução de DNS, para tudo utiliza-se a resolução de DNS.
[editar] Como funciona o DNS quando eu digito www.linux-foundation.org?
1. Primeiro o seu navegador pergunta para o servidor de DNS configurado no computador que ele está hospedado.
2. O servidor de DNS do seu provedor vai perguntar para um cara chamado ROOT-Server quem é www.linux-foundation.org
3. O ROOT Server responsável pela área vai dizer que não sabe quem é esse cara, mas ele sabe quem sabe e vai te mandar perguntar pelo servidor DNS responsável pelo domínio .ORG
4. O servidor de DNS do seu provedor vai perguntar então para o servidor de DNS do domínio .ORG
5. O servidor de DNS do domínio .ORG vai dizer que não sabe quem é (www).linux-foundation.org, mas sabe sabe e vai te mandar perguntar para o servidor do domínio (linux-foundation).org quem é o tal do (www).
6. O servidor de DNS do seu provedor vai perguntar então para o servidor de DNS linux-foundation.org e ele vai dizer que sabe, e que o endereço ip do servidor é 140.211.169.101.
7. O servidor de DNs do seu provedor vai responder a pesquisa feita pelo navegador, e a partir deste momento a conexão com o site será iniciada.
Este procedimento é chamado de pesquisa recursiva, a estrutura de DNS está dentro de uma árvore, veja o exemplo abaixo
- root
- br
- org
- onid
- www
- ftp
- onid
- org
- com
- linux
- www
- ftp
- linux
- org
- linux*foundation
- www
- ftp
- linux*foundation
- net
- gutocarvalo
- www
- ftp
- gutocarvalo
- uk
- co
- bbc
- www
- ftp
- bbc
- co
- br
Veja que nesta árvore exemplo temos os domínios e subdomínios...
- .br
- .org.br
- .onid.org.br
- www.onid.org.br
- ftp.onid.org.br
- .br
- .com.br
- .noticiaslinux.com.br
- www.noticiaslinux.com.br
- ftp.noticiaslinux.com.br
- .com
- .linux.com
- www.linux.com
- ftp.linux.com
- .net
- .gutocarvalho.net
- www.gutocarvalho.net
- ftp.gutocarvalho.net
- .org
- .linux-foundation.org
- www.linux-foundation.org
- ftp.linux-foundation.org
- .uk
- .co.uk
- .bb.co.uk
- www.bbc.co.uk
- ftp.bbc.co.uk
Existem 13 servidores de DNS principais, chamados de RootServers, eles são responsáveis por informar que é responsável por cada ramo desta ávore, em nosso caso, o registro.br é responsável pelo ramo .br , para quem não sabe o registro.br é um entidade do CGI.BR, antigamente quem cuidava deste ramo era a fapesp.
[editar] O que é Cache?
Na atual estrutura de DNS existem um recurso chamado cache, o que é...
[editar] Explicação da Falha
Sobre a falha...
[editar] Referências
Sobre o problema
- http://www.debian.org/security/2008/dsa-1603
- http://www.trusteer.com/bind9dns_s
- http://www.securityfocus.com/bid/25037
Fixes para bind9
- http://www.howtoforge.com/how-to-patch-bind-to-avoid-cache-poisoning-debian-etch
- http://www.howtoforge.com/how-to-patch-bind-to-avoid-cache-poisoning-fedora-centos
Exploits para bind

