INTRODUÇÃO
Para acessar uma página de internet ou enviar/receber e-mails, basta que seja digitado o site no navegador, e num clique as informações solicitadas são transferidas e acessadas.
O serviço responsável por este processo de resolução de nomes é realizado por um sistema chamado Domain Name System (Sistema de Nomes de Domínio), ou DNS.
O objetivo geral do desenvolvimento desse artigo é apresentar de forma clara o funcionamento de um dos recursos mais importantes dentro da área da internet, o DNS, estudar as vulnerabilidades do serviço, demonstrar sua importância e as conseqüências que sua indisponibilidade pode provocar. Apresentar a solução DNSSEC e como ele funciona.
O SISTEMA DE NOMES DE DOMÍNIOS (DNS)
Trata-se de um recurso usado em redes TCP/IP (o protocolo utilizado na internet e na grande maioria das redes) que permite acessar computadores pelo nome a ele associado, sem que o usuário ou sem que o próprio computador tenha conhecimento de seu endereço IP, o sistema de nomes de domínio:
[…] é um banco de dados distribuído. Isso permite um controle local dos segmentos do banco de dados global, embora os dados em cada segmento estejam disponíveis em toda a rede através de um esquema cliente-servidor. (CAMPOS, DANTAS, 2011).
SERVIDORES NO MUNDO
“[…] Existe, atualmente, 13 servidores raiz com nome no formato letter.roott-servers.net”. (ZILLI, 2006, p.22).
PROBLEMAS E VULNERABILIDADES DO DNS
No DNS, quando uma resposta é recebida e aparentemente é quem diz ser, ou seja, parece responder a solicitação/pergunta enviada, ela é aceita como correta. Sendo assim, atacantes podem explorar essa vulnerabilidade falsificando uma resposta e fazendo com que ela chegue à origem antes da resposta legítima. Isso pode levar os ataques de envenenamento de cachê e impersonificação do recursivo.
Impersonificação do Recursivo
Este ataque é conhecido como Man-in-The-Middle (homem no meio), ocorre quando o cliente pede ao servidor local para resolver um domínio, mas antes que o servidor DNS faça consultas recursivas para obter a solução do nome, o atacante responde mais rápido, spoofando o endereço do recursivo.
Poluição do Cachê
Ao resolver um domínio o servidor recursivo armazena a resposta em uma memória temporária, chamada cachê, assim quando o mesmo domínio for novamente solicitado o servidor já terá a resposta armazenada, tornando dispensável consultas a outros servidores. Porém, esse mecanismo de eficiência em cachê traz consigo o risco de uma vulnerabilidade: a poluição do cachê. Quando um atacante consegue enganar um servidor, fazendo com que ele guarde em cachê uma resposta falsa, ele consegue fazer com que o servidor use essa resposta em consultas futuras.
Por esses ataques há a necessidade de transformar as operações envolvendo o DNS em um processo seguro e confiável.
DNSSEC
Assim, as alterações ao protocolo DNS foram propostas, as extensões de segurança: DNSSEC (Domain Name Security Extensions – proposto pelo IETF):
DNSSEC é um padrão internacional que estende a tecnologia DNS. O que DNSSEC adiciona é um sistema de resolução de nomes mais seguro, reduzindo o risco de manipulação de dados e informações. O mecanismo utilizado pelo DNSSEC é baseado na tecnologia de criptografia de chaves públicas (REGISTROBR, 2011).
Quatro novos tipos de Resource Records são adicionados:
O Registro Key – Dnskey
O DNSKEY é a chave publica enviada junto com a resposta da consulta, utilizada para validar a assinatura e garantir a integridade da consulta. O DNSKEY deve apresentar formato padrão definido, informando o protocolo e o algoritmo utilizado (ARENDS, 2005).
O Registro SIG – RRSIG Assinatura do Resource Records (Rrsets)
“O registro SIG armazena a assinatura digital da chave privada em um RRset. O RRset é um grupo de registros de recursos com o mesmo proprietário, classe e tipo”. (PAUL ALBITZ E CRICKET LIU, pag 377).
O Registro Nsec
O registro NSEC armazena informações sobre o próximo nome na zona (em ordem canônica), que passa a ser ordenada. Cada registro mantém um apontador, através de seu NSEC, para o próximo registro; o último “aponta” para o primeiro. Assim é resolvido o problema de assinar respostas negativas.
O Registro DS Delegation Signer (Ponteiro Para A Cadeia de Confiança)
De acordo com a RFC 4034 o registro DS armazena um hash do DNSKEY da zona que será delegada. No processo de consulta recursiva, o cliente, requisita o DS da zona parent e verifica com o DNSKEY da zona que foi delegada.