Implementação de DNSSEC na região – Estatísticas e medições

27/07/2022

Por  Hugo Salgado, Research and Development at NIC Chile; Dario Gomez Consultor  em Tecnología; Alejandro Acosta Coordenador de Pesquisa e Desenvolvimento de LACNIC

Introdução

Neste post, queremos falar sobre algumas pesquisas que fizemos recentemente sobre um tema pelo qual somos muito apaixonados: o DNSSEC. Observe que falamos no plural: “pesquisas”, porque são dois estudos sobre o DNSSEC que começamos ao mesmo tempo… continue lendo para entender do que tratam!

Sobre o DNSSEC

O DNSSEC adiciona segurança extra ao protocolo DNS que permite verificar a integridade e autenticidade dos dados, evitando ataques de substituição e falsificação, por meio do uso de criptografia assimétrica ou mais conhecida como chave pública/privada. Mediante o uso dessas chaves e das assinaturas geradas a partir delas, é possível saber se uma consulta foi modificada, permitindo garantir a integridade e autenticidade da mensagem. Se ao verificar essas assinaturas elas não corresponderem, significa que a cadeia de confiança foi quebrada e a consulta não pode ser validada como legítima.

Ter o DNSSEC depende do ISP ou provedor de serviços da Internet que você contratou, que é quem deve configurá-lo. Para saber se tem DNSSEC existem várias ferramentas na Internet que o permitem, tais como:

https://dnssec-analyzer.verisignlabs.com/

https://dnsviz.net/

Como muitos sabem, o DNSSEC é um protocolo que vem crescendo muito nos últimos anos. Quatro aspectos marcaram um aumento na sua implementação:

  1. O DNSSEC vem habilitado por padrão em alguns servidores recursivos (BIND) e
  2. Grandes avanços para facilitar a habilitação do DNSSEC em diferentes domínios por parte dos principais registradores.
  3. Todos os principais recursivos públicos fazem validação DNSSEC (google public dns, cloudflare, quad9, etc.)
  4. A Apple acabou de mencionar que o iOS16 e o ​​macOS Ventura permitirão a validação DNSSEC no stub final.

O DNSSEC tem sido um tema muito importante para o LACNIC, realizamos um grande número de eventos e atividades em torno deste tema, no entanto, até o momento não tínhamos qualquer estudo próprio sobre o assunto.

O estudo trata de quê?

Desde a área de I+D do LACNIC, fizemos um estudo para conhecer a situação e o andamento da implementação do DNSSEC na região.

Origem dos Dados

Temos duas fontes de dados muito confiáveis

  • Usamos as sondas ATLAS do RIPE https://atlas.ripe.net/
  • Fizemos capturas (tcpdump) que posteriormente foram anonimizadas em servidores autorizados

Datas:

A obtenção dos dados teve início em novembro de 2021, hoje é feita de forma automatizada com relatórios semanais e mensais [1]

Como se identifica que um servidor execute o DNSSEC?

Isso deve ser visto desde dois aspectos:

Sondas Atlas:

São enviados pedidos de resolução DNS a todas as sondas disponíveis na América Latina e o Caribe, desde um nome de domínio que intencionalmente tem suas assinaturas erradas e, portanto, não valida segundo o DNSSEC. Se a resposta for erro (SERVFAIL), significa que o resolvedor usado por essa sonda está usando corretamente o DNSSEC. Se, ao contrário, for obtida uma resposta (NOERROR), significa que o referido resolvedor não realiza nenhuma validação. Observe que, curiosamente, a ideia é que a resposta do servidor DNS seja negativa, *essa é a chave* para saber se o recursivo valida DNSSEC ou não. Por exemplo: se você visitar dnssec-failed.org e conseguir abrir a página significa que o seu DNS recursivo não faz DNSSEC, se não conseguir abri-la é bom! :-).

Captura (tcpdump):

Antes de indicar o que fazemos com a captura, vamos expandir um pouco o conceito de DNSSEC. Assim como existem registros tradicionais no DNS (A, AAAA, MX, etc.) para o uso do DNSSEC novos registros foram adicionados, estes são DS, RRSIG, NSEC, NSEC3 e DNSKEY. Quer dizer, um servidor DNS recursivo pode consultar o registro AAAA para conhecer o endereço IPv6 de um registro e pode consultar o registro DS (Delegation Signer) para verificar a autenticidade das zonas filhas. A parte fundamental deste estudo é que os servidores que não fazem validações DNSSEC não consultam registros DNSSEC!

Com base no exposto, ao fazer a captura, pede-se ao tcpdump que pegue todo o pacote (flag -s 0), desta forma temos todo o seu conteúdo, da camada 3 à camada 7, durante o processamento do pacote procuramos pelos registros específicos do DNSSEC (novamente: DS, RRSIG, NSEC, NSEC3 e DNSKEY), se conseguirmos algum deles, o recursivo sim faz DNSSEC, caso contrário, não faz.

Onde é feita a captura mencionada?

A captura é feita especificamente em uma das instâncias do servidor DNS Reverse D (D.IP6-SERVERS.ARPA). O comando usado é: /usr/sbin/tcpdump -i $INTERFAZ -c $CANTIDAD -w findingdnssecresolvers-$TODAY.pcap -s 0 dst port $PORT and (dst host $IP1 or dst host $IP2)

Processamento das informações

Primeiro, o processamento de dados consiste em várias partes, todas feitas inteiramente com software Open Source, especificamente com Bash, Perl e Python3 no Linux.

Segundo, lembremos que existem duas fontes de informação: Captura de tráfego (PCAP) e Sondas Atlas. Abaixo, a metodologia seguida em cada caso:

  1. Processamento dos PCAP: Após a obtenção dos PCAP, segue uma série de etapas, entre elas:
    1. O processamento dos .pcap é feito no Python3 usando a biblioteca pyshark.
    2. Limpeza dos dados não processáveis ​​ (pacotes malformados, danificados, não processáveis, etc.)
    3. Remoção de endereços duplicados
    4. Anonimização de dados
    5. Geração de resultados
    6. Geração de gráficos e open data
  2. Processamento das informações obtidas no RIPE Atlas:

A captura de dados é feita com medições mensais na plataforma RIPE Atlas, usando sua API por linha de comandos. Depois eles são coletados e processados ​​em uma série de scripts usando a linguagem Perl, para finalmente grafar usando a API do Google Charts e adicionalmente sempre deixamos os dados disponíveis em Open Data.

Lembre-se de que, para detectar se uma sonda está usando um resolvedor com validação, é usado um nome de domínio que contém assinaturas incorretas intencionalmente. Assim, ao tentar resolver esse nome, uma sonda de validação deve responder com erro, pois o nome não é válido segundo o DNSSEC. Pelo contrário, se for obtida uma resposta positiva em relação ao nome, significa que o resolvedor não está validando, uma vez que ignorou a assinatura incorreta.

Resultados obtidos

Este gráfico mostra o número de servidores estudados que usam DNSSEC e quais não. As linhas azuis determinam os servidores com DNSSEC ativo, as vermelhas os que não o possuem.

Nro de Servidores DNSs estudiados
Gráfico 1

Pode-se apreciar que até 2 de junho de 2022 existem mais servidores recursivos sem fazer DNSSEC do que aqueles que o fazem. Entre 33.000 e 55.000 endereços IP foram analisados a cada semana. Em geral, mantém-se uma média aproximada de 55% de servidores que não usam o protocolo e 45% de amostras positivas.

Nro de Servidores IPv6 DNSs estudiados
Gráfico #2

No gráfico #2 podemos ver o histórico das consultas DNSSEC no IPv6. Um fato não menor que chama muito a atenção é que em vários períodos da amostragem, existem mais consultas DNSSEC no v6 do que no v4. Inquestionavelmente, a intenção é que a linha vermelha diminua e a azul aumente de forma gradativa.

Ranking de países com maior validação DNSSEC

Usando a plataforma de medições do RIPE Atlas, é possível medir em cada um deles a capacidade de validar ou não o DNSSEC. Cada medição pode ser agrupada por país, criando um ranking:

Ranking DNSSEC por pais
Gráfico #3

Ranking ordenado com a porcentagem de validação DNSSEC média desde redes de países na América Latina e o Caribe correspondente a maio de 2022.

Os números dentro das barras indicam o número de AS participantes para cada país. Os países onde medimos apenas um AS estão excluídos.

Resumo

A partir do estudo baseado na captura de tráfego, com os dados obtidos em um período de 8 meses, o gráfico sugere uma diminuição lenta do número de servidores NO-DNSSEC; além disso, parece haver uma maior implementação do DNSSEC em servidores IPv6 do que nos IPv4.

No caso da análise de sondas Atlas, espera-se uma implementação de validação maior do que com outras fontes de dados mais genéricas, considerando que as sondas geralmente são hospedadas em redes mais avançadas ou por usuários que poderiam ativar deliberadamente o DNSSEC. Mas de alguma forma representa o “limite superior” de penetração, sendo também um importante indicador da evolução ao longo do tempo.

OpenData

Como é de praxe no LACNIC, sempre queremos disponibilizar as nossas informações para o seu trabalho para quem quiser:

https://stats.labs.lacnic.net/DNSSEC/opendata/

https://mvuy27.labs.lacnic.net/datos/

Esses dados que estamos disponibilizando também têm o espírito de “Time Series Data”. Em outras palavras, estamos deixando os dados coletados ao longo do tempo, o que tornará muito fácil ter flutuações de nossas estatísticas no tempo e saber se a implementação do DNSSEC aumenta e/ou diminui por país, região, etc.

Como sempre, quando realizamos este tipo de projetos, as sugestões de melhoria são bem-vindas tanto na implementação quanto na visualização das informações obtidas.

Referências:

[1] https://stats.labs.lacnic.net/DNSSEC/dnssecstats.html

https://mvuy27.labs.lacnic.net/datos/dnssec-ranking-latest.html

Suscríbete para recibir mensualmente las últimas novedades en tu mail Click here to subscribe and monthly receive the latest news in your inbox. Inscreva-se aqui para receber mensalmente as últimas novidades no seu e-mail