De forma general, los ataques de negación de servicio pretenden sobrecargar las redes y servidores con un conjunto de solicitudes o respuestas con el fin de sacar de operación a dichos servicios.
La tendencia en el uso de ataques de negación de servicio a través del uso de peticiones spoof al DNS en últimas fechas ha visto un incremento de consideración, este problema es fundamental tomando en cuenta que muchas de las comunicaciones en internet hacen uso del DNS.
2. Ataque de DNS Amplification
El atacante envía una alta cantidad de peticiones con una dirección IP falsificada (spoof) al DNS que permite recursión, el DNS procesa estas peticiones como si éstas fueran válidas mandando una respuesta al sistema al cual se quiere atacar, es decir al sistema víctima. Cuando estas peticiones alcanzan un volumen importante pueden inundar al sistema víctima de repuestas del DNS a las peticiones que se le realizan. Este ataque es llevado a cabo gracias a errores en la configuración del DNS y es llamado amplification puesto que los DNS al reflejar el ataque, potencian el nivel de éste hacia un blanco en especifico a causa de que las respuestas del servidor de nombres son de un tamaño considerablemente mayor que las peticiones que se le realizan causando con esto, en ocasiones, la caída del servicio y con ello la negación del mismo.
Los ataques de este tipo son susceptibles de ser exitosos en servidores de nombres de dominio en los cuales la recursión esté activada; esto es en una inmensa mayoría de los servidores de este tipo. Para hacer una detección exitosa de este tipo de servidores se puede hacer realizando un escaneo con ciertas herramientas las cuales nos indican el nivel de recursión que implementan los servidores de dominio. Algunas de estas son :
DNSCheck
Esta herramienta web nos indica el nivel de recursión implementado en lo servidores de nombre que se hayan especificado a través del nombre del dominio
http://dnscheck.se/
dlint
Herramienta libre que pude ser de utilidad al indicarnos las subzonas de un dominio en específico, indicándonos si en ésta se lleva a cabo la recursión o no.
La potencialidad de este ataque es de dimensiones sumamente grandes puesto que la mayoría de los servidores de nombre en internet tiene un problema en cuanto a la configuración de la recursión (que se describe en la sección siguiente), causa por la cual un ataque coordinado podría tener consecuencias desastrosas con incluso la caída de internet o la negación de servicio en muchos de sus servidores de nombres. El aumento en este tipo de prácticas nos da una idea y una base fundamentada para tomar medidas precautorias que nos ayuden y preparen para un ataque de estas magnitudes
En un sentido más amplio, la recursión es completamente inevitable puesto que al desaparecer esta, la razón de ser y la utilidad del DNS pierde la funcionalidad casi por completo. Esto se debe a la necesidad en el sistema de nombres de consultar a distintos servidores DNS puesto que la mayoría de las veces el DNS autoritativo para nuestro dominio no tendrá la respuesta a nuestra consulta y tendrá que preguntar en forma recursiva a partir de los DNS raíz hasta encontrar el DNS que pueda resolver nuestra consulta. Es decir, en estricto sentido la recursión no es ningún error de configuración. Se convierte en error al tiempo de que no se restringe la recursión en el servicio de nombres a solo una lista de solicitantes en los cuales confiamos. Una práctica de configuración ampliamente recomendable sería el permitir la realización de consultas recursivas solo a un grupo específico de direcciones IP. Si bien el riesgo no es completamente eliminado si logramos mitigar en gran medida la posibilidad de ser víctimas de una práctica maliciosa de este tipo.
Por otra parte una regla que debe aplicarse para minimizar el riesgo de DNS amplification es la del mínimo privilegio, esto es, un DNS no tiene que permitir la recursión a nadie mas que a los host estrictamente indispensables. Si nuestro DNS no tiene la necesidad de realizar consultas recursivas, puesto que no tenemos un dominio de menor jerarquía al cual permitirle la recursión, no existe la necesidad de permitirla o, en el caso de que tengamos ciertos dominios de mas baja jerarquía, debemos permitir la recursión solo a los hosts en los cuales tengamos confianza.
Ahora bien, ¿por qué limitar la recursión?. Si hasta ahora permitimos en nuestros servidores de nombres la recursión ilimitada (es decir, permitimos las consultas recursivas sin validar antes quién nos las está solicitando), estamos aumentando la posibilidad de que nuestro servidor DNS sea utilizado para hacer ataques de DoS ya que al no validar cualquier host puede realizar consultas falsificando la IP redirigiendo un ataque amplificado hacia cualquier objetivo de la red. Por otro lado, al configurar nuestro servicio de nombres restringiendo las IPs que nos pueden realizar consultas recursivas lo que hacemos es que nuestro servidor no podrá ser utilizado para llevar acabo ataques DoS a menos que se logre la falsificación de una de las IPs a las cuales tenemos otorgado el permiso de recursión
A continuación se describe quién se vería afectado y de que manera en el caso de una restricción de la recursión en un DNS.
En el caso de que se realice una restricción de la recursión, se verán afectados aquellos usuarios de nuestro DNS los cuales salgan del rango de IPs que nosotros tengamos configuradas. En este caso se verán afectados puesto que no les será posible acceder al servicio de nombres, cuando menos a partir de nuestro servidor DNS.
Todos los usuarios que tengan una IP que pertenezca al rango establecido en la configuración previamente mencionada no se verán afectados de ninguna manera puesto que el servicio de DNS les seguirá siendo proporcionado sin diferencia alguna.
5.1 Ejemplos de configuración recomendada (eliminar recursión)
5.1.1 Bind 8/9
En el siguiente ejemplo tenemos la configuración deseable (en BIND 8/9) para un servidor de nombres el cual no tiene ningún dominio de menor jerarquía al cual tengamos estrictamente que permitirle realizar consultas recursivas
options {
directory "/var/named";
recursion no;
};
5.1.2 Microsoft DNS
En el caso de Microsoft DNS se realizaría añadiendo un registro de tipo REG_DWORD llamado NoRecursion con el valor 1.a la siguiente llave del registro
HKEY_LOCAL:MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
5.2 Ejemplos de configuración recomendada (limitar recursión)
5.2.1 Bind 8/9
El siguiente ejemplo es útil en el caso en que tengamos dominios de menor jerarquía a los cuales tengamos que permitirles la recursión siempre y cuando esos hosts sean de nuestra confianza (BIND 8/9).
acl recurseallow { x.x.x.x; y.y.y.y; z.z.z.z; };
options {
directory "/var/named";
allow-recursion { recurseallow; };
};
5.2.2 Microsoft DNS
En el servidor de DNS de Microsoft Windows 2000 no existe manera conocida para hacer un bloqueo discriminatorio entre las IPs a las cuales otorgarles la recursión y a cuáles no. Es decir, la única manera que resultaría efectiva sería definir reglas en un firewall que bloqueen el protocolo UDP por el puerto 53 de entrada y arriba del 1023 de salida para las IPs que no tengamos contemplado permitirles la realización de queries.
* Referencia: Building Internet Firewalls 2da edición
La recursión en el servicio de nombres no puede ser eliminada pero si puede ser controlada a través de la correcta configuración de los hosts a los cuales les es permitido hacer consultas recursivas en nuestro DNS. Si bien esto no elimina el riesgo de que nuestro DNS pueda ser usado como amplificador de recursión, sí disminuye el riesgo de manera considerable.
¿Porque no se elimina el riesgo?
El riesgo no se puede eliminar por el hecho de que siempre existe la posibilidad de que un atacante falsifique alguna IP para la cual nuestro servidor de nombres permite las consultas recursivas haciendo que el riesgo siempre esté latente. ¿Puede nuestro servidor ser víctima de la amplificación en la recursión producto del ataque a otro servidor DNS?
Si bien se puede mitigar el riego de que nuestro servidor lleve a cabo ataques a partir de la amplificación de recursión, nuestro servidor no puede ser responsable de la correcta configuración de los servidores que puedan llegar a realizar peticiones. Es decir , nuestro servidor puede ser víctima de un ataque de amplificación aun cuando en nuestro servidor no existan errores en la configuración, ya que las peticiones enviadas serían procesadas como válidas.
Existen medidas que pueden ayudarnos a contrarrestar este tipo de acciones utilizando herramientas de detección de peticiones provenientes de IPs falsificadas (spoof) por ejemplo basadas en el calculo del TTL (tiempo de vida) de los paquetes. Un ejemplo de una herramienta de este tipo es despoof, herramienta para el servidor de nombres BIND.
1 ¿A quien permitirle la recursión?
Es recomendable permitir la realización de consultas recursivas solo a aquellos hosts en los cuales confiamos o es indispensable proporcionar el servicio. Por ejemplo, en el caso de una universidad, solamente a las IPs que tengamos asignadas.
2 ¿En que casos es recomendable bloquear por completo la recursión?
En los casos en los cuales nuestro dominio no tenga un dominio de menor jerarquía al cual debamos permitir la recursión. Es decir, en la estructura jerárquica del DNS las hojas de ese árbol tendrían que tener la recursión bloqueada.
3 ¿Es indispensable la recursión?
La recursión en las consultas al DNS se vuelve indispensable ya que el DNS en su conjunto es una base de datos distribuida, eso significa que no todos los datos que queremos obtener van a estar siempre en nuestro servidor predeterminado, por lo cual es necesario que nuestro servidor haga consultas a otros DNS para obtener la información de nuestro interés.
4 ¿Porque se produce una Negación de Servicio con este ataque?
Esto se debe a que el servidor DNS produce una respuesta mucho más grande en comparación con las peticiones que recibe. Estas respuestas en cantidades considerables pueden llegar a bloquear la actividad de otra máquina además de afectar el ancho de banda de la red en la que se produzca el ataque
http://www.us-cert.gov/reading_room/DNS-recursion121605.pdf..
http://news.com.com/Old+software+weakening+Nets+backbone,+survey+says/2100-7347_3-5913771.html
No hay comentarios.:
Publicar un comentario
Déjanos tu comentario, nos permitirá mejorar.
¿Qué opinas de este tema?
¿Tienes alguna duda o sugerencia?
¿Te parece adecuado y completo este tema?
¿Falta información? ¿Cual?