DNS leak
El sistema de nombres de dominio (DNS, Domain Name System) es un sistema distribuido globalmente para traducir los dominios de Internet en direcciones IP. El DNS devuelve una dirección IP para un nombre de dominio, actuando como la “libreta de direcciones” de Internet. El concepto de dirección IP equivale a una dirección postal a la que pueden enviarse paquetes. Estos son algunos ejemplos de consultas al DNS:
Nombre de dominio solicitado | Dirección IP devuelta |
‘example.com’ | ‘93.184.216.34’ |
‘ionos.mx’ | ‘74.208.255.129’ |
Para que la resolución de nombres funcione, la dirección IP del servidor DNS debe ser introducida en cada dispositivo final. El dispositivo final dirige sus consultas del DNS a dicho servidor. Los datos resultantes pueden decir mucho sobre la navegación del usuario en Internet. Si quieres proteger tu privacidad, es recomendable enviar consultas DNS salientes a servidores de confianza. Pero ¿qué pasa si algo falla?
¿Qué es una fuga de DNS?
A diferencia del DNS hijacking y del DNS spoofing, las fugas de DNS (en inglés DNS leaks) solo comprometen a aquellos que intentan mantener su navegación privada. Concretamente, a los usuarios que se conectan a Internet a través de una red virtual privada (VPN, virtual private network) o de un proxy. Ambas tecnologías se utilizan para ocultar la identidad personal en Internet.
El deseo de mantener oculta la navegación no es sinónimo de actividades ilegales. El derecho a la privacidad y la autodeterminación son derechos humanos fundamentales. Los proveedores de servicios de VPN apoyan este deseo a cambio de una cuota. El uso de proxies, algo común antiguamente, está cada vez menos extendido. Por este motivo, nos centraremos en las fugas de DNS utilizando una VPN.
Los servicios de una VPN enrutan todo el tráfico saliente de la red a través de la VPN. Sin embargo, en algunas ocasiones, las conexiones individuales pueden ser redirigidas directamente desde el dispositivo del usuario a terceros. Una DNS leak ocurre cuando una solicitud de DNS que debería ser enviada a través de la VPN llega a un servidor DNS sin protección. En muchas ocasiones, se trata del servidor DNS del proveedor de Internet (ISP). Los ISP son conocidos por conseguir, evaluar y vender estos datos.
¿Qué información se filtra?
¿Qué sucede cuando ocurre una fuga de DNS y qué información se comparte? En primer lugar, se deben distinguir tres casos:
- Información que va al ISP del usuario
- Información que es intervenida de camino al servidor DNS
- Información revelada por parte de un operador de servicios
Una consulta DNS recibida por el servidor DNS del ISP contiene el nombre de dominio a resolver y la dirección IP no oculta del usuario final. Con una marca temporal en los registros de los servidores del ISP, se ofrece información sobre cuándo y a qué dominios quiso acceder un usuario. Esto es un problema grave de privacidad. Por un lado, los datos del DNS se guardan en perfiles y se venden. Por otro lado, grupos gubernamentales pueden acceder a dichos datos. En el peor de los casos, esto puede ser fatal para ciertos sectores sociales, como los disidentes o los activistas.
Las solicitudes de DNS utilizan el protocolo UDP (User Datagram Protocol) como protocolo de conexión. Los paquetes UDP son visibles de camino al servidor DNS para cualquier actor capaz de vigilar la transmisión. Para mantener oculta la navegación del usuario final, las solicitudes de DNS deben ser enrutadas a través de la VPN. Desde las revelaciones de Snowden, se sabe que los organismos de inteligencia vigilan, filtran, evalúan y almacenan el tráfico de Internet de forma masiva. Los paquetes de DNS identificables personalmente resultantes de una fuga suponen una gran amenaza para la seguridad y privacidad de los usuarios de Internet.
Además de los peligros ya mencionados en cuanto a las filtraciones del DNS, existe otro riesgo. Las filtraciones del DNS pueden ser utilizadas por terceros, por ejemplo, por un proveedor como el operador de una página web. Este proveedor puede utilizar herramientas para determinar si el usuario está accediendo al servicio a través de una VPN. El ISP del usuario puede revelarse al proveedor. Esto, a su vez, puede revelar la ubicación geográfica del usuario. Este mismo truco puede utilizarse a favor del usuario mediante las pruebas para fugas de DNS.
¿Cómo funciona la prueba de DNS Leak?
Hay una gran variedad de servicios que intentan detectar las fugas de DNS. Uno de estos servicios, conocido como “DNS Leak Tester”, se implementa como una página web normal a la que el usuario accede a través del navegador. Para comprobar la presencia de una fuga de DNS, estas pruebas realizan una serie de intentos de conexión especiales. El objetivo es rastrear de dónde vienen las consultas DNS resultantes. Pero ¿cómo funciona exactamente?
Para entender el funcionamiento de este tipo de prueba, debemos saber cómo está estructurado el DNS. El DNS es un sistema jerárquico de servidores de nombres. Este distingue entre los servidores de nombres autorizados y los no autorizados. Un servidor de nombres autorizado sirve como fuente de datos DNS de una zona DNS. La zona DNS puede interpretarse como un dominio con más subdominios.
Además de los servidores de nombre autorizados, hay servidores de nombres que almacenan parte de los datos DNS en la caché. De esta manera, las consultas ya hechas pueden responderse de forma rápida, sin volver a preguntar al servidor de nombres autorizado. El servidor DNS del ISP es un servidor de nombres no autorizado para la mayoría de los dominios. ¿Qué sucede cuando el servidor DNS del ISP recibe una solicitud de un nombre de dominio?
- Un cliente quiere recuperar un recurso alojado en un nombre de dominio.
- El cliente solicita un nombre de dominio al servidor DNS de su ISP.
- Si el servidor DNS conoce la dirección IP asociada al dominio, lo devolverá.
- Si no es así, el servidor DNS del ISP consultará al servidor DNS autorizado de la zona DNS que sea padre del nombre de dominio.
- El servidor DNS autorizado devolverá la dirección IP del nombre de dominio.
- El servidor DNS del ISP transferirá la dirección IP al cliente y almacenará la solicitud en su caché.
- El cliente podrá ahora hacer la solicitud del recurso al servidor bajo el nombre de dominio.
Un DNS leak tester se basa en este principio. Te lo explicamos con la página DNS Leak Test como ejemplo:
- Un usuario entra en la página dnsleaktest.com desde el navegador. La página para la prueba de fugas de DNS genera consultas a recursos ficticios bajo un subdominio generado al azar, por ejemplo:
c6fe4e11-d84d-4a32-86ef-ee60d9c543fa.test.dnsleaktest.com - Para recuperar uno de los recursos, el navegador del usuario de la página necesita la dirección IP asociada al nombre del dominio. Ya que es un nombre de dominio generado aleatoriamente, ningún servidor DNS, excepto el autorizado, conocerá la dirección IP.
- Por lo tanto, el servidor DNS que recibe la solicitud consulta al servidor DNS autorizado para la zona DNS test.dnsleaktest.com. El servidor DNS autorizado para este nombre de dominio está bajo el control del operador de la página dnsleaktest.com.
- El servidor DNS autorizado compara la parte única y generada al azar del nombre de dominio con las entradas de una base de datos interna. En la página dnsleaktest.com podrás ver, por ejemplo, qué solicitud de DNS entrante pertenece a qué usuario de la página.
- En la dirección IP, el servidor DNS autorizado sabe en qué servidor DNS externo se originó la solicitud de la dirección IP del nombre de dominio generado al azar. Si la fuente de la solicitud es el servidor DNS de un ISP, hay una filtración del DNS.
¿Qué otras pruebas de fuga de DNS existen?
En principio, es sencillo poder utilizar un test de fuga de DNS. Para información más detallada, te recomendamos este artículo. Si quieres saber si eres víctima de una fuga de DNS, puedes usar alguna de las pruebas existentes. Te presentamos algunos ejemplos:
¿Cómo evitar fugas de DNS?
La mejor estrategia para evitar las fugas de DNS se basa en el concepto de seguridad “defense in depth” (defensa en profundidad). Se trata de construir múltiples capas de protección contra las amenazas. Si se elimina una capa, la protección permanece. Te recomendamos que sigas los pasos que aparecen a continuación para evitar estas fugas:
- Configura servidores DNS en el dispositivo local y el router doméstico que no estén bajo el control del ISP. Esta es una medida de protección básica que también previene otros riesgos como el DNS hijacking. Recomendamos el uso de Quad9 o de Cloudflares 1.1.1.1. Después de hacer cambios en el servidor DNS, no olvides vaciar la caché.
- Utiliza software que encripte las conexiones DNS, por ejemplo DNS over HTTPS (DoH) o DNS over TLS (DoT). Estos protegen contra la manipulación de los paquetes DNS de camino al servidor DNS y, por tanto, también evitan los ataques de DNS spoofing. La encriptación del DNS depende del software utilizado. Entre los navegadores más conocidos, Firefox es el líder en cambiar a conexiones DNS encriptadas. Sin embargo, y tal como tal se explica en nuestro artículo sobre DoH, es necesario realizar ajustes en la configuración del navegador.
- Utiliza un cliente VPN que enrute las solicitudes DNS a través de la VPN y proporcione sus propios servidores DNS. Esto te protegerá de todos los peligros asociados a las fugas de DNS. Existen muchísimos proveedores de VPN. Algunos son gratuitos y otros de pago. En general, se recomienda tener cuidado con los servicios VPN gratuitos, ya que no puedes esperar de ellos el mismo nivel de protección.
Hemos creado una lista general sobre diferentes VPN services.
Los puntos mencionados proporcionan un nivel de protección básico contra filtraciones del DNS y deberían ser suficientes para la gran mayoría de usuarios de Internet. Los grupos especialmente vulnerables, como los activistas por los derechos humanos, deben tomar precauciones adicionales.
- Se recomienda el uso del navegador Tor. Es conocido por prevenir eficazmente fugas de DNS al acceder a las páginas web.
- Para asegurarte de que todas las conexiones red salientes se enrutan a través de la red Tor y se despersonalizan, puedes ejecutar Tails Linux desde una memoria USB. Esta es una de las claves más importantes a la hora de ocultar la identidad en Internet.