O envenenamento do cache DNS, o ataque da Internet de 2008, está de volta dos mortos

Um canal lateral recém-encontrado em um protocolo amplamente usado permite que invasores falsifiquem domínios.

Em 2008, o pesquisador Dan Kaminsky revelou uma das ameaças à segurança da Internet mais graves de todos os tempos: uma fraqueza no sistema de nomes de domínio que possibilitava aos invasores enviarem usuários em massa para sites fraudulentos em vez dos reais pertencentes ao Google, Bank of America , ou qualquer outra pessoa. Com a coordenação de todo o setor, milhares de provedores de DNS em todo o mundo instalaram uma correção que evitou esse cenário do Juízo Final.

Agora, o ataque de envenenamento de cache DNS de Kaminsky está de volta. Os pesquisadores apresentaram na quarta-feira uma nova técnica que pode mais uma vez fazer com que os resolvedores de DNS retornem endereços IP falsificados maliciosamente, em vez do site que corresponde a um nome de domínio.

“Este é um avanço muito grande que é semelhante ao ataque de Kaminsky para alguns resolvedores, dependendo de como [eles] realmente funcionam”, disse Nick Sullivan, chefe de pesquisa da Cloudflare, uma rede de entrega de conteúdo que opera o 1.1.1.1 Serviço DNS. “Este é um dos ataques de envenenamento de cache DNS mais eficazes que vimos desde o ataque de Kaminsky. É algo que, se você executar um resolvedor de DNS, deve levar a sério. ”

Primer DNS

Quando as pessoas enviam e-mails, navegam em um site ou fazem qualquer outra coisa na Internet, seus dispositivos precisam de uma maneira de traduzir um nome de domínio em servidores de endereço IP numéricos usados ​​para localizar outros servidores. O primeiro lugar que um dispositivo irá procurar é um resolvedor DNS, que é um servidor ou grupo de servidores que normalmente pertence ao ISP, corporação ou grande organização à qual o usuário está conectado.

No caso de outro usuário do ISP ou organização ter interagido recentemente com o mesmo domínio, o resolvedor já terá o endereço IP correspondente em cache e retornará o resultado. Caso contrário, o resolvedor consultará o servidor autorizado dedicado para esse domínio específico. O servidor autoritativo retornará uma resposta, que o resolvedor fornecerá ao usuário e armazenará temporariamente em seu cache para qualquer outro usuário que possa precisar dela em um futuro próximo.

Todo o processo não é autenticado, o que significa que o servidor autorizado não usa senhas ou outras credenciais para provar que é, de fato, autorizado. As pesquisas de DNS também ocorrem usando pacotes UDP , que são enviados em apenas uma direção. O resultado é que os pacotes UDP geralmente são fáceis de falsificar, o que significa que alguém pode fazer o tráfego UDP parecer vir de algum lugar diferente de onde ele realmente se originou.

Envenenamento de cache DNS: uma recapitulação

Quando os arquitetos da Internet criaram o DNS pela primeira vez, eles reconheceram que era possível alguém se passar por um servidor autoritativo e usar o DNS para retornar resultados maliciosos aos resolvedores. Para se proteger contra essa possibilidade, os arquitetos projetaram os números das transações de pesquisa. Os resolvedores anexaram esses números de 16 bits a cada solicitação enviada a um servidor autorizado. O resolvedor só aceitaria uma resposta se contivesse o mesmo ID.

O que Kaminsky percebeu foi que havia apenas 65.536 IDs de transação possíveis. Um invasor pode explorar essa limitação inundando um resolvedor de DNS com um IP malicioso para um domínio com pequenas variações – por exemplo, 1.google.com, 2.google.com e assim por diante – e incluindo um ID de transação diferente para cada resposta. Eventualmente, um invasor reproduzia o número correto e o IP malicioso seria transmitido a todos os usuários que dependiam do resolvedor. O ataque foi chamado de envenenamento de cache DNS porque contaminou o armazenamento de pesquisas do resolvedor.

O ecossistema do DNS corrigiu o problema aumentando exponencialmente a quantidade de entropia necessária para que uma resposta fosse aceita. Considerando que antes, as pesquisas e respostas viajavam apenas pela porta 53, o novo sistema randomizou as solicitações de pesquisa de número de porta usadas. Para um resolvedor de DNS aceitar o endereço IP, a resposta também deve incluir o mesmo número de porta. Combinado com um número de transação, a entropia foi medida em bilhões, tornando matematicamente inviável para os atacantes pousarem na combinação correta.

Redux de envenenamento de cache

Na quarta-feira, pesquisadores da Universidade Tsinghua e da Universidade da Califórnia em Riverside apresentaram uma técnica que, mais uma vez, viabiliza o envenenamento do cache. Seu método explora um canal lateral que identifica o número da porta usado em uma solicitação de pesquisa. Depois que os invasores sabem o número, mais uma vez têm uma grande chance de adivinhar o ID da transação.

O canal lateral, neste caso, é o limite de taxa para ICMP, a abreviatura de Internet Control Message Protocol . Para conservar a largura de banda e os recursos de computação, os servidores responderão a apenas um determinado número de solicitações de outros servidores. Depois disso, os servidores não fornecerão nenhuma resposta. Até recentemente, o Linux sempre definiu esse limite para 1.000 por segundo.

Para explorar esse canal lateral, a nova técnica de spoofing inunda um resolvedor de DNS com um grande número de respostas que são falsificadas para que pareçam vir do servidor de nomes do domínio que desejam personificar. Cada resposta é enviada por uma porta diferente.

Quando um invasor envia uma resposta pela porta errada, o servidor envia uma resposta de que a porta está inacessível, o que drena o limite de taxa global em um. Quando o invasor envia uma solicitação pela porta certa, o servidor não responde, o que não altera o contador de limite de taxa. Se o invasor investigar 1.000 portas diferentes com respostas falsificadas em um segundo e todas forem fechadas, todo o limite de taxa será drenado completamente. Se, por outro lado, uma das 1.000 portas estiver aberta, o limite será drenado para 999.

Posteriormente, o invasor pode usar seu próprio endereço IP não falsificado para medir o limite de taxa restante. E se o servidor responder com uma mensagem ICMP, o invasor sabe que uma das 1.000 portas sondadas anteriormente deve estar aberta e pode restringir ainda mais o número de porta exato.

“Como nós sabemos?”

“Estamos tentando inferir indiretamente que o resolvedor enviou uma mensagem ICMP inalcançável ao servidor autorizado”, disse o professor Zhiyun Qian da UC Riverside. “Como nós sabemos? Porque o resolvedor pode enviar apenas um número fixo de tais mensagens ICMP em um segundo, o que significa que o invasor também pode tentar solicitar esses pacotes ICMP para si mesmo. ”

O artigo dos pesquisadores, DNS Cache Poisoning Attack Reloaded: Revolutions with Side Channels , fornece uma descrição muito mais detalhada e técnica do ataque. Eles chamam o ataque SAD DNS abreviação de Side channel AttackeD DNS.

Os pesquisadores forneceram privadamente suas descobertas a provedores de DNS e desenvolvedores de software. Em resposta, os desenvolvedores do kernel Linux introduziram uma mudança que faz com que o limite de taxa flutue aleatoriamente entre 500 e 2.000 por segundo. O professor Qian disse que a correção impede que a nova técnica funcione. Cloudflare introduziu uma correção própria. Em certos casos, seu serviço DNS voltará ao TCP, que é muito mais difícil de falsificar.

A pesquisa foi apresentada na 2020 ACM Conference on Computer and Communications Security , que está sendo realizada este ano por vídeo por causa da pandemia COVID-19. Os pesquisadores fornecem informações adicionais aqui , e um comunicado à imprensa da UC Riverside está aqui .

Fonte: https://arstechnica.com/information-technology/2020/11/researchers-find-way-to-revive-kaminskys-2008-dns-cache-poisoning-attack