¿Qué es un solucionador de DNS abierto y cómo puedo proteger mi servidor de los hackers?

15

No tengo la experiencia más sólida en seguridad informática, pero ayer nuestro servidor cerró uno de los servidores de mi empresa.

Es un servidor asignado a una IP pública donde alojo varias aplicaciones de servicios web, incluidos sitios web y API. Me dijeron que mi servidor "está ejecutando una resolución de DNS abierta que se está utilizando para retransmitir el ataque de denegación de servicio a una entidad externa".

¿Qué significa esto? ¿Cómo funciona este ataque? ¿Y cómo puedo proteger mi sistema de ser abusado de esta manera?

En mi caso específico, el servidor en cuestión está en Windows Server 2012 y sirve DNS para un dominio de Active Directory.

JSideris
fuente
Si nos hace saber qué servidor DNS utiliza, probablemente alguien pueda decirle con precisión qué configuración necesita establecer y de qué manera. Sin esa información, simplemente adiviné BIND y todos los espacios de direcciones IP privadas, porque BIND es el servidor DNS más común y los espacios de direcciones privadas son seguros. Probablemente también desee permitir solicitudes recursivas de su (s) bloque (s) de direcciones externas, si corresponde.
HopelessN00b
@ HopelessN00b Gracias, su respuesta fue bastante útil. No estoy usando BIND (mi host también asumió que sí y me proporcionó algunos comandos para ejecutar); Tengo un servidor DNS configurado como rol en IIS. Es interesante, no configuré manualmente un servidor DNS y no estoy seguro de entender por qué necesito esto. ¿Qué se rompe si se desactiva?
JSideris
No deshabilites DNS en un entorno Windows. Es probable que rompas el Active Directory. Avíseme qué versión de Windows Server, y puedo (probablemente) editar en algunas capturas de pantalla para mostrarle cómo proteger un cuadro DNS de Windows.
HopelessN00b
Bien. De hecho, acabo de configurar el directorio activo este fin de semana. Es Windows Server 2012 estándar.
JSideris

Respuestas:

28

Un "solucionador DNS abierto" es un servidor DNS que está dispuesto a resolver búsquedas DNS recursivas para cualquier persona en Internet. Es muy parecido a un relé SMTP abierto, ya que la simple falta de autenticación permite que terceros maliciosos propaguen sus cargas útiles utilizando su equipo no seguro. Con los relés SMTP abiertos, el problema es que reenvían el correo no deseado. Con los solucionadores de DNS abiertos, el problema es que permiten un ataque de denegación de servicio conocido como ataque de amplificación de DNS.

La forma en que funciona este ataque es bastante simple: debido a que su servidor resolverá consultas DNS recursivas de cualquier persona, un atacante puede hacer que participe en un DDoS enviando a su servidor una consulta DNS recursiva que devolverá una gran cantidad de datos, mucho más grande que El paquete de solicitud DNS original. Al suplantar (falsificar) su dirección IP, dirigirán este tráfico adicional a las computadoras de sus víctimas en lugar de las suyas, y por supuesto, harán tantas solicitudes tan rápido como puedan a su servidor y a cualquier otro DNS abierto Resolvedores que pueden encontrar. De esta manera, alguien con una tubería relativamente pequeña puede "amplificar" un ataque de denegación de servicio al usar todo el ancho de banda en su tubería para dirigir un volumen de tráfico mucho mayor a sus víctimas.

ArsTechnica hizo un artículo decente sobre el reciente ataque DDoS de amplificación de DNS contra Spamhaus , y vale la pena leerlo rápidamente para obtener los conceptos básicos (y una buena visualización de la amplificación).

La forma más sencilla de proteger su sistema de ser abusado de esta manera es limitar las direcciones para las que su servidor realizará búsquedas recurrentes en sus subredes locales. (Las características específicas dependen del servidor DNS que esté utilizando, por supuesto).


Por ejemplo, si estuviera usando BIND 9 y quisiera simplemente evitar la recurrencia de DNS desde direcciones externas, usaría el siguiente código en mi configuración:

options {
    directory "/var/named/master";
    allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; };

Esa línea de código le dice a mi servidor BIND que solo procese solicitudes DNS recursivas para la dirección de bucle de retorno local (que supongo que podría / debería establecer en el bloque de bucle de retorno local, todo / 8) y los 3 espacios de direcciones IPv4 privadas.


Para Windows Server 2012, que dice que está usando, tiene las siguientes opciones.

1. Separe su servidor DNS de su servidor IIS.

  • Al menos en un mundo perfecto, no hay ninguna razón por la que necesite ejecutar DNS en el mismo cuadro que IIS.
    • Ponga DNS en una caja interna que no tenga NAT, para que el mundo exterior no pueda acceder a ella, y deje que IIS resida en la caja externa que el resto del mundo puede alcanzar. Puede usar reglas de doble referencia o cortafuegos para permitir selectivamente el acceso a su servidor DNS desde su servidor IIS.

2. Bloquee las solicitudes de DNS externas con un firewall, como el firewall incorporado de Windows.

  • Para mi sorpresa, el DNS de Windows no le permite restringir las direcciones a las que se aceptan las solicitudes de DNS recursivas, por lo que este es realmente el método recomendado por Microsoft.
  • ingrese la descripción de la imagen aquí
    • Seleccione las reglas DNS (TCP y UDP), vaya a la Remote IP addresssección y agregue las subredes en uso en su LAN, así como cualquier dirección IP pública de los servidores que necesitan acceso a Active Directory. Al igual que con el ejemplo BIND, los espacios de direcciones privadas IPv4 son 127.0.0.0/8 10.0.0.0/8 192.168.0.0/16y 172.16.0.0/12.

3. Desactivar la recursividad .

  • Sinceramente, no estoy seguro de qué efecto tendrá esto en su entorno, ya que no ha declarado realmente cómo se configuran DNS y AD en su entorno, y en consecuencia, es la última opción.
  • ingrese la descripción de la imagen aquí
    1. Abra el Administrador de DNS.
    2. En el árbol de la consola, haga clic con el botón derecho en el servidor DNS correspondiente y luego haga clic en Propiedades.
    3. ¿Dónde?
    4. DNS / servidor DNS aplicable
    5. Haz clic en la pestaña Avanzado.
    6. En las opciones del servidor, seleccione la casilla de verificación Desactivar recursividad y luego haga clic en Aceptar.
      • Como tenemos un entorno de bosques múltiples y utilizamos reenviadores condicionales para que eso funcione, no voy a marcar esa casilla. Podría ser algo para que usted también considere.
HopelessN00b
fuente
Excelente respuesta!
Fred the Magic Wonder Dog
Solución perfecta y bien documentada :).
JSideris
2
Entonces, ¿cómo 8.8.8.8 o 1.1.1.1 evitan que se resuelvan abiertos?
LinuxBabe