DNS Recursivo, y ataques DDoS a que se refiere?

Antes de verse intimidado por la cantidad exagerada de texto de este post, si usted administra un servidor DNS, debería de leer lo siguiente:

Primero aclararemos que DNS es el acrónimo en inglés para Sistema de Dominio de Nombres, en otras palabras es un medio que nos permite traducir una dirección web a IP y viceversa, por ejemplo linux.org.sv a la IP 68.178.241.185 y la IP 68.178.241.185 a linux.org.sv. Esto se pensó con el propósito de que la navegación en Internet fuera cómoda.

En forma general, existen dos tipos de servidores DNS, que son los servidores recursivos y los servidores autoritativos, y es posible que ambos se ejecuten en la misma máquina.

El autoritativo es un servidor que conoce información acerca de uno o más dominios (lo que normalmente se denominan zonas), por lo general es uno o dos dominios, y no sabe información sobre otros dominios.

El recursivo es un servidor capaz de encontrar la respuesta a cualquier consulta DNS, y puede encontrar información acerca de casi todos los dominios, por ejemplo google.com, linux.org, gentoo.org . Generalmente estos servidores están abiertos a cualquier IP , en otras palabras, pueden ser consultados por cualquier maquina en el mundo.

El problema es que muchas entidades hacen que el mismo servidor actúe tanto como autoritativo como recursivo. Una práctica sana es tenerlos separados, lo cual previene el problema denominado “envenenamiento de cache”.
Si es imposible tenerlos separados, es recomendable que permitan recursión a solo un rango de IPs “confiables”.

Para clasificar la inseguridad de tener un servidor DNS recursivo abierto a internet es comparable a tener un “Open Proxy” en un servidor proxy o un “Open Relay” en un servidor de correos. Simplemente era algo que hasta cierta fecha no fue aprovechado por “mentes siniestras” pero que ahora es aprovechado y utilizado para fines oscuros.

Posibles riesgos de tener un servidor recursivo en Internet
Ser una víctima de ataques de envenenamiento de caché, la cual hace que el servidor afectado almacene información falsa. Dicha información puede ser utilizada para comprometer la seguridad de los clientes que hacen consultas al servidor afectado, por ejemplo redireccionar google.com a un sitio con malware, o redireccionar sitios de bancos con la intención de obtener información confidencial del usuario.

El servidor podría ser ocupado para un ataque DoS distribuido el cual puede tener las siguientes consecuencias:

  • La gran cantidad de consultas DNS recibidas por el servidor y la gran cantidad de respuestas enviadas a la víctima pueden consumir una considerable cantidad de ancho de banda
  • Problemas legales ya que si, por ejemplo, un equipo de un ISP ataca a un cliente, seguramente el cliente lo demandará

Un ejemplo de las consecuencias de la recursividad (Ataque DDoS)

Aquí

En que consiste el ataque? me da curiosidad saber…
Trataré de explicarlo de la manera mas sencilla: con ejemplos.
Para dar un ejemplo, a veces un dominio x recibe respuestas ICMP echo, porque “alguien” modifico los paquetes para que parecieran como si el dominio x hizo la petición ICMP echo, en otras palabras recibimos respuesta de un ping que NUNCA salio de nuestro dominio.
Ahora de otra manera, como los paquetes UDP son fragmentados por los servidores, y UDP puede ser fácilmente modificado su IP de origen, el servidor DNS recibe un paquete grande, que se hace mas grande (técnicamente, mas fragmentos), enviando la respuesta al blanco atacado. Imaginemos muchos DNS recursivos enviando respuestas al “blanco atacado”. Si, eso es una Denegación de servicio distribuida (DDoS).

Si sienten la explicación anterior muy sencilla o vaga, pueden leer http://www.isotf.org/news/DNS-Amplification-Attacks.pdf 🙂

Soluciones al problema

Entonces algunos podrían decirme, y no es esa la intención de un DNS, resolver todos los dominios a todo el mundo?
No, esa es una función de un servidor recursivo, como hemos hablado anteriormente puede ser autoritativo y contener información solamente para un dominio. Lo mas conveniente es que permita la recursividad solamente a un rango de IPs

Yo estoy protegido, porque ocupo Bind en Linux/BSD 🙂
No, la recursión no se refiere a un sistema operativo o software en específico 🙁

Espero lo anterior les haya despertado la curiosidad sobre el tema, saludos

6 Comments »

RSS feed for comments on this post. TrackBack URI

  1. Using Debian IceWeasel Debian IceWeasel 2.0.0.17 on Debian GNU/Linux Debian GNU/Linux

    El tema de DNS es algo que siempre me ha gustado, y poca mara lo explora, buen post compa!

    Comment by Kbezon — December 31, 2008 #

  2. Using Debian IceWeasel Debian IceWeasel 3.0.5 on Debian GNU/Linux Debian GNU/Linux

    Saludos
    se te ha otorgado el premio al esfuerzo personal
    http://tuxwarrior.wordpress.com/2009/01/03/premio-al-esfuerzo-personal/

    (si lo ves como correo cadena ignoralo entonces XD)

    Comment by tuxwarrior — January 5, 2009 #

  3. Using Internet Explorer Internet Explorer 4.01 on Microsoft PocketPC Microsoft PocketPC

    La genialidsd está en la simpleza de la explicación.
    Muy buen post!

    Comment by Alejandro — May 14, 2009 #

  4. Using Mozilla Firefox Mozilla Firefox 3.6.13 on Windows Windows 7

    Me gusta el aporte, bien concreto y claro !Hasta yo lo entendí! Gracias.

    Comment by Daniel Santos — November 2, 2011 #

  5. Using Google Chrome Google Chrome 37.0.2062.120 on Linux Linux

    Hace unos años me encontré en una situación en la que un servidor se me caia constantemente y por mas que leí y releí los logs no me era posible encontrar al culpable. Como no los utilizaba desactivé el servicio web y ftp sin conseguir solucionar mi problema, unas horas mas tarde recibí un simple correo que me dejó clara la situación. El hecho es que yo recibí el servidor así, basicamente BIND no hacia nada mas que esperar a ser un problema. Desde entonces cuando tomo una maquina le reviso cada cabello y desactivo todo aquello de lo que pueda prescindir … a veces hasta un par de cosillas mas (por ignorancia). Saludo.

    Comment by JA. Gelves — October 28, 2014 #

  6. Using Google Chrome Google Chrome 49.0.2623.112 on Windows Windows XP

    Fantàstica explicación. Grácias por aclararo

    Comment by Joan — May 27, 2016 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.