Donnerstag, 1. Juli 2010


Topthema

Donnerstag, 24. November 2005 | Topthema

About Security #33: Die Firewall — Application Level Proxies

(Link zum Artikel: http://www.entwickler.de/entwicklerde/kolumnen/025500)

Ein Application Level Gateway besteht, wie in About Security #32 beschrieben, aus zwei TCP/IP-Stacks und einem oder mehreren diese verbindenden Proxies, die jeweils f�r ein bestimmtes Protokoll der Anwendungsschicht zust�ndig sind. Protokolle, f�r die kein Proxy vorhanden ist, k�nnen das Gateway nicht passieren. Es besteht jedoch die M�glichkeit, dass ein Angreifer eine Schwachstelle oder Fehlkonfiguration ausnutzt, um eine andere Software diese Funktion �bernehmen zu lassen und dar�ber ein eigentlich gesperrtes Protokoll zu verwenden. Insbesondere Software mit Routing-Funktionalit�t ist dabei gef�hrlich.

N E U ! Security aktuell
T�glich aktuelle Security-Infos!

Die Proxies

Es wird zwischen zwei Arten von Proxies unterschieden:

Application Level Proxies
sind f�r bestimmte Protokolle zust�ndig. Sie k�nnen die Befehle des Protokolls analysieren und kontrollieren. Au�erdem k�nnen sie zus�tzliche Funktionen zur Identifikation und Authentifizierung bereitstellen.
Circuit Level Proxies
sind generische Proxies, die f�r eine Vielzahl von Protokollen verwendet werden k�nnen. �ber diese auch als Port-Relays bezeichneten Proxies kann �ber einen definierten Port des Application Level Gateways eine Kommunikationsverbindung zu einer definierten IP-Adresse aufgebaut werden. Da die Verbindung �ber die Port-Nummer adressiert wird, kann nur eine einzige IP-Adresse das Ziel der Verbindung sein. Dadurch sind nur n:1-Verbindungen m�glich: Viele Systeme (d.h. IP-Adressen) auf der einen Seite des Application Level Gateways k�nnen eine Verbindung zu einem System (d.h. einer IP-Adresse) auf der anderen Seite aufbauen. Circuit Level Proxies arbeiten auf der Transportschicht. Sie analysieren den Inhalt der �ber sie abgewickelten Kommunikation nicht.
Beispiele f�r Application Level Proxies
HTTP-Proxy

Der HTTP-Proxy kontrolliert Verbindungen von und zu einem Webserver. Die Verbindung wird vom Client zum HTTP-Port des Application Level Gateways (meist TCP-Port 80) aufgebaut. Der HTTP-Proxy baut daraufhin (je nach Bedarf erst nach einer Identifikation und Authentifizierung des Benutzers) eine zweite Verbindung zum TCP-Port 80 des Webservers auf. Danach kann der Client �ber den HTTP-Proxy des Application Level Gateways mit dem Webserver kommunizieren.

Zur �berwachung der Kommunikation werden zwei Filter angewendet:

  • Der Befehlsfilter analysiert und �berpr�ft die verwendeten Befehle. Verbotene Befehle k�nnen dar�ber ausgefiltert werden.
  • Der Datenfilter analysiert und �berpr�ft die aufgerufenen URLs und zu �bertragenden Daten. Er kann einen Webserver vor bekannten sch�dlichen URLs, zum Beispiel den von W�rmern zur Verbreitung genutzten, sch�tzen. Auch die �bertragung verbotener Inhalte kann durch den Datenfilter unterbunden werden. Wird die Firewall zum Schutz von Client-Rechnern eingesetzt, k�nnen �ber den Datenfilter beispielsweise aktive Inhalte aus den �bertragenen Webseiten entfernt werden.

Ist eine Identifikation und Authentifizierung notwendig, k�nnen benutzerspezifische Regeln f�r die Filterung verwendet werden.

About Security: Die komplette Serie

Reauthentifizierung
Da das Protokoll HTTP zustandslos arbeitet, kann der HTTP-Proxy das Ende einer Session nicht von sich aus erkennen. Wird der HTTP-Proxy zur Authentifizierung verwendet, ist dies aber notwendig, damit sich der Benutzer nicht bei jedem Seitenaufruf erneut authentifizieren muss. Um dies Problem zu umgehen, wird nach der erfolgreichen Authentifizierung ein Timer gestartet, nach dessen Ablauf die Session f�r beendet erkl�rt und die Verbindung abgebaut wird. Jedes Mal, wenn eine Aktivit�t in der Session stattfindet, wird der Timer zur�ckgesetzt.

M�gliche Logfile-Eintr�ge
Ein HTTP-Proxy kann z.B. folgende Daten protokollieren:

  • IP-Adresse und Rechnername des Quell- und Zielsystems
  • Uhrzeit und Datum des Verbindungsauf- und -abbaus
  • ggf. Identifikationsdaten des Benutzers
  • Anzahl der �bertragenen Bytes
  • Name der �bertragenen Datei/Webseite
  • ggf. Informationen �ber gefilterte Befehle und Inhalte
FTP-Proxy

Der FTP-Proxy kontrolliert die Kommunikation �ber FTP. Wie beim HTTP-Proxy wird die Verbindung f�r den Befehlskanal vom Client zu Port 21 des Application Level Gateways aufgebaut. Nach einer eventuell erforderlichen Identifikation und Authentifizierung des Benutzers baut der FTP-Proxy eine zweite Befehlsverbindung zum TCP-Port 21 des FTP-Servers auf. Danach kann der Client �ber den FTP-Proxy des Application Level Gateways mit dem FTP-Server kommunizieren.

Wie beim HTTP-Proxy werden dabei ein Befehls- und ein Datenfilter angewandt, die die verwendeten Befehle beziehungsweise Daten analysieren und pr�fen. So kann beispielsweise dem Benutzer anonymous das Herunterladen bestimmter Dateitypen erlaubt und die Nutzung anderer Befehle verboten werden, w�hrend einem anderen Benutzer gezielt das Heraufladen von Dateien erlaubt wird.

Die m�glichen Logfile-Eintr�ge des FTP-Proxy sind die gleichen wie beim HTTP-Proxy.

In der n�chsten Folge wird das Thema Application Level Gateways mit der Beschreibung von SMTP-Proxies und Circuit Level Proxies abgeschlossen.

Wenn Sie Fragen oder Themenvorschl�ge haben, k�nnen Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!

Carsten Eilers

About Security � �bersicht zum aktuellen Thema "Firewall"

Kommentare

Folgende Links könnten Sie auch interessieren

  • Kommunikation unter Linux  [06.09.2006]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,257,.html]
  • Hardcore Java  [11.01.2005]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,323,.html]
  • Hardcore Java  [07.02.2005]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,327,.html]
  • Hardcore Java  [04.05.2004]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,283,.html]
  • Java Reflection in Action  [26.08.2005]
    [http://entwickler.de/zonen/portale/psecom,id,102,buch,447,.html]