Sicherheitsloch gefährdet FTP-Server unter Unix

Eine gravierende Sicherheitslücke bei FTP-Servern haben die COVERT Labs von Networks Associates entdeckt. Angreifer können sich auf den betroffenen Systemen über das Ausnutzen von Buffer Overflows Root-Rechte verschaffen. Einem Defacing oder dem Zerstören von Daten steht dann nichts mehr im Wege.

Neben den FTP-Daemons von Systemen unter Sun Solaris 8, HP-UX 11 und SGI Irix 6.5.x zeigen sich auch die FTP-Implementationen aller BSD-Varianten (FreeBSD 4.2, OpenBSD 2.8 und NetBSD 1.5) dieser Angriffsmethode gegenüber verwundbar. Damit betrifft die Sicherheitslücke potenziell einen erheblichen Teil aller Webserver. So läuft allein jeder fünfte Internet-Server unter Sun Solaris.

Die Verwundbarkeit ("Vulnerability") beruht auf einer Schwäche der Funktion glob(), die für die Expansion von Wildcards in Datei- und Verzeichnisnamen verantwortlich zeichnet. So lässt sich etwa "*.c" als Kürzel für alle C-Sourcefiles verwenden, den Ausdruck "~foo" erweitert glob() zum Pfad des Home-Verzeichnisses von Benutzer foo.

Erhält ein betroffener FTP-Server eine Anfrage, deren erstes Zeichen aus der Tilde ("~") besteht, versucht er den eingegangenen String über glob() in den vollen Pfad zu erweitern. Dabei expandiert die Funktion auch alle anderen Meta-Zeichen (*, ?, [, ], {, }, ~). Durch die gezielte Verwendung solcher Zeichen kann der Angreifer extrem große Input-Strings erzeugen. Diese provozieren bei der Weiterverarbeitung einen Pufferüberlauf, mit dessen Hilfe sich Root-Rechte erlangen lassen. Die genaue Funktionsweise differiert je nach Betriebssystem. Eine präzise Beschreibung liefert das entsprechende Advisory der COVERT Labs.

Ein Fix für die FTP-Server-Vulnerability existiert bislang lediglich für NetBSD. Als vorläufige Abwehrmaßnahme für alle anderen betroffenen Systeme empfehlen die COVERT Labs, auf keinen Fall anonymen Usern Schreibrechte auf irgendwelche FTP-Verzeichnisse einzuräumen. Auf Irix- und BSD-basierten Servern sollte zudem kein Directory im FTP-Tree einen Dateinamen aufweisen, der aus mehr als acht Zeichen besteht. Zu weiteren Abwehrmaßnahmen der jeweiligen Betriebssystemhersteller können Sie sich über das entsprechende CERT-Advisory informieren. (jlu)