O DNS é o Domain Name System. É um protocolo do UDP e do TCP-based que escute no porto 53. As conexões do TCP são usadas geralmente para transferências da zona.
O DNS combina endereços do IP aos hostnames (e hostnames aos endereços do IP). Um usuário do DNS é responsável, ou authoritative, para uma parte dada do Domain Name System (para o exemplo, mybitofthenet.com).
Os clientes fazem pedidos dos usuários do DNS quando querem se comunicar com os sistemas para que têm somente o hostname inteiramente qualificado (para o exemplo, myserver.mybitofthenet.com).
O DNS é uma parte crítica do infrastructure da rede. Sua falha—se com o incompetence ou a negação de serviço administrativa—pode ter conseqüências principais.
|
|
O protocolo do DNS tem problemas da segurança. Uma descrição detalhada do DNS e suas fraquezas do protocolo podem ser encontradas em http://www.geocities.com/compsec101/papers/dnssec/dnssec.html. O DNS é definido em um número de RFCs—vê http://www.dns.net/dnsrd/rfc/ para detalhes cheios.
Tanto quanto a segurança do anfitrião de UNIX vai, o software o mais extensamente usado do usuário do DNS é LIGAMENTO (daemon do nome de Internet de Berkeley), desenvolvido pelo consortium do software do Internet (ISC). Pelo defeito, o daemon do LIGAMENTO "nomeou" funcionamentos com privilégios da raiz e—este é importante—ele não os joga permanentemente afastado após ligar para mover 53. Conseqüentemente, os vulnerabilities no LIGAMENTO podem resultar em um acordo completo do sistema.
Deixe-nos olhar o registro de trilha do LIGAMENTO.
A liberação 8.2.3 foi liberada em janeiro 2001 para reparar quatro vulnerabilities da segurança descobertos por laboratórios de SECRETO (segurança do PGP) e por Claudio Musmarra. Dois excessos do amortecedor permitem que os atacantes remotos funcionem todo o código de seu escolher. Um erro do validation da entrada permite atacantes de funcionar todo o código, e um escapamento da informação permite que os dados na pilha sejam vistos por um atacante. Este último não pôde parecer assim mau. Apesar de tudo, não é um acordo direto da raiz queespera, mas ajuda realmente ao desenvolvimento das façanhas de encontro a um local particular. A pilha prende variáveis locais, variáveis de ambiente, e endereços process importantes. Ganhando o acesso a estes, um excesso do amortecedor pode ser escrito sem experimentação e erro. Isto é significativo porque os excessos do amortecedor são frequentemente um ataque one-shot—se você lhe começar ligeiramente errado uniforme, você são prováveis deixar de funcionar um serviço scribbling dados toda excedentes da pilha confiaram subseqüentemente upon pelo programa.
O LIGAMENTO teve 12 advisories da segurança do CERT em apenas quatro anos—mal um endosso da segurança do LIGAMENTO!
Um fator principal é a complexidade do código do LIGAMENTO. Os programadores experientes de C comentam que o código do LIGAMENTO é incredibly difícil de compreender. Quando os programadores realizados se esforçam para compreender o que está indo sobre, você pode ser certo de problemas da segurança. O código complexo é duro examinar—melhor o trabalho de projetos modulares, em que os programas pequenos, discretos (que são mais fáceis de examinar) executam operações privilegiadas. Naturalmente, os colaboradores do ISC não se ajustaram para fora para escrever algo que mesmo encontrariam duramente para manter—a dificuldade são um resultado da característica bloat. Talvez que é um do ISC da razão reescreveu recentemente partes principais do LIGAMENTO.
Em janeiro 2001, o ISC anunciou a liberação de uma versão nova principal da versão—9.1.0 do LIGAMENTO. Esta versão inclui a sustentação para DNSSEC—uma extensão do protocolo que supere alguma da fraqueza do projeto da segurança no protocolo do DNS do estoque (DNSSEC é definido em RFC 2535.) Notàvelmente, o código não era modularized, assim agora nós tem o código novo que é ainda duro de examinar. Muitos locais são prováveis continuar funcionando o LIGAMENTO 8, ao menos no termo curto.
Gira para fora dos atacantes como quebrar em usuários do LIGAMENTO, assim muito de modo que as taxas de SANS unpatched usuários do LIGAMENTO como o problema da segurança do número um no Internet. As façanhas para o LIGAMENTO abound. Os usuários do DNS são alvos tasty porque assim muito do Internet confia upon então. Com controle de um usuário do LIGAMENTO, você pode fazer coisas verdadeiramente nasty, para o exemplo:
· Prive um local do tráfego mudando os mappings de IP/name a um endereço inexistente. Um destilador mais mau, você pode dirigir de novo o tráfego a um local pornographic ou do concorrente. O rendimento perdido e a imprensa má não ajudam ao preço conservado em estoque de uma companhia.
· Clone um local do e-negócio, modifique o usuário do DNS do local para traçar seu local do imposter, e colete detalhes do cartão de crédito, cliente do usuário, e detalhes da senha.
· Explore relacionamentos da confiança entre sistemas traçando um IP de um lado do relacionamento da confiança a sua máquina.
· Comprometa um dos nameservers da raiz.
Esse último está preocupando-se particularmente. Os nameservers da raiz são o ponto começar para dirigir-se no Internet. Há somente 13 nameservers da raiz no total (por causa das limitações do protocolo). Faça exame sobre dos nameservers da raiz, e você pode ter o Internet em sua mão. Como um aparte, a escolha da plataforma e os sistemas operando-se para estas máquinas seguem o princípio da segurança com a diversidade. Para citar de uma indicação de Y2K no local de ICANN's (o Internet Corporation para nomes e números atribuídos):
Os usuários eles mesmos todos da raiz usam algum variant do sistema operando-se de UNIX, porém a base da ferragem e os variants do vendors'UNIX são relativamente diversos: dos 13 usuários da raiz, há 7 plataformas de ferragem diferentes que funcionam 8 versões diferentes do sistema operando-se de 5 vendedores diferentes.
Esta é uma idéia sadia—usada na natureza por Mãe Natureza ela mesma. Naturalmente, quebra para baixo se você não tiver os administradores suficientemente diversos na mão para controlar firmemente oito sistemas se operando diferentes.
Com exceção das falhas de segurança, o misconfiguration é comum. Ao fazer sob medida acima de seu local, os atacantes pedirão transferências da zona de seu usuário do DNS. Este é bàsicamente um dump de toda a informação que pertence a uma zona particular do DNS. Isto é tão bom quanto um mapa da rede! Você não quer este.
Uma outra configuração é números de versão (outra vez). Para descobrir a versão do LIGAMENTO que você está funcionando, um cliente pode perguntar seu usuário do DNS, e seu usuário dir-lhes-á. Isto não é assim bom.
O outro risco principal que enfrentam o protocolo do DNS e a execução do LIGAMENTO são negação de ataques vice do ser. Os vulnerabilities numerosos do DoS foram encontrados no LIGAMENTO. Que incapacita o DNS usuários impede que as perguntas do DNS estejam resolvidas, desse modo parando os clientes que confiam nos serviços da definição do DNS (isto é, quase todos) em suas trilhas.
As contramedidas óbvias devem encontrar uma alternativa ao LIGAMENTO funcionando. Aqui suas escolhas são limitadas—nós vivem em um monoculture do LIGAMENTO. Você poderia comutar à execução do DNS de Microsoft (que não é uma recomendação), ou procure um usuário do DNS onde a segurança da execução seja um objetivo preliminar.
A única alternativa que viable eu estou ciente de é o pacote dos djbdns por Daniel Bernstein. Isto teve o uso suficiente da produção a ser um contendor sério A LIGAR. Foi projetado e escrito com segurança na mente por um programador experimentado no código seguro da escrita. Você pode encontrar para fora mais aqui: http://cr.yp.to/djbdns.html.
Se você furar com LIGAMENTO, há algumas coisas que você pode fazer. Um sumário útil das edições e das contramedidas está disponível de http://www.acmebw.com/papers/securing.pdf. Você deve dá ao menos o pensamento sério ao seguinte
· Não funcione o LIGAMENTO como a raiz. Instead, críe um usuário novo e agrupe-o. Especifique estes como a comando-linha opções quando você executa o LIGAMENTO.
· Use o comando do chroot funcionar o LIGAMENTO de modo que restrinja o acesso ao filesystem. O programa do chroot permite-o de especificar o diretório que um processo tratará como seu diretório de raiz (reforçado pela semente). Para fazer though este, você necessita criar uma duplicata mini de seu sistema operando-se porque o LIGAMENTO quer possa não mais por muito tempo ver bibliotecas de sistema e limas importantes da configuração. As instruções cheias podem ser encontradas aqui: http://www.etherboy.com/dns/chrootdns.html.
· O número de versão é hard-coded no código do LIGAMENTO, assim que se você tiver o código de fonte, você pode simplesmente removê-lo ou substitui-lo com uma versão falsificada ou uma mensagem silly (tenha o divertimento). Se não, você tem que remendo binário a sorte—boa executável! As versões recentes do LIGAMENTO podem ser configuraradas para permitir pedidos da versão dos endereços específicos somente.
· Configurare o LIGAMENTO disallow transferência da zona exceto a usuários autorizados (tais como escravos do DNS).
|
|