Utilizo pfSense (Unbound) como mi resolución local. Históricamente lo he apuntado a una resolución recursiva de raíz, porque percibí mi principal amenaza como la confiabilidad y la actualidad de los datos (DNS envenenado / no válido) y el seguimiento del DNS del ISP local. (No sé si es así, pero sentí que un servidor DNS raíz en el extranjero podría estar menos conectado a mí personalmente y tener menos interés en las consultas que genero). Uso principalmente IPv4, que puede ser relevante.
Con toda la atención en el seguimiento de DNS, han surgido algunas preocupaciones y percepciones:
- ¿Debo usar algún tipo de codificación DNS o método de firma, para privacidad / certeza? No estoy usando DNSSEC ni ninguna otra extensión, por lo que mis consultas de DNS están "en claro". Se pueden ver entre aquí y los diversos servidores DNS, y ciertamente no hay sobre manipulación "en el cable" (menos probable pero notado). Pero qué usar y hasta dónde ayudará, ya que no es compatible con todos.
- ¿Debo usar una resolución externa en lugar de consultar servidores raíz? Estoy consultando servidores raíz desde el principio, por lo que estoy emitiendo muchas consultas desde servidores raíz a la subred real de interés, en lugar de usar una entrada precocinada en alguna resolución / caché de DNS existente. Pero cada servidor DNS solo ve un componente del dominio, no pueden ver todo el objetivo. Si utilizo un sistema de resolución intermedio, especialmente uno con firma / cifrado, emito muchas menos solicitudes de DNS y lo que sí hago, siempre estará cifrado y firmado. Pero requiere un intermediario elegido con una confianza considerable (almacenamiento en caché, etc.) y no afecta el riesgo de intercepción.
- ¿Debería enrutar el DNS a través de algún tipo de proxy anonimizado? Es más lento para las primeras solicitudes, pero Unbound almacenaría en caché las respuestas localmente y también solicitaría actualizar los datos antes de que caduquen los datos almacenados en caché, y supongo que Se aplica la regla 80/20 (la mayoría de las consultas serán para el mismo subconjunto de dominios donde ya tengo datos en caché), por lo que no me preocupa demasiado el aspecto de la velocidad. Pero, ¿qué tan práctico es esto? El método de anonimización más prominente es tor. Tor no hace UDP, por lo que maneja DNS al pedirle al nodo de salida que realice una consulta de DNS y confíe en el resultado. Podría configurar Unbound para consultar DNS solo a través de TCP, y enrutar a través de tor local, si eso lo solucionaría (= si la mayoría de los nodos de salida permitirán el puerto 53, y si la mayoría Los servidores DNS hablan TCP). También me complace ejecutar un nodo de anonimización de DNS si hay un equivalente específico para DNS, si ayudará a otros (esto podría permitirme fusionar mi tráfico con consultas de DNS generales) pero ¿existe tal cosa?
Por lo tanto, mi modelo de riesgo actual es probablemente algo como esto:
- Datos envenenados / inválidos ;
- Registro / monitoreo en el servidor (s), y modificación / monitoreo "en el cable";
-
Vinculación de consultas con la anonimización de IP / DNS de origen.
Si no uso proxy / anonimización de DNS, solo hay 2 opciones. Puedo resolver todo por mí mismo desde los servidores raíz hacia abajo, en cuyo caso confío en que cada servidor DNS en cada dominio no registre las consultas, lo cual es poco probable, pero la identificación de los destinos de las consultas es menos fácil, ya que las consultas de subdominios resultantes están muy distribuidas. Si uso un dispositivo de resolución público, coloco "todos mis huevos en una canasta", ya que ven el dominio de destino completo, no solo partes de él, y confío en que no se registrarán, lo que también puede ser poco realista. Entonces, la anonimización del DNS parece necesaria, pero no está claro si es realista.
Me complace trabajar para resolver esto, y estoy seguro de que puedo mejorar lo que estoy haciendo. Pero se necesitarán soluciones, ya que el DNS es fundamentalmente inseguro.
Dado el estado actual de DNS y el estado actual de las tecnologías de anonimización, ¿cuál es mi mejor enfoque para mitigar amenazas para consultas de DNS?