FTP – File Transfer Protocol
Allgemein
Da es das FTP seit 1971 gibt ist das älteste und solideste Protokoll des Internets. An den Übertragungsmechanismen hat sich seit 1985 nichts geändert.
Es dient dem Dateitransfer zwischen verschiedenen Systemen und der einfachen Dateihandhabung. Mittels des Client-Server-Prinzip erzeugt das FTP eine Verbindung zwischen Client und Server. FTP Verzeichnisse können auch angelegt und ausgelesen werden, auch können Verzeichnisse und Dateien umbenannt und gelöscht werden.
Das FTP basiert auf das TCP-Protocol. Es kennt Binärdaten und die Übertragung zeichencodierter Information.
Der Steuerkanal (command Channel), über Port 21, ist die erste Verbindung. Der Port 21 dient ausschließlich zur Übertragung von FTP-Kommandos und die dazu gehörigen Antworten. Der Datenkanal (data channel), über Port 20, ist die zweite Verbindung. Der Port 20 dient ausschließlich zur Übertragung von Daten. Server und Client tauschen über den Steuerkanal Kommandos aus, die eine Datenübertragung über den Datenkanal einleiten und beenden.
Aufgebaut wird der Steuerkanal von Client und der Datenkanal vom Server initiiert. Sobald sich der Client hinter einer Firewall oder einem NAT-Router befindet, kommt keine Verbindung zustande, da sie abgeblockt wird.
Active Mode
Der Client kontaktiert den Server über den Port 21 (Command). Es wird die Portnummer, mit der der Server die Datenverbindung (Data) herstellen kann, übermittelt. Danach nimmt der Server den Kontakt, zu diesem Port, an und eine FTP-Verbindung ist hergestellt.
Passive Mode
Die vom Server initiierte Datenverbindung (Data) kommt meist nicht zustande, da der Client in der Regel hinter einer Firewall sitzt. Diese Firewall verhindert alle aktiven Verbindungen, die von außerhalb kommen. Aus diesem Grund wurde der Passive Mode eingeführt. Somit sind die Clients, hinter einer Firewall, in der Lage FTP-Verbindungen herzustellen.
Der Client bekommt vom Server eine Portnummer, nachdem die Verbindung zu Port 21 steht. Da die Verbindung vom Client initiiert wird, wird die Verbindung nicht mehr von der Firewall verhindert. Hier wird auch der Port 20 nicht mehr gebraucht.
FTP-Verbindung
Vor jeder Verbindung muss der Benutzer sich authentifizieren. Dann erfolgt der Aufbau des Steuerkanals über Port 21 und des Datenkanals über Port 20. Sobald alle Datenübertragungen abgeschlossen sind, wird die Verbindung durch den Benutzer getrennt oder der Server (Timeout) trennt sie.
Beim FTP-Protocol gibt es zwei Übertragungsmodi, den ASCII-Modus und den Binary-Modus. Beide unterscheiden sich in der Art der Codierung.
Zur Übertragung von reinen Text-Dateien wird der ASCII-Modus genutzt. Die Zeilenstruktur des Textes muss hier umcodiert werden, indem der Zeichensatz, der Datei, an das Zielsystem angepasst wird.
Beim Binary-Modus werden die Dateien byteweise übertragen, ohne dass die Daten geändert werden. Wie schon gesagt, baut das FTP auf das TCP-Protocol auf. Dieses übernimmt die volle Fehlerkontrolle. Bei einem Verbindungsabbruch kommt es aber durch die FTP-Spezifikation zu einer Wiederaufnahme der unterbrochenen Übertragungen. Da die Header der Datenpakete Restart-Markierungen, ist diese Wiederaufnahme möglich. Bei der Wiederaufnahme durch den Client, werden die Markierungen vom Server und Client abgeglichen, stimmen diese überein, kommt zur besagten Wiederaufnahme.
Anonymous-FTP
Das ist eine Besonderheit vom FTP, nämlich der freie Zugriff für alle Besucher. Es arbeitet Anmelde-orientiert. So kann sich jeder Besucher mit dem Benutzernamen „anonymous“ einloggen, das Passwort ist frei zu wählen. Ist die Anmeldung geglückt, dann kann man sich als Besucher frei in der Verzeichnisstruktur bewegen. Das Löschen von Daten ist allerding nicht möglich. Über das „incomming“-Verzeichnis ist auch der Upload von Daten möglich und der Download ist jederzeit möglich.
FTP-Befehle
Diese Befehle gibt es für das
Senden und Empfangen,
Löschen und Umbenennen von Dateien,
das Einrichten, Löschen und Wechseln von Verzeichnissen.
So findet die Kommunikation, zwischen Client und Server, mittels Austausch von textbasierten Kommandos statt. Einfach gesagt, ist der Client ein Terminal Programm, über das der Benutzer mit dem Server kommuniziert. Mittlerweile werden Programme verwendet, die mehr Komfort bieten, z.B. es findet eine Unterscheidung zwischen Text-Dateien und Binär-Dateien statt. Anhand einer Datei-Endung erkennt ein ‚guter’ Client den Datei-Typ und kann somit automatisch den richtigen Übertragungsmodus einleiten.
Angriffe auf das FTP
Passiver/Aktiver Angriff
Ist das FTP im Passive Mode, probiert der Angreifer die Portnummer auf der Serverseite zu erraten. Schafft er dies, hat er die Möglichkeit, so wie der richtige Client eine Verbindung zu diesem Port aufzubauen. Der Server merkt nicht, dass er Daten an zwei Clients über einen Port schickt.
Für den Angreifer ist es nicht schwer die Portnummer zu erraten. Durch das gewohnte öffnen einer FTP-Verbindung, bringt er die Portnummer des Datenkanals auf dem Server in Erfahrung. Portnummern werden in direkt aufsteigender Reihenfolge vergeben, so ist es nicht schwer die darauf folgenden zu erraten.
Ähnlich wird auch der Angriff im Aktive Modus durchgeführt.
Bounce Attack
Dieser Angriff ist durch das FTP Kommando PORT möglich. Der Angreifer sendet mit diesem Befehl die IP-Adresse und den Port des Rechners, der angegriffen werden soll, an einen Server. So ist es möglich den Server zu veranlassen eine Datei mit Kommandos an den entsprechenden Rechner zu senden. Dieser Angriff wird auch Tunneln genannt und ist schwer zurück zu verfolgen, da der Angreifer nicht direkt, sondern über einen anderen Rechner arbeitet.
Angriffe durch Anonymous-FTP
Wenn das Anonymous-FTP Schreibzugriffe erlaubt, ist es einem Angreifer möglich Dateien in diesem Bereich zu schreiben, die ihm später ein Login verschaffen. So kann er sich als FTP auf dem Server einloggen und erlangt Zugriffsrechte eines Administrator.
Weitere Probleme können entstehen, wenn sich in diesem Bereich Passwortdateien befinden, die ungehindert von jedem Benutzer herunter geladen werden können.
Schutz vor Angriffen auf das FTP
Es sollte stets auf eine korrekte Konfiguration geachtet werden, denn dies verhindert ungewollte Zugriffe auf private Dateien. Fehlerkonfigurationen ermöglichen einem Angreifer, die Datei mit den verschlüsselten Passwörtern aller Benutzer, auf seinen Rechner zu laden. Auf dem Server sollten nur verschlüsselte Daten stehen, die keinen direkten Zugriff auf den FTP-Server ermöglichen. Eine Firewall bietet Schutz, kann aber nicht alle Angriffe abwehren.