DNS Recursivo, y ataques DDoS a que se refiere?
Posted by vostorga - 30/12/08 at 10:12:07 pmAntes 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)
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
- Separar el servidor autoritativo del recursivo, por ejemplo el autoritativo abierto a Internet y el recursivo solo para nuestra LAN
- Si no se pueden separar, permitir la recursividad a rangos de IPs “confiables”, esto se hace por ejemplo con las “vistas” en Bind
- Leer el vinculo http://www.us-cert.gov/reading_room/DNS-recursion121605.pdf sobre medidas de seguridad en servidores DNS Bind, Windows, y OSX
- Una muy buena explicación de como hacer más segura una configuracion de Bind http://www.cymru.com/Documents/secure-bind-template.html
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
Leave a comment
Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds.
Valid XHTML and CSS.
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 #
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 #
La genialidsd está en la simpleza de la explicación.
Muy buen post!
Comment by Alejandro — May 14, 2009 #
Me gusta el aporte, bien concreto y claro !Hasta yo lo entendí! Gracias.
Comment by Daniel Santos — November 2, 2011 #
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 #
Fantàstica explicación. Grácias por aclararo
Comment by Joan — May 27, 2016 #