Source: http://docplayer.es/1506254-Coordinacion-guia-de-seguridad-en-servicios-dns-2.html
Timestamp: 2017-09-24 23:12:38+00:00

Document:
Coordinación. Guía de seguridad en servicios DNS 2 - PDF
Download "Coordinación. Guía de seguridad en servicios DNS 2"
Concepción Chávez Rojo
2 Autor Antonio López Padilla Coordinación Daniel Fírvida Pereira La presente publicación pertenece a INTECO (Instituto Nacional de Tecnologías de la Comunicación) y está bajo una licencia Reconocimiento-No comercial 3.0 España de Creative Commons. Por esta razón está permitido copiar, distribuir y comunicar públicamente esta obra bajo las condiciones siguientes: Reconocimiento. El contenido de este informe se puede reproducir total o parcialmente por terceros, citando su procedencia y haciendo referencia expresa tanto a INTECO o INTECO-CERT como a su sitio web: Dicho reconocimiento no podrá en ningún caso sugerir que INTECO presta apoyo a dicho tercero o apoya el uso que hace de su obra. Uso No Comercial. El material original y los trabajos derivados pueden ser distribuidos, copiados y exhibidos mientras su uso no tenga fines comerciales. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso de INTECO-CERT como titular de los derechos de autor. Texto completo de la licencia: Guía de seguridad en servicios DNS 2
3 INDICE 1 OBJETIVO DE LA GUÍA 2 FUNDAMENTOS DE DNS QUÉ ES DNS? ELEMENTOS INTEGRANTES DE DNS ESPACIO DE DOMINIOS DE NOMBRES. JERARQUÍA Y SINTAXIS SERVIDORES DE NOMBRES RESOLVERS REGISTROS DNS. FORMATO Y TIPOS COMUNICACIONES Y TRANSACCIONES DNS PROTOCOLO DNS MENSAJES DNS TRANSACCIONES DNS CONCEPTOS clave SEGURIDAD EN DNS AMENAZAS Y VULNERABILIDADES EN DNS VECTORES DE ATAQUE Y AMENAZAS EN UN ESCENARIO DNS VULNERABILIDADES Y PUNTOS DÉBILES EN LA ESPECIFICACIÓN DNS. 23 DNS CACHE POISONING Y DNS SPOOFING. DESCRIPCIÓN DEL ATAQUE MEDIDAS CONTRA EL ATAQUE DE CACHÉ POISONING 4 ATAQUES DE DENEGACIÓN DE SERVICIO ATAQUE DE AMPLIFICACIÓN DNS DESCRIPCIÓN DEL ATAQUE PROTECCIÓN DE UN SERVIDOR EN ATAQUES DE AMPLIFICACIÓN DNS 30 DENEGACIÓN DE SERVICIO DOS ATAQUES SOBRE EL REGISTRO DE DOMINIOS. DNS HIJACKING DESCRIPCIÓN MEDIDAS CONTRA DNS HIJACKING O SECUESTRO DE DOMINIO FORTIFICACION DE UN SERVICIO DNS SEGURIDAD DEL ENTORNO BASE DEL SISTEMA Y EL SOFTWARE SISTEMA OPERATIVO CONFIGURACIÓN DEL SOFTWARE TOPOLOGÍA DE RED Guía de seguridad en servicios DNS 3
4 MONITORIZACIÓN INTERNA RESUMEN DE MEDIDAS EN EL ENTORNO BASE DEL SERVICIO DNS 42 MEDIDAS DE SEGURIDAD EN LAS TRANSACCIONES. SEGURIDAD EN CONSULTAS Y RESPUESTAS DNS. SEGURIDAD EN TRANSACCIONES DE TRANSFERENCIAS DE ZONA SEGURIDAD EN NOTIFICACIONES SEGURIDAD EN ACTUALIZACIONES DINÁMICAS RESUMEN DE MEDIDAS EN LA PROTECCIÓN DE LAS TRANSACCIONES 49 MEDIDAS DE SEGURDAD EN LA PROTECCIÓN DE LOS DATOS. FICHEROS DE ZONA. PARAMETRIZACIÓN EN REGISTROS SOA RESTRINGIR INFORMACIÓN PROPORCIONADA POR TIPOS DE REGISTROS 50 RESUMEN DE LAS MEDIDAS EN LA PROTECCIÓN DE LOS DATOS DNSSEC QUÉ ES Y CÓMO FUNCIONA COMPONENTES Y OPERACIONES DIFICULTADES EN EL USO DE DNSSEC DESPLEGANDO DNSSEC INDICES Y REFERENCIAS REFERENCIAS TÉCNICAS DOCUMENTACIÓN INDICE DE ILUSTRACIONES INDICE DE CONFIGURACIONES ANEXOS TRANSACTION SIGNATURE. TSIG. EJEMPLOS PRÁCTICOS DE USO DE DIG ENLACES Y HERRAMIENTAS ÚTILES Guía de seguridad en servicios DNS 4
5 1 OBJETIVO DE LA GUÍA El objeto de esta guía es ofrecer una visión general del servicio DNS, describir los principales ataques de los que es objeto este protocolo o que hacen uso del mismo y proporcionar una orientación sobre las buenas prácticas a aplicar para asegurar su funcionamiento. Dirigida a operadores y administradores sistemas y redes, pretende servir de ayuda en la implementación o bastionado del servicio. Aunque el enfoque del documento es el protocolo DNS en general, los ejemplos e implementaciones aquí propuestas se particularizan para el software de código abierto BIND al ser el más extendido en este tipo de servicios 1. Para ello, este documento se compone de cinco secciones principales: I. Fundamentos de DNS: conceptos, objetivos y funcionamiento de un sistema DNS. II. III. IV. Seguridad en DNS En este apartado se identifican en un escenario típico DNS los posibles vectores de ataque y los activos afectados. Vulnerabilidades y amenazas en DNS: se explican debilidades intrínsecas al diseño del protocolo DNS y los principales ataques que sacan partido de la las mismas. Bastionado DNS: en esta sección se analizan las medidas de seguridad a implementar en los tres grandes superficies de ataque del servicio DNS: Infraestructura del servicio DNS, Comunicaciones y transacciones y Datos. V. DNSSEC: Finalmente, se ofrece una introducción a DNSSEC, la evolución en la seguridad de DNS donde, con la introducción de criptografía se pretende dotar al servicio DNS de un mecanismo eficaz para eliminar vulnerabilidades históricas del diseño. 1 BIND actualmente está distribuido y soportado por Internet System Consortium (ISC: https://www.isc.org/) Guía de seguridad en servicios DNS 5
6 2 FUNDAMENTOS DE DNS En esta sección, se describen los elementos integrantes de una infraestructura DNS, su nomenclatura, organización jerárquica y el protocolo en sí. Se detalla el formato de los mensajes, operaciones y transacciones fundamentales con objeto de tener una visión clara de los conceptos necesarios para la comprensión de las vulnerabilidades que afectan al protocolo. QUÉ ES DNS? Domain Name System (DNS) es un sistema globalmente distribuido, escalable y jerárquico. Ofrece una base de datos dinámica asociando direcciones IP de computadoras, servicios o cualquier recurso conectado a internet o red privada con información de diverso tipo. Soporta tanto IPv4 como IPv6, y la información se almacena en forma de registros Resource Records (RR) de distintos tipos los cuales pueden almacenar direcciones IP u otro tipo de información. Esta información se agrupa en zonas, que corresponden a un espacio de nombres o dominio y que son mantenidas por el servidor DNS autoritativo de la misma. Fundamentalmente, DNS se encarga de traducir direcciones IP de recursos de red a nombres fácilmente legibles y memorizables por las personas, y viceversa. A esta acción se la conoce como resolución DNS. De esta forma, se establece un mecanismo amigable para la localización e identificación de recursos. Comúnmente se usa la analogía de una guía de teléfonos donde se puede localizar a partir de un nombre su número asociado, o a la inversa. En este símil, los números representarían direcciones IP y los nombres, registros del espacio de dominios. ELEMENTOS INTEGRANTES DE DNS DNS se estructura en tres componentes principales: Espacio de dominios de nombres: Consiste en un estructura jerárquica de árbol donde cada nodo contiene cero o más registros (Resource Records, o RR) con información del dominio. Del nodo raíz, situado en el nivel más alto, parten las ramas que conforman las mencionadas zonas. Estas, a su vez, pueden contener uno o más nodos o dominios que a su vez pueden dividirse en subdominios según se baja en la jerarquía. Véase Ilustración 1. Jerarquía del espacio de nombresjerarquía del espacio de nombres Servidores de Nombres: Son servidores encargados de mantener y proporcionar información del espacio de nombres o dominios. Por una parte, existen servidores que almacenan información completa para uno o varios conjuntos del espacio de nombres (dominios) y de las cuales es responsable. Se dice que son servidores autoritativos de esas zonas/dominios en cuestión. Por otro lado, hay otro tipo de servidor que almacena conjuntos de registros de distintas zonas/dominios que obtiene consultando a los correspondientes servidores autoritativos de las mismas (búsquedas recursivas). Esta información la almacenan localmente de forma temporal (caché) y la renuevan periódicamente. Son los llamados servidores caché. Con los servidores de nombres y su intercomunicación se consigue la distribución y redundancia del espacio de dominios. Con esta organización de servidores de nombres, y su intercomunicación, se consigue la distribución y redundancia del espacio de dominios. Guía de seguridad en servicios DNS 6
7 Resolvers: Son servidores caché o programas cliente los cuales se encargan de generar las consultas necesarias y obtener la información solicitada para ofrecerla al usuario que la solicita. ESPACIO DE DOMINIOS DE NOMBRES. JERARQUÍA Y SINTAXIS Estructura jerárquica DNS está compuesto por un espacio de nombres de dominio organizados en jerarquía de árbol donde se enlazan nodos, cada uno representando un nivel del espacio de dominios. El nivel más alto de toda la jerarquía es el dominio raíz o root, representado por. (punto). Justo un nivel por debajo se encuentran los Top Level Domains o TLDs. Éstos, a su vez, son nodos padre de otros niveles inferiores que se conocen como TLDs de segundo nivel. Sucesivamente, la jerarquía continúa hasta llegar a un nodo final que representa un recurso. El nombre formado por toda la cadena se conoce como Fully Qualified Domain Name (FQDN). Una zona es una porción del espacio de dominio de nombres cuya administración es delegada a un servidor DNS que ejerce como autoridad de esa porción o dominio. A este servidor se le conoce como servidor autoritativo de la zona. La jerarquía comienza en la zona raíz. siendo el nivel más alto. Aunque normalmente no es mostrado, todo dominio completo termina en un punto final. que indica el final del espacio en la zona raíz. Por ejemplo realmente es donde el punto final más a la derecha representa la zona raíz. Este dominio completo es lo que se denomina Fully Qualified Domain Name (FQDN). root root "." TLDs.es.uk.com.org.net zonas/dominios.inteco.gob.wikipedia.internic www cert Ilustración 1. Jerarquía del espacio de nombres Nomenclatura DNS Dependiendo de su posición en la jerarquía, cada nombre de dominio del espacio de nombres está compuesto por una o más etiquetas separadas por un punto. cada una con un máximo de 63 Guía de seguridad en servicios DNS 7
8 caracteres. Un nombre final FQDN puede contener hasta un máximo de 255 caracteres, incluyendo los.. Las etiquetas se construyen de derecha a izquierda, donde la etiqueta más a la derecha representa el Top Level Domain (TLD) del dominio. Por ejemplo,.es es el TLD de la zona inteco.es. Las etiquetas se separan por un punto.. A continuación del TLD, cada etiqueta a la izquierda representa una subdivisión o subdominio. Como se ha indicado, cada etiqueta puede ser de hasta 63 caracteres y puede a su vez subdividirse en otros subdominios, siempre que el FQDN final no exceda el máximo de 255 caracteres. Esta normativa proporciona cierta flexibilidad a la hora de diseñar la jerarquía de subdominios dependientes de un dominio particular. Por último, la parte más a la izquierda del dominio FQDN suele expresar un nombre de máquina o recurso final, genéricamente conocido como host. En los nombres de dominios no se diferencia entre mayúsculas y minúsculas: por ejemplo, los nombres de dominio y serán considerados idénticos Espacio de dominio de direcciones IN-ADDR.ARPA En DNS se utiliza el dominio in-addr.arpa para definir el espacio de direcciones IP. Mediante este domino se garantiza la resolución inversa de una dirección IP a su correspondiente nombre y así facilitar su búsqueda en Internet. Los subdominios en in-addr.arpa tienen una estructura de hasta 4 etiquetas (IP versión 4), cada una de las cuales representaría un octeto de una dirección IP. Así por ejemplo la información de la dirección IP se localizaría en el dominio in-addr.arpa. Obsérvese como se sigue el criterio jerárquico en la Ilustración 2. Dominio in-addr.arpa. in-addr arpa root "." Ilustración 2. Dominio in-addr.arpa En la siguiente ilustración se muestra un ejemplo de resolución inversa utilizando la utilidad dig Guía de seguridad en servicios DNS 8
9 Ilustración 3. Resolución inversa de IP SERVIDORES DE NOMBRES Un servidor de nombres es una computadora que se encarga de almacenar y proporcionar información sobre el espacio de nombres y espacio de direcciones. Proporciona de este modo la traducción (resolución) de un nombre a dirección IP y viceversa. Esta información se denomina Registro DNS y será detallado adelante. Servidores Autoritativos Un servidor de nombres autoritativo es aquel que mantiene zonas almacenadas localmente y proporciona respuestas a solicitudes de las mismas. Recuérdese que la zona es un conjunto de dominios los cuales contienen a su vez información de registros. Los servidores autoritativos sólo proporcionan respuestas de los dominios para los que han sido configurados por el administrador. Los servidores autoritativos pueden ser maestros o esclavos. En los maestros,o primarios, se guardan y administran las versiones definitivas de los registros que son transferidas a servidores autoritativos esclavos, que guardan una copia que es actualizada cada vez que se produce un cambio. Esta actualización se conoce como transferencia de zona. Cuando un nombre de domino se registra a través de un servicio registrador, se solicitará la asignación de un servidor primario y al menos un servidor secundario para proporcionar redundancia en caso de inoperatividad de alguno de los servidores y mantener accesible la información del dominio. Generalmente, los servidores primarios son servidores autoritativos maestros y los secundarios, servidores autoritativos esclavos. Cuando es un servidor autoritativo el que proporciona la respuesta al cliente, ésta es marcada con un flag que indica que es una respuesta autoritativa AA (Authoritative Answer). Cuando el cliente recibe la respuesta de otro servidor caché intermedio, la respuesta se recibe como no autoritativa. En la siguiente ilustración se observa la diferencia entre una respuesta obtenida del servidor autoritativo y una obtenida desde un servidor caché: Guía de seguridad en servicios DNS 9
10 Ilustración 4. Respuesta autoritativa y respuesta cacheada. Obsérvese el flag aa (autoritative answer) Servidores caché Los servidores DNS cachés almacenan información de consultas (queries) DNS por un determinado tiempo denominado TTL (Time To Live) de cada registro DNS. Los servidores caché optimizan el uso de red reduciendo el tráfico DNS en Internet puesto que almacenan los registros consultados, pudiendo ofrecerlos directamente sin tener que repetir la consulta recursiva. Igualmente, reducen la carga sobre los servidores autoritativos, especialmente los de la zona raíz o root servers. RESOLVERS Los resolvers son programas o servicios con los que el usuario interacciona en su máquina para generar una consulta DNS. Son los encargados de formatear la consulta según las especificaciones necesarias del mensaje DNS y manejar la comunicación con el servidor para enviar y recibir la información de los registros requeridos. REGISTROS DNS. FORMATO Y TIPOS Un nombre de dominio se identifica con un nodo en la jerarquía DNS. Cada nodo contiene un conjunto de información conocido como registros (Resource Registers, RR) de los cuales es responsable o autoridad. Registros DNS: Resource Records (RR) Existen varios tipos de registros, cada uno identificando un tipo de información. Esta información es formateada en un registro que se compone de 6 campos, que se utiliza al transmitir dicha información en los mensajes DNS. En la siguiente tabla se describen los 6 posibles campos en un mensaje DNS Guía de seguridad en servicios DNS 10
11 Campo Descripción Longitud (bytes) NAME Nombre del dominio al que pertenece el registro Cadena variable TYPE Código del tipo de registro 2 bytes CLASS Código de clase del registro 2 bytes TTL Tiempo en segundos durante el cual el registro es cacheado 4 bytes RDLENGTH Indica la longitud en bytes del campo RDATA 4 bytes Cadena de longitud variable que describe el registro de acuerdo al tipo y clase del Cadena RDATA mismo variable Tabla 1. Formato de registro. Resource Record (RR) El campo TYPE contiene un código que identifica de qué tipo de registro se trata. Existen multitud de tipos de registros definidos en distintos RFCs 2 para cubrir otras tantas funcionalidades. Algunos de los tipos más comunes se muestran en la siguiente tabla: TIPO (valor campo TYPE) A = Address (Dirección) AAAA = Address (Dirección) CNAME = Canonical Name (Nombre Canónico) NS = Name Server (Servidor de Nombres) MX = Mail Exchange (Registro de Intercambio de Correo) PTR = Pointer (Puntero) SOA = Start of authority (Autoridad de la zona) HINFO = Host INFOrmation (Información del recurso) TXT = TeXT - ( Información textual) LOC = LOCalización SRV = SeRVicios - SPF = Sender Policy Framework - ANY = Todos Función Traduce (resuelve) nombres de recursos a direcciones IPv4 Traduce (resuelve) nombres de recursos a direcciones IPv6 Crear nombres adicionales, o alias, para el recurso Indica qué servidor(es) almacenan la información del dominio consultado Asocia un nombre de dominio a una lista de servidores de intercambio de correo para ese dominio. Tiene un balanceo de carga y prioridad para el uso de uno o más servicios de correo. Inverso del registro A, traduciendo IPs en nombres de dominio. Indica el servidor DNS primario de la zona, responsable del mantenimiento de la información de la misma. Descripción de la CPU y sistema operativo que almacena la información de un dominio. Suele ocultarse. Permite a los dominios proporcionar datos adicionales. Permite indicar las coordenadas geográficas del dominio. Información sobre los servicios que ofrecidos Ayuda a combatir el Spam. En este registro se especifica cual o cuales hosts están autorizados a enviar correo desde el dominio dado. El servidor que recibe, consulta el SPF para comparar la IP desde la cual le llega. Su uso se pretende abandonar a favor de registro TXT 3. Para solicitar todos los registros disponibles Tabla 2. Valores más habituales campo TYPE 2 RFC: Las Request for Comments ("Petición De Comentarios" en español) son una serie de notas sobre Internet, y sobre sistemas que se conectan a internet, que comenzaron a publicarse en Se abrevian como RFC. 3 IETF. RFC 6686 Resolution of the Sender Policy Framework (SPF) and Sender ID Experiments https://tools.ietf.org/html/rfc6686 Guía de seguridad en servicios DNS 11
12 El campo CLASS es comúnmente fijado al valor IN (Internet) para registros DNS relacionados con hostnames, servidores o, en resolución inversa, direcciones IP. Existen además las clases CH (Chaos) y HeSiod (HS) para otros sistemas menos comunes. En el campo TTL, un valor numérico que indica el tiempo en segundos que se cacheará el registro. Un valor 0 indica validez sólo para la transacción en curso y el registro asociado no será almacenado en caché. Los registros SOA siempre tienen TTL igual a 0. En el campo RDATA se describe el contenido del registro según el tipo indicado en el campo TYPE: SOA, A, NS, MX, etc. El tamaño de esta información se indica en el campo RDLENGTH. COMUNICACIONES Y TRANSACCIONES DNS PROTOCOLO DNS DNS usa para las comunicaciones el puerto 53, tanto para datagramas UDP como paquetes TCP. Generalmente, en la actividad DNS se usan datagramas UDP ya que requieren menos recursos de proceso y de red. Cuando el tamaño de una respuesta supera el máximo especificado en el estándar DNS para un paquete UDP (512 bytes, sin contar cabeceras IP o UDP) y no se usa ENDS0 4 (que permite extender la consulta DNS hasta 4Kb) se pasa a utilizar TCP por la necesidad de tener un control sobre en la capa de transporte, para asegurar una correcta transmisión. En este caso, el servidor responde con el flag truncated (TC) y el cliente reintenta la respuesta sobre TCP. Otras operaciones como las de transferencia de zona se usan directamente TCP. La implementación de DNS tomando UDP como base principal para sus comunicaciones supone el origen de multitud de amenazas relacionadas con la falta de fiabilidad intrínseca a las transmisiones de este protocolo. Al no haber un control sobre los datos transmitidos por UDP, se da por sentado que la fuente es fiable y que la respuesta siempre es recibida por el solicitante. Esto tiene gran impacto en la seguridad de las comunicaciones y constituye un vector de ataque fácilmente explotable. Sobre esto se discutirá más adelante en relación a la seguridad del protocolo. MENSAJES DNS Formato genérico de mensaje DNS Todas las comunicaciones en el protocolo DNS siguen un formato estándar llamado mensaje. El mensaje se divide en una cabecera HEADER y 4 secciones: QUESTION, ANSWER, AUTHORITY y ADITTIONAL. Dependiendo del tipo de mensaje alguna sección puede ser nula. La cabecera HEADER siempre está presente pues contiene importante información sobre el contenido mensaje. 4 Véase la sección Formato Mecanismo de Extension para DNS EDNS0 Guía de seguridad en servicios DNS 12
13 SECCION HEADER QUESTION ANSWER AUTHORITY ADDITIONAL Descripción Contiene información sobre el tipo de mensaje. Incluye campos que informan sobre el número de entradas en otras secciones del mensaje. Contiene una o más solicitudes de información (queries) que se envían al servidor DNS Contiene uno o más registros que responden a la(s) solicitud(es) Contiene uno o más registros que apuntan al servidor autoritativo del dominio en cuestión Registros con información adicional no necesaria para responder a la query Tabla 3. Formato genérico de Mensaje DNS HEADER. Cabecera de un mensaje DNS. La sección HEADER de un mensaje DNS consta de 16 bytes que se desglosan en los siguientes campos: ID:(16 bits octetos). Los dos primeros bytes se destinan al ID del mensaje. Este campo es especialmente importante ya que identifica el paquete y será el objeto a atacar cuando se intenta falsificar un mensaje. QR (1 bit): Utilizado para indicar si se trata de una consulta (0) o una respuesta (1). Opcode (4 bits): Indica el tipo de query, consulta estándar, consulta inversa, notificación, actualización dinámica o estado servidor. Flags (4 flags de 1 bit). AA: Respuesta autoritativa. TC: Truncation. Indica que el mensaje está truncado al haberse superado la longitud máxima permitida en la transmisión. RD:Recursion Desired, especifica que se solicita una consulta recursiva. RA: Recursion Available. Denota en una respuesta que se ofrece la posibilidad de recursión. Z (3 bits): Reservado para futuros usos. RCODE (4 bits): Campo fijado en las respuestas informado del estado de la misma: No Error, Error de formato, error del servidor, rechazada. QDCOUNT,ANCOUNT,NSCOUNT,ARCOUNT (16 bits) Campos destinados a especificar el número de entradas o registros en las secciones query, answer, authority y additional. Guía de seguridad en servicios DNS 13
14 Ilustración 5. Sección Header en mensaje DNS. Campo ID, identificador del mensaje. Fuente: RFC Formato de mensajes DNS de consulta y respuesta Dependiendo de si el mensaje DNS es una pregunta o una respuesta, alguno de los campos puede no aparecer. Mensajes DNS de consulta (QUESTION) En mensajes DNS de pregunta aparece el campo QUESTION, que contiene la pregunta que se solicita al servidor DNS y que el cliente (resolver) formatea siguiendo la siguiente estructura de 3 campos que se refleja en la siguiente tabla: Mensaje DNS consulta. Campo QUESTION. QNAME QTYPE QCLASS Indica el dominio por el que se pregunta Tipo de información (registro) que se requiere en la consulta. Clase de registro Tabla 4. Campo QUESTION en una mensaje DNS de pregunta. En el campo QYTPE donde se indica el tipo de información, son valores válidos todos los tipos definidos como TYPE (Tabla 2. Valores más habituales campo TYPE.) y otros valores adicionales para especificar operaciones, como por ejemplo AXFR en transferencias de zonas. En el campo QCLASS son válidos todos valores CLASS ( IN, CH, HS) definidos en el formato de registro. Generalmente toma el valor IN. (INternet). Un ejemplo se muestra en la Ilustración 6. Ejemplo de consulta (query) DNS tipo A 5 RFC Guía de seguridad en servicios DNS 14
15 Mensajes DNS de respuesta Ilustración 6. Ejemplo de consulta (query) DNS tipo A En mensajes DNS de respuesta aparecen las secciones ANSWER, AUTHORITY y ADDITIONAL todas siguiendo el formato de registro DNS (RR) descrito en la Tabla 1. Formato de registro. Resource Record (RR). Se compone pues, de los campos NAME, TYPE, CLASS, TTL, RDLENGTH, y RDATA. Formato Extension Mechanism for DNS EDNS0 Los mensajes DNS pueden hacer uso del mecanismo de extensión definido en el RFC2671 y posibilitar la comunicación de mensajes con una extensión mayor que la prefijada de 512 bytes sobre UDP. Mediante esta funcionalidad se posibilita el uso de un buffer mayor para datagramas UDP. Es generalmente usado con operaciones que requieren un tamaño superior a 512 bytes, o en operaciones de transferencia de zona. En versiones de Bind a partir de la 9, el formato EDNS0 es el empleado por defecto. Un servidor advierte de su capacidad para usar EDNS0 especificando un pseudoregistro OPT en la sección ADDITIONAL del mensaje DNS. Esto puede identificarse en una consulta con la utilidad dig donde aparece como OPT PSEUDOSECTION, como puede observarse en la siguiente ilustración: Ilustración 7. Formato extendido EDNS bytes UDP Guía de seguridad en servicios DNS 15
16 Véase también el ejemplo en el Anexo B, ejemplos avanzados. TRANSACCIONES DNS Las transacciones más comunes en DNS son: Consultas/respuestas DNS (Queries). Transferencias de Zona: Mecanismo de replicación de ficheros de zona entre servidores. Actualizaciones Dinámicas: Mecanismo usado para actualizar los ficheros de zona de un servidor DNS. Notificaciones: Transacción que usa un servidor autoritativo para notificar cambios en su base de datos de zonas. Consultas DNS (Queries) Es el tipo más común de transacción DNS. Las queries pueden ser de consulta o de respuesta. Una consulta DNS tiene origen en un resolver con destino un servidor DNS autoritativo o caché. Los consultas DNS realizadas por un resolver pueden ser iterativas o recursivas: a) La consulta iterativa es aquella en la que el resolver (cliente) requiere al servidor DNS devolver la mejor respuesta basada en sus ficheros de zona o caché. Si el recurso solicitado no se encuentra en el propio servidor, éste en su respuesta devolverá un referral, es decir, un puntero al servidor autoritativo del nivel más bajo del dominio solicitado, al que debe dirigirse a continuación para seguir la iteración. Por ejemplo, si se pregunta al servidor A, por el dominio y el servidor A no dispone de esa información, le contestará con el referral (servidor autoritativo) del dominio root. para que le solicite el nombre. A continuación, el resolver continuará la consulta iterativamente, donde preguntará por el dominio al servidor raíz, el cual le devolverá el referral (servidor autoritativo) del dominio.org. El resolver repite (itera) el proceso hasta que, recorriendo los referrals, llega al servidor autoritativo del dominio deseado donde obtendrá la respuesta o un error (si no existe el registro). Normalmente el resolver final solicita consulta recursiva al servidor DNS que actúa como resolver intermediario (caché recursivo) evitando al cliente realizar la iteración. b) La consulta recursiva es aquella en que el resolver solicita del servidor DNS una respuesta final o un error (si el recurso no existe). En este caso el servidor DNS actúa de intermediario realizando las consultas iterativas necesarias para obtener la respuesta o el error. Guía de seguridad en servicios DNS 16
17 Ilustración 8. Consultas iterativas y recursivas Mecanismo de resolución en una consulta DNS El proceso que se sigue en una resolución DNS es el siguiente. El cliente (resolver) hace llegar la consulta al servidor DNS: a) Si el servidor DNS está configurado como autoritativo y recibe una consulta DNS sobre un dominio sobre el que él es autoritativo, devolverá la respuesta consultando los registros almacenados en su configuración y devolviendo la respuesta marcada como Authoritative Answer en la sección ANSWER del mensaje de respuesta. Si no tiene la información, responde con el mensaje NXDOMAIN (Non-Existent-Domain). b) Si el servidor DNS es autoritativo y no configurado como recursivo y recibe una consulta sobre un dominio sobre el que no es autoritativo, responderá con un mensaje conteniendo registros en la sección AUTHORITY y en la sección ADDITIONAL informando al resolver que no proporciona recursión y donde debe dirigir su consulta para obtener información autoritativa del dominio solicitado. Se conoce como Referral Response. c) Si el servidor DNS no es autoritativo, pero está configurado como recursivo y recibe una consulta, éste inicia consultas iterativas (recursión) para encontrar el servidor autoritativo del dominio. Una vez obtiene respuesta devuelve el registro al cliente (resolver) indicando que se trata de una respuesta no autoritativa. La información la guarda en caché, de modo que si vuelve a ser preguntado por el mismo recurso y el tiempo con que el registro está marcado para caducar (TTL, o Time To Live) no ha pasado, contestará consultado esta caché. Un ejemplo del flujo en una consulta recursiva para el dominio sería: 1. El resolver lanza la consulta, preguntando al servidor DNS la resolución del nombre Guía de seguridad en servicios DNS 17
18 2. El servidor, que no tiene la respuesta inicia la consulta iterativa para obtener el registro. Para ello pregunta a los servidores raíz por el dominio com. 3. La pregunta llega a los servidores DNS raíz que contestan con un registro AUTHORITY y ADDITIONAL para referir (referral) los servidores autoritativos del dominio com. 4. Se pregunta a los servidores referidos por el root server por el dominio 5. El servidor DNS autoritativo de la zona com, igualmente le devuelve una respuesta referral con el puntero al servidor DNS autoritativo del dominio ejemplo.com. 6. Cuando el servidor recursivo, a través de las Respuestas de Referido (Referral Responses) conoce las direcciones de servidores DNS autoritativos del dominio ejemplo.com. les redirige la pregunta 7. El servidor DNS autoritativo de ejemplo.com busca en la información almacenada el registro solicitado y devuelve la respuesta 8. Finalmente, el servidor recursivo cachea la respuesta con el TTL configurado y resuelve la solicitud del resolver En las ilustraciones 9 y 10 podemos ver gráficamente el proceso arriba descrito: Ilustración 9 Sucesión de consultas en una resolución recursiva Guía de seguridad en servicios DNS 18
19 Ilustración 10. Sucesión de consultas iterativas en una resolución DNS Transferencias de zona La transferencia de zona es una transacción por la cual un servidor DNS secundario (esclavo) actualiza los contenidos de zona desde un servidor primario (master) y de este modo, mantener una copia sincronizada con las base de datos maestra. La transacción se inicia con un mensaje de transferencia de zona (zone transfer query) donde se solicitan todos los registros (resource records o RRs) de un dominio. La solicitud de transferencia de zona se genera en el servidor secundario de forma automática bajo dos posibles circunstancias: 1 Se recibe un mensaje de notificación <<NOTIFY>> por parte del primario para dar a conocer que sean producido cambios o modificaciones en los contenidos de la zona. 2 Ha transcurrido el tiempo especificado en el valor <<Refresh >> del campo RDATA del registro SOA de la zona. (Ilustración 11) Guía de seguridad en servicios DNS 19
20 Ilustración 11. Registro tipo SOA (Start of Authority). Obsérverse el valor refresh Actualizaciones Dinámicas En algunos entornos donde el número de registros y zonas crecen y varían frecuentemente, es inviable una gestión manual. Por ejemplo, los registros de nombres tipo A en un servicio de DHCP y sus inversos PTR dentro de una gran compañía proveedora de servicios. De esta necesidad surge el concepto de actualización dinámica. El mecanismo de actualización dinámica proporciona dos operaciones: añadir o borrar registros en un fichero de zona. El caso de una actualización queda cubierto por un borrado y la posterior recreación del mismo. La especificación detallada se puede consultar en el RFC 2136 Dynamic Updates in the Domain Name System (DNS UPDATE) 6 Teniendo en cuenta las dos posibles operaciones añadir/borrar definidas en el proceso de actualización dinámica las posibles acciones pueden ser: Añadir o borrar registros individuales. Borrar conjuntos de registros que cumplan un criterio específico de un dominio determinado. Borrar un dominio existente (por ejemplo, todos los registros del dominio midominio.com). Añadir un nuevo dominio con uno o más registros. Notificaciones y actualizaciones por transferencia de zona. Cada vez que se produce un cambio en los ficheros de zona del servidor autoritativo primario, el servidor secundario debe ser informado de dicha modificación y así proceder a actualizar su copia de las zonas, solicitando una transferencia de zona al primario. Por este mecanismo, tras una modificación en los registros de zona, el servidor maestro manda un mensaje (NOTIFY) a los secundarios para advertir este cambio. Adicionalmente, aunque menos preciso que el NOTIFY del primario, es el proceso de transferencia de zona desencadenado en el servidor secundario cuando ha caducado el valor refresh especificado en el registro SOA almacenado. Por defecto, BIND utiliza el método de notificación NOTIFY. 6 RFC Guía de seguridad en servicios DNS 20

References: resolución 
 resolución 
 resolución 
 Resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución