Verhindern von DNS-Tunneling

Verhindern von DNS-Tunneling

Ich habe mir kürzlich ein Pentesting-Webinar angesehen, in dem ein DNS-Tunneling-Angriff demonstriert wurde. Im Fragen-Antwort-Teil des Webinars fragte jemand, wie ein solches Tunneling verhindert werden könne. Der Ratschlag lautete, internen DNS-Servern das Auflösen externer Adressen nicht zu erlauben und alle derartigen externen Auflösungen über einen Proxy laufen zu lassen. Kann jemand erklären, warum dies das Tunneling verhindert? Wenn der Client etwas ausführt, das ein manipuliertes DNS-Paket mit der versteckten Nutzlast an den Proxy sendet, erreicht es dann nicht irgendwann den entsprechenden DNS-Server und wird über den Proxy an den Client zurückgesendet?

Antwort1

Kurze Antwort: Anwendungsbewusste Proxys können den Inhalt des Pakets protokollintelligent analysieren und feststellen, ob die Nutzlast eines erneut zusammengesetzten Pakets, das durchläuft, den Datenstrukturen für dieses Protokoll entspricht. Der Proxy erkennt also, ob Sie beispielsweise versuchen, HTTP-Daten in DNS-Segmenten zu tunneln.

Antwort2

Eine weitere Möglichkeit, die ein Proxy bieten könnte (oder die ich auch tun würde, wenn ich mir wegen Tunneling Sorgen machen würde – und die keinen Proxy erfordert, sondern nur einen ordentlichen Router) ist, die Menge des Datenverkehrs auf Port 53 einfach stark zu begrenzen. Dies würde Tunneling zwar nicht völlig verhindern, aber seine Nützlichkeit stark einschränken. (Zum Beispiel könnten Sie 100 kbit Daten über einen Zeitraum von 120 Sekunden zulassen. Dies entspricht einem maximalen Durchsatz von < 100 Bytes pro Sekunde, sodass Sie über diese Verbindung nicht allzu viele Daten übertragen könnten.)

verwandte Informationen