Spoofing de DNS e envenenamento de cache: como funcionam e o que os impede
O spoofing de DNS não exige interceção de tráfego real. Exige adivinhar corretamente e chegar primeiro — a cache de um resolvedor aceita a resposta que chegar antes da genuína.
O que é o spoofing de DNS
O spoofing de DNS falsifica uma resposta DNS para que um resolvedor coloque em cache e sirva um endereço IP escolhido pelo atacante em vez do real. Uma vez em cache, uma resposta falsificada é recebida por todos os clientes que usam esse resolvedor até a TTL expirar — sem necessidade de mais ações por parte do atacante.
O problema de estar fora do caminho
Um atacante que não está no caminho de rede entre o resolvedor e o verdadeiro servidor autoritativo não pode simplesmente ler ou editar o tráfego genuíno. Em vez disso, a resposta falsificada tem de ser adivinhada e entregue antes de a resposta autoritativa real chegar — uma corrida, não uma interceção.
O que tem de ser adivinhado
Um resolvedor identifica uma resposta válida por um ID de transação de 16 bits e a porta de origem UDP de onde a consulta foi enviada. O ataque Kaminsky de 2008 mostrou como transformar um único palpite de baixa probabilidade num ataque prático: enganar um resolvedor para procurar muitos subdomínios diferentes e inexistentes do mesmo domínio dá a um atacante muitas corridas independentes para ganhar o mesmo espaço de cache, já que qualquer falsificação bem-sucedida envenena os registos do domínio pai.
O impacto de um envenenamento bem-sucedido
Uma vez envenenado, o resolvedor redireciona silenciosamente todos os clientes que o consultam — para um site de phishing, um ponto de injeção de anúncios, o que quer que o atacante tenha escolhido — sem tocar em nenhum dos sistemas das vítimas, durante todo o tempo em que durar a TTL do registo falsificado.
Por que o DNSSEC impede isto
Um resolvedor que valida verifica uma cadeia de assinaturas criptográficas até uma raiz de confiança antes de aceitar uma resposta. Um atacante que ganhe a corrida de adivinhação continua sem ter a chave privada de assinatura da zona, pelo que a resposta falsificada não pode produzir uma assinatura válida — adivinhar corretamente o ID de transação e a porta deixa de ter importância assim que é a própria validação a verificar a autenticidade.
Verifique o DNSSEC de um domínio
Veja a teoria na prática — execute Verificação DNSSEC para o seu próprio domínio.