Colaboração especial por Ricardo Rocha.
Há duas semanas, foi divulgada uma falha crítica de segurança no serviço de DNS que, sem ser alarmista, tem o potencial de colocar em risco cada usuário da internet. Desta vez, a falha não foi descoberta nesse ou naquele produto ou sistema operacional: é o próprio protocolo de DNS que possui uma falha e que afeta todo cliente e servidor de DNS, em qualquer sistema operacional.
A solução temporária para o problema foi modificar softwares de maneira a tornar a exploração da falha mais difícil. Para entender o problema, é necessário entender o que é e como funciona o serviço de DNS. Se você já sabe o que é o DNS, pule os primeiros parágrafos deste artigo.

O DNS (Domain Name Server) é um serviço que converte (ou resolve) nomes de máquinas em endereços IP. Por exemplo, quando digitamos no navegador o endereço http://www.macmagazine.com.br, a primeira tarefa que ele executa é solicitar a conversão deste nome para o respectivo endereço IP (no caso, 72.47.239.48). Sem este endereço IP, o navegador ou qualquer software que acessa a internet não pode fazer nada.
A conversão é solicitada ao cliente de DNS local da máquina, que repassa o pedido ao servidor de DNS para o qual a máquina está configurada. O endereço do servidor de DNS é configurado na máquina no mesmo momento em que a estação obtém um endereço IP (além de outras informações) do provedor, considerando um acesso residencial tradicional. Para saber o servidor de DNS no Mac OS X, basta vá nas Preferências do Sistema » Rede » Avançado e clique na aba DNS.
A internet mantém servidores de DNS distribuídos, responsáveis por fazer esses mapeamentos de nomes em endereços. Cada domínio ou sub-domínio na internet mantém o seu próprio servidor e ela mantém um conjunto de servidores-raízes, responsáveis por fazer a primeira resolução de domínios. Uma resolução deve passar por todos os servidores, desde o de nível mais alto, até o mais específico.
Para simplificar a discussão: quando um servidor recebe a resposta de uma resolução de nome, para manter as próximas resoluções mais eficientes, ele mantém por um tempo na memória (cache) o endereço IP obtido. Assim, na próxima resolução basta acessar a memória, ao invés de repassar novamente o pedido aos vários servidores de DNS. O servidor de DNS do provedor de acesso para o qual nossa máquina está configurada mantém na memória cache os IP de todas as resoluções solicitadas pelos clientes do provedor.
A própria máquina cliente mantém um cache local das resoluções efetuadas, de maneira a solicitar ao servidor apenas quando precisa resolver um nome diferente. No Mac OS X, você pode verificar as entradas que estão no cache local digitando o seguinte comando no Terminal:
dscacheutil -cachedump -entries host
Não é difícil perceber que o funcionamento do DNS é crítico para a internet. Só para você ter uma idéia, no recente apagão da Telefônica, houve relatos de usuários que conseguiram acessar a internet normalmente apenas modificando o endereço do servidor de DNS para um servidor externo à rede da Telefônica.
Há uma técnica conhecida há anos para enganar servidores de DNS conhecida por “envenenamento de cache”. Nesta técnica, um usuário mal intencionado envia uma resposta a um pedido de resolução de nome para um servidor de DNS antes do servidor correto, enganando quem fez o pedido que coloca a resposta no seu cache. Por exemplo, o usuário mal intencionado poderia colocar o endereço de uma máquina que ele controla como resultado da resolução do endereço de um banco. Neste caso, quem está acessando o banco não teria idéia de que está acessando uma outra máquina. Não é difícil perceber o tamanho do estrago que isso pode causar!
O que há de novidade nisso tudo é que um pesquisador chamado Dan Kaminsky descobriu que, devido a uma falha no protocolo de DNS, é possível realizar o envenenamento de cache em poucos segundos em virtualmente qualquer servidor de DNS, como o BIND (usado no Mac OS X).
Essa descoberta foi alarmante, sendo discutida secretamente entre as várias empresas que produziam servidores e clientes de DNS. Depois de seis meses, essas empresas lançaram patches ao mesmo tempo para todos os seus produtos, em uma iniciativa conjunta inédita, até então. Só foi aí que o problema se tornou público, embora ninguém tivesse revelado como explorar a falha (e enganar os servidores). O segredo durou 13 dias: a informação apareceu em um blog e na última quinta (dia 24) já havia pelo menos duas ferramentas cracker prontas para explorar a falha.
E qual a relação disso tudo com a Apple?, você me pergunta.
Apesar dos seis meses em que as empresas — incluindo a Apple — conheciam a falha, do lançamento no dia 08 de julho de uma correção em conjunto de todos as empresas e de já existirem, desde o último dia 24, ferramentas prontas para explorá-la, até agora a Apple não lançou uma correção para o Mac OS X! E o pior de tudo: o BIND já foi corrigido desde o dia 08, também. Todas as versões do Mac OS X estão vulneráveis, embora os alvos mais interessantes para os crackers sejam os servidores baseados em Mac OS X.
Enquanto a Apple não solta uma atualização, não há muito o que fazer nas máquinas clientes Mac OS X. Entretanto, é necessário garantir que o servidor de DNS para o qual a máquina está configurada não é um servidor Mac OS X Server. Se for este o caso, pode-se configurar a máquina para utilizar outro servidor de DNS primário, sendo uma opção segura os servidores do OpenDNS. Os IPs do OpenDNS são 208.67.222.222 e 208.67.220.220.
Para quem possui máquinas Mac OS X Server e que atuam como servidores de DNS de algum domínio, então é necessário urgentemente instalar uma versão mais recente do BIND (9.0.5-P1). Este processo terá que ser manual, talvez envolva a compilação do código fonte do BIND e irá sobrescrever a configuração padrão do SO. Portanto, cuidado! Para quem usa o Mac Ports, a instalação se torna bem mais fácil e a versão mais recente do BIND já está disponível.
Agora, nem tudo são flores para quem não usa Mac OS X. De nada adianta ter o SO atualizado e com o problema corrigido se o servidor de DNS do seu provedor de acesso ou domínio não instalou a atualização. E, pelos comentários recentes, a taxa de atualização dos servidores tem sido mais lenta do que esperado. Em caso de dúvida, pode-se utilizar também o OpenDNS.
Uma discussão aprofundada sobre este problema e a falta de resposta da Apple pode ser encontrada aqui. Minha última recomendação é torcer para que a Apple faça o dever de casa e lance uma atualização ainda nesta semana! Run, Forrest, run!








ilo
28/07/2008 às 01:43
tao preocupados demais com o fucking iphone
Usando oPedro
28/07/2008 às 02:15
Não entendo muito sobre problemas de DNS, mas deu pra ter uma ideia do grande problema….
eu começei a usar o OpenDNSa 2 semanas atrás, não notei diferença na conexão, mas deve ser usado para segurança, não??
Usando oFelipe Lucena
28/07/2008 às 02:54
Sinceramente, titio Jobs se esqueceu por que ele realmente lutou grande parte de sua vida ! o sistema Mac OS ! sim mas o iPhone ? …. iPhone não passa de um celular com inumeras funções, baseado em algum smartphone Dái. Pelo que sei titio, não foi o iPhone que fundou a Apple não, nem seu hardware, que no começo era baseado no Atari !!
Sei que o Mac OS veio da Xerox, idaí ? ele lutou mais pelo Mac OS do que qualquer outro Hardwarezinho fulerage aii, e agora olha a situação. Eu aposto que se a AMD, Transmeta, ou qualquer outra impresa aí que apareçer com um processador Custo x Desempenho Obvio que a Apple iria ultiliza-lo, mas o que a Apple ou Jobs não iria deixar era seu precioso “Felino” Que faz sucesso não só em computadores Apple, mas em todos que tem coração e dignidade por um sistema e um mundo melhor !!!
Se errei algo ou falei alguma besteira sinto muito, mas o que não posso deixar e de falar o correto e o que penso !!!
Usando oliquuid
28/07/2008 às 05:52
Quem é do ramo sabe que o bind é um lixo, um poço de bugs … Quem tem algum juizo usa qualquer outra opção de DNS… E olha que não falta opções, tem uns 20 servidores DNS diferentes para sistemas Unix e muitos deles rodam bem no OSX.
A configuração de um servidor DNS é complicada, exige um bom conhecimento e eu garanto que nem 1/10 dos garotos que saem das faculdades de TI tem noção de como configurar um server DNS, mesmo nas faculdades gringas.
A não ser que o sysadmin do mac osx server seja um banana, um verdadeiro inútil por assim dizer ele sabe que não deve em hipotese alguma usar os servidores padrão do OSX server, pois em sua maioria eles são capados de várias possibilidades, e são bem desatualizados quando comparados com distros linux bem conservadoras.
Eu até entendo que os OSX server seja voltado para um público n00b, mas qualquer sysadmin competente vai rodar o bind em jail, e por ser uma solução não trivial a apple provavelmente não suporta esse tipo de solução. Ou seja, não depende da apple pra atualizar o bind ou qualquer outra coisa.
Não to menospresando a falha, ela é grave porém servidores DNS sempre foram risco de segurança quando mal configurados, e quase sempre eles estão mal configurados, então o problema sempre existiu e vai continuar assim. Só não vemos tantos casos de envenenamento de DNS porque a molecada tem preguiça de entender como essas coisas funcionam…
Anyway, imagino que a maior rede gerenciada por um OSX server com servidor DNS deve ser a da casa do Jobs, então o mundo tá seguro.
Usando oAlexandre
28/07/2008 às 07:00
a solucao temporaria para o bind 9. é fechar o acesso recursivo para apenas classe ip dos clientes. essa configuracao sempre foi OBRIGATORIA. mas vários admins simplesmente ignoram essa configuração e deixam ela aberta para qualquer um usar o servidor de dns.
outra solução é setar o dnssec na configuração. nesse site explica
http://www.howtoforge.com/how-.....ora-centos
a um tempo atras coloquei no meu blog um pequeno tutorial de como configurar o acesso recursivo apenas para a rede da empresa. se alguem tiver interesse o endereco:
Usando ohttp://algorges.blogspot.com/2.....radas.html
TIGOS
28/07/2008 às 08:38
Sei lá… to achando que esse iPhone ta estragando a Apple!
Quanto ao OpenDNS, é bom, mas LEEEEEEEEEEEEEEEEEEEEEENTO!
Uso da Optiglobe e o resultado é muito mais satisfatorio.
Usando oherbertgeo
28/07/2008 às 08:41
Só fazendo uma pequena lembrança ao colega Ricardo, que o serviço em questão é o O DNS (Domain Name
Usando oServerSystem).House
28/07/2008 às 09:28
Tenho Iphone, comprei na O2 aqui em Londres e estou decepcionado demaisssssss…..lentissimo, nao funciona muitas vezes programas comprados na app store, reinicia do nada, bateria que acaba depois de 2 horas de internet, gps que funciona nas coxas, enfim pequenos grandes problemas…assinei um contrato e vou respeitar rezando que o prossimo update resolva estes problemas…quanto ao ME esta uma merd…tao grande que estou cancelando minha assinatura e pedindo o dinheiro de volta…acho que a apple deve retornar a fazer mac…e deixar o Iphone caminhar sem pressao, porque se o Titio Jobs morre agora, a apple depende de muitas coisas e a maioria esta ligada a dobradinha Iphone aap store…isso nao e bom.
Usando oDkyle
28/07/2008 às 09:34
Gente desculpe a ignorância, mas a única coisa realmente que ficou clara para mim nesse artigo foi que leopard tem uma falha grave de segurança quando se navega pela internet (acertei!?). bem no mais só queria saber como em termos práticos, do dia-dia, de quem baixa, navega pela rede – usuário comum – como seremos afetados?
Usando oValeu.
ezequiel
28/07/2008 às 10:32
@liquuid, os caras que saem das faculdades gringas têm apenas noção de programação básica… trabalho com estrangeiros que não sabem nada quase de programação quando saem da faculdade … enquanto os que mais sabem, nunca sentaram numa cadeira de faculdade… os que saíram das faculdades, sabem pouco ou, por exemplo, tem um cara da minha antiga equipe que é fã dos brasileiros pq a gente praticamente “ensinou” ele a programar… há menos de 6 meses, após eu falar para uma consultora (contratada para programar) que ela deveria olhar o código da classe X, ela respondeu com: What do you mean by code? (”O que tu quer dizer com código?”)
Usando oimagina o nível dos caras em relação a DNS, redes, etc…
ASF
28/07/2008 às 10:52
Parabéns Rafael, ótimo post!
Usando oASF
28/07/2008 às 10:57
Desculpe liquuid, mas BIND não é um lixo e acho que você não compreendeu que o problema não diz respeito a uma implementação específica e sim a um problema de DNS do serviço.
Informe-se!
Usando oDragão Silente
28/07/2008 às 11:15
Bind é um lixo??? Pombas, primeira vez que vejo alguém falar isso.
Usando oAlexandre
28/07/2008 às 11:20
o problema acontece apenas no servidor de DNS. no caso o BIND. para quem usa o Mac apenas para navegação, não existe problema, visto que se usa apenas o client de dns e não o servidor de dns para navegação.
Usando oDeny Dias
28/07/2008 às 11:20
Realmente, o artigo é bom do ponto de vista técnico, mas pouco instrutivo do ponto de vista do usuário, aqueles como a maioria de nós.
Basicamente, o perigo para nós mortais reside no fato de um servidor DNS ser atacado por um cracker (o cara do mal) e usar a falha para resolver um endereço para um IP de um servidor que não é o que você procura. Por exemplo, você acessa http://www.macmagazine.com.br e deveria esperar o IP 72.47.239.48, como colocado pelo Rafael. Contudo, se o seu provedor NÃO ATUALIZOU o servidor DNS deles E FOR ATACADO, o cara do mal faz com que o servidor DNS do seu provedor responda para o endereço http://www.macmagazine.com.br o IP 83.140.176.146. Acontece que, este IP pode ser o do cara do mal com uma penca de virus, malwares, trojans e tudo o mais que for de ruim pronto para ser enviado ao seu computador, enquanto você vê nada mais do que um fake da página do MacMagazine. Sinistro, não?
O melhor para “o resto de nós” é usar o OpenDNS mesmo.
Usando oASF
28/07/2008 às 11:26
Retificando: o problema não diz respeito a uma implementação específica do DNS e sim ao design do serviço.
Usando oASF
28/07/2008 às 11:42
Alexandre,
É isso mesmo, o problema diz respeito aos servidores DNS.
Portanto o sistemas do usuário/cliente de rede (desde que não possua um DNS server instalado) aparentemente está livre do problema. Digo aparentemente porque como ele depende do funcionamento correto do servidor, também acaba sendo afetado pela vulnerabilidade em questão.
Usando oAlexandre
28/07/2008 às 11:51
Isso ASF. o usuário pode ser enganado e encaminhado a uma página fake, porque o servidor de dns que o usuario usa pode ter sido atacado.
Mas para o usuario existe outras proteções, como anti phising nos navegadores e tal.
Usando oO problema mais grave é no servidor.
Antonio Augusto Grisi Pizolato
28/07/2008 às 11:55
Pelo que entendi o problema afeta o servidores DNS dos provedores e não tem muito o que os clientes possam fazer a não ser mudar manualmente os DNS padrão de seus provedores por outros DNS que já atualizaram seu servidores, Eu só quer saber uma coisa eu uso speedy e será que a telefone já atualizou seu servidores DNS ou vou ter que configurar outros.
Usando oAlexandre
28/07/2008 às 12:12
Você pode acessar o site do cara q descobriu o bug e fazer um teste. http://www.doxpara.com/
o site identifica usando o seu ip, o servidor de dns que responde a classe ip da telefonica.
Usando oHiro
28/07/2008 às 12:28
Ultimamente não tenho conseguido acessar certos sites. Aqui na rede, todos os outros computadores (PCs), acessam os sites normalmente. Só o meu que não consegue. Poderia um provedor ou serviço de hospedagem bloquear o acesso de máquinas com OSX para prevenir ataques da natureza discutida nestes posts? O servidor em questão é o do TeHospedo. Alguém usa este serviço? Eu não consigo nem mais efetuar conexão em http://FTP. Já falei com o suporte e ninguém soube me responder com certeza, já que disseram que o meu problema “deve ser de configuração local”… Mas eu acesso qualquer outro site, menos os hospedados lá… Se vocês puderem tentar entrar para ver se seus macs acessam, eu agradeço. Um outro site hospedado lá é http://www.altamiraeditorial.com.br
Usando oSe está havendo este problema com DNS e alguém começar a bloquear acessos de máquinas identificadas como macs para prevenir ataques, o que daria pra fazer?
Antonio Augusto Grisi Pizolato
28/07/2008 às 13:07
Alexandre
fiz o Teste no site http://www.doxpara.com como vc disse e ele respondeu:
Your name server, at 200.204.0.155, appears to be safe, but make sure the ports listed below aren’t following an obvious pattern (:1001, :1002, :1003, or :30000, :30020, :30100…).
gostaria de uma ajuda na tradução.
Usando oASF
28/07/2008 às 13:15
Hiro,
O problema com o DNS não diz respeito especificamente ao Mac e não há qualquer motivo para bloquear o acesso de usuários do Mac OS X a qualquer serviço ou site na Internet (e ponto).
Existe um problema em praticamente todos os DNS servers de todos os sistemas operacionais em uso (WIndows, Linux, BSD, Mac OS X, etc).
A maioria dos desenvolvedores destes sistemas já liberou correções para seus softwares exceto a Apple até o momento. Mas o DNS da Apple roda no Mac OS X Server, não no sistema que está instalado no seu Mac, portanto nesse sentido você não tem com o que se preocupar.
Quanto a URL que você passou ((http://www.altamiraeditorial.com.br) ), ela está perfeitamente acessível e funcionando corretamente.
Se você não consegue acessá-la verifique com o seu provedor de acesso a internet a razão disse ele precisa ajudá-lo a resolver o problema (provavelmente você está pagando por isso).
Se você suspeita que o problema pode estar relacionado com a configuração do servidor de DNS do seu provedor e ele se recusa a ajudá-lo, experimente utilizar os serviços do OpenDNS (leia dica acima).
Usando oJoaquim
28/07/2008 às 14:27
@ Rafael
O texto está com um problema, ou pelo menos ficou estranho.
“O que há de novidade nisso tudo é que um pesquisador chamado Dan Kaminsky descobriu que, devido a uma falha no [b]protocolo[/b] [i]protocolo[/] de DNS, é possível realizar o envenenamento de cache em poucos segundos em virtualmente qualquer servidor de DNS, como o BIND (usado no Mac OS X).”
Mas no geral continua num ótimo nível!
Abraço!
Usando oRafael Fischmann
28/07/2008 às 14:38
@Joaquim: obrigado, corrigido!
Usando oDkyle
28/07/2008 às 15:50
Galera, tudo muito técnico, mesmo que bem explicado, porém uma dúvida, quem é apenas usuário comum também tem que migrar (usei o termo correto?) para o OpenDNS?
Usando oASF
28/07/2008 às 16:32
Dkyle,
Respondendo sem rodeios a sua pergunta: Não, não precisa ‘migrar’ para OpenDNS.
Como já dito aqui, o assunto deve preocupar essencialmente os administradores de sistemas (responsáveis pelos servidores de rede), não o usuário final.
Usando oFelipe Daldegan
28/07/2008 às 16:54
Tem outro erro ali também:
“Enquanto a Apple não solta uma solta uma atualização, não há muito o que fazer nas máquinas clientes Mac OS X. ”
[]’s
Usando oRafael Fischmann
28/07/2008 às 16:59
@Felipe: uai!
Valeu!
Usando oBandeira
28/07/2008 às 17:41
A 1 mês eu passei usar o maradns do macports, se é melhor que o bind não sei, mas pelo menos gasta 1/10 de memória a menos que o bind.
PS: Ele tem um erro no script do launchctl, fiquei de reportar mas tinha que fazer cadastro.
nano /opt/local/etc/LaunchDaemons/org.macports.maradns/maradns.wrapper
Linha 18 deixar assim: [ -x ${BIN} ] && ${BIN} & echo $! > ${PID}
Era assim: [ -x ${BIN} ] && ${BIN} &; echo $! > ${PID}
Usando oAlexandre
28/07/2008 às 17:56
para servidor de cache de dns eu uso o djbdns. super rapido para essa funcao.
Usando opara servidor de nomes eu uso o bind por questoes de compatibilidade com os clientes
Bandeira
28/07/2008 às 18:10
Alexandre, você sabe se fica bom maradns + djbdns? Esse não conhecia.
Com o djbdns mesmo eu reiniciando o computador o comando dig vai ser sempre perto de 0?
Uso madadns + squid
Usando oBandeira
28/07/2008 às 18:19
Pode deixar, achei a resposta, http://www.dicas-l.com.br/sysa.....071123.php
Usando oBandeira
30/07/2008 às 09:25
Nesse site http://www.doxpara.com/ , na sidebar da direita tem um botão que checa o DNS, basta clicar para fazer o teste.
Usando oBandeira
31/07/2008 às 23:54
Saiu a correção, http://support.apple.com/kb/HT2647
Usando o