Mittwoch, 20. August 2008

News

präsentiert von: entwickler.com
Donnerstag, 10. November 2005

About Security #31: Die Firewall – FTP-Verbindungen

Wie in der letzten Woche angekündigt, geht es im Security- Feature dieser Woche um die Filterung von FTP-Verbindungen sowie um zustandsorientierte Paketfilter.

FTP-Verbindungen
Im Gegensatz zu z.B. HTTP und HTTPS verwendet FTP zwei TCP-Verbindungen, je eine zur Übertragung der Befehle und der Daten. Für den Verbindungsaufbau gibt es zwei Methoden: aktiv und passiv.

Aktive Methode
Beim Aufbau einer FTP-Verbindung wählt der Client zwei beliebige Portnummern ab 1024, der Server empfängt Befehle über den definierten TCP-Port 21 und sendet die Daten über den definierten TCP-Port 20. Der Client baut zur Befehlsübertragung eine Verbindung zum Port 21 des FTP-Servers auf und teilt dem Server mit, über welchem Port er die Daten empfangen möchte. Der Server baut daraufhin zur Datenübertragung eine Verbindung von seinem Port 20 zum angegebenen Port des Clients auf.
Passive Methode
Der Client baut die Verbindung für die Befehlsübertragung zu TCP-Port 21 des FTP-Servers auf und teilt dem FTP-Server mit, dass er die passive Methode verwenden möchte. Daraufhin teilt der FTP-Server dem Client den Port mit, über den er die Daten senden wird. Der Client baut dann eine Verbindung zu diesem Port auf.
Notwendige Regeln für die Firewall vor einem FTP-Server bzw. -Client
Nr. Senderadresse Port Zieladresse Port Protokoll Verbindung Aktion

Befehlsübertragung
1. FTP-Client >= 1024 FTP-Server 21 TCP neu permit
2. FTP-Server 21 FTP-Client >= 1024 TCP bestehend permit
Datenübertragung
Aktive Methode
3. FTP-Server 20 FTP-Client >= 1024 TCP neu permit
4. FTP-Client >= 1024 FTP-Server 20 TCP bestehend permit
Passive Methode
5. FTP-Client >= 1024 FTP-Server >= 1024 TCP neu permit
6. FTP-Server >= 1024 FTP-Client >= 1024 TCP bestehend permit
About Security –
die Themen bisher:
  • Einführung (#1, 2, 3, 4)
  • Eine typische Schwachstelle: Der Pufferüberlauf (#5, 6, 7, 8, 9, 10)
  • Schwachstellen in Webanwendungen:
  • - SQL-Injection (#11, 12, 13)
    - Cross-Site Scripting (#14, 15)
    - Skriptcode einschleusen (#16)
    - HTTP Request Smuggling (#17, 18, 19, 20)
    - HTTP Response Splitting (#21, 22, 23, 24, 25)
    - Gefahren für Webanwendungen (#26)
  • Webserversicherheit (#27, 28)
  • Firewall (#29, 30)

Die aktive Methode hat für einen Paketfilter auf der Client-Seite den Nachteil, dass ein entfernter, nicht vertrauenswürdiger Rechner eine Verbindung zu einem nicht wohldefinierten Port auf dem Client aufbauen will. Ein zustandsloser Paketfilter müsste daher alle eingehenden Verbindungen von Port 20 an Ports ab 1024 akzeptieren, was ein riesiges Loch in die Firewall reißt. Aus Client-Sicht sollte deshalb die passive Methode bevorzugt werden.

Die Firewall auf der Server-Seite hat dafür bei der passiven Methode das Problem, dass ein entfernter, nicht vertrauenswürdiger Rechner eine Verbindung zu einem nicht wohldefinierten Port auf dem FTP-Server aufbauen will. Möchte man nur Verbindungen zu wohldefinierten Ports erlauben, kann der FTP-Server also nur die aktive Methode unterstützen.

Die Lösung dieses Problems sind zustandsorientierte Paketfilter: Wenn eine Verbindung für die Befehlsübertragung aufgebaut wird, erkennt der zustandsorientierte Paketfilter, dass nun der FTP-Client eine Verbindung zu dem vom FTP-Server bekannt gegebenen Port aufbauen wird. Eine temporär eingefügte Regel erlaubt dann den Aufbau der gewünschten Verbindung zum bekannt gegebenen Port für die Datenübertragung.

Zustandsorientierte Paketfilter
Zustandsorientierte Paketfilter (Stateful Inspection) berücksichtigen auch die Informationen der Anwendungsschicht. Die Status- und Kontextinformationen einer Kommunikationsbeziehung werden in Zustandsautomaten gespeichert. Während ein normaler Paketfilter von außen alle Pakete mit gesetztem ACK-Flag nach innen durchleitet, dürfen einen zustandsorientierten Paketfilter nur Pakete passieren, die zu einer bestehenden Verbindung gehören. D.h., es ist vorher ein zugehöriges Paket mit gesetztem SYN-Flag von innen nach außen durchgeleitet worden.

TCP-Verbindungsaufbau
Paket Gesetzte Flags

1. Verbindungsanfrage des Quellrechners SYN
2. Bestätigung der Anfrage vom Zielrechner SYN, ACK
3. Bestätigung vom Quellrechner ACK
4. Weiterer Datentransfer ACK

Dynamische Paketfilter
Bei verbindungslosen Protokollen wie UDP kann nicht festgestellt werden, welche Seite eine Verbindung aufgebaut hat. Dynamische Paketfilter sind eine Erweiterung normaler (statischer) Paketfilter: Sie protokollieren Senderadresse und -port sowie Zieladresse und -port ausgehender Pakete und können bei Bedarf ihre Filterregeln temporär ändern.

Anhand der gespeicherten Informationen über gesendete UDP-Pakete können sie erkennen, ob ein von außen kommendes UDP-Paket die Antwort auf eine zuvor gesendete Anfrage ist. Entsprechende temporäre Regeln lassen die erwarteten Pakete passieren, während nicht erwartete Pakete weiter durch die Standardregeln abgewiesen werden.

Reject oder Deny?
Für die Behandlung unerwünschter Pakete gibt es zwei Möglichkeiten: Reject und Deny. Reject ist eine aktive Ablehnung des Verbindungsaufbaus durch ein ICMP-Paket (Destination Unreachable). Deny ist das kommentarlose Verwerfen des Verbindungsaufbaus, sodass die Gegenseite erst durch ein Timeout erkennt, dass keine Verbindung aufgebaut werden konnte.

Während ein Angreifer problemlos eine Vielzahl von Portscans gleichzeitig starten und danach auf das Ergebnis warten kann, werden normale Benutzer durch das Warten auf ein Timeout behindert. Daher sollte Reject vorgezogen werden (s. z.B. [1]).

Nächste Woche wird das Thema Paketfilter abgeschlossen. Außerdem werden Application Level Gateways vorgestellt.

Carsten Eilers


Ihre Meinung ist uns wichtig!
Mobile Computing Heute & Morgen!
Nehmen Sie an unserer Umfrage zum Thema Mobile Computing in Deutschland teil und nutzen Sie die Chance eine Casio Exilim EX-Z1050-Digitalkamera zu gewinnen!

Konferenzen

BASTA! 2008

BASTA! 2008

22.-26. September 2008
Rheingoldhalle, Mainz

SQLCON 2008

SQLCON 2008

22.-26. September 2008
Rheingoldhalle, Mainz

IPC 2008

IPC 2008

27.-31. Oktober 2008
Rheingoldhalle, Mainz

AJAX IN ACTION 2008

AJAX IN ACTION 2008

28.-31. Oktober 2008
Rheingoldhalle, Mainz

EKON 12

EKON 12

28.-31. Oktober 2008
Congress Centrum, Mainz

W-JAX 2008

W-JAX 2008

3.- 7. November 2008
ArabellaSheraton Hotel München

SOACON 2008

SOACON 2008

3.- 7. November 2008
Arabella Sheraton Hotel, München

JAX Asia 2008

JAX Asia 2008

25.-28. November 2008
Singapore, Kuala Lumpur, Jakarta

Werbung
Top-Jobs

OLYMPUS EUROPA Holding GmbH

Web-Entwickler (m/w)

Software & Support Verlag GmbH

Volontär (w/m) Redaktion, Vollzeit

Hueber Verlag GmbH & Co. KG

Webdesigner/ Webprogrammierer (m/w)

Gebit Solutions

Java Profis gesucht (m/w)

Magazine

Entwickler Magazin - Enterprise Technologies & Business Solutions

Entwickler Magazin

Enterprise Technologies & Business Solutions

dot.net magazin - die unabhängige Quelle für .NET-Technologien

dot.net magazin

Die Quelle für .NET-Technologien

Eclipse Magazin

Eclipse Magazin

Weltweit erstes Magazin für Eclipse-Entwickler

Java Magazin - Internet & Enterprise Technology

Java Magazin

Internet & Enterprise Technology

CREATE OR DIE - Ein Leben für die Kreativität

CREATE OR DIE

Ein Leben für die Kreativität

Business Technology - Management Magazin

Business Technology

Management Magazin

PHP Magazin - Professional PHP Development

PHP Magazin

Professional PHP Development

Bücher


hosted by HostEurope