DNS rebinding is a security attack that exploits the browser's same-origin policy by manipulating DNS responses to redirect a user's web browser from an attacker's public server to internal network devices, enabling unauthorized access to unprotected services like routers, printers, and management interfaces. The attack works by initially resolving an attacker-controlled domain to a public IP address, then changing the DNS answer to a private internal address after a short TTL expires, allowing malicious JavaScript to access internal web services that trust local network traffic. Protection requires a layered defense combining recursive resolver filtering for responses mapping external names to private addresses, Host header validation on internal services, mandatory authentication, and browser security controls, as traditional firewalls and HTTPS alone cannot prevent the attack since the request originates from inside the network.
So funktioniert DNS-Rebinding
Der Angreifer kontrolliert eine Domain und deren autoritativen DNS-Server und nutzt aus, dass der Browser dem Hostnamen vertraut und nicht der dahinterliegenden IP-Adresse. Die Same-Origin-Richtlinie vergleicht Ursprünge anhand von Schema, Host und Port, sodass eine geänderte IP-Adresse den Ursprung nicht verändert.
- Das Opfer besucht die bösartige Website: Der Nutzer lädt eine Seite von einem vom Angreifer kontrollierten Hostnamen. Der autoritative Server des Angreifers beantwortet die DNS-Anfrage mit der Adresse eines vom Angreifer betriebenen Servers und verwendet dabei eine sehr kurze „Time to Live“-Einstellung.
- Skript wird im Browser geladen: Der Server des Angreifers gibt eine Seite zurück, die JavaScript enthält. Der Browser behandelt das Skript so, als stamme es vom Hostnamen des Angreifers.
- Änderungen der DNS-Antwort: Nach Ablauf der kurzen TTL sendet das Skript eine weitere Anfrage an denselben Hostnamen. Der DNS-Server des Angreifers antwortet nun mit einer privaten Adresse, beispielsweise einem Router oder einem internen Server.
- Der Browser erreicht das interne Ziel: Der Browser sendet die Anfrage an die interne Adresse und betrachtet diese weiterhin als denselben Ursprung. Das Skript kann die Antwort auslesen.
- Daten werden an den Angreifer zurückgesendet: Das Skript sendet die ausgelesenen Daten zurück oder gibt Befehle an das interne Gerät weiter, wobei es den Browser des Opfers als Proxy nutzt.
Der Angriff setzt voraus, dass der Resolver die kurze TTL berücksichtigt und der interne Dienst Anfragen mit einem unerwarteten „Host“-Header oder ohne Authentifizierung akzeptiert. Zu den Abwehrmaßnahmen zählen Resolver, die öffentliche Antworten mit privaten Adressen verwerfen, Hosts, die den „Host“-Header validieren, sowie die Authentifizierung bei internen Diensten.
Häufige Missverständnisse zum Thema DNS-Rebinding
DNSSEC überprüft, ob die Antworten vom Zoneninhaber stammen. Bei einem Rebinding-Angriff ist der Angreifer der Zoneninhaber, sodass signierte Antworten die Validierung bestehen und der Angriff dennoch funktioniert.
TLS allein schließt diese Lücke nicht. Der Angreifer kann ein gültiges Zertifikat für seinen eigenen Hostnamen erhalten, und der eigentliche Schutz besteht darin, dass der interne Dienst den Host-Header überprüft und eine Authentifizierung verlangt.
Auch Unternehmensnetzwerke sind gefährdet. Interne Dashboards, Entwicklungsserver, Build-Tools und Verwaltungsschnittstellen, die unter der Annahme eines vertrauenswürdigen Netzwerks auf eine Authentifizierung verzichten, können über den Browser eines Benutzers erreicht werden.
Perimeter-Firewalls erkennen die Anfrage als von einem internen Rechner stammend und lassen sie daher zu. Kontrollmechanismen müssen im Resolver, im Browser oder im Ziel-Dienst integriert sein.
Niedrige TTL-Werte sind bei legitimem Lastausgleich und Failover üblich, sodass deren pauschale Blockierung zu Fehlalarmen führt. Ein zuverlässigeres Anzeichen ist ein öffentlicher Name, der plötzlich auf eine private oder Loopback-Adresse aufgelöst wird.