Was ist ein offener DNS-Resolver und wie kann ich meinen Server vor dem Missbrauch durch Hacker schützen?

15

Ich habe nicht den besten Hintergrund in Sachen Computersicherheit, aber gestern wurde einer meiner Unternehmensserver von unserem Host heruntergefahren.

Dies ist ein Server, dem eine öffentliche IP zugewiesen wurde, auf dem ich mehrere Webdienstanwendungen hosten kann, einschließlich Websites und APIs. Mir wurde gesagt, dass mein Server "einen offenen DNS-Resolver ausführt, der verwendet wird, um den Denial-of-Service-Angriff an eine externe Entität weiterzuleiten."

Was bedeutet das? Wie funktioniert dieser Angriff? Und wie kann ich mein System vor derartigem Missbrauch schützen?

In meinem speziellen Fall handelt es sich um einen Server unter Windows Server 2012, der DNS für eine Active Directory-Domäne bereitstellt.

JSideris
quelle
Wenn Sie uns mitteilen, welchen DNS-Server Sie verwenden, kann Ihnen wahrscheinlich jemand genau mitteilen, welche Konfiguration Sie in welcher Weise vornehmen müssen. Ohne diese Informationen habe ich einfach BIND und alle privaten IP-Adressräume erraten, da BIND der am häufigsten verwendete DNS-Server ist und die privaten Adressräume sicher sind. Möglicherweise möchten Sie auch rekursive Anforderungen von Ihren externen Adressblöcken zulassen, falls zutreffend.
HopelessN00b
@ HopelessN00b Vielen Dank, Ihre Antwort war sehr nützlich. Ich verwende kein BIND (mein Host hat dies ebenfalls angenommen und mir einige Befehle zum Ausführen bereitgestellt); Ich habe einen DNS-Server als Rolle in IIS eingerichtet. Es ist interessant, dass ich keinen DNS-Server manuell konfiguriert habe und nicht sicher bin, warum ich das überhaupt brauche. Was bricht ab, wenn es deaktiviert wird?
JSideris
Deaktivieren Sie DNS nicht in einer Windows-Umgebung. Wahrscheinlich wird Active Directory beschädigt. Lassen Sie mich wissen, welche Version von Windows Server ich (wahrscheinlich) in einigen Screenshots bearbeiten kann, um Ihnen zu zeigen, wie Sie eine Windows-DNS-Box sichern können.
HopelessN00b
In Ordung. Ich habe dieses Wochenende gerade Active Directory eingerichtet. Es ist Windows Server 2012 Standard.
JSideris

Antworten:

28

Ein "offener DNS-Resolver" ist ein DNS-Server, der bereit ist, rekursive DNS-Lookups für alle im Internet aufzulösen. Dies ähnelt in etwa einem offenen SMTP-Relay, da böswillige Dritte aufgrund der fehlenden Authentifizierung ihre Nutzdaten mithilfe Ihrer ungesicherten Geräte weitergeben können. Bei offenen SMTP-Relays besteht das Problem darin, dass sie Spam weiterleiten. Bei offenen DNS-Resolvern besteht das Problem darin, dass sie einen Denial-of-Service-Angriff zulassen, der als DNS Amplification Attack bezeichnet wird.

Die Funktionsweise dieses Angriffs ist recht einfach: Da Ihr Server rekursive DNS-Abfragen von jedermann auflöst, kann ein Angreifer dazu führen, dass er an einem DDoS teilnimmt, indem er Ihrem Server eine rekursive DNS-Abfrage sendet, die eine große Datenmenge zurückgibt, die viel größer ist als das ursprüngliche DNS-Anforderungspaket. Indem sie ihre IP-Adresse fälschen, leiten sie diesen zusätzlichen Datenverkehr an die Computer ihres Opfers anstatt an ihre eigenen, und natürlich stellen sie so viele Anfragen wie möglich an Ihren Server und an jedes andere offene DNS Resolver, die sie finden können. Auf diese Weise kann jemand mit einer relativ kleinen Pipe einen Denial-of-Service-Angriff "verstärken", indem er die gesamte Bandbreite seiner Pipe nutzt, um ein viel größeres Verkehrsvolumen auf seine Opfer zu lenken.

ArsTechnica hat einen anständigen Artikel über den jüngsten DNS Amplification DDoS-Angriff gegen Spamhaus verfasst und ist eine kurze Lektüre wert, um die Grundlagen (und ein gutes Bild der Verstärkung) zu erhalten.

Der einfachste Weg, Ihr System vor Missbrauch zu schützen, besteht darin, die Adressen, nach denen Ihr Server rekursiv sucht, auf Ihre lokalen Subnetze zu beschränken. (Die Einzelheiten hängen natürlich davon ab, welchen DNS-Server Sie verwenden.)


Wenn ich beispielsweise BIND 9 verwenden und einfach die DNS-Rekursion von externen Adressen verhindern wollte, würde ich in meiner Konfiguration den folgenden Code verwenden:

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

Diese Codezeile weist meinen BIND-Server an, nur rekursive DNS-Anforderungen für die lokale Loopback-Adresse (die ich auf den lokalen Loopback-Block setzen könnte / sollte, die ganze / 8) und die 3 privaten IPv4-Adressräume zu verarbeiten.


Für Windows Server 2012, das Sie verwenden, haben Sie die folgenden Optionen.

1. Trennen Sie Ihren DNS-Server von Ihrem IIS-Server.

  • Zumindest in einer perfekten Welt gibt es keinen Grund, DNS auf derselben Box wie IIS auszuführen.
    • Stellen Sie DNS auf eine interne Box, die nicht über NAT verfügt, damit die Außenwelt nicht darauf zugreifen kann, und lassen Sie IIS auf der nach außen gerichteten Box, auf die der Rest der Welt zugreifen kann. Sie können Dual-Homing- oder Firewall-Regeln verwenden, um von Ihrem IIS-Server aus selektiv den Zugriff auf Ihren DNS-Server zuzulassen.

2. Blockieren Sie externe DNS-Anforderungen mit einer Firewall, z. B. der integrierten Windows-Firewall.

  • Zu meiner Überraschung können Sie mit Windows DNS nicht die Adressen einschränken, auf die rekursive DNS-Anforderungen berücksichtigt werden. Dies ist also die von Microsoft empfohlene Methode.
  • Bildbeschreibung hier eingeben
    • Wählen Sie die DNS-Regeln (TCP und UDP) aus, gehen Sie zum Remote IP addressAbschnitt und fügen Sie die in Ihrem LAN verwendeten Subnetze sowie alle öffentlich zugänglichen IP-Adressen von Servern hinzu, die Zugriff auf Active Directory benötigen. Wie im BIND-Beispiel sind private IPv4-Adressräume 127.0.0.0/8 10.0.0.0/8 192.168.0.0/16und 172.16.0.0/12.

3. Deaktivieren Sie die Rekursion .

  • Ich bin mir ehrlich gesagt nicht sicher, welche Auswirkungen dies auf Ihre Umgebung haben wird, da Sie nicht wirklich angegeben haben, wie DNS und AD in Ihrer Umgebung konfiguriert sind, und dementsprechend ist dies die letzte Option.
  • Bildbeschreibung hier eingeben
    1. Öffnen Sie den DNS-Manager.
    2. Klicken Sie in der Konsolenstruktur mit der rechten Maustaste auf den entsprechenden DNS-Server und klicken Sie dann auf Eigenschaften.
    3. Wo?
    4. DNS / entsprechender DNS-Server
    5. Klicken Sie auf die Registerkarte Erweitert.
    6. Aktivieren Sie in den Serveroptionen das Kontrollkästchen Rekursion deaktivieren, und klicken Sie dann auf OK.
      • Da wir eine Umgebung mit mehreren Gesamtstrukturen haben und dazu bedingte Weiterleitungen verwenden, werde ich dieses Kontrollkästchen nicht aktivieren. Könnte auch für Sie von Bedeutung sein.
HopelessN00b
quelle
Hervorragende Antwort!
Fred the Magic Wonder Dog
Perfekte, gut dokumentierte Lösung :).
JSideris
2
Wie verhindern dann 8.8.8.8 oder 1.1.1.1, dass sie offene Resolver sind?
LinuxBabe