Por que o resolvedor é onde bloquear sai mais barato

Toda conexão a um host nomeado começa por uma consulta, então o resolvedor fica antes de o tráfego existir. Recusar ali custa uma consulta e impede que a conexão seja sequer tentada — sem sessão para inspecionar, sem certificado para interceptar, sem porta para casar, e funciona igual para um protocolo do qual ninguém escreveu um analisador.

É por isso que o controle é reinventado sob nomes diferentes: response policy zones, filtragem de DNS, camada DNS do secure web gateway, DNS protetivo. São um mecanismo com vários nomes de produto.

RPZ: uma lista de bloqueio entregue como zona

A especificação de Response Policy Zone, escrita por Vixie e Schryver, tem uma premissa realmente engenhosa: distribuir a lista como uma zona DNS, para que o maquinário de transferência de zona já existente a movimente. O assinante configura um feed como configuraria qualquer zona secundária, e as atualizações chegam por IXFR segundos depois da publicação.

Uma regra emparelha um gatilho com uma ação. O gatilho pode ser o nome consultado, o endereço na resposta, o endereço do próprio cliente ou o servidor de nomes envolvido. As ações incluem NXDOMAIN, redirecionamento para um jardim murado e deixar passar sem alteração — esta última sendo a lista de permissão, que importa mais do que parece.

As implementações diferem em quanto da especificação honram. Uma plataforma que reduz toda ação a "NXDOMAIN ou jardim murado" está aplicando a política dela ao feed de outra pessoa, e os autores do feed fizeram distinções que estão sendo descartadas. Vale saber antes de supor que uma regra fez o que dizia.

O que uma classificação de DNS de fabricante classifica de fato

Vários fabricantes — o filtro de DNS da Fortinet entre eles — resolvem um nome e o conferem contra uma classificação por categoria em vez de uma lista simples de permitir ou negar: malware, phishing, recém-registrado, estacionado, e as categorias comuns de conteúdo.

Duas coisas sobre classificações merecem ser guardadas.

Uma classificação é um julgamento sobre um domínio num momento. Domínios recém-registrados são uma categoria justamente porque a idade é um sinal utilizável quando não se sabe mais nada — e uma empresa legítima registrando um domínio novo é idêntica a um atacante fazendo o mesmo, nos primeiros dias de vida daquele nome.

E a classificação é, ela própria, uma consulta. O filtro pergunta a um serviço de classificação sobre o nome, o que significa que esse serviço vê suas consultas e que o filtro depende de alcançá-lo. O que um equipamento faz quando o serviço está inalcançável — falhar aberto, falhar fechado, ou servir do cache — é a configuração mais importante do recurso, e costuma ficar num padrão que ninguém escolheu deliberadamente.

Os dois modos de falha

Um bloqueio que parece falha de rede. NXDOMAIN para um domínio bloqueado é indistinguível, do lado da aplicação, de um domínio que não existe. O usuário relata "o site está fora", o suporte testa de uma rede com outro resolvedor e vê funcionando, e a investigação vai para o lugar errado. Um redirecionamento para jardim murado custa um aviso de certificado HTTPS e diz a verdade; NXDOMAIN é silencioso e mente por omissão.

Um bloqueio que nunca dispara. Um dispositivo que usa o próprio resolvedor, ou DNS sobre HTTPS com um serviço da escolha dele, nunca pergunta ao resolvedor que guarda a política. O painel mostra um filtro funcionando perfeitamente sobre as consultas que recebeu, e as que nunca chegaram não estão em gráfico nenhum.

As duas falhas são silenciosas e falham em direções opostas — uma bloqueia algo e parece indisponibilidade, a outra não bloqueia nada e parece sucesso.

O que levar daqui

Bloquear no resolvedor tem alta alavancagem e baixa visibilidade. Aplica-se a todo dispositivo da rede sem agente algum, e não produz quase nenhuma evidência de estar funcionando corretamente. Seja o que for que você implante, as duas perguntas a responder antes de importar são o que acontece quando o feed ou o serviço de classificação fica inalcançável e como um usuário bloqueado descobre que foi bloqueado.