Corta introducción al DNS (cambie a una explicación larga del DNS)
Los dispositivos conectados a Internet tienen asignados números únicos llamados direcciones IP. Usted conoce este sitio como RouterSecurity.org y su dirección IP es 216.92.136.14. Toda la comunicación en Internet se basa en estos números únicos, los nombres de los sitios web y los nombres de los ordenadores son sólo una conveniencia. El sistema que traduce los nombres en las direcciones IP numéricas subyacentes se denomina DNS (Domain Name System) y los ordenadores que realizan la traducción se denominan servidores DNS.
Los servidores DNS son extremadamente importantes. Probablemente el 99% de toda la comunicación entre dos ordenadores en Internet, comienza con una llamada a un Servidor DNS para traducir el nombre de un ordenador en una dirección IP.
Los servidores DNS maliciosos pueden hacer lo que cualquier traductor malicioso puede hacer: mentirle. Por ejemplo, pueden enviarle a una copia fraudulenta de un sitio web. Al igual que con la comida, no debe aceptar los servidores DNS de un extraño.
Puede comprobar un ordenador o un router para ver cuáles deberían ser sus servidores DNS, pero las páginas siguientes muestran cuáles son en realidad. Informan de los servidores DNS que su dispositivo informático está utilizando actualmente. Necesitamos pruebas como estas porque hay cuatro lugares de los que podrían provenir los servidores DNS: el router al que está conectado un dispositivo informático, el propio dispositivo informático, el software cliente VPN que se ejecuta en el dispositivo informático o un navegador web configurado para utilizar DNS cifrado (DoH o DoT). Para obtener más información sobre el DNS cifrado, consulte el tema de DNS cifrado en mi sitio de lista de comprobación de informática defensiva.
Nota: Si un navegador web utiliza DNS cifrado mientras que otro, en el mismo dispositivo informático, no lo hace, entonces espere que las pruebas siguientes muestren resultados diferentes en cada navegador.
Conoce tus servidores DNS actuales
- La prueba de fuga de DNS está patrocinada por el proveedor de VPN IVPN. Ofrece una prueba estándar rápida y una prueba extendida más lenta. Ambas informan de la dirección IP, el nombre de host, el ISP y el país de cada servidor DNS detectado (sin ciudad).
- La prueba de fugas de DNS del proveedor de VPN Perfect Privacy informa de la dirección IP, el nombre de host, el ISP y el país de acogida de cada servidor DNS detectado.
- En browserleaks.com/ip tienes que desplazarte hacia abajo para ver el servidor o los servidores DNS. Informa de la dirección IP, el ISP, la ciudad y el país de los servidores DNS. No informa de los nombres de host de los servidores DNS. La página también muestra mucha otra información útil, como su dirección IP pública, nombre de host, ubicación e ISP.
- La prueba de fuga de DNS del proveedor de VPN ExpressVPN informa de la dirección IP, el país y el «proveedor» de cada servidor DNS detectado. No informa del nombre de host ni de la ciudad. Tenga en cuenta que siempre advierte que «¡Su DNS está expuesto!», lo que realmente significa que no está conectado a ExpressVPN.
- Si está utilizando OpenDNS, puede comprobarlo en www.opendns.com/welcome/. En lugar de mostrar todos los servidores DNS detectados, simplemente informa de un estado SÍ/NO sobre si OpenDNS está en uso.
- Cloudflare tiene una página de comprobación en cloudflare-dns.com/help. Una URL más recordada que también funciona es 1.1.1.1/help. Lo más importante que informa parece ser «Conectado a 1.1.1.1» que es SÍ/NO. Si estás usando Cloudflare, muestra el estado de DNS sobre HTTPS y DNS sobre TLS. El «Nombre AS» identifica el ISP de su proveedor de DNS. Probablemente no es útil cuando se utiliza una VPN, pero dirá «Cloudflare» si se utiliza su servicio. También comprueba la capacidad de tu ordenador para conectarse a 1.1.1.1 y 1.0.0.1 y sus hermanos IPv6. Una cosa más: también proporcionan www.cloudflarestatus.com que informa del estado general de su servicio. Irónicamente, si su servicio está caído, bloqueará a sus usuarios de ver este sitio web. No se puede acceder a cloudflarestatus.com por la dirección IP (216.146.46.11). Lo he intentado.
Actualización. 2 de abril de 2020: Cloudflare acaba de anunciar dos nuevos servicios de DNS de filtrado. El anclado en 1.1.1.2 (el respaldo es 1.0.0.2) filtra el malware y el anclado en 1.1.1.3 (el respaldo es 1.0.0.3) filtra tanto el malware como el porno. A día de hoy, no parece que tengan probadores específicos para estos nuevos servicios. A partir de julio de 2020, estos servicios más nuevos no están disponibles como DNS cifrados.
Actualización. 27 de mayo de 2020: Nótese que la página de pruebas de Cloudflare sólo se interesa por Cloudflare. Por lo tanto, cuando dice que no se está utilizando ni DoH ni DoT, significa que no se están utilizando con Cloudflare. Un navegador web que esté usando DoH o DoT con otro proveedor de DNS, será reportado como que no está usando DoH o DoT. - NextDNS no tiene una página web de prueba dedicada, pero su sitio web sirve para el mismo propósito. Para probar NextDNS, vaya a su sitio web y haga clic en el gran botón azul que dice «Pruébelo ahora gratis». La parte superior de la página resultante dirá: «¡Todo bien! Este dispositivo está utilizando NextDNS con esta configuración» si se está utilizando NextDNS. Si no, la página dirá: «Este dispositivo no está utilizando NextDNS. Este dispositivo está usando actualmente xxxxxx como resolución DNS». Tenga en cuenta que ambos mensajes están mal redactados. La prueba no se aplica necesariamente a todo el sistema, sólo se garantiza para el navegador web que se está utilizando actualmente. Otros navegadores en el mismo sistema y el propio SO podrían estar utilizando diferentes proveedores de DNS.
Actualización. 14 de junio de 2020: Gracias a Reddit, hoy me he enterado de que NextDNS sí tiene una página de probadores: test.nextdns.io. Sin embargo, no he podido encontrar ninguna documentación al respecto. Jugando con ella he descubierto que un estado de «ok» y un protocl de «DOH» significa que el navegador/OS está usando NextDNS. Un estado de «no configurado» significa que no está utilizando NextNDS.Cuando se está utilizando NextDNS, también muestra su dirección IP pública (IP del cliente) y la dirección IP del servidor NextDNS. - El probador de VPN de Tenta informa de más detalles sobre sus servidores DNS que en cualquier otro lugar que yo conozca. Para cada servidor DNS detectado informa de la dirección IP, el ISP y la ciudad, el estado y el país. No muestra el nombre de host. Muestra si TLS está habilitado, si DNSSEC está habilitado y muchos otros atributos de cada servidor DNS que, francamente, están por encima de mi cabeza y no se explican. También da una calificación al servidor DNS. La página prueba muchas otras cosas también.
- ipx.ac es del proveedor de VPN VPN.ac. Haga clic en el gran fondo naranja en la parte inferior de la página para ver la dirección IP, el país y el ISP de los servidores DNS detectados. No muestra los nombres de cada servidor DNS. Comprueba mucho más que los DNS.
- ¿Soy Mullvad? es una página de comprobación de la VPN de Mullvad. Además de confirmar que estás conectado a su VPN, también muestra la dirección IP, el nombre y el país de sus servidores DNS. Y, también prueba WebRTC.
- Si usas AdGuard para DNS, su página de resumen incluye un probador y confirmará/negará el uso de su servicio (está en algún lugar en medio de la larguísima página. Además, tienen una página de comprobación dedicada que prueba tanto su servicio de DNS como otro software suyo.
- dnsleak.com está patrocinado y operado por London Trust Media, la empresa que está detrás del proveedor de VPN Private Internet Access. Informa de la dirección IP, el nombre de host, la ciudad y el país de cada servidor DNS detectado, pero no del ISP. Lo bueno de los resultados de la prueba es que muestra tu dirección IP pública justo al lado de la dirección IP del servidor DNS. Si estás en una VPN que utiliza el servidor VPN como servidor DNS, puedes verificar fácilmente que este es el caso. Sin embargo, cuando lo intenté por última vez en septiembre de 2020, la prueba se colgó y no informó nada. Probé con varios ordenadores y varios navegadores.
- www.whatsmydnsserver.com es de Sericon Technology. Informa de un único servidor DNS incluso cuando otros probadores informan de varios. Muestra la dirección IP y el «Propietario» del servidor DNS.
- El F-Secure Router Checker no comprueba realmente los routers, simplemente informa sobre un servidor DNS. Todos los demás comprobadores de servidores DNS informan sobre múltiples servidores DNS detectados, pero F-Secure sólo informa sobre uno. La compañía dice que su objetivo es asegurar que su router está usando un «servidor DNS autorizado» pero no existe tal cosa y no lo definen.
- ipleak.net es del proveedor de VPN AirVPN. Para cada servidor DNS, informa de la dirección IP y la ubicación. No hay ISP ni nombre de host. También informa sobre muchas otras cosas como WebRTC y su resolución de pantalla. Esta es mi opción menos favorita ya que la fuente utilizada para las direcciones IP es casi ilegible. También está disponible en los puertos 8000 y 62222.
Pruebas del sistema operativo
Para ver qué está usando el sistema operativo para el DNS, fuera de cualquier navegador web, podemos usar el comando nslookup en los sistemas operativos de escritorio (Windows, macOS, Linux). La sintaxis del comando es muy sencilla: «nslookup domainname». Lo primero que devuelve el comando es el nombre y la dirección IP del servidor DNS por defecto. A continuación se muestra una captura de pantalla de Windows 7 que muestra que el sistema está utilizando el servidor DNS dns9.quad9.net en la dirección IP 9.9.9.9.
Las configuraciones de DNS en el sistema operativo pueden ser muy variadas. Puede haber diferentes servidores DNS configurados para Ethernet vs. Wi-Fi. Y, cada red inalámbrica (SSID) puede ser configurado para utilizar diferentes servidores DNS. Android 9, 10 y 11 permiten una configuración global de DNS para todo el sistema operativo.
Si una conexión de red/SSID específica especifica su(s) servidor(es) DNS deseado(s), entonces el router le asigna servidores DNS. Pero, de nuevo, una complicación. El router puede funcionar como un servidor DNS en sí mismo, o puede simplemente pasar las solicitudes DNS a un servidor DNS en Internet.
En el ejemplo anterior, la conexión de red estaba configurada específicamente para utilizar Quad9. En el ejemplo siguiente, un equipo con Windows 10 está utilizando el propio router como servidor DNS.
Se suele pensar que si el Sistema Operativo especifica los servidores DNS, estos se utilizarán. Esto no siempre es así. Algunos routers (como el Pepwave Surf SOHO) pueden forzar a los clientes a usar los servidores DNS especificados en el router. Dicho esto, mi experiencia ha sido que esto sólo se aplica a los DNS antiguos. Los navegadores que especificaron servidores DNS de tipo DoH tuvieron sus peticiones honradas.
Esto significa que el servidor DNS reportado por nslookup no es de confianza. En la primera captura de pantalla de arriba, parece que Windows está usando 9.9.9.9 para la resolución DNS. Pero, si Windows está configurado para usar 9.9.9.9 y el router está configurado para usar 1.1.1.1 (por ejemplo) y el router está imponiendo su voluntad en todos los dispositivos conectados (una característica ofrecida por Peplink y otros routers), nslookup informará que está usando 9.9.9.9. No está mintiendo a propósito, está siendo falseado por el router. Los paquetes que salen del puerto WAN serán enviados a 1.1.1.1 según el router. Aprendí esto de la manera más difícil, haciendo rastros pcap de los paquetes de datos que salen del puerto WAN. Supongo que lo mismo ocurre con el comando dig en Linux y macOS.
Y, por supuesto, una VPN complica aún más esto. A continuación se muestra una captura de pantalla de nslookup realizada mientras un ordenador con Windows 10 estaba conectado a una VPN. En este caso, nslookup devuelve la dirección IP del servidor DNS de la red interna del proveedor de la VPN. El servidor no es desconocido, sólo lo es su nombre.
Los usuarios de Windows pueden rastrear todas las instancias del DNS heredado utilizando el programa gratuito y portable DNSQuerySniffer de Nir Sofer (ver una captura de pantalla). Ejecútelo antes de usar un navegador para ver si el navegador está usando el DNS antiguo o el nuevo. Cierre todos los navegadores, ejecute DNSQuerySniffer y espere, para ver las peticiones de DNS antiguas generadas por el propio Windows.
Otro enfoque, para Windows, fue sugerido por Sergiu Gatlan en su artículo de agosto de 2020 Microsoft añade la sección de configuración de DNS sobre HTTPS de Windows 10. Él sugiere usar el comando pktmon para rastrear toda la actividad en el puerto TCP/IP 53. El comando pktmon no puede mostrar sólo las solicitudes salientes, siempre incluye las respuestas también, por lo que genera mucha actividad en la ventana de comandos. Pero, confirmará el uso de DNS antiguos. Los comandos que sugiere Gatlan son:
pktmon filter remove
pktmon filter add -p 53
pktmon start –etw -l real-time
Sugiero primero hacer una lista de filtros pktmon sólo para ver si hay algún filtro activo. El registro se puede detener con Ctrl+C.
Tanto en Linux como en macOS, puedes utilizar el comando dig para ver qué servidor DNS se está utilizando. En macOS, haz Aplicaciones -> Utilidades -> Terminal. Para Linux vea Cómo usar el comando dig en Linux por Dave McKay (abril de 2020). Un simple comando dig somedomain.com debería mostrar el servidor DNS utilizado para responder a la pregunta. Busque «SERVER:» en la salida.
SAD DNS
Un nuevo ataque a los servidores DNS, llamado SAD DNS se hizo público en noviembre de 2020. El ataque trata de envenenar los resultados del DNS, es decir, apuntar a las víctimas a un servidor malicioso en la dirección IP equivocada para un dominio. El ataque fue creado por seis académicos de la Universidad de California, Riverside y de la Universidad de Tsinghua. Vea su documento y sus diapositivas.
Puedes comprobar si estás usando un servidor DNS vulnerable usando el enlace «Click to check if your DNS server is affected» en la página de SAD DNS. Advierten, sin embargo, que su prueba no es 100% precisa.
El 12 de noviembre de 2020 hice algunas pruebas. Cloudflare, Google y Quad9 eran vulnerables. Los DNS de mi proveedor de VPN no lo eran. NextDNS inicialmente no pudo resolver la página de DNS de SAD. El registro mostró que estaba bloqueando saddns.net porque era un dominio recién registrado. No es un gran problema poner el dominio en la lista blanca. NextDNS también fue reportado como vulnerable.
Por qué molestarse
Hackear un router y cambiar los servidores DNS es un tipo de ataque muy popular. Algunos informes en las noticias:
- Brasil está a la vanguardia de un nuevo tipo de ataque a routers por Catalin Cimpanu para ZDNet 12 de julio de 2019
- Los ataques drive-by a sitios web en routers están vivos y bien. Esto es lo que hay que hacer por Dan Goodin 11 de julio de 2019
- El NCSC emite una alerta sobre los ataques activos de secuestro de DNS por Ionut Ilascu para Bleemping Computer 14 de julio de 2019
- Los secuestros de DNS en curso tienen como objetivo Gmail, PayPal, Netflix, bancos y más por Dan Goodin de Ars Technica 5 de abril de 2019
Y…
Advertencia a los usuarios de Windows: Hay un problema de almacenamiento en caché o búfer que involucra a las VPN. Después de conectarse a una VPN, los sitios anteriores suelen mostrar tanto los servidores DNS anteriores a la VPN como el servidor DNS actual del proveedor de la VPN. En iOS 12 y Android 7.1 todos los probadores anteriores funcionan bien, sólo Windows tiene errores. No he probado otros sistemas operativos. En la siguiente captura de pantalla, de la página del probador de VPN Express, los cuatro servidores OpenDNS estaban en uso antes de que se realizara la conexión VPN y el servidor de Leaseweb USA es del proveedor de VPN. Probé el comando «ipconfig /flushdns» pero no ayudó.
Probador de VPN Express mientras está conectado a una VPN
En Windows, la única página del probador anterior que ha sido a prueba de balas en mi experiencia es la de OpenDNS. Simplemente informa de un SÍ/NO sobre si se está utilizando OpenDNS y no se deja engañar por cualquier problema de caché que confunda a los otros probadores. Como nota al margen, todos los servicios VPN que he utilizado asignan un único servidor DNS. Fuera de una VPN, normalmente hay dos o más servidores DNS en uso.
Otro problema es que diferentes probadores de DNS reportan un número diferente de servidores DNS. Algunos sólo informan de un servidor DNS, otros informan de múltiples servidores DNS. No sé a qué se debe esto.
Los servidores DNS de Cloudflare son 1.1.1 y 1.0.0.1. En noviembre de 2018, Cloudflare lanzó aplicaciones para iOS y Android que configuran esos sistemas para usar sus servidores DNS. Funciona creando una pseudo conexión VPN. Los probadores anteriores no reportan ni 1.1.1.1 ni 1.0.0.1 como los servidores DNS en uso. La aplicación de Cloudflare mostrará que se está utilizando, y estoy seguro de que es, pero los probadores de DNS anteriores informan de otras direcciones IP. Y tampoco puedes guiarte por el nombre de host, los servidores utilizados por Cloudflare no tienen nombres de host. La única pista de estos probadores es que Cloudflare es el ISP.
Una característica de Cloudflare DNS es la encriptación. La conexión entre tu ordenador y su servidor DNS está cifrada utilizando uno de los dos enfoques bastante nuevos: DNS sobre TLS o DNS sobre HTTP. Esto sólo es un problema cuando no se utiliza una VPN. Una VPN encripta todo (cuando funciona correctamente) que entra y sale del ordenador, por lo que no es necesario prestar especial atención a la encriptación del DNS.
Advertencia a los lectores de WIRED: El artículo ¿Sabes qué? Go Ahead and Use the Hotel Wi-Fi por Brian Barrett (18 de noviembre de 2018) llega a una conclusión muy equivocada. El punto principal del artículo es que el uso generalizado de HTTPS (sitios web seguros) elimina los viejos peligros de husmear y espiar datos sin cifrar. Por un lado, esto demuestra una falta de comprensión de los límites de HTTPS. Los sitios web seguros no merecen tanta confianza. Sin embargo, el mayor peligro es que en una red inalámbrica pública tienes una conexión cifrada con los malos. HTTPS no hace nada para protegerte de un sitio web de estafa que parece bastante real, muestra la URL correcta en la barra de direcciones, pero cuyo único propósito es cosechar contraseñas. La validación extendida podría ofrecer esta protección, pero en el mundo real no lo hace. Por un lado, los navegadores web cambian constantemente la forma de indicar la EV frente a la DV (Validación de Dominio). Además, algunos navegadores no dan ninguna indicación visual de la diferencia. Además, sospecho que los que no son técnicos ni siquiera conocen el concepto de EV/DV en primer lugar. Aún más insidioso es utilizar el DNS no para falsear el nombre de dominio principal/mostrado, sino para dirigir el navegador a una copia fraudulenta de código incluido de un tercero. Muchos sitios se ven comprometidos al incluir código malicioso de terceros hackeados. El DNS significa que el tercero ni siquiera necesita ser hackeado. Por lo tanto, utilizar servidores DNS de confianza, no los de los hackers, de una cafetería o de un hotel, es fundamental para informarse de forma segura. El artículo también ignora el tema de las redes gemelas malignas, un ataque para el que no hay (que yo sepa) ninguna defensa.
Cualquier persona que ejecute una VPN en Windows 8 o 10 tiene que ser consciente de una situación en la que las peticiones DNS pueden ser enviadas fuera del túnel VPN. Para más información, consulte la Guía: Prevenir la fuga de DNS mientras se usa una VPN en Windows 10 (y Windows 8).
En mayo de 2017, Trend Micro hizo un gran comentario: «Desafortunadamente, las pruebas basadas en el sitio web pueden no ser confiables una vez que un router doméstico ha sido comprometido.» Teniendo esto en cuenta, tiene sentido comprobar con el router directamente, ya sea con una interfaz web o una app, para volver a comprobar los servidores DNS.
Los usuarios de Windows tienen otra excelente opción, el programa DNS query sniffer de Nir Sofer. El programa es gratuito, portátil y de una fuente fiable. Simplemente rastrea las solicitudes y respuestas de DNS. Antes de conectarte a una VPN, dile que examine tu conexión Wi-Fi o Ethernet para confirmar que el programa funciona. A continuación, conéctate a la VPN y no deberías ver más actividad de DNS. Como prueba adicional de que la VPN está manejando las cosas, dígale al programa que examine su conexión VPN (Opciones -> Opciones de Captura) y debería ver todas sus peticiones DNS.
En cuanto a si un servidor DNS está realmente funcionando bien, tenemos la prueba de falsificación de DNS de Steve Gibson. La página no tiene fecha de creación ni de última actualización, pero existe desde hace mucho tiempo.
0 comentarios