Sicherheitsrisiken beim Shared Webhosting

Skriptsprachen wie PHP und Perl machen Websites lebendig, lassen sich auf nicht hinreichend abgesicherten Systemen aber auch missbrauchen, um Daten auszuspionieren und den Server zu sabotieren.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 6 Min.
Von
  • Tobias Glemser
  • Reto Lorenz
Inhaltsverzeichnis

Abgesehen von simplen Einsteiger-Offerten ins Webhosting bieten alle Provider ihren Kunden die Möglichkeit, individuelle PHP- und/oder Perl-Skripte in ihre Webseiten einzubinden. Selbst bei einigen kostenlosen Hosting-Paketen, etwa bei Tripod.de, ist es möglich, Skripte einzusetzen.

Ein Großteil aller Web-Präsenzen liegt dabei auf so genannten Shared Webservern. Shared-Server-Angebote sind günstiger als dedizierte Server, weil die Provider den Plattenplatz und die Performance eines Rechners unter mehreren Kunden-Sites aufteilen. Jeder Kunde erhält für seine Dateien ein Verzeichnis auf dem Server, auf das er mit seinem FTP-Client Dateien hochladen kann. Die Dateirechte sind dabei so gesetzt, dass nur der Besitzer des jeweiligen Ordners auf seine Dateien zugreifen kann.

Der Webserver jedoch muss auf alle Dateien zugreifen können, damit er sie ausliefern kann. Prozesse, die der Server startet - beim Apache-Webserver sind dies beispielsweise auch die Skript-Laufzeitumgebungen mod_php und mod_perl -, haben ebenfalls Zugriff auf alle Benutzerverzeichnisse des Servers (beim Microsoft Internet Information Server sieht es nicht anders aus). PHP liefert mit den Befehlen opendir() sowie file() das Rüstzeug, um ein Verzeichnis anzuzeigen und auf einzelne Dateien zuzugreifen. In einer Standardumgebung ist es damit möglich, auch außerhalb des eigenen Verzeichnisses herumzustöbern.

Ruft man ein Skript über den Webserver ab, so präsentiert dieser eine fertige HTML-Seite - die Ausgabe eines Skripts, nachdem es abgearbeitet wurde. Greift man allerdings "hintenrum" per selbst geschriebenem Datei-Browser auf ein Skript zu, so kann man sich auch dessen Quelltext anzeigen lassen, einschließlich zum Beispiel dort hinterlegter, normalerweise nicht sichtbarer Datenbank-Passwörter.

Häufig entsprechen die Account-Informationen der Datenbank auch denjenigen für den FTP-Zugang. Damit kann ein Angreifer mit einem einfachen Skript komplette Webseiten manipulieren, Datenbanken löschen oder den fremden Speicherplatz nutzen und auf fremde Kosten Traffic erzeugen. Spammer oder Anbieter raubkopierter Software schieben die Verantwortung für ihre Aktionen auf diese Weise bequem einem Unbeteiligten unter.

Über die Spioniermöglichkeiten von PHP hinaus stellt Perl Befehle bereit, um unter Linux Systemdateien direkt auszulesen. Dazu gehören unter anderem die Dateien /etc/hosts, /etc/passwd und /etc/networks. Die Dateien können Eindringlingen unter Umständen Informationen über Hintertüren offenbaren - aber nicht in allen Umgebungen, in denen diese Dateien sichtbar sind, stellen sie auch ein Sicherheitsrisiko dar.

Angreifer benötigen keine tiefgreifenden Hacker-Kenntnisse, um einen Datei-Browser zu entwickeln. Auf Open-Source-Plattformen wie Sourceforge.net oder Seiten mit PHP- und CGI-Skriptsammlungen finden sich hierfür fertige Skripte.

c't hat in zwei Artikeln im Jahre 2002 und Anfang dieses Jahres (c't 9/04, S. 168) die Skript-Sicherheit einiger Hoster überprüft. Die Tests brachten zum Teil gravierende Konfigurationsfehler zu Tage.