ADC

Mitigar los ataques DDoS DNS

Los servidores DNS son uno de los componentes más críticos de una red y deben defenderse contra los ataques. Uno de los tipos más básicos de ataques de DNS es el ataque DDoS. Los ataques de este tipo van en aumento y pueden ser destructivos. Puede hacer lo siguiente para mitigar los ataques de DDoS:

  • Elimina los registros negativos.
  • Restrinja el tiempo de vida (TTL) de los registros negativos.
  • Conserve la memoria de NetScaler limitando la memoria que consume la caché de DNS.
  • Conserve los registros DNS en la memoria caché.
  • Habilite la omisión de caché de DNS.

Vaciar los registros negativos

Un ataque de DNS llena la memoria caché con registros negativos (NXDOMAIN y NODATA). Como resultado, las respuestas a las solicitudes legítimas no se almacenan en caché, por lo que las nuevas solicitudes se envían a un servidor de fondo para su resolución de DNS. Por lo tanto, las respuestas se retrasan.

Ahora puede vaciar los registros DNS negativos de la memoria caché de DNS del dispositivo NetScaler.

Vacíe los registros de caché negativos mediante la CLI

En la línea de comandos, escriba:

flush dns proxyrecords -type (dnsRecordType | negRecType) NXDOMAIN | NODATA

Ejemplo:

flush dns proxyrecords –negRecType NODATA

Eliminación de registros de caché negativos mediante la interfaz gráfica de usuario

  1. Vaya a Configuración > Administración del tráfico > DNS > Registros.
  2. En el panel de detalles, haga clic en Flush Proxy Records.
  3. En el cuadro Tipo de descarga, seleccione Registros negativos.
  4. En el cuadroTipo de registro negativo, seleccioneNXDOMAINo NODATA.

Protección contra ataques aleatorios de subdominios y NXDOMAIN

Para evitar ataques aleatorios de subdominios y NXDOMAIN, puede restringir la memoria caché de DNS y ajustar los valores de TTL para los registros negativos.

Para limitar la cantidad de memoria que consume la caché DNS, especifique el tamaño máximo de la caché (en MB) y también el tamaño de la caché (en MB) para almacenar las respuestas negativas. Cuando se alcanza cualquiera de los límites, no se añaden más entradas a la memoria caché. Además, los mensajes de syslog se registran y, si ha configurado las capturas SNMP, se generan las capturas SNMP. Si no se establecen estos límites, el almacenamiento en caché continúa hasta que se agote la memoria del sistema.

Un valor de TTL más alto para los registros negativos puede provocar que se almacenen registros que no sean valiosos durante mucho tiempo. Un valor TTL más bajo hace que se envíen más solicitudes al servidor de fondo.

El TTL del registro negativo se establece en un valor que puede ser el menor del valor TTL o el valor” Caduca” del registro SOA.

Nota:

  • Esta limitación se añade por motor de paquetes. Por ejemplo, si el MaxCacheSize está establecido en 5 MB y el dispositivo tiene 3 motores de paquetes, el tamaño total de la memoria caché es de 15 MB.
  • El tamaño de la memoria caché de los registros negativos debe ser inferior o igual al tamaño máximo de la memoria caché.
  • Si reduce el límite de memoria caché de DNS a un valor inferior a la cantidad de datos ya almacenados en caché, el tamaño de la caché permanecerá por encima del límite hasta que los datos caduquen. Es decir, excede su TTL0 o se vacía (flush dns proxyrecords comando o Vacío de registros proxy en la GUI de NetScaler).
  • Para configurar capturas SNMP, consulte Configuración de NetScaler para generar capturas SNMP.

Limite la memoria consumida por la caché DNS mediante la CLI

En la línea de comandos, escriba:

set dns parameter -maxCacheSize <MBytes> -maxNegativeCacheSize <MBytes>

Ejemplo:

set dns parameter - maxCacheSize 100 -maxNegativeCacheSize 25

Limite la memoria consumida por la caché de DNS mediante la interfaz gráfica de usuario

Vaya a Configuración > Administración del tráfico > DNS, haga clic en Cambiar la configuración de DNSy defina los siguientes parámetros:

  • Tamaño máximo de caché en MB
  • Tamaño máximo de memoria caché negativa en MB

Restrinja el TTL de los registros negativos mediante la CLI

En la línea de comandos, escriba:

set dns parameter -maxnegcacheTTL <secs>

Ejemplo:

set dns parameter -maxnegcacheTTL 360

Restrinja el TTL de los registros negativos mediante la interfaz gráfica de usuario

  1. Vaya a Configuración > Administración del tráfico > DNS.
  2. Haga clic en Cambiar configuración de DNS y defina el parámetro TTL de caché negativa máxima en segundos.

Conserve los registros DNS en la memoria caché

Un ataque puede inundar la memoria caché del DNS con entradas no importantes, pero puede provocar que se vacíen los registros legítimos ya almacenados en caché para dejar espacio para las nuevas entradas. Para evitar que los ataques llenen la memoria caché con datos no válidos, puede conservar los registros legítimos incluso después de que superen sus valores de TTL.

Si habilita el parámetro CacheNoExpire, los registros que se encuentran actualmente en la memoria caché se conservan hasta que inhabilite el parámetro.

Nota:

  • Esta opción solo se puede utilizar cuando se especifica el tamaño máximo de la memoria caché (parámetro maxCacheSize).
  • Si maxNegCacheTtl está configurado y CacheNoExpire está habilitado, CacheNoExpire tiene prioridad.

Conserve los registros DNS en la memoria caché mediante la CLI

En la línea de comandos, escriba:

set dns parameter -cacheNoExpire ( ENABLED | DISABLED)

Ejemplo:

set dns parameter -cacheNoExpire ENABLED

Conserve los registros DNS en la memoria caché mediante la interfaz gráfica de usuario

  1. Vaya a Configuración > Administración del tráfico > DNS y haga clic en Cambiar la configuración de DNS.
  2. Selecciona Caché sin caducar.

Habilitar la omisión de caché DNS

Para una mayor visibilidad y control de las solicitudes de DNS, defina el parámetro CacheHitBypass para reenviar todas las solicitudes a los servidores de fondo y permitir que la memoria caché se genere pero no se utilice. Una vez creada la caché, puede inhabilitar el parámetro para que las solicitudes se atiendan desde la memoria caché.

Habilite la omisión de caché de DNS mediante la CLI

En la línea de comandos, escriba:

set dns parameter -cacheHitBypass ( ENABLED | DISABLED )

Ejemplo:

set dns parameter -cacheHitBypass ENABLED

Habilite la omisión de caché de DNS mediante la interfaz gráfica

  1. Vaya a Configuración > Administración del tráfico > DNS y haga clic en Cambiar la configuración de DNS.
  2. Selecciona Cache Hit Bypass.

Prevenir el Slowloris ataque

Una consulta de DNS que abarca varios paquetes presenta la amenaza potencial de un Slowloris ataque. El dispositivo NetScaler puede eliminar de forma silenciosa las consultas de DNS que están divididas en varios paquetes.

Puede configurar el parámetro splitPktQueryProcessing en PERMITIR o ELIMINAR una consulta de DNS si la consulta está dividida en varios paquetes.

Nota: Esta configuración solo se aplica a DNS TCP.

Limite las consultas de DNS a un solo paquete mediante la CLI

En la línea de comandos, escriba:

set dns parameter -splitPktQueryProcessing ( ALLOW | DROP )

Ejemplo:

set dns parameter -splitPktQueryProcessing DROP

Limite las consultas de DNS a un solo paquete mediante la interfaz gráfica de usuario

  1. Vaya a Configuración > Administración del tráfico > DNS y haga clic en Cambiar la configuración de DNS.
  2. En el cuadro Procesamiento de consultas de paquetes divididos, elija PERMITIR o DROP.

Recopile estadísticas de las respuestas DNS servidas desde la memoria caché

Puede recopilar estadísticas de las respuestas DNS servidas desde la memoria caché. A continuación, utilice estas estadísticas para crear un umbral más allá del cual se interrumpa más tráfico de DNS y aplique este umbral con una directiva basada en el ancho de banda. Anteriormente, el cálculo del ancho de banda para un servidor virtual de equilibrio de carga de DNS no era preciso porque no se informaba del número de solicitudes atendidas desde la memoria caché.

En el modo proxy, las estadísticas de bytes de solicitud, bytes de respuesta, total de paquetes recibidos y totales de paquetes enviados se actualizan continuamente. Anteriormente, estas estadísticas no siempre se actualizaban, especialmente en el caso de un servidor virtual de equilibrio de carga de DNS.

El modo proxy ahora también le permite determinar la cantidad de respuestas DNS servidas desde la memoria caché. Para recopilar estas estadísticas, se han añadido las siguientes opciones al stat lb vserver <DNSvirtualServerName> comando:

  • Solicitudes : número total de solicitudes recibidas por el servidor virtual DNS o DNS_TCP. Incluye las solicitudes reenviadas al back-end y las solicitudes respondidas desde la memoria caché.
  • Visitas al servidor virtual : número total de solicitudes reenviadas al back-end. El número de solicitudes atendidas desde la memoria caché es la diferencia entre el número total de solicitudes y el número de solicitudes atendidas desde el servidor virtual.
  • Respuestas : número total de respuestas enviadas por este servidor virtual. Por ejemplo, si un servidor virtual DNS LB recibiera 5 solicitudes de DNS, reenviara 3 de ellas al back-end y atendiera 2 de ellas desde la memoria caché, el valor correspondiente de cada una de estas estadísticas sería el siguiente:
    • Visitas a Vserver: 3
    • Solicitudes: 5
    • Respuestas: 5
Mitigar los ataques DDoS DNS