Nehmen wir an, Sie haben Geburtstag, feiern eine Party und bekommen Besuch von guten Freunden. Die Musik kommt an, die Stimmung ist gut und alles ist super. Leider haben Sie außer ein paar Snacks nichts Essbares im Haus … und Ihre Freunde bekommen Hunger!
Als guter Gastgeber übernehmen Sie natürlich die Organisation der Bestellung beim nächsten Pizza-Service. Zunächst nehmen Sie alle gewünschten Menüs entgegen und notieren sie sich – warum will Torsten eigentlich immer »mit extra viel Knoblauch«? Egal, heute ist Party angesagt, und jeder bekommt das, was er möchte. Sie rufen beim Pizza-Service an und bestellen alle Gerichte auf Ihren Namen und Ihre Adresse. Es dauert nicht lange und der Pizza-Lieferant steht vor Ihrer Tür. Sie öffnen, nehmen den Stapel Pizzas entgegen und bezahlen ihn mit großzügigem Trinkgeld, weil es besonders schnell ging und Ihnen der Typ irgendwie sympathisch ist. Unnötig zu erwähnen, dass die Party ein voller Erfolg wird …
Warum genau erzählen wir Ihnen das? Ganz einfach: Sie sind ein Proxy! Zumindest gewesen … an Ihrem (fiktiven) Geburtstag. Was hat der Pizza-Service registriert? Eine Bestellung, die von Ihnen ausging. Der Lieferant wurde von Ihnen begrüßt, Sie haben die Pizzas entgegengenommen und bezahlt. Weder der Lieferant noch der Pizza-Service selbst haben auch nur einen Ihrer Gäste kennengelernt oder auch nur wahrgenommen. So geht Proxy!
»Proxy« steht für Stellvertreter. Als Stellvertreter im Internet nimmt ein Proxy-Server Anfragen seitens der Proxy-Clients entgegen und leitet diese in eigenem Namen an das Ziel (in der Regel den Ziel-Webserver) weiter. Dieser »denkt«, er kommuniziere mit dem Proxy, und antwortet diesem. Dass der Proxy die Antwort an seinen Client zurückliefert, weiß der (Web-)Server nicht.
Damit erreicht der Client eine gewisse Anonymität. Allerdings gibt es dabei einiges zu beachten. Daher müssen wir uns das mal im Folgenden genauer anschauen.
Grundlagen – so arbeiten Proxy Server
Vielleicht war die erste Frage, die Ihnen bei diesem Thema eingefallen ist, die folgende: »Wo liegt eigentlich der Unterschied zwischen Network Address Translation (NAT) und einer Proxy-Kommunikation?« Gut, dass Sie fragen! Kurz erklärt, liegt der Hauptunterschied darin, dass ein NAT-Device lediglich die Absender-Adresse im Feld Source IP Address des IP-Headers austauscht, aber das Paket ansonsten nicht anrührt. Die Kommunikation findet nach wie vor direkt zwischen dem Client und dem Server irgendwo im Internet statt.
Dagegen gibt es bei Verwendung eines Proxys zwei Verbindungen: eine vom Proxy-Client zum Proxy-Server und die zweite vom Proxy-Server zum eigentlichen Ziel der Kommunikation. Wir können also sagen, dass der Proxy-Server »Man-in-the-Middle« spielt, ein Konzept, das auch für viele Angriffsszenarien genutzt wird. Der Proxy-Server kann jetzt nämlich diverse Funktionen erfüllen:
- Anonymität sicherstellen: Nach außen tritt nur der Proxy-Server auf, der Client bleibt für den Kommunikationspartner im Internet verborgen.
- Den Client abschirmen: Wird der Proxy angegriffen und kompromittiert, so ist der Client nach wie vor zunächst geschützt. Allerdings gilt dies nur so lange, wie der Proxy-Server nicht für einen Angriff auf die Clients verwendet wird.
- Vor Malware schützen: Proxy-Server – insbesondere Web-Proxys – beherrschen oftmals das Content- und Virenscanning, sodass die Inhalte, die vom Server im Internet geliefert werden, zunächst überprüft werden können. Damit kann der Proxy-Server prüfen, ob die Inhalte ungefährlich sind, und unerwünschte Inhalte herausfiltern.
- Logging: Der Proxy-Server kann jede Kommunikation protokollieren und ermöglicht damit die Nachverfolgung. In vielen Unternehmen ist dies eine obligatorische Maßnahme.
Ja, so ein Proxy Server ist schon eine tolle Sache! Allerdings ist er auch ein zweischneidiges Schwert: Nutzen Sie einen Proxy, hat sein Betreiber nahezu die volle Kontrolle über Ihre Sitzung mit dem Zielserver: Er kann die Kommunikation mitschneiden, protokollieren und ggf. auch modifizieren.
Auch Proxys, die SSL/TLS-Verschlüsselung (also HTTPS) anbieten, sind nicht per se vertrauenswürdig, da sie als Man-in-the-Middle die Verbindung zwischen Client und Server unterbrechen und in zwei Verbindungen aufbrechen. Das bedeutet, der Client baut eine SSL/TLS-Verbindung zum Proxy auf, dieser entschlüsselt die Daten und verschlüsselt sie in seiner eigenen Verbindung zum Server erneut. Während der Verarbeitung der Daten zwischen den zwei Verbindungen liegen diese unverschlüsselt vor.
Einen Proxy Server nutzen
Es gibt zwei grundsätzliche Arten von Proxys:
- Normale Proxy Server, die die Verbindung auf Anfrage des Clients entgegennehmen und als eigene Verbindung weiterleiten
- Transparente Proxy Server, bei denen der Client nicht weiß, dass zwischen ihm und dem Zielsystem noch ein Proxy steht, der die Verbindung für ihn übernimmt
Während beim transparenten Proxy keine Konfiguration auf dem Client notwendig ist, müssen normale Proxys explizit auf dem Client konfiguriert werden. Dies bedeutet, dass der Client proxyfähig sein muss. Das ist nicht selbstverständlich, es gibt durchaus diverse Anwendungen, die nicht in der Lage sind, Proxys zu nutzen.
Das wohl typischste Beispiel für die Verwendung eines Proxy-Servers ist die Web-Kommunikation via Browser. Jeder gängige Browser unterstützt Proxy-Einstellungen.
Wie in der Abbildung zu sehen, können Sie für verschiedene, vom Browser unterstützte, Kommunikationsprotokolle (Ports) bei Bedarf unterschiedliche Proxy-Einstellungen vornehmen, wobei lokale Adressen normalerweise im Feld KEIN PROXY FÜR ausgenommen werden sollten. Beachten Sie, dass die Festlegung eines Proxys die folgenden Informationen benötigt:
- IP-Adresse des Proxy-Servers
- Port-Nummer des Proxy-Servers (typische Portnummern sind 3128 und 8080)
- optional: Authentifizierung mittels Benutzername/Kennwort
Erfordert der Proxy eine Authentifizierung, erscheint in den meisten Fällen (Ausnahme: Windowsinterne Authentifizierung) ein Popup-Fenster mit der Aufforderung, Benutzername und Kennwort einzugeben.
Dieser Artikel ist ein Auszug aus dem Buch „Hacking“ von Eric Amberg und Daniel Schmid. Alle Infos zum Buch, das Inhaltsverzeichnis und eine kostenlose Leseprobe findet ihr bei uns im Shop.
