ADC

Atténuez les attaques DDoS DNS

Les serveurs DNS sont l’un des composants les plus critiques d’un réseau et ils doivent être défendus contre les attaques. L’attaque DDoS est l’un des types les plus élémentaires d’attaques DNS. Les attaques de ce type se multiplient et peuvent être destructrices. Pour atténuer les attaques DDoS, vous pouvez procéder comme suit :

  • Videz les enregistrements négatifs.
  • Limitez la durée de vie (TTL) des enregistrements négatifs.
  • Préservez la mémoire NetScaler en limitant la consommation de mémoire par le cache DNS.
  • Conservez les enregistrements DNS dans le cache.
  • Activez le contournement du cache DNS.

Rincer les enregistrements négatifs

Une attaque DNS remplit le cache d’enregistrements négatifs (NXDOMAIN et NODATA). Par conséquent, les réponses aux demandes légitimes ne sont pas mises en cache. Les nouvelles demandes sont donc envoyées à un serveur principal pour résolution DNS. Les réponses sont donc différées.

Vous pouvez désormais vider les enregistrements DNS négatifs du cache DNS de l’appliance NetScaler.

Videz les enregistrements de cache négatifs à l’aide de l’interface de ligne de commande

À l’invite de commande, tapez :

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

Exemple :

flush dns proxyrecords –negRecType NODATA

Effacement des enregistrements de cache négatifs à l’aide de l’interface graphique

  1. Accédez à Configuration > Gestion du trafic > DNS >Enregistrements**.
  2. Dans le volet de détails, cliquez sur Flush Proxy Records.
  3. Dans la zone Type de rinçage, sélectionnez Negative Records.
  4. Dans la zoneType d’enregistrements négatifs, sélectionnezNXDOMAINou NODATA.

Protection contre les attaques aléatoires par sous-domaine et NXDOMAIN

Pour empêcher les attaques aléatoires par sous-domaine et NXDOMAIN, vous pouvez restreindre la mémoire cache du DNS et ajuster les valeurs TTL pour les enregistrements négatifs.

Pour limiter la quantité de mémoire consommée par le cache DNS, spécifiez la taille maximale du cache (en Mo), ainsi que la taille du cache (en Mo) pour le stockage des réponses négatives. Lorsque l’une des limites est atteinte, aucune autre entrée n’est ajoutée au cache. Les messages Syslog sont également enregistrés et, si vous avez configuré des interruptions SNMP, des interruptions SNMP sont générées. Si ces limites ne sont pas définies, la mise en cache se poursuit jusqu’à épuisement de la mémoire système.

Une valeur TTL plus élevée pour les enregistrements négatifs peut entraîner le stockage d’enregistrements qui ne sont pas utiles pendant une longue période. Une valeur TTL plus faible entraîne l’envoi d’un plus grand nombre de demandes au serveur principal.

Le TTL de l’enregistrement négatif est défini sur une valeur qui peut être la moins élevée entre la valeur TTL ou la valeur « Expire » de l’enregistrement SOA.

Remarque :

  • Cette limitation est ajoutée par moteur de paquets. Par exemple, si la valeur MaxCacheSize est définie sur 5 Mo et que l’appliance possède 3 moteurs de paquets, la taille totale du cache est de 15 Mo.
  • La taille du cache pour les enregistrements négatifs doit être inférieure ou égale à la taille maximale du cache.
  • Si vous réduisez la limite de mémoire cache DNS à une valeur inférieure à la quantité de données déjà mises en cache, la taille du cache reste supérieure à la limite jusqu’à ce que les données expirent. C’est-à-dire qu’il dépasse son TTL0 ou qu’il est vidé (flush dns proxyrecords commande ou Flush Proxy Records dans l’interface graphique de NetScaler).
  • Pour configurer les interruptions SNMP, reportez-vous à la section Configuration de NetScaler pour générer des interruptions SNMP.

Limiter la mémoire consommée par le cache DNS à l’aide de l’interface de ligne de commande

À l’invite de commande, tapez :

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

Exemple :

set dns parameter - maxCacheSize 100 -maxNegativeCacheSize 25

Limitez la mémoire consommée par le cache DNS à l’aide de l’interface graphique

Accédez à Configuration > Gestion du trafic > DNS, cliquez sur Modifier les paramètres DNSet définissez les paramètres suivants :

  • Taille maximale du cache en Mo
  • Taille de cache négative maximale en Mo

Restreindre le TTL des enregistrements négatifs à l’aide de l’interface de ligne de commande

À l’invite de commande, tapez :

set dns parameter -maxnegcacheTTL <secs>

Exemple :

set dns parameter -maxnegcacheTTL 360

Restreindre le TTL des enregistrements négatifs à l’aide de l’interface graphique

  1. Accédez à Configuration > Gestion du trafic > DNS.
  2. Cliquez sur Modifier les paramètres DNS et définissez le paramètre Max Negative Cache TTL en secondes .

Conserver les enregistrements DNS dans le cache

Une attaque peut inonder le cache DNS d’entrées non importantes, mais peut également provoquer le vidage des enregistrements légitimes déjà mis en cache pour faire de la place aux nouvelles entrées. Pour empêcher les attaques de remplir le cache avec des données non valides, vous pouvez conserver les enregistrements légitimes même s’ils dépassent leurs valeurs TTL.

Si vous activez le paramètre CacheNoExpire, les enregistrements actuellement dans le cache sont conservés jusqu’à ce que vous désactiviez le paramètre.

Remarque :

  • Cette option ne peut être utilisée que lorsque la taille maximale du cache est spécifiée (paramètre MaxCacheSize).
  • Si MaxNegCacheTtl est configuré et que CacheNoExpire est activé, CachNoExpire est prioritaire.

Conservez les enregistrements DNS dans le cache à l’aide de l’interface de ligne de commande

À l’invite de commande, tapez :

set dns parameter -cacheNoExpire ( ENABLED | DISABLED)

Exemple :

set dns parameter -cacheNoExpire ENABLED

Conservez les enregistrements DNS dans le cache à l’aide de l’interface graphique

  1. Accédez à Configuration > Gestion du trafic > DNS et cliquez sur Modifier les paramètres DNS.
  2. Sélectionnez Cache No Expire.

Activer le contournement du cache DNS

Pour une meilleure visibilité et un meilleur contrôle des requêtes DNS, définissez le paramètre CacheHitBypass pour transmettre toutes les demandes aux serveurs principaux et autoriser la création du cache sans toutefois l’utiliser. Une fois le cache créé, vous pouvez désactiver le paramètre afin que les requêtes soient traitées à partir du cache.

Activer le contournement du cache DNS à l’aide de l’interface de ligne de commande

À l’invite de commande, tapez :

set dns parameter -cacheHitBypass ( ENABLED | DISABLED )

Exemple :

set dns parameter -cacheHitBypass ENABLED

Activer le contournement du cache DNS à l’aide de l’interface graphique

  1. Accédez à Configuration > Gestion du trafic > DNS et cliquez sur Modifier les paramètres DNS.
  2. Sélectionnez Cache Hit Bypass.

Prévenir l’ Slowloris attaque

Une requête DNS couvrant plusieurs paquets représente la menace potentielle d’une Slowloris attaque. L’appliance NetScaler peut supprimer silencieusement les requêtes DNS qui sont divisées en plusieurs paquets.

Vous pouvez définir le splitPktQueryProcessing paramètre sur AUTORISER ou SUPPRIMER une requête DNS si la requête est divisée en plusieurs paquets.

Remarque : Ce paramètre s’applique uniquement au DNS TCP.

Limitez les requêtes DNS à un seul paquet à l’aide de la CLI

À l’invite de commande, tapez :

set dns parameter -splitPktQueryProcessing ( ALLOW | DROP )

Exemple :

set dns parameter -splitPktQueryProcessing DROP

Limitez les requêtes DNS à un seul paquet à l’aide de l’interface graphique

  1. Accédez à Configuration > Gestion du trafic > DNS et cliquez sur Modifier les paramètres DNS.
  2. Dans la zone Traitement des requêtes par paquets fractionnés, choisissez ALLOW ou DROP.

Collectez des statistiques sur les réponses DNS envoyées depuis le cache

Vous pouvez collecter des statistiques sur les réponses DNS envoyées à partir du cache. Utilisez ensuite ces statistiques pour créer un seuil au-delà duquel davantage de trafic DNS est supprimé et appliquez ce seuil à l’aide d’une politique basée sur la bande passante. Auparavant, le calcul de la bande passante pour un serveur virtuel d’équilibrage de charge DNS n’était pas précis, car le nombre de demandes traitées à partir du cache n’était pas indiqué.

En mode proxy, les statistiques relatives aux octets de demande, aux octets de réponse, au nombre total de paquets reçus et au nombre total de paquets envoyés sont mises à jour en permanence. Auparavant, ces statistiques n’étaient pas toujours mises à jour, en particulier pour un serveur virtuel d’équilibrage de charge DNS.

Le mode proxy vous permet également désormais de déterminer le nombre de réponses DNS envoyées à partir du cache. Pour collecter ces statistiques, les options suivantes ont été ajoutées à la stat lb vserver <DNSvirtualServerName> commande :

  • Demandes  : nombre total de demandes reçues par le serveur virtuel DNS ou DNS_TCP. Inclut les demandes transférées vers le serveur principal et les demandes auxquelles il a été répondu depuis le cache.
  • Nombre d’accès au serveur virtuel  : nombre total de demandes transmises au backend. Le nombre de demandes traitées depuis le cache est la différence entre le nombre total de demandes et le nombre de demandes traitées depuis le serveur virtuel.
  • Réponses  : nombre total de réponses envoyées par ce serveur virtuel. Par exemple, si un serveur virtuel DNS LB reçoit 5 requêtes DNS, en transmet 3 au serveur principal et en transmet 2 depuis le cache, la valeur correspondante de chacune de ces statistiques serait la suivante :
    • Nombre de visites du serveur virtuel : 3
    • Demandes : 5
    • Réponses : 5
Atténuez les attaques DDoS DNS