DNS Open Resolvers con IPv6

 

El LACNIC CSIRT, en conjunto con el área de I+D, estamos llevando a cabo el proyecto “DNS open resolvers con IPv6” con el objetivo de conocer el estado actual de la región, identificar los open resolvers; y de forma proactiva, alertar y recomendar una posible corrección de la configuración de este servicio.

Tener servidores DNS Open Resolvers es muy negativo, tanto para el que deja el servicio abierto como para la seguridad en Internet en general. Este tipo de servidores se utilizan como vector de ataques de DDoS por amplificación ya que a partir de un mensaje de consulta de pequeño tamaño, se puede obtener una respuesta mucho mayor. De esta manera, ese servidor DNS se convierte en un amplificador de tráfico muy potente ya que sus consultas amplificadas pueden dirigirse a una IP específica, la cual recibiría todo ese volumen de tráfico, ocasionándole indisponibilidad de sus servicios. Para este ataque ni siquiera es necesario que el hardware esté controlado por el atacante.

Un servidor DNS recursivo solo debería responder consultas (queries) a todos los clientes que se encuentren dentro de su misma red, rechazando cualquier otra que provenga de fuera.


¿Cómo solucionarlo?

Recomendamos encarecidamente re-configurar los servidores DNS/Resolver, aquí les mostramos algunas formas de que pueden ayudar a realizarlo:

* Debe responder únicamente a sus clientes y no responder a consultas provenientes de IPs fuera de su red (en BIND, esto se realiza definiendo un grupo limitado de equipos en la regla “allow-query”). Ejemplo:

options {
allow-query {
192.168.196.0/24;
2001:db8::/32;
localhost;
} // end of allow-query
} // end of options

* Para solo servir dominios que son parte de su zona autoritativa (en BIND, se realiza definiendo un set limitado de hosts en la regla “allow-query” para el servidor el general, pero seteando “allow-query” en “any” para cada zona). Ejemplo:

zone “example.com”{
type master;
file “example.com.db”;
allow-query {
192.168.196.0/24;
2001:db8::/32;
localhost;
} // end of allow-query
} // end of zone example.com

* En unbound puedes obtener el mismo comportamiento utilizando la directiva access-control en el archivo unbound.conf. Quedaría de la siguiente manera:

server:
access-control: 2001:db8::/32 allow

Adicionalmente, si su empresa es un ISP, por favor verifica la configuración de tu red y asegúrese de no permitir “spoofed traffic” (que pretende ser de direcciones IP externas) salga de su red. Las redes y equipos que permiten “spoofed traffic” (tráfico con direcciones IP falsificadas) hacen posible este y otros tipos de ataques.

¿Cómo se identifica un DNS Open Resolver de IPv6?

Identificar servidores Open Resolvers o servidores DNS abiertos en el mundo de IPv4 es muy sencillo, debido a la poca longitud del espacio de IPv4 (2**32), es relativamente sencillo correr estas pruebas de dirección IPv4 en dirección IPv4.
En el mundo de IPv6 es virtualmente imposible poder verificar cada una de las direcciones IP y ejecutar una prueba de Open Resolver, dicha prueba podría durar miles de años y al finalizar es probable que ya sea poco útil.

LACNIC administra un servidor que es llamado: Root Server Reverso, específicamente la letra “D”, es decir d.ip6-servers.arpa. Gran cantidad de consultas a direcciones IP reversas de la región de LACNIC se realizan a través de este servidor, en líneas generales este servidor SOLO recibe consultas de servidores DNS. Aquí es donde obtienen las direcciones IPv6 de los DNS que realizan consultas.

La identificación se hace realizando una consulta de un nombre de dominio a los servidores DNS. En caso que el servidor DNS responde con una respuesta válida, entonces es considerado Open Resolver. Si por el contrario, devuelve un rechazo (Query refused) o sencillamente hace timed out se encuentra bien configurado, por lo que no es un Open Resolver.