¿Qué es el DNS y cómo funciona?
El Sistema de Nombres de Dominio (DNS) es uno de los fundamentos de Internet, aunque la mayoría de las personas ajenas a las redes probablemente no se dan cuenta de que lo utilizan a diario para hacer su trabajo, consultar su correo electrónico o perder el tiempo en sus smartphones.
En su aspecto más básico, el DNS es un directorio de nombres que coinciden con números. Los números, en este caso son direcciones IP, que los ordenadores utilizan para comunicarse entre sí. La mayoría de las descripciones de DNS utilizan la analogía de una guía telefónica, lo que está bien para las personas mayores de 30 años que saben lo que es una guía telefónica.
Si tienes menos de 30 años, piensa en el DNS como la lista de contactos de tu smartphone, que relaciona los nombres de las personas con sus números de teléfono y direcciones de correo electrónico. Luego multiplica esa lista de contactos por todos los demás habitantes del planeta.
Una breve historia del DNS
Cuando Internet era muy, muy pequeño, era más fácil para la gente corresponder direcciones IP específicas con ordenadores específicos, pero eso no duró mucho a medida que más dispositivos y personas se unieron a la creciente red. Todavía es posible escribir una dirección IP específica en un navegador para llegar a un sitio web, pero entonces, como ahora, la gente quería una dirección formada por palabras fáciles de recordar, del tipo que hoy reconoceríamos como un nombre de dominio (como networkworld.com). En los años setenta y principios de los ochenta, esos nombres y direcciones eran asignados por una persona, Elizabeth Feinler, de Stanford, que mantenía una lista maestra de todos los ordenadores conectados a Internet en un archivo de texto llamado HOSTS.TXT.
Esta situación era obviamente insostenible a medida que Internet crecía, sobre todo porque Feinler sólo atendía las solicitudes antes de las 6 de la tarde, hora de California, y se tomaba vacaciones en Navidad. En 1983, a Paul Mockapetris, un investigador de la USC, se le encomendó la tarea de llegar a un compromiso entre las múltiples sugerencias para solucionar el problema. Básicamente las ignoró todas y desarrolló su propio sistema, al que llamó DNS. Aunque obviamente ha cambiado bastante desde entonces, a nivel fundamental sigue funcionando igual que hace casi 40 años.
Cómo funcionan los servidores DNS
El directorio DNS que relaciona los nombres con los números no se encuentra en un solo lugar en algún rincón oscuro de Internet. Con más de 332 millones de nombres de dominio listados a finales de 2017, un solo directorio sería realmente muy grande. Al igual que Internet, el directorio está distribuido por todo el mundo, almacenado en servidores de nombres de dominio (generalmente denominados servidores DNS para abreviar) que se comunican entre sí de forma muy regular para proporcionar actualizaciones y redundancias.
Servidores DNS autoritativos frente a servidores DNS recursivos
Cuando tu ordenador quiere encontrar la dirección IP asociada a un nombre de dominio, primero hace su petición a un servidor DNS recursivo, también conocido como resolver recursivo. Un resolver recursivo es un servidor que suele ser operado por un ISP u otro proveedor de terceros, y sabe a qué otros servidores DNS tiene que preguntar para resolver el nombre de un sitio con su dirección IP. Los servidores que realmente tienen la información necesaria se llaman servidores DNS autoritativos.
Servidores DNS y direcciones IP
Cada dominio puede corresponder a más de una dirección IP. De hecho, algunos sitios tienen cientos o más direcciones IP que se corresponden con un solo nombre de dominio. Por ejemplo, es probable que el servidor al que llega su ordenador para www.google.com sea completamente diferente del servidor al que llegaría alguien de otro país escribiendo el mismo nombre de sitio en su navegador.
Otra razón para la naturaleza distribuida del directorio es la cantidad de tiempo que le llevaría obtener una respuesta cuando buscase un sitio si sólo hubiese una ubicación para el directorio, compartida entre los millones, probablemente miles de millones, de personas que también buscan información al mismo tiempo. Es una larga cola para usar la guía telefónica.
¿Qué es el almacenamiento en caché del DNS?
Para evitar este problema, la información del DNS se comparte entre muchos servidores. Pero la información de los sitios visitados recientemente también se almacena en caché localmente en los ordenadores de los clientes. Lo más probable es que utilices google.com varias veces al día. En lugar de que tu ordenador consulte al servidor de nombres DNS la dirección IP de google.com cada vez, esa información se guarda en tu ordenador para que no tenga que acceder a un servidor DNS para resolver el nombre con su dirección IP. Puede producirse un almacenamiento en caché adicional en los routers utilizados para conectar a los clientes a Internet, así como en los servidores del proveedor de servicios de Internet (ISP) del usuario. Con tanto almacenamiento en caché, el número de consultas que realmente llegan a los servidores de nombres DNS es mucho menor de lo que parece.
¿Cómo encuentro mi servidor DNS?
En general, el servidor DNS que utilizas será establecido automáticamente por tu proveedor de red cuando te conectas a Internet. Si quieres ver cuáles son tus servidores de nombres primarios -generalmente el resolutor recursivo, como se ha descrito anteriormente- hay utilidades web que pueden proporcionar una gran cantidad de información sobre tu conexión de red actual. Browserleaks.com es una buena herramienta que proporciona mucha información, incluyendo los servidores DNS actuales.
¿Puedo usar 8.8.8.8 DNS?
Es importante tener en cuenta, sin embargo, que aunque su ISP establecerá un servidor DNS por defecto, usted no tiene ninguna obligación de usarlo. Algunos usuarios pueden tener razones para evitar el DNS de su ISP – por ejemplo, algunos ISP utilizan sus servidores DNS para redirigir las solicitudes de direcciones inexistentes a páginas con publicidad.
Si quieres una alternativa, puedes en cambio apuntar tu ordenador a un servidor DNS público que actuará como un resolvedor recursivo. Uno de los servidores DNS públicos más destacados es el de Google; su dirección IP es 8.8.8.8. Los servicios DNS de Google suelen ser rápidos y, aunque hay ciertas dudas sobre los motivos ocultos que tiene Google para ofrecer el servicio gratuito, en realidad no pueden obtener más información de ti que la que ya obtienen de Chrome. Google tiene una página con instrucciones detalladas sobre cómo configurar tu ordenador o router para que se conecte a los DNS de Google.
Cómo los DNS añaden eficiencia
Los DNS están organizados en una jerarquía que ayuda a que las cosas funcionen rápidamente y sin problemas. Para ilustrarlo, supongamos que quieres visitar networkworld.com.
La solicitud inicial de la dirección IP se realiza a un resolvedor recursivo, como se ha comentado anteriormente. El resolvedor recursivo sabe a qué otros servidores DNS tiene que preguntar para resolver el nombre de un sitio (networkworld.com) con su dirección IP. Esta búsqueda conduce a un servidor raíz, que conoce toda la información sobre los dominios de primer nivel, como .com, .net, .org y todos aquellos dominios de países como .cn (China) y .uk (Reino Unido). Los servidores raíz están ubicados en todo el mundo, por lo que el sistema suele dirigirle al más cercano geográficamente.
Una vez que la solicitud llega al servidor raíz correcto, va a un servidor de nombres de dominio de primer nivel (TLD), que almacena la información del dominio de segundo nivel, las palabras que se utilizan antes de llegar al .com, .org, .net (por ejemplo, esa información para networkworld.com es «networkworld»). A continuación, la solicitud se dirige al servidor de nombres de dominio, que contiene la información sobre el sitio y su dirección IP. Una vez descubierta la dirección IP, se devuelve al cliente, que ahora puede utilizarla para visitar el sitio web. Todo esto tarda apenas unos milisegundos.
Como el DNS lleva funcionando más de 30 años, la mayoría de la gente lo da por sentado. La seguridad tampoco se tuvo en cuenta a la hora de construir el sistema, por lo que los hackers se han aprovechado de ello, creando una gran variedad de ataques.
Ataques de reflexión de DNS
Los ataques de reflexión de DNS pueden inundar a las víctimas con un gran volumen de mensajes de los servidores de resolución de DNS. Los atacantes solicitan grandes archivos DNS a todos los resolvedores DNS abiertos que puedan encontrar y lo hacen utilizando la dirección IP falsa de la víctima. Cuando los resolvers responden, la víctima recibe una avalancha de datos DNS no solicitados que saturan sus máquinas.
Envenenamiento de la caché DNS
El envenenamiento de la caché DNS puede desviar a los usuarios a sitios web maliciosos. Los atacantes consiguen insertar registros de dirección falsos en el DNS, de modo que cuando una víctima potencial solicita una resolución de dirección para uno de los sitios envenenados, el DNS responde con la dirección IP de un sitio diferente, uno controlado por el atacante. Una vez en estos sitios falsos, las víctimas pueden ser engañadas para que entreguen sus contraseñas o sufran descargas de malware.
Agotamiento de recursos DNS
Los ataques de agotamiento de recursos DNS pueden obstruir la infraestructura DNS de los ISP, bloqueando a los clientes de los ISP para llegar a los sitios de Internet. Esto puede hacerse mediante el registro de un nombre de dominio por parte de los atacantes y el uso del servidor de nombres de la víctima como servidor autoritativo del dominio. Así, si un resolutor recursivo no puede suministrar la dirección IP asociada al nombre del sitio, preguntará al servidor de nombres de la víctima. Los atacantes generan un gran número de peticiones para su dominio y añaden subdominios inexistentes, lo que lleva a un torrente de peticiones de resolución al servidor de nombres de la víctima, abrumándolo.
¿Qué es DNSSec?
Las extensiones de seguridad DNS son un esfuerzo para hacer más segura la comunicación entre los distintos niveles de servidores involucrados en las búsquedas DNS. Fue ideado por la Corporación de Internet para la Asignación de Nombres y Números (ICANN), la organización encargada del sistema DNS.
La ICANN se dio cuenta de los puntos débiles en la comunicación entre los servidores de directorio de primer nivel, segundo y tercer nivel del DNS que podían permitir a los atacantes secuestrar las búsquedas. Esto permitiría a los atacantes responder a las solicitudes de búsqueda de sitios legítimos con la dirección IP de sitios maliciosos. Estos sitios podrían cargar malware a los usuarios o llevar a cabo ataques de phishing y pharming.
DNSSEC solucionaría este problema haciendo que cada nivel de servidor DNS firme digitalmente sus peticiones, lo que asegura que las peticiones enviadas por los usuarios finales no sean requisadas por los atacantes. Esto crea una cadena de confianza para que, en cada paso de la búsqueda, se valide la integridad de la solicitud.
Además, DNSSec puede determinar si los nombres de dominio existen y, si no existen, no permitirá que ese dominio fraudulento se entregue a solicitantes inocentes que buscan resolver un nombre de dominio.
A medida que se crean más nombres de dominio, y más dispositivos continúan uniéndose a la red a través de los dispositivos de la Internet de las cosas y otros sistemas «inteligentes», y a medida que más sitios migran a IPv6, será necesario mantener un ecosistema de DNS saludable. El crecimiento de los big data y la analítica también conlleva una mayor necesidad de gestión de DNS.
SIGRed: Un fallo de DNS que puede convertirse en un gusano asoma la cabeza
El mundo ha podido comprobar recientemente el tipo de caos que pueden provocar las debilidades de DNS con el descubrimiento de un fallo en los servidores DNS de Windows. El potencial agujero de seguridad, apodado SIGRed, requiere una compleja cadena de ataque, pero puede explotar los servidores DNS de Windows no parcheados para instalar y ejecutar potencialmente código malicioso arbitrario en los clientes. Y el exploit es «wormable», lo que significa que puede propagarse de ordenador a ordenador sin intervención humana. La vulnerabilidad se consideró lo suficientemente alarmante como para que las agencias federales de Estados Unidos tuvieran sólo unos días para instalar los parches.
DNS sobre HTTPS: un nuevo panorama de privacidad
En el momento de escribir este artículo, el DNS está a punto de sufrir uno de los mayores cambios de su historia. Google y Mozilla, que juntos controlan la mayor parte del mercado de los navegadores, están fomentando un cambio hacia el DNS sobre HTTPS, o DoH, en el que las solicitudes de DNS se cifran mediante el mismo protocolo HTTPS que ya protege la mayor parte del tráfico web. En la implementación de Chrome, el navegador comprueba si los servidores DNS soportan DoH, y si no lo hacen, redirige las peticiones DNS al 8.8.8.8 de Google.
Es un movimiento no exento de polémica. Paul Vixie, que realizó gran parte de los primeros trabajos sobre el protocolo DNS en la década de 1980, califica la medida como un «desastre» para la seguridad: a los informáticos de las empresas les resultará mucho más difícil supervisar o dirigir el tráfico DoH que atraviesa su red, por ejemplo. Aun así, Chrome es omnipresente y el DoH pronto estará activado por defecto, así que veremos qué nos depara el futuro.
(Keith Shaw es un antiguo editor senior de Network World y un galardonado escritor, editor y revisor de productos que ha escrito para muchas publicaciones y sitios web de todo el mundo.)
(Josh Fruhlinger es un escritor y editor que vive en Los Ángeles.)