Forward Proxy
Vermittler für ausgehende Anfragen
Die Idee und ihr Nutzen
Die Server im Rechenzentrum einer Versicherung brauchen nur wenige Verbindungen ins Internet: zum Wetterdienst, zur Bank für Zahlungsdateien und zu den Update-Servern, von denen sie Sicherheitsupdates laden. Statt dass jeder Server direkt ins Internet darf, schickt er seine Anfragen an einen gemeinsamen Vermittler. Der Vermittler prüft, ob das Ziel auf einer Freigabeliste steht, der Liste aller erlaubten Ziele wie dem Wetterdienst, leitet erlaubte Anfragen weiter und weist alle anderen ab. Übernimmt ein Angreifer einen Server, kann die Schadsoftware des Angreifers von dort deshalb keine Kundendaten an eine beliebige Adresse im Internet schicken. Ein solcher Vermittler für ausgehende Anfragen heißt Forward Proxy, auf Deutsch etwa vorgeschalteter Stellvertreter, kurz Proxy. Der Name meint: Der Proxy stellt die Anfragen ins Internet stellvertretend für die Server im Rechenzentrum.
Wie funktioniert es?
Der Beitragsrechner, ein Server im Rechenzentrum, fragt beim Wetterdienst das Hagelrisiko ab. Die Firewall, der Filter an der Netzgrenze, sperrt direkte Verbindungen ins Internet, deshalb schickt der Beitragsrechner die Anfrage an den Proxy. Der Proxy prüft das Ziel und findet den Wetterdienst auf der Freigabeliste. Der Proxy baut selbst die Verbindung zum Wetterdienst auf und protokolliert sie. Der Wetterdienst antwortet, und der Proxy reicht die Antwort mit dem Hagelrisiko an den Beitragsrechner zurück. Eines Tages übernimmt ein Angreifer über eine Sicherheitslücke einen anderen Server im Rechenzentrum, den befallenen Server. Die Schadsoftware auf dem befallenen Server versucht, über den Proxy Kundendaten an eine unbekannte Adresse im Internet zu senden. Die unbekannte Adresse steht nicht auf der Freigabeliste, und der Proxy weist die Verbindung ab. Der Proxy meldet den gesperrten Versuch an die „Überwachung“, ein Programm, das solche Meldungen sammelt und das Betriebsteam benachrichtigt. Das Betriebsteam nimmt den befallenen Server vom Netz, bevor die Schadsoftware weitere Ziele ausprobiert.
Das Rechenzentrum der Versicherung ist ein eigenes Netz, das an einer Netzgrenze mit dem Internet verbunden ist. Über die Regeln an der Netzgrenze entscheidet das Betriebsteam der Versicherung, nicht die Teams der einzelnen Anwendungen. Der Proxy stellt Anfragen ins Internet stellvertretend für die Server und Arbeitsplätze im eigenen Netz. Die Server und Arbeitsplätze heißen dabei Clients, weil sie etwas anfragen. Die Clients sind so eingestellt, dass sie jede Anfrage ins Internet an den Proxy schicken statt direkt an das Ziel. Die Firewall sperrt die direkten Verbindungen der Clients nach außen, damit niemand den Proxy umgehen kann. Nur der Proxy selbst darf ins Internet. Der Proxy prüft bei jeder Anfrage, ob das Ziel auf der Freigabeliste steht und ob genau dieser Client das Ziel erreichen darf. Der Beitragsrechner darf zum Beispiel den Wetterdienst erreichen, aber nicht die Bank. Auf der Freigabeliste stehen die Adressen des Wetterdienstes, der Bank und der Update-Server. Der Proxy protokolliert alle Zugriffe. Der Proxy kann außerdem häufig abgerufene Inhalte wie Softwarepakete zwischenspeichern und Inhalte auf Schadsoftware prüfen.
Bei verschlüsselten Verbindungen sieht der Proxy nur, an welche Adresse die Verbindung geht, nicht aber ihren Inhalt. Verschlüsselt sind zum Beispiel alle Verbindungen über das Webprotokoll https. Will der Proxy auch den Inhalt prüfen, muss er die Verschlüsselung aufbrechen und neu aufbauen. Der Proxy garantiert deshalb nicht, dass keine Daten abfließen: Er verhindert Verbindungen zu Zielen, die nicht auf der Freigabeliste stehen, prüft aber ohne Aufbrechen nicht, was über eine erlaubte Verbindung gesendet wird. Eine Verbindung, die gar nicht über den Proxy läuft, erfasst er ebenfalls nicht.
Antwortet ein erlaubtes Ziel wie der Wetterdienst nicht, meldet der Proxy dem Beitragsrechner einen Fehler bei der Verbindung. Diese Meldung ist von einer Abweisung wegen der Freigabeliste zu unterscheiden: Im ersten Fall ist das Ziel gestört, im zweiten hat der Proxy die Anfrage gar nicht weitergeleitet.
Forward Proxy: erlaubte Ziele durch, Datenabfluss gesperrt
Wann ist es sinnvoll und wann nicht?
Ein Forward Proxy lohnt sich
- Ausgehende Verbindungen aus einem Unternehmensnetz müssen kontrolliert werden. Ohne zentralen Vermittler darf jeder Server selbst Verbindungen ins Internet aufbauen, und die Versicherung kann kaum steuern, welche Ziele erreichbar sind. Übernimmt ein Angreifer einen Server, kann seine Schadsoftware Kundendaten ungehindert an einen beliebigen Rechner im Internet schicken.
- Zugriffe müssen nachvollziehbar sein. Die Versicherung ist als Unternehmen der Finanzbranche verpflichtet, ihre Kundendaten zu schützen und Zugriffe nachvollziehbar zu machen. Das Protokoll des Proxys zeigt, welcher Server wann welche Adresse angesprochen hat. Darin steht zum Beispiel jede Abfrage des Hagelrisikos durch den Beitragsrechner. Ohne dieses Protokoll lässt sich nach einem Vorfall nicht rekonstruieren, ob und wohin Daten abgeflossen sind.
- Die Server brauchen nur wenige, bekannte Ziele im Internet. Die Freigabeliste enthält dann nur Wetterdienst, Bank und Update-Server, und das Betriebsteam muss sie selten ändern. Ohne Proxy müsste das Betriebsteam jedes dieser Ziele für jeden Server einzeln in der Firewall freigeben.
- Die Ziele im Internet sollen keine Hinweise auf den Aufbau des eigenen Netzes erhalten. Ohne Proxy sieht jedes Ziel die Adresse jedes einzelnen Servers. Mit dem Proxy sehen der Wetterdienst und die Bank als Absender nur die Adresse des Proxys. Leitet der Proxy aber Zusatzangaben weiter, können diese Zusatzangaben doch Hinweise auf den ursprünglichen Client enthalten. Solche Zusatzangaben stehen zum Beispiel in den Kopfzeilen einer Webanfrage.
- Häufig benötigte Inhalte wie Softwarepakete sollen nur einmal aus dem Internet geladen und intern mehrfach verteilt werden. Ohne Proxy lädt jeder Server dasselbe Sicherheitsupdate selbst aus dem Internet. Lädt der erste Server ein Sicherheitsupdate, speichert der Proxy das Paket, und alle weiteren Server erhalten es vom Proxy statt aus dem Internet.
Ein Forward Proxy ist nicht das Richtige
- Der Proxy soll der einzige Schutz sein. Das kann er nicht, weil er weder Daten erfasst, die über eine erlaubte Verbindung gesendet werden, noch Verbindungen, die gar nicht über den Proxy laufen. Dann ergänzt das Betriebsteam den Proxy um weitere, voneinander unabhängige Schutzmaßnahmen nach dem Ansatz Defense in Depth. Beispiele sind Sicherheitsupdates auf jedem Server, damit ein Angreifer gar nicht erst einen Server übernimmt, und eine Firewall, die jede Art von direkter Verbindung nach außen sperrt. Der Proxy bleibt darin die Schutzmaßnahme für ausgehende Verbindungen.
- Ein einzelnes Programm soll nur seine eigenen ausgehenden Aufrufe absichern oder mit Wiederholungen und Zeitgrenzen versehen. Der Proxy prüft die Ziele für alle Server gemeinsam; Wiederholungen und Zeitgrenzen für ein einzelnes Programm gehören nicht zu seinen Aufgaben. Dann installiert das Team dieses Programms einen Ambassador, ein Hilfsprogramm auf demselben Rechner, das die ausgehenden Aufrufe dieses einen Programms übernimmt. Zeitgrenzen und Wiederholungen stellt das Team selbst in der Einstellungsdatei des Ambassadors ein. Das Programm schickt seine Aufrufe dann an den Ambassador, und der Ambassador schickt sie wie bisher über den Proxy ins Internet.
- Server brauchen ständig wechselnde, nicht vorhersehbare Ziele im Internet. Eine Freigabeliste lässt sich dann kaum pflegen und wird so weit gefasst, dass sie kaum noch etwas sperrt. Dann bringt das Betriebsteam diese Server in einem eigenen, abgetrennten Netzbereich unter, aus dem sie direkt ins Internet dürfen, und trennt diesen Netzbereich von den Servern mit Kundendaten. Eine Freigabeliste, die niemand aktuell halten kann, entfällt.
- Nur sehr wenige Server brauchen Ziele mit festen Adressen, und weder ein Protokoll der einzelnen Webanfragen noch ein Zwischenspeicher ist nötig. Dann gibt das Betriebsteam in der Firewall an der Netzgrenze die Verbindungen dieser Server zu einzelnen Adressen direkt frei. Ein Proxy, den das Betriebsteam betreiben, absichern und aktualisieren muss, entfällt.
Nachteile und typische Fehler
Alle Verbindungen nach außen laufen über den Proxy. Fällt der Proxy aus, erreicht kein Server mehr das Internet. Deshalb laufen meist mehrere Exemplare desselben Proxys mit derselben Freigabeliste auf verschiedenen Servern. Fällt ein Exemplar aus, leiten die übrigen Exemplare die Anfragen weiter, weil jedes Exemplar nach denselben Regeln prüft. Die Freigabeliste braucht laufende Pflege: Jedes neue Ziel, etwa ein zusätzlicher Partnerdienst, muss beantragt und eingetragen werden. Das Aufbrechen verschlüsselter Verbindungen verlangt, dass alle Clients der vom Proxy neu aufgebauten Verschlüsselung vertrauen. Außerdem sieht der Proxy dann auch private Daten von Mitarbeitern im Klartext, was datenschutzrechtlich heikel ist. Programme, die nur ein ganz bestimmtes Zertifikat ihres Ziels annehmen, also nur einen bestimmten digitalen Ausweis des Ziels, brechen die Verbindung über einen solchen Proxy ab. Der Proxy wird zudem selbst zu einem lohnenden Angriffsziel, weil er alle ausgehenden Verbindungen sieht. Der Proxy muss deshalb gehärtet und regelmäßig aktualisiert werden. Gehärtet heißt, dass auf dem Proxy nur die nötigsten Dienste laufen und er nur die nötigsten Rechte hat.
Typische Fehler und woran man sie erkennt:
- Umgehung über direkte Verbindungen: Die Firewall sperrt nur direkte Webverbindungen nach außen, aber nicht jede andere Art von Verbindung. Die Schadsoftware auf dem befallenen Server sendet die Kundendaten über eine solche andere Verbindung direkt an die unbekannte Adresse, am Proxy vorbei. Erkennbar ist das an ausgehenden Verbindungen in den Protokollen der Firewall, die nicht vom Proxy stammen.
- Zu strenge Regeln: Ein Team beantragt ein dienstlich benötigtes Ziel für die Freigabeliste und wartet wochenlang auf die Freigabe. Mitarbeiter weichen in der Zwischenzeit auf private Mobilfunkverbindungen an ihrem Arbeitsplatz oder auf nicht genehmigte Ausnahmen aus und umgehen so den Proxy. Erkennbar ist das an vielen abgewiesenen Anfragen zu dienstlich benötigten Zielen und an wachsenden Listen von Ausnahmen.
- Falsch eingestellte Programme: Ein Programm kennt den Proxy nicht und versucht, direkt ins Internet zu gehen. Seine Verbindungen scheitern an der Firewall, oft erst nach einer langen Wartezeit. Erkennbar ist das an Zeitüberschreitungen nach der Inbetriebnahme neuer Programme oder nach einem Update.
- Zu weit gefasste Freigabe: Auf der Freigabeliste steht ein Eintrag, der ganze Bereiche erlaubt, etwa alle Adressen eines großen Speicherdienstes im Internet. Der Angreifer richtet sich bei diesem Speicherdienst einen eigenen Speicherplatz ein. Die Schadsoftware auf dem befallenen Server lädt die Kundendaten dorthin hoch, und der Proxy leitet die Verbindung weiter, weil die Adresse auf der Freigabeliste steht. Erkennbar ist das an ungewöhnlich großen Datenmengen zu einem erlaubten Ziel.
Weiterführend
Verwandte Ansätze
- Reverse Proxy: das Gegenstück, das eingehende Anfragen aus dem Internet stellvertretend für die eigenen Server annimmt.
- Zero Trust: prüft jeden Zugriff einzeln anhand von Identität und Regeln. Ein Forward Proxy kann ausgehende Zugriffe auf diese Weise prüfen.
Werkzeuge und Umsetzungen
- Squid: verbreiteter Forward Proxy mit Zugriffsregeln, Zwischenspeicher und Protokollierung.
- Tinyproxy: Proxy mit geringem Speicherbedarf für kleine Umgebungen.
- Privoxy: Proxy mit Filtern für Inhalte, etwa gegen Werbung und Nutzerverfolgung. Privoxy eignet sich eher für Arbeitsplätze als für Server.
- Envoy: Proxy, der auch ausgehende Verbindungen mit Regeln je Ziel vermitteln kann.
Quellen
- IETF: RFC 9110, HTTP Semantics: Standard des Webprotokolls HTTP, der in Abschnitt 3.7 den Proxy als Vermittler beschreibt, den der Client selbst über seine Einstellungen auswählt, und ihn vom Tunnel unterscheidet, der verschlüsselte Verbindungen unverändert durchreicht.
- Squid: Access Controls in Squid: Dokumentation eines verbreiteten Forward Proxys, die zeigt, wie Regeln nach Absender und Zieladresse festlegen, welche Anfragen erlaubt oder abgewiesen werden.