Inicio / Blog / DNS, open resolvers y denegación de servicio por amplificación DNS

DNS, open resolvers y denegación de servicio por amplificación DNS

Publicado el 16/01/2014, por Antonio López (INCIBE)
Ataque DNS

Como se ya explicó en el artículo publicado en el blog de INTECO, ¿Hemos echado el cierre o nos están haciendo un DDoS?, una de las principales amenazas que afectan a empresas o compañías con servicios accesibles públicamente en Internet son los ataques de denegación de servicio , a través de cualquiera de las variantes allí descritas. En este artículo hablamos de uno de esos tipos de ataque, en concreto, la denegación de servicio por amplificación de respuestas DNS.

En marzo de 2013, se produjo uno de los ataques de denegación de servicio más grandes de los últimos tiempos, llegándose a detectar picos de tráfico superiores a 100 Gbps. Los objetivos del ataque fueron las compañías Spamhaus, organización dedicada a la identificación y protección de fuentes de spam anti-spam a nivel mundial, y Cloudfare, su proveedor de servicios de mitigación de ataques DDos (Distibuted Denial of Service).

Ilustracion 1. Tráfico observado en los routers de Cloudfare dirigido contra Spammhaus

Un ataque DDoS aunque focalizado en un objetivo concreto, se lanza simultáneamente desde multitud de orígenes y así, el volumen de tráfico es tal que los efectos colaterales pueden dejarse notar en los puntos intermedios de enrutamiento, donde el tráfico confluye en su trayecto hacia el destino final. En estos puntos, la convergencia del mismo crea cuellos de botella que pueden superar la capacidad del dispositivo enrutador.

Ilustración 2. Ataque DoS.Sobrepasando la capacidad de respuesta de un dispositivo.

DNS, una navaja suiza en ataques DDoS. Amplificación

DNS, el protocolo de resolución de nombres que nos permite identificar recursos en internet con nombres fácilmente manejables y así obtener su dirección IP, es muy frecuentemente utilizado para generar ataques de DDoS. ¿Por qué? Bien, DNS, además de ser un protocolo omnipresente en internet cuenta con una serie de características que lo hacen especialmente útil para generar tráfico y dirigirlo a un objetivo, siendo por otra parte, complicado de detener. Estas características son:

  • Transporte de mensajes sobre UDP. Realmente la base del problema. Aunque es posible el uso de TCP para consultas/respuestas DNS, por motivos de rendimiento y compatibilidad histórica es UDP el protocolo generalmente usado en el transporte de mensajes DNS. UDP es un protocolo de red no orientado a conexión donde se envían paquetes (datagramas) sin esperar una confirmación por parte del receptor. Es por lo tanto un protocolo fácilmente spoofleable, es decir, podemos enviar paquetes con una dirección IP origen falseada puesto que no se establece una verificación del emisor. Igualmente en la recepción de los datagramas no se hacen comprobaciones sobre el origen de la conexión.
  • Con DNS es posible obtener, a partir de un mensaje de consulta de pequeño tamaño una respuesta mucho mayor. Un servidor DNS se convierte entonces en un amplificador de tráfico. La especificación (Extension Mechanisms for DNS) EDNS0 permite el envío de mensajes DNS con tamaño superior al definido para mensajes estándar DNS sobre UDP (512 bytes). Así, usando esta funcionalidad es posible a partir de una consulta de escasos bytes, provocar una respuesta de gran tamaño, pudiendo llegar hasta buffers de 4096 bytes. De este modo, lanzando una gran cantidad de consultas y sobre múltiples servidores, se conseguirá provocar un flujo de respuestas de gran tamaño dirgida a la máquina objetivo del ataque.
  • Open Resolvers. Otro asunto que facilita este tipo de ataques basados en DNS es el enorme número de Open Resolvers accesiblespúblicamente en Internet. Por open resolver se entiende aquél servidor recursivo que permite consultas y ofrece resolución DNS a cualquier solicitante.
  • Unido a lo anterior, existe el problema con configuraciónes y reglas de filtrado de tráfico que no contemplan las medidas necesarias para contrarrestar, en la medida de lo posible, el spoofing de direcciones IP.

Funcionamiento de un ataque de amplificación con DNS

Sacando partido de las debilidades arriba descritas, es relativamente sencillo generar un ataque dirigido contra una víctima escogida. Basta con localizar open resolvers, cuantos más mejor, que se usarán de “lanzaderas” amplificadoras y construir consultas haciendo uso de la funcionalidad EDNS0 que provoquen una respuesta de tamaño mucho mayor que el de la consulta en sí. Dichas consultas se preparan falseando la IP origen con la dirección de la víctima, para conseguir de este modo, que todas las respuestas generadas se dirigirán hacia la misma.

Ilustración 3. Ataque de amplificación DNS

Contramedidas

Lo realmente deseable es prevenir los ataques, puesto que la mejor forma de solventar un problema es atacar su origen. Con este fin, las siguientes medidas son deseables:
 

  • Limitar recursión. Una concienciación global para que los propietarios de open resolvers limiten la recursión únicamente a clientes o redes bajo bajo su responsabilidad. La iniciativa “Open Resolver Project” trabaja en este aspecto. De este modo evitamos ser un punto lanzadera de posibles ataques.
  • Filtrado de tráfico. También resulta recomendable adoptar las medidas especificadas en el documento de la IETF BCP-38 : “Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing“.
  • Adicionalmente, y desde el punto de vista del servidor DNS, implementar medidas consideradas en el RFC2671 que van destinadas a proporcionar mayor control sobre las consultas/respuestas como puede ser, especificar un límite máximo de respuestas idénticas por segundo. Por ejemplo, si el software usado en el servidor DNS es BIND, se dispone desde su versión 9.9.4 la funcionalidad Response Rate Limiting (RRL) donde a través de una claúsula rate-limit se puede limitar el número de consultas por segundo si se detecta un flujo de consultas sospechoso de formar parte de un ataque de flooding