Qu'est-ce qu'un résolveur DNS ouvert et comment puis-je protéger mon serveur contre toute utilisation abusive par des pirates?

15

Je n'ai pas les connaissances les plus solides en sécurité informatique, mais hier, l'un de mes serveurs d'entreprise a été fermé par notre hôte.

Il s'agit d'un serveur affecté à une adresse IP publique où j'héberge plusieurs applications de service Web, y compris des sites Web et des API. On m'a dit que mon serveur "exécute un résolveur DNS ouvert qui est utilisé pour relayer l'attaque par déni de service à une entité externe."

Qu'est-ce que ça veut dire? Comment fonctionne cette attaque? Et comment puis-je protéger mon système contre les abus comme celui-ci?

Dans mon cas spécifique, le serveur en question est sur Windows Server 2012, et il sert DNS pour un domaine Active Directory.

JSideris
la source
Si vous nous indiquez quel serveur DNS vous utilisez, quelqu'un peut probablement vous dire précisément quelle configuration vous devez définir et de quelle manière. Sans ces informations, j'ai simplement deviné BIND et tous les espaces d'adressage IP privés, car BIND est le serveur DNS le plus courant et les espaces d'adressage privés sont sûrs. Vous souhaiterez probablement également autoriser les demandes récursives de vos blocs d'adresses externes, le cas échéant.
HopelessN00b
@ HopelessN00b Merci, votre réponse a été très utile. Je n'utilise pas BIND (mon hôte a également supposé que je l'étais et m'a fourni quelques commandes à exécuter); J'ai un serveur DNS configuré en tant que rôle dans IIS. C'est intéressant, je n'ai pas configuré manuellement un serveur DNS et je ne suis pas sûr de bien comprendre pourquoi j'en ai même besoin. Qu'est-ce qui se casse s'il est désactivé?
JSideris
Euh, ne désactivez pas DNS dans un environnement Windows. Il est probable que vous cassiez Active Directory. Faites-moi savoir quelle version de Windows Server, et je peux (probablement) modifier dans certaines captures d'écran pour vous montrer comment sécuriser une boîte DNS Windows.
HopelessN00b
Bien. En fait, je viens de configurer Active Directory ce week-end. C'est la norme Windows Server 2012.
JSideris

Réponses:

28

Un "résolveur DNS ouvert" est un serveur DNS prêt à résoudre les recherches DNS récursives pour quiconque sur Internet. Cela ressemble beaucoup à un relais SMTP ouvert, en ce que le simple manque d'authentification permet à des tiers malveillants de propager leurs charges utiles à l'aide de votre équipement non sécurisé. Avec les relais SMTP ouverts, le problème est qu'ils transfèrent le spam. Avec les résolveurs DNS ouverts, le problème est qu'ils permettent une attaque par déni de service connue sous le nom d'attaque d'amplification DNS.

Le fonctionnement de cette attaque est assez simple - car votre serveur résoudra les requêtes DNS récursives de n'importe qui, un attaquant peut le faire participer à un DDoS en envoyant à votre serveur une requête DNS récursive qui renverra une grande quantité de données, beaucoup plus volumineuses que le paquet de requête DNS d'origine. En usurpant (truquant) leur adresse IP, ils dirigeront ce trafic supplémentaire vers les ordinateurs de leur victime au lieu du leur, et bien sûr, ils feront autant de demandes aussi rapidement que possible à votre serveur et à tout autre DNS ouvert. résolveurs qu'ils peuvent trouver. De cette manière, une personne disposant d'un canal relativement petit peut "amplifier" une attaque par déni de service en utilisant toute la bande passante de son canal pour diriger un volume de trafic beaucoup plus important vers ses victimes.

ArsTechnica a fait un article décent sur la récente attaque DDoS d'amplification DNS contre Spamhaus , et mérite une lecture rapide pour obtenir les bases (et un bon visuel de l'amplification).

Le moyen le plus simple de protéger votre système contre les abus comme celui-ci est de limiter les adresses pour lesquelles votre serveur effectuera des recherches récursives pour vos sous-réseaux locaux. (Les détails dépendent du serveur DNS que vous utilisez, bien sûr).


Par exemple, si j'utilisais BIND 9 et que je voulais simplement empêcher la récursivité DNS à partir d'adresses externes, j'utiliserais le code suivant dans ma configuration:

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; };

Cette ligne de code indique à mon serveur BIND de ne traiter que les demandes DNS récursives pour l'adresse de bouclage local (que je suppose que je pourrais / devrais définir sur le bloc de bouclage local, l'ensemble / 8) et les 3 espaces d'adressage IPv4 privés.


Pour Windows Server 2012, que vous dites utiliser, vous disposez des options ci-dessous.

1. Séparez votre serveur DNS de votre serveur IIS.

  • Au moins dans un monde parfait, il n'y a aucune raison d'exécuter DNS sur la même boîte que IIS.
    • Mettez DNS sur un boîtier interne qui n'est pas NAT, afin que le monde extérieur ne puisse pas y accéder, et laissez IIS résider sur le boîtier orienté vers l'extérieur où le reste du monde peut accéder. Vous pouvez utiliser des règles de double hébergement ou de pare-feu pour autoriser sélectivement l'accès à votre serveur DNS à partir de votre serveur IIS.

2. Bloquer les demandes DNS externes avec un pare-feu, tel que le pare-feu Windows intégré.

  • À ma grande surprise, Windows DNS ne vous permet pas de restreindre les adresses auxquelles les requêtes DNS récursives sont honorées, c'est donc en fait la méthode recommandée par Microsoft.
  • entrez la description de l'image ici
    • Sélectionnez les règles DNS (TCP et UDP), accédez à la Remote IP addresssection et ajoutez les sous-réseaux en cours d'utilisation sur votre réseau local, ainsi que toutes les adresses IP publiques des serveurs qui ont besoin d'accéder à Active Directory. Comme avec l'exemple BIND, les espaces d'adressage privés IPv4 sont 127.0.0.0/8 10.0.0.0/8 192.168.0.0/16et 172.16.0.0/12.

3. Désactivez la récursivité .

  • Honnêtement, je ne sais pas quel effet cela aura sur votre environnement, car vous n'avez pas vraiment expliqué comment DNS et AD sont configurés dans votre environnement, et en conséquence, c'est la dernière option.
  • entrez la description de l'image ici
    1. Ouvrez le gestionnaire DNS.
    2. Dans l'arborescence de la console, cliquez avec le bouton droit sur le serveur DNS applicable, puis cliquez sur Propriétés.
    3. Où?
    4. DNS / serveur DNS applicable
    5. Cliquez sur l'onglet Avancé.
    6. Dans les options du serveur, activez la case à cocher Désactiver la récursivité, puis cliquez sur OK.
      • Étant donné que nous avons un environnement multi-forêts et que nous utilisons des redirecteurs conditionnels pour que cela fonctionne, je ne vais pas cocher cette case. Cela pourrait aussi être quelque chose à considérer pour vous.
HopelessN00b
la source
Excellente réponse!
Fred the Magic Wonder Dog
Solution parfaite et bien documentée :).
JSideris
2
Alors, comment 8.8.8.8 ou 1.1.1.1 s'empêchent-ils d'être des résolveurs ouverts?
LinuxBabe