3.1.3. El Sistema de Nombres de Dominio (DNS)
3.1.3.1. Definición DNS: Introducción
El Sistema de Nombres de Dominio o DNS, de las siglas en inglés Domain Name System, es el conjunto de protocolos y estándares que permite traducir los nombres de hosts en direcciones IP en una red. El término host se refiere en sentido amplio dentro de una red informática a ordenadores personales, dispositivos varios y servidores, todos ellos identificados en una red por una IP que puede ser pública o privada en función del contexto (local o Internet).
En una red informática, es habitual que los hosts tengan asociado un nombre (y a su vez este una IP) de acuerdo a los estándares y formato que prescribe el DNS. Este nombre facilita a los usuarios de las redes informáticas, cuyo protocolo base de direccionamiento IP emplea principalmente el formato definido en IPv4, el no tener que recordar la IP asociada al host cada vez que un software cliente debe comunicarse con otro host.
La resolución de nombres de host en IP, que es lo que permite el DNS, es posible por la intervención de estos elementos combinados de estándares y sistemas de software y hardware: nomenclatura de dominios y servidores DNS.
3.1.3.1.1. Dominios, hosts y zonas de dominio
La forma en que se escribe el nombre de un host es a través de la nomenclatura de dominios. Este sistema utiliza etiquetas, que son las partes de un dominio separados por puntos. A tener en cuenta:
- Un dominio puede contener varios subdominios que son las partes que queda a la izquierda del dominio principal (separados por puntos).
- La parte más a la izquierda es la que identifica al
- La parte que corresponde a los dominios y subdominios, identifica de forma jerárquica lo que se denominan zonas. Las zonas son administradas por un servidor DNS principal que contienen la información de los registros para resolver las IP de los hosts de su zona. Los dominios y subdominios conformaran diferentes zonas.
Ejemplo ilustrativo:
Es común segmentar las redes locales a nivel de empresa en subredes para facilitar su gestión. Del mismo modo, es habitual que los hosts pertenecientes a una subred pertenezcan a zonas de dominios y subdominios diferentes. Para ello, se habilita un servidor DNS para la zona que es el que almacena la información del nombre de los hosts y sus IP locales (privadas), identificando así diferentes recursos (intranets, impresoras, servidor de correo electrónico) y los ordenadores personales de sus trabajadores.
Nota: Las peculiaridades del sistema de comunicación entre los componentes del sistema DNS se verán en el siguiente punto. Además, los hosts de una subred no tienen por qué pertenecer de forma unívoca a una zona DNS. Un servidor DNS puede administrar información de varias zonas y para varias redes a la vez, etc.
3.1.3.1.2. Servidores y clientes DNS: Resolver (Protocolo UDP)
Tanto a nivel de red local como en Internet el Sistema de Nombre de Servicios (DNS) utiliza la arquitectura cliente-servidor. Para el sistema DNS por lo tanto se tiene en cuenta el modelo de consumo de servicios, proporcionado por un servidor, bajo demanda de un cliente. A continuación las características particulares para cada uno de los elementos que pueden aplicarse tanto en LAN como en Internet:
Servidores DNS
- Su función principal es proporcionar el servicio de resolución de nombres de host en IP. El modo en que proporciona este servicio, indica el tipo de servidor DNS.
- Los servidores que almacenan como si fuera una base de datos completa (registros RR) la relación entre host e IP y están autorizados a proporcionar esta información a los clientes y servidores DNS secundarios (ver siguiente punto) son servidores DNS primarios. Los registros almacenados en estos servidores se estructuran en ficheros de zona, que contiene la información sobre dicho dominio (relación IP-host para aquellos dispositivos y servidores que quedan bajo su dominio). Los administradores de redes, velan para que la información sea la correcta. Un fichero de zona puede estar en diferentes servidores DNS para asegurar el servicio y a su vez un servidor DNS primario administrar información para varias zonas.
- Existen otros tipos de servidores DNS cuya función también es la misma pero no poseen la información completa de las bases de datos de los ficheros de zona de un dominio. Seguirán proporcionando información para la resolución de nombres de dominio, pero porqué han obtenido esta información de otra forma: cache, es decir guardando información histórica de registros durante un tiempo o bien de forma secundaria por transferencia de datos de un servidor DNS primario. Serían DNS cache y DNS secundarios o esclavos Estos son muy importantes en la arquitectura de Internet para hacer sostenible el gran volumen de datos que gestiona esta red.
- La mayoría de servidores DNS en Internet incorporan funciones cache, es decir van almacenando información de registros a través de las peticiones DNS que procesan, pero estas peticiones se resuelven de manera recursiva. Es decir, trasladan la petición de un cliente a otro servidor DNS, y este a otro y así sucesivamente hasta encontrar un servidor DNS que pueda proporcionar la información host-IP que después almacenan en su cache. Esta función de comunicación entre servidores DNS también se llama forwarder. Son servidores DNS recursivos.
- Como se ha indicado, un servidor DNS es un host que permite consumir servicios que tiene habilitado un software especializado en uno de sus puertos. Este servicio está por norma general en el puerto 53 y trabaja con el protocolo UPD. Además, estos servidores DNS están sujetos al direccionamiento IP y su acceso es mediado por los protocolos de enrutamiento y NAT (se puede probar la función trazado de ruta en ellos). Los servidores DNS también están identificados por un nombre de host, que suele ser dominio.dominioraiz, dns.dominio, etc.
Ejemplo de escaneo rápido de servidor DNS público de Google (IP: 8.8.8.8.) con funciones cache y recursivas (probablemente también albergue ficheros de zona para dominios):
Clientes DNS (Resolver)
- Al cliente DNS se le llama Resolver. El resolver es un software en formato librería de funciones que está incorporado en los Sistemas Operativos. Para resumir, el Resolver media entre la aplicación que requiere resolver la IP de un dominio (por ejemplo, un navegador web) y los servidores DNS (aquellos que sean necesarios para obtener la información).
- Además, el Resolver también tiene función cache, que como en los servidores DNS consiste en almacenar de forma temporal los registros para los que ha mediado en la resolución dominio-host-IP. Como curiosidad, en los sistemas operativos de Windows puede verse esta cache a través del comando ipconfig /DISPLAYDNS.
En el epígrafe dedicado al DNS en Internet se verá en detalle y con ejemplos el funcionamiento real para obtener la resolución de nombres de dominio, a través del entramado de diferentes tipos de servidores DNS y las zonas de dominio de rango superior. No obstante, el siguiente gráfico es una aproximación:
3.1.3.1.3. Configuración DNS Server en red
Toda red o subred debe tener un Servidor DNS de referencia. Es un parámetro de red que se configura en el router o en la configuración de red del equipo. Este servidor DNS es el que va interactuar de forma principal con el Resolver (Cliente). Se pueden encontrar estos dos tipos de configuraciones:
- Servidor DNS de red privada: Para la resolución de nombres de dominio en una red empresarial de mayor o menor rango. El administrador de red configura este servidor DNS para identificar los equipos de la red interna, servidores y otros dispositivos, que no son accesibles desde Internet, salvo usando una VPN u otros medios.
- Servidor DNS público: Son servidores DNS que proporcionan diferentes corporaciones, normalmente un IPS (Proveedor de Servicios de Internet) o una empresa tecnológica (Google). Tienen funciones principalmente de cache y recursividad, es decir, almacenan información de registros o bien deben mediar con otros servidores DNS para obtener la información que requiere el cliente. Los IPS configuran sus DNS Server en los routers que proporcionan a sus clientes.
La configuración del DNS puede verse a través de la configuración de la red. Por ejemplo en Windows, en el este ejemplo mostrado las IP se corresponden a las IP Públicas de Servidores DNS Públicos del IPS Movistar.
Los servidores DNS de una red de ámbito privado (hogares y así) pueden modificarse en la configuración del router del IPS que proporciona acceso a Internet. Para obtener una mayor privacidad, se recomienda modificar este parámetro. A continuación una lista con algunos de los principales servidores DNS Públicos:
3.1.3.2. DNS en Internet
El Sistema de los Nombres de Dominio en Internet es fundamental para proveer los servicios de web y correo electrónico de uso público. Como ocurre con otros protocolos para Internet, están los organismos internacionales para elaborar una serie de estándares para asegurar la aplicación de una serie de funcionalidades a nivel internacional. El organismo que gestiona los elementos técnicos del DNS en Internet es la ICANN, que está relacionada con la IANA.
Para el funcionamiento DNS en Internet se aplican las mismas especificaciones técnicas comentadas en el punto anterior (DNS primarios, zonas de dominios, sistemas cache y recursivo, etc.). Sin embargo implica añadir dos etiquetas nuevas dentro del sistema jerárquico de dominios que no se usan en redes privadas:
- Dominio raíz (root): Es la etiqueta más a la derecha del dominio y se representa con un punto. No suele estar visible en los programas que solicitan información al Resolver. Tiene una función específica en la resolución de nombres de dominio relacionada con el dominio TLD.
- Dominio TLD (de las siglas en inglés Top Domain Level): Viene después de la etiqueta del dominio raíz hacia la izquierda. Es el rango de etiqueta del dominio para identificar la pertenencia a un país (.es, .it, .uk…) o a una actividad (.com para comercial, .org para organismos gubernamentales, etc.).
Por ejemplo, para la dirección del host de Google Store, se puede identificar estas partes del dominio:
Para la gestión de las etiquetas de dominio raíz y TLD, existen los servidores raíz (root) y servidores TLD respectivamente. Estos dos tipos de servidores solo permiten consultas iterativas. En este tipo de consultas, estos servidores no proporcionan la información de los registros de una zona de dominio sino que proporcionan una información parcial o referencia del servidor DNS Primario que contiene los registros que permiten resolver un dominio en IP de acuerdo a la siguiente jerarquización y ejecución (esquema muy simplificado):
El siguiente cuadro completa la información del esquema anterior y proporciona datos sobre la organización y funciones de los servidores comentados y como se interrelacionan:
Tipo de Servidor | Funciones y Organización |
Servidores raíz (ROOT) | · Son responsabilidad de la ICANN y las empresas subcontratadas para su mantenimiento.
· Existen 13 (*) servidores raíz en todo el mundo, identificados por el siguiente formato de nombre: [letra].root-servers.net.
· Esta letra va de la A a la M (P. ej.: A.root-server.net)
· Solo admite consultas iterativas. Es decir, proporcionan referencias sobre los servidores DNS para los dominios TLD (.com, .es…).
· Es el primer nivel de consulta que realizan los servidores recursivos cuando no encuentran en su cache la información para un dominio (y este a su vez deriva a un servidor TLD).
(*) En realidad cada servidor no está asociado a una ubicación física, sino que está asociado a múltiples equipos ubicados en sitios diferentes. |
Servidores TLD | · Son responsabilidad de las entidades NIC e InterNIC en colaboración con la ICANN. NIC proviene de las siglas en inglés Network Information Center.
· Las NIC son las responsables de las zonas de dominio de nivel superior (TLD) entre las que se encuentran principalmente (habría otras): o Dominios geográficos: Asociados a un país o territorio (.es, .it, .uk…). Controlados por un NIC vinculado a este territorio o país. o Dominios genéricos: Pensado para una clase particular de organizaciones (.com, .edu, .org…). Controlados por la InterNIC, que tiene rango internacional.
· Cuando una empresa o particular adquiere dominio (midominio) debe registrarlo en una de las NIC en función de la zona de dominio TLD para la cual se va a suscribir (diferente si es midominio.com o midominio.es).
· El titular del dominio deberá proporcionar información sobre el servidor DNS primario que almacena información para la zona de dominio registrado. Esta información quedará registrada en la base de datos del servidor DNS TLD. Esta información se puede encontrar en las tablas WHOIS.
· Información en el TLD. : Para el dominio midominio.com, la información de la zona está en el (los) servidor ns.midominio.com cuya IP es (o son) 255.255.255.255.
· Los servidores TLD solo permiten consultas iterativas, es decir, al igual que los servidores raíz no proporcionan información para resolver el nombre del host en IP, pero si proporciona la IP del servidor DNS que contiene la información de los hosts de la zona (servidores primarios). Por eso es muy importante que los titulares del dominio informen al NIC de los cambios de servidores DNS de un dominio. |
3.1.3.2.1. Consulta DNS en Internet: ejemplo
Un software debe resolver el nombre de un dominio. Por ejemplo: un software tipo navegador web que desea saber la dirección IP de www.kali.org para consultar la página web, que se hospeda en un servidor web (www.kali.org es el host). Versión simplificada:
- El navegador le envía la pregunta al Resolver local. ¿Cuál es la IP de www.kali.org?
- El Resolver mira si la respuesta está en su caché, pero no la encuentra.
- El Resolver envía la pregunta al servidor de nombres configurado en la red (DNS de red).
- El Resolver del DNS de red (también actúa como cliente) mira si la respuesta está en su caché, pero no la encuentra.
- El Resolver del DNS de red le envía la pregunta a uno de los servidores DNS root.
- El servidor root responde con la lista de IP de los servidores de nombres autoritarios del siguiente nivel, en este caso el de los servidores TLD para el dominio .org.
- El Resolver del DNS de red escoge una IP de la lista de servidores TLD para el dominio .org y le pregunta cuales son los servidores DNS autoritativos para la zona de dominio .kali.org.
- El servidor TLD responde con la lista de IP de los servidores de los servidores DNS autoritarios para la zona .kali.org, que contienen la información de los registros de hosts.
- El Resolver del DNS de red elige una IP de la lista recibida, y le envía la pregunta. Este es ya es un servidor DNS autoritario del dominio .kali.org, por lo que dispondrá del fichero de zona con la información de los registros.
- El servidor DNS autoritativo para el dominio .kali.org resuelve el nombre kali.org, devolviendo los registros del fichero de zona que indican la IP del servidor web (host).
- El Resolver del DNS de red le envía la respuesta al Resolver del equipo. Este lo almacena en la cache y le reenvía al navegador la información de la IP para acceder a la página web.
3.1.3.3. Registros DNS: DNS Lookup
Toda esta explicación acerca del funcionamiento del sistema DNS está enfocado a conocer el sistema de registros (RR) de un fichero de zona de dominio así como otros datos que almacenan los organismos NIC acerca de los propietarios de un dominio.
Esta información es pública y puede conocerse con las herramientas adecuadas, proporcionando datos acerca de diferentes tipos de servidores, subdominios y referencias de personas y corporaciones que pueden utilizarse para buscar vectores de un ataque informático. Un servidor DNS también puede ser objeto de explotación, no obstante, debido a la robustez del sistema DNS (información caché, DNS secundarios, etc.) no siempre resulta útil pues los administradores de redes no suelen exponer los servidores DNS primarios.
3.1.3.3.1. Ficheros de zona de dominio
Los ficheros de zona tienen la información acerca de un dominio. Estos ficheros están en los servidores DNS primarios (autoritarios). Un fichero de zona puede estar en varios servidores DNS, teniendo que informar a la NIC correspondiente. La zona de autoridad DNS son el conjunto de servidores que almacenan información para un dominio. Respecto a los subdominios, existen diferentes formas de administrar: desde un único fichero para gestionarlo todo o bien creando un fichero de zona particular para estos.
Los principales registros son los siguientes:
Nombre registro | Descripción |
RR SOA | Es un registro único y obligatorio. Describe las características generales de la zona. |
RR NS | Definen los servidores de nombres que son autoritarios del dominio. |
RR A | Puede haber varios y definen las direcciones IPV4 asociadas a los host. Tiene que haber uno al menos. |
RR C-NAME | Definen alias para los registros hosts. Resultan útiles para redirigir hacia un servidor concreto. Si por ejemplo se tienen los nombres de hosts correo.dominio.com y mail.dominio.es (ambos en realidad alias) se pueden indicar que al ser consultados dirijan al host real mx.dominio.com. |
RR MX | Indican los servidores de correo electrónico. |
RR PTR | Son un registro inverso al A. |
RR SRV | Indican el equipo proveedor de un servicio particular (por ejemplo, VPN), obteniendo información de la IP que gestiona el servicio y el puerto en el que opera. |
Además de los registros, también contienen otras directivas como $ORIGIN para indicar el nombre del dominio de la zona que está describiendo, o $TTL (obligatorio) que es el tiempo máximo que un registro RR puede permanecer en un servidor caché.
Sin entrar en detalles acerca de la configuración de un fichero de zona, solo indicar que la mayoría de registros guardan un formato similar siendo este: <parámetro> IN <RR> <parámetro2>. Las consultas recursivas e iterativas que se han visto devuelven al Resolver los registros RR de tipo A y C-NAME. Las reglas para la formación de ficheros de zona también son aplicables a los servidores root y TLD. A continuación un ejemplo de lo que podría ser un fichero estándar:
3.1.3.3.2. Búsquedas inversas DNS
La búsqueda inversa DNS (en inglés reverse DNS lookup) consiste, como el nombre indica, en obtener un nombre de host a partir de una IP. Para realizar este tipo de búsquedas es necesario tener en cuenta estos requisitos:
- Que exista una red bien definida.
- Definir un fichero para la zona de dominio DNS de la red.
- Uso de dominios especiales. El dominio .IN-ADDR.ARPA que fue creado exclusivamente para este tipo de búsquedas aunque la mayoría de corporaciones actualmente emplean otros dominios (.net) y dominios propios vinculados el nombre de sus redes (ver ejemplos más abajo). Va a formar el dominio junto a la dirección de red.
- Incluir en el fichero de zona de dominio de la red registros RR PTR (son inversos a los registros RR A).
Ejemplo teórico: A diferencia de las consultas DNS normales, se tiene que transformar una IP de un host en un formato FQDN. Para esto lo que se va a hacer es invertir el orden de la dirección IP y construir la jerarquía utilizando el dominio especial .IN-ADDR.ARPA, partiendo desde el dominio root. Por ejemplo, para la IP privada de red 192.168.1.0:
El fichero de zona para el dominio del ejemplo .1.168.192.IN-ADDR.ARPA., con los registros RR PTR para identificar a los hosts, quedaría así por ejemplo (se han reducido líneas […]):
Las grandes corporaciones que mantienen la red de Internet (tecnológicas, IPS,…) están obligadas a crear estos registros en estas zonas de dominio especiales, de manera que se puedan identificar todos los hosts y routers. Con las búsquedas inversas DNS se obtiene se obtiene una asignación geográfica de la IP e información sobre el proveedor de servicios de Internet responsable con la información del dominio.
Como ya se ha comentado, aparte de la posibilidad de emplear el dominio especial .IN-ADDR.ARPA, hoy en día es común que las IPS adquieran dominios propios para identificar sus redes y que los registros RR PTR estén en servidores diferentes a los de RR A. Todo ello dependerá de los administradores de redes y las IPS, así que no siempre resulta sencillo desvelar el entramado. Además, las empresas obviamente no quieren facilitar los datos de sus redes ante posibles atacantes.
Por ejemplo (https://mxtoolbox.com/SuperTool.aspx), para el dominio kali.org cuya IP a la hora de escribir esto es 50.116.58.136, el resultado de una consulta inversa empleando la herramienta web mxtoolbox da como resultado en nombre de host li458-136.members.linode.com:
Nota: Este tipo de búsquedas se realizan principalmente para crear listas antispam y rastrear posibles ciberdelincuentes.
3.1.3.3.3. Anotaciones sobre servidores web y los servicios de alojamiento (hosting)
Antes de mencionar algunas aplicaciones web para realizar consultas de registros RR es conveniente destacar algunos puntos. En Internet el servicio público más común es web, y por lo tanto a la hora de encontrar posibles vectores de ataque, conviene recolectar la información que puedan proporcionar los registros RR del DNS.
No obstante, la información que se puede encontrar puede llegar a ser abrumadora y confusa si previamente no se conoce como puede estructurar una empresa o particular su información a través de sus webs.
- Un servidor web es una máquina que proporciona servicios de los protocolos HTTP/HTTPS (Protocolo de transferencia de hipertexto) que permiten acceder a un cliente a la consulta de recursos en forma de páginas web.
- El protocolo HTTP/HTTPS se habilita en los puertos 80/443 del servidor. No obstante, debido a las técnicas de NATP y protocolos de routing el acceso a estos servicios se produce con la mediación de uno o varios routers, que administran el tráfico entre el servidor y los clientes. Por lo tanto, la IP que se puede obtener a partir del nombre del host de un servicio web (página web dominio.com) en realidad se corresponde con un router, que administra las comunicaciones.
- Cuando una empresa o particular desea publicar una página web en Internet debe pensar en adquirir un dominio y proveerse de un servidor web. Excepto las grandes empresas tecnológicas con una gran infraestructura y los IPS, la mayoría acude a empresas de servicios de alojamiento web (hosting). Estas empresas, previo pago, proporcionan los recursos necesarios para publicar una página web: registrar el dominio a nombre de un propietario incluyendo la información sobre el DNS y el alquiler de una infraestructura técnica que es el servidor o servidores que van a guardar los contenidos de la web y la harán accesible.
- Las empresas de hosting ofrecen un catálogo extenso de posibilidades, pensando en la infraestructura necesaria para la página web: tecnología empleada y capacidad del servidor según el número de visitantes estimado. Estos servicios van desde servidores compartidos por varias páginas web empleando tecnologías de virtualización o bien servidores dedicados. Hay que tener en cuenta que en los casos de un servidor compartido una misma IP este empleada para diferentes páginas web con dominios diferentes.
- En lo que respecta al DNS, las empresas de hosting tienen sus propios servidores DNS para mantener los ficheros de zona de dominio. No obstante, aunque resulta lo más sencillo para los usuarios (sobre todo los particulares), es habitual que empresas de mayor envergadura (incluso menores) decidan mantener los ficheros de zona de sus dominios en otros servidores que no sean de la empresa de hosting o incluso que contraten a otro proveedor para mantener exclusivamente varios servidores DNS primarios dedicados. Estas divergencias al analizar las IP de una empresa son recurrentes.
- Hay que tener en cuenta que tanto si se está hablando de empresas que pueden mantener por sí mismas los servidores web como si se trata de servicios de hosting, los servidores web no suelen estar comunicados de forma directa con la red interna de una empresa, por lo que su explotación (ya sea directamente o con técnicas de ataque a páginas web en función de la tecnología empleada), aun siendo posible, no es garantía de nada. No obstante, como siempre, conviene recolectar toda la información que proporcionan los registros DNS junto a otras técnicas de escaneo de redes y puertos.
3.1.3.3.4. RR Registros Lookup: Herramientas web
A continuación, una serie de aplicaciones web que permiten realizar consultas sobre los registros RR DNS, así como otras funciones. Como no se van a detallar, conviene ver qué tipo de información (IP o dominio) requiere la consulta y hacia qué tipo de registro está apuntando (A, CNAME…) para hacer válida su función. A tener en cuenta:
- Las consultas WHOIS sobre un dominio proporcionan información del propietario, empresa registradora, fecha de expiración así como los nombres de los servidores autoritarios del dominio.
- DNS Lookup proporciona los registros RR de tipo A.
- Es interesante centrarse en las aplicaciones que proporcionan información sobre dominios asociados a una misma IP, que indicaran que hay detrás una empresa de hosting que ha proporcionados servicios compartidos.
- Analizar los datos de subdominios.