Zusammenfassung

  • Der FTP-Standard von 1985 trennte Steuerung und Datentransport. Mit PORT konnte ein Client einen anderen Datenendpunkt angeben und zwei Server direkt Dateien austauschen lassen.
  • RFC 2577 beschrieb 1999, wie ein solcher Endpunkt einen FTP-Server auch zu einem fremden Netzdienst schicken konnte.

Zwei Lagerhäuser sollen eine Kiste austauschen. Der Auftraggeber sitzt an einer langsamen Leitung. Die Kiste erst zu ihm und dann zum zweiten Lager zu bringen, wäre ein logistischer Witz. FTP ließ die Lager direkt miteinander reden. Nur durfte der Auftraggeber den Zielort auf den Frachtbrief schreiben. Sobald dort die Adresse eines fremden Dienstes stand, fuhr ein Server mit seiner eigenen Netzadresse zu einer Tür, die ihn nie bestellt hatte.

RFC 959 vom Oktober 1985 beschrieb dafür zwei getrennte Verbindungen: eine für FTP-Befehle und eine für Daten. Der Client konnte mit zwei FTP-Servern Steuerverbindungen halten. Einer wartete auf den Datentransport, der andere stellte die Verbindung her. Mit PORT gab der Client einen alternativen Datenport an. Die Spezifikation erwähnt einen fremden Host und sogar einen entfernten Zeilendrucker. Das direkte Verfahren sparte dem Client den Umweg über seine eigene Leitung.

Die Trennung teilte aber auch die Verantwortung auf. Der Client bestimmte die Adresse; der Server öffnete die Verbindung. Bei einer vorgesehenen Übertragung an einen zweiten FTP-Server gehörte die Adresse zu diesem Partner. Wenn ein Server jeden beliebigen Endpunkt akzeptierte, konnte der Client ihn ebenso zu einem anderen Dienst schicken. Für diesen Dienst erschien der FTP-Server als Besucher. Wer die Reise angeordnet hatte, saß weiterhin an der Steuerverbindung.

Ein RFC von Steve Bellovin aus dem Februar 1994 zeigte die Firewallseite derselben Architektur. Beim aktiven FTP rief der Server einen Port des Clients an. Paketfilter lassen solche unerwarteten eingehenden Verbindungen ungern durch. Bellovin empfahl PASV: Der Server wartet, der Client startet die Datenverbindung nach außen. Ein vorgeschlagenes APSV sei ihm damals nicht als Implementierung bekannt gewesen. Wer den ersten Verbindungsversuch unternimmt, war damit eine praktische Frage für beide Netzgrenzen.

Im September 1998 erweiterte RFC 2428 FTP für IPv6 und Adressübersetzer. EPRT bezeichnet die Adressfamilie, Netzwerkadresse und TCP-Port eines Datenendpunkts; EPSV ist die passive Variante. EPSV ALL legt eine Sitzung auf Übertragungen zwischen zwei Beteiligten fest. Wer danach einen Transfer über drei Beteiligte braucht, muss eine neue Sitzung beginnen. Das Adressfeld konnte nun mehr Netze beschreiben. Aus einem technisch gültigen Endpunkt wurde dadurch noch keine vom Betreiber gebilligte Lieferadresse.

Der RFC 2577 vom Mai 1999 legte den Missbrauch offen: den Bounce-Angriff. Ein Client konnte in PORT die Adresse und den Port eines Dienstes auf einer dritten Maschine schreiben und den FTP-Server anschließend Daten dorthin senden lassen. Verstand der Dienst diese Daten als Befehle, hatte der Server für den Auftraggeber geklopft. Als Beispiel nennt das Dokument eine Datei mit SMTP-Befehlen, die der FTP-Server an einen fremden Maildienst übermitteln konnte. Der eigentliche Auftraggeber brauchte zu diesem Maildienst keine eigene Verbindung.

Die vorgeschlagenen Schutzmaßnahmen hatten Grenzen. RFC 2577 empfahl, Datenverbindungen zu TCP-Ports unter 1024 abzulehnen und auf einen entsprechenden PORT-Befehl mit 504 zu antworten. Dienste oberhalb dieser Grenze blieben erreichbar. Dateirechte konnten verhindern, dass ein Client Befehlsmaterial hochlädt und später weiterschickt. PORT ganz zu deaktivieren kappte auch die nützliche direkte Übertragung zwischen Servern. Die meisten gewöhnlichen Dateiübertragungen gingen mit PASV, schrieben die Autoren. Der Betreiber musste den Preis der Sonderfunktion gegen die Kontrolle über sein eigenes Fahrzeug halten.

Die Geschichte ist kein Triumphzug einer einzelnen Ersatztechnik. 1985 gewann FTP eine schnelle Abkürzung, 1994 wurde die Richtung der Verbindung zum Firewallthema, 1998 änderten sich die Adressformate, 1999 stand die Vollmacht auf dem Frachtbrief im Mittelpunkt. Ein Server kann viel transportieren. Wer seine nächste Tür aussucht, entscheidet über mehr als den Weg einer Datei.