HTML und JavaScript-Rewriting im SSL-VPN-Gateway

Posted by hob Wed, 06 Jul 2016 09:15:00 GMT

HTML Java Script Rewriting SSL

In unserem heutigen  Blogpost erklären wir Ihnen, wie ein SSL-VPN-Gateway Websites samt JavaScript-Programmen zum Browser des Users tunnelt.

Sogenannte SSL-VPN-Gateways funktionieren folgendermaßen: Der User verbindet sich mittels Browser über SSL (TLS) / HTTPS mit einem SSL-VPN-Gateway. Dieses verbindet sich über das Internet mit einem Webserver. Die Verbindungskette sieht folglich so aus:

SSL VPN Gateway Rewriting

Das SSL-VPN-Gateway lädt die Website vom Server und schickt sie verschlüsselt an den Browser des Users.

In diesem Szenario gibt es folgendes Problem: Die meisten Websites laden Ressourcen von anderen Websites oder verweisen mit Links direkt auf Websites. Wenn der User einem dieser Links folgt, verbindet sich sein Browser direkt mit der verknüpften Website. Das SSL-VPN-Gateway wird dabei außen vor gelassen, weswegen der User auf bestimmte Ziele nicht mehr zugreifen kann; beispielsweise den firmeninternen Fileserver.

Diese Problematik gilt nur für absolute Links mit vollständiger Web-Adresse. Relative Links sind unproblematisch. Absolute Links können hingegen an beliebige Stellen im Web verweisen – vergleichbar mit Längen- und Breitengrad auf Landkarten.
Relative Links beinhalten nur den relativen Pfad zum neuen Dokument, abhängig vom Pfad des aktuellen Dokuments. Sie sind vergleichbar mit einer Wegbeschreibung. Relative Links haben entsprechend eine verkürzte URL ohne „http://www.“ am Anfang.

Damit auch die Websites von absoluten Links über das SSL-VPN-Gateway zum User getunnelt werden, gibt es diese traditionelle Lösung: Das SSL-VPN-Gateway analysiert die Antworten des Webservers und ändert die Links so ab, dass sie auf das SSL-VPN-Gateway verweisen statt direkt auf den Webserver. Für HTML ist das eine gängige Praxis. Auch der Webserver von Apache führt dieses sogenannte HTML-Rewriting durch. Die geänderten URLs bestehen aus der Internetadresse des SSL-VPN-Gateways und dem ursprünglichen Link. Oft benötigt das SSL-VPN-Gateway noch zusätzliche Informationen, um den ursprünglichen Webserver zu finden.

Viele Websites bestehen allerdings nicht nur aus statischem HTML. Stattdessen werden oft JavaScript-Programme vom Webserver in den Browser des Users geladen und dort ausgeführt. Diese Programme bestimmen erst beim User das genaue Aussehen der Website. Außerdem können diese Programme auch Links auf der Website erstellen und abändern. Zusätzlich können sie sich mit dem Webserver verbinden, um Teile der Website im Browser des Users zu aktualisieren.

Wenn ein SSL-VPN-Gateway zwischen Browser und Webserver geschaltet ist, muss der SSL-VPN-Gateway auch das Verhalten der JavaScript-Programme ändern. Diese JavaScript-Programme und ihre erzeugten Links müssen nämlich wie die HTML-Links auf den SSL-VPN-Gateway verweisen, anstatt direkt auf den Webserver. Das kann man erreichen, indem das SSL-VPN-Gateway das JavaScript-Programm analysiert und so verändert, dass das JavaScript-Programm Links so erstellt bzw. abändert, dass sie über das SSL-VPN-Gateway gehen. Der SSL-VPN-Gateway ruft die Website samt JavaScript-Programmen auf, ändert beide und sendet sie erst dann zum Browser des Users weiter.

Diese Methode kann erweitert werden, um auch komplexere Web-Applikationen entsprechend zu ändern. Dann bindet das SSL-VPN-Gateway speziellen JavaScript-Code in die Website ein, der den ursprünglichen JavaScript-Code der Website erst dann modifiziert, wenn er im Browser des Users ausgeführt wird. In komplexeren Web-Applikationen kann es sogar vorkommen, dass JavaScript-Programme dynamisch JavaScript-Code generieren und ihn bei Bedarf ausführen. Das JavaScript-Rewriting im SSL-VPN-Gateway kann so etwas nicht vorhersehen. In diesem Fall ist eben beschriebenes JavaScript-Rewriting auf Seiten des Users obligatorisch.

Trotz dieser Techniken treten beim Rewriting von manch komplexeren Web-Applikationen Fehler auf, die eine korrekte Ausführung unmöglich machen. Beim Rewriting muss die Logik erkannt werden, mit der Links generiert werden. Diese Logik kann von Website zu Website unterschiedlich sein, sodass das Rewriting auf der einen Website problemlos funktionieren kann, während es auf einer anderen Website überhaupt nicht klappt.

Mehr Informationen zu unseren IT-Security Lösungen erhalten Sie auf www.hob.de

keine Kommentare |

You must be registered in order to write comments. To register as a new user click here.

If you're already registered, please leave a comment here

Leave a comment


emplates.arcsin.se/'), link_to("Frédéric de Villamil", 'http://fredericdevillamil.com')) %>
Powered by typo