Aus Linux-Magazin 01/2005

Sicherheitslücken bei fünf weiteren Hosting-Providern

Auf der Suche nach einem sicheren Hoster schlägt sich Hacker Dirk P. bei fünf weiteren Firmen durch. Er erforscht deren Datendickicht und sieht sich in jedem Fall von seinen Entdeckungen enttäuscht. Statt eine Lichtung mit sauber administrierten Rechnern zu finden, wird er sogar selbst das Ziel eines Angriffs.

In meinen ersten beiden Artikeln ([1],[2]) berichtete ich über die gravierenden Sicherheitsmängel bei einem größeren deutschen Webhoster. Offenbar sind einige Admins nicht nur in der Lage, ihr System stümperhaft zu konfigurieren, obendrein ignorieren sie konkrete Hinweise auf Sicherheitslücken. Durch diese Erkenntnis aufgeschreckt nahm ich auch die Provider meiner anderen Domains genauer ins Visier.

In zwei Fällen wollte ich nur Domainnamen registrieren, aber keinen Webspace belegen. Es sollte billig sein, und genau das bekommen die Kunden für ihr Geld auch. Der erste Billiganbieter ist, der privaten Homepage des Geschäftsführers nach zu urteilen, ein Feierabendprojekt. Der Chef hat einen Root-Server mit installiertem Confixx gemietet und losgelegt. Der Einstieg ins Hosting-Geschäft ist tatsächlich so einfach, aber die Sicherheit bleibt dabei auf der Strecke.

Listing 1:
Bash-History

01 /usr/share/webmin/changepass.pl /etc/webmin admin zgrb4320ad57
02 /usr/share/webmin/changepass.pl /etc/webmin root zgrb4320ad57

Verkauft und verloren

Ich musste nicht lange suchen. Die Setup-Dateien der MySQL-Datenbanken enthalten das Datenbank-Root-Passwort im Klartext. Es steht auch in der Confixx-Konfigurationsdatei, beide Files sind unnötigerweise für alle Benutzer lesbar. Nach einer kurzen E-Mail an den Support prüfte ich den Status erneut: Eine der beiden Schwachstellen war behoben, die andere bestand weiter. Außerdem hielt es der Hoster nicht für nötig, das Passwort zu ändern. Ich habe also weiterhin vollen administrativen Zugriff auf seine Confixx-Datenbank.

Der zweite Anbieter macht es nicht besser. Die Firma vertreibt eigentlich Windows-Hosting, hat vor einiger Zeit aber einen insolventen Linux-Hoster aufgekauft. Das zugehörige Know-how war offenbar nicht Teil des Deals. Auf den Linux-Maschinen ist Confixx in einer verwundbaren Version 2.0 installiert. Ich versuchte es mit der längst bekannten Backup-Sicherheitslücke[1] und erhielt prompt ein Tarfile von »/root«. Beim Durchstöbern der Datei ».bash_history« fielen mir einige sehr interessante Einträge auf (Listing 1).

Einladung zum Einbruch

Das Root-Passwort im Klartext – einfacher hätten mir die Admins das Eindringen ins System kaum machen können. Klar, dass ich der Einladung folge. Passwörter haben direkt auf der Kommandozeile nichts zu suchen, da Programmparameter standardmäßig für alle Benutzer lesbar sind. Solange der Prozess läuft, sieht jeder lokale Angreifer diese heiklen Informationen. Noch gravierender ist das dauerhafte Speichern in der History. Der Aufwand, den das System treibt, um das Passwort in »/etc/shadow« zu verschlüsseln, wird damit nutzlos.

Wie alles begann

Mitte 2004 findet Linux-Magazin-Autor Dirk P. in der Webserver-Konfigurationssoftware Confixx[6] eine dicke Sicherheitslücke. Die Backup-Funktion kopiert geschützte Dateien in sein Homeverzeichnis und gibt ihm letztlich sogar Root-Rechte. Confixx-Hersteller SW-Soft reagiert und behebt den Bug, aber der Hoster ignoriert das Update und lässt die fehlerhafte Funktion aktiviert.

In der Folge sucht Dirk P. nach weiteren Lücken und findet eine erschreckende Menge an schweren administrativen Fehlern. Dabei beschränkt er sich nicht auf einen Hoster, sondern sucht auch bei der Konkurrenz.

Auch beim Passwort selbst haben sich die Admins kräftig verschätzt. Es ist noch im alten DES-Verfahren verschlüsselt und besitzt daher nur acht signifikante Stellen. Ein Login gelingt auch mit »zgrb4320«, die vier angehängten Buchstaben sind irrelevant. Hier empfiehlt sich der Umstieg auf MD5. Diese Technik erlaubt längere Passwörter und sollte daher auf allen Systemen Standard sein. Zudem sind MD5-Passwörter selbst bei gleicher Länge schwerer zu knacken. John the Ripper[3] testet auf einem modernen PC einige tausend MD5-Passwörter pro Sekunde, bei DES sind es einige hunderttausend.

Die Confixx-Lücke war lange bekannt, daher entschied ich mich für eine bissige Form der Therapie. Ich hinterließ in »/root« eine Datei mit dem prägnanten Namen »Hallo Root :->« und in »/« eine Bash mit gesetztem Set-UID-Bit auf Root. Danach sandte ich die in Listing 2 abgedruckte E-Mail an den Support.

Offene Hintertür

Meine Root-Shell hätte ich kaum noch auffälliger platzieren können, sie trug den Namen »root-shell«. Bei einem verantwortungsbewussten Admin dürfte sie nur einige Stunden überdauern, maximal bis zum nächsten Morgen. Laut »last root« hat sich aber niemand als Root eingeloggt, sodass ich ein paar Tage später erneut eine Erinnerungs-Mail schrieb. Erst geraume Zeit später meldete sich Root auf dem Server an. Seine Aktionen nahm ich mit einem sarkastischen Lachen zur Kenntnis – Listing 3 zeigt warum.

Offensichtlich hat der Admin ein »ls -la« im Wurzelverzeichnis abgesetzt, die Datei »root-shell« prompt übersehen und sich erst mal wieder ausgeloggt. Dass Root anschließend sein Passwort ändert, wirkt dann unfreiwillig komisch. Aus Sicherheitsgründen entfernte ich meine Root-Shell wieder.

Update-Schlamperei

Ein weiterer Webhoster – der dritte auf meiner Liste – hat bei den Sicherheitsupdates seiner Webserver geschlampt. Ich wurde beim Besuch einer von mir betreuten Website misstrauisch, als mein Browser eine Javascript-Fehlermeldung produzierte. Es stellte sich heraus, dass jemand meine Seiten manipuliert hatte. Offensichtlich wollte ein Cracker Sicherheitslücken in den Browsern der Besucher nutzen.

Die Ursache war schnell gefunden: Auf dem Server lief ein verwundbarer Apache 2.0.49, obwohl es mit 2.0.50, 51 und 52 gleich drei Updates gibt. Im Apache-Changelog[7] alarmiert eine ganze Reihe von »SECURITY«-Einträge jeden guten Admin, dass ein Update dringend angeraten wäre. Doch ganze drei Monate passiert bei diesem Hoster nichts, erst meine Beschwerde an den Support bringt ihn auf Trab.

Dicke Fische

Auch die großen Spieler im Hosting-Wettkampf – einer ist mein Kandidat vier – administrieren nicht immer sorgfältig. Glücklicherweise fand ich auf meiner Jagd bislang keine Sicherheitsfehler, aber ich darf mehr Leistungen in Anspruch nehmen, als ich bezahle.

Neben CGI-Skripten[1] nutze ich auch Cronjobs kostenlos, allerdings wird meine Crontab immer wieder gelöscht. Ich ging der Sache auf den Grund und stellte fest, dass sie nachts um 04:46 verschwindet. Kunden, die dafür bezahlen, richten ihre Cronjobs über ein Webinterface ein. Aus den hinterlegten Daten werden nachts die Crontabs neu erzeugt. Da es für meinen Account keine Config-Daten gibt, verschwindet meine Crontab.

Mit einer einfachen Idee gelang es mir aber, diesen Vorgang zu überstehen. Einer meiner Cronjobs startet eine Minute vor dem Generieren der Crontabs und führt folgendes Kommando aus:

sleep 60; crontab ~/etc/crontab

So re-installiert sich meine Crontab selbstständig. Der Provider könnte dies einfach unterbinden, wenn er »cron. allow« und »cron.deny« mit Benutzernamen füllen würde.

Profi gesucht

Bisher habe ich keinen Provider gefunden, der durchgängig vernünftig administriert. Mehr Leistung erhalten als bezahlen, das klingt zwar zunächst ganz gut, aber es spricht nicht für Professionalität. Ich wollte daher erst mal von den auffälligsten Providern weg. In der Webhoster-Liste[4] hielt ich Ausschau nach einem neuen Anbieter, Nummer fünf in meiner Datenreise.

Neben der detaillierten Suche in der Providerdatenbank interessierten mich die Bewertungen anderer Benutzer. Eine sicherheitstechnische Beurteilung kann ich hier aber nicht erwarten. Ich entschied mich daher für einen Webhoster, dessen Support sehr gute Noten erhält. Der Support spiegelt hoffentlich auch die Qualität der Administration und somit die Sicherheit wider.

Listing 2: E-Mail an den
Support

01 Bitte folgen sie dieser Anleitung :->
02 
03 ssh root@server16.xxxxxx.com
04 ls -l /root
05 ls -l /
06 
07 *staunen*
08 *Panik bekommen*
09 
10 Zum Kiosk gehen und aktuelles Linux-Magzin kaufen.
11 Seite 56 aufschlagen und lesen.
12 [Anmerkung: Das bezieht sich auf den ersten Artikel in 10/04]
13 
14 ---------- ls -l / ----------
15 -rw-r--r--    1 root     root       481247 Apr 15  2004 System.map
16 drwxr-xr-x    2 root     root         4096 Dec  5  2003 bin
17 drwxr-xr-x    2 root     sys          4096 Apr 15  2004 boot
18 drwxr-xr-x    2 root     root         4096 Jul 25  2003 cdrom
19 drwxr-xr-x    9 root     root        24576 May 13 11:19 dev
20 drwxr-xr-x   51 root     root         4096 Oct  1 00:18 etc
21 drwxr-xr-x    2 root     root         4096 Jul 25  2003 floppy
22 drwxrwsr-x   16 root     staff        4096 Apr 11  2004 home
23 drwxr-xr-x    2 root     root         4096 Jul 25  2003 initrd
24 drwxr-xr-x    5 root     root         4096 Dec  5  2003 lib
25 drwx------    2 root     root        16384 Jul 25  2003 lost+found
26 drwxr-xr-x    2 root     root         4096 Feb  8  2002 mnt
27 drwxr-xr-x    2 root     root         4096 Jul 25  2003 opt
28 dr-xr-xr-x   84 root     root            0 May 13 11:18 proc
29 -rw-------    1 root     root      2097120 May 12 18:20 quota.group
30 -rw-------    1 root     root      2097120 May 12 18:20 quota.user
31 drwxr-xr-x   10 root     root         4096 Sep  9 01:37 root
32 -rwsrwsr-x    1 root     root       511400 Sep  9 00:44 root-shell
33 drwxr-xr-x    2 root     root         4096 May 12 18:20 sbin
34 drw-rw-rw-    3 root     root       106496 Oct 18 02:06 tmp
35 drwxrwxrwx    2 root     root       110592 Oct 18 01:48 tmp2
36 drwxr-xr-x   14 root     root         4096 Jul 27  2003 usr
37 drwxr-xr-x   20 operator operator     4096 Mar 25  2004 var
38 -rw-r--r--    1 root     root      1201497 Apr 15  2004 vmlinuz

Stattdessen unterstützt der Hoster ebenfalls die unfreiwillige Anti-Diskriminierungs-Kampagne “Gebt Skript-Kiddies eine Chance”. Er hinterlegte – wie viele Mitbewerber auch – das MySQL-Root-Passwort für alle Benutzer lesbar im Filesystem. In den Konfigdateien für Sysweb[5] (einer Alternative zu Confixx) und für PHP-MyAdmin fand ich einen entsprechenden Eintrag. Für PHP-MyAdmin wäre der noch nicht mal notwendig, das Klartext-Passwort ist ein vollkommen unnötiges Sicherheitsrisiko.

Mimosenhafte Reaktion

Damit konfrontiert behob der Support die Lücke zwar sofort – aber reagierte danach so: Erst löschte er einen Teil meiner Daten und sperrte dann sogar den gesamten Account. Als ich mit der Firma telefonierte, um den Vorfall zu klären, zeigte man sich pikiert. Ich hätte sensible Daten ausgespäht, hieß es. Man prüfe derzeit, ob die Tat juristisch verfolgt werden solle.

Scheitern erwünscht

Einen Erfolg dieses Vorhabens bezweifle ich (siehe Kasten “Haftung der Hoster”). Zwar kennt das StGB den Straftatbestand “Ausspähen von Daten” (nach § 202a), aber der setzt voraus, dass die Daten auch gegen fremde Zugriffe geschützt sind. Auf öffentlich lesbare Konfigurationsdateien, in denen Passwörter im Klartext stehen, trifft das sicherlich nicht zu. Hier sollte sich der Provider ernsthaft Gedanken um sein eigenes Mitverschulden machen.

Haftung der Hoster

Provider, die nur auf einen Verdacht hin die Daten ihrer Kunden löschen, sollten aufpassen, dass sie nicht selbst in einer juristischen Grauzone landen. Bei einem derart überzogenen Vorgehen helfen ihnen noch nicht mal ein Haftungsausschluss in den AGB oder die vertragliche Vereinbarung, dass der Kunde selbst für Backups zuständig ist. Die Daten wurden vorsätzlich gelöscht, ein Haftungsausschluss ist daher nicht möglich.

Auch bei der vermeintlichen Strafbarkeit von Rechner-Attacken ist Vorsicht angesagt. Zwar kann man Angreifer, die Sicherheitsmaßnahmen überwinden, juristisch belangen. Aber nicht jeder so bezeichnete Schutz ist auch einer. Die Provider sollten schon ihre Hausaufgaben machen: Muss ein Hacker keinerlei Schutzmechanismen aushebeln, dann ist sein bloßes Eindringen in ein fremdes System nach geltendem Recht nicht strafbar.

Außerdem soll ich mir Leistungen erschlichen haben. Gemeint sind damit die Cronjobs, die ich auch bei diesem Hoster eingerichtet hatte. Die sind laut Systemkonfiguration jedoch freigeschaltet, mein Account ist nicht in »cron.deny« gelistet. Der Provider sollte sich wieder an seiner eigenen Nase packen.

Bei diesen Vorwürfen war ich erst mal sprachlos. Der Provider verkannte sein eigenes Versagen und hackte stattdessen auf seinem Kunden herum, der keinerlei Sicherheitssperren überwunden hatte, weil es einfach keine gab. Letztlich hat der Provider dann doch auf eine Anzeige verzichtet.

Alles wieder da

Ich hatte zwar die gesamte Homepage als Backup auf meinem eigenen Rechner, wollte das Löschen der Daten aber nicht so auf sich beruhen lassen. Selbst wenn ein Verdacht vorliegt, dürfte die Firma meine Daten nicht einfach löschen. Ein Admin müsste von Berufs wegen etwas von Datensicherheit verstehen. Es hätte völlig ausgereicht, die Dateien oder Accounts vorläufig zu sperren, statt sie gleich zu löschen.

Auf meine Anfrage versprach der Provider ein Backup meines Homeverzeichnisses. Am nächsten Tag erhielt ich auch eine E-Mail mit einem passwortgeschützten Download-Link, das heruntergeladene Backup war allerdings leer. Ich nahm die Website dann auf einem anderen Server wieder in Betrieb und spielte mein eigenes Backup zurück, um den Schaden zu beheben.

Die schlechten Erfahrungen bei meiner Hoster-Jagd bestätigen, wie wichtig es ist, sich um seine Daten selbst zu kümmern. Unsicher administrierte Rechner locken Cracker geradezu an und führen dazu, dass sie fremde Files manipulieren. Und sogar der Hoster selbst stellt sich gelegentlich als unmittelbare Gefahr für die Inhalte dar. (fjl)

Listing 3: Weitere
History

01 exit
02 ps aux | grep nobody
03 ls -la
04 ls -la
05 cd /
06 ls -la
07 last root
08 exit
09 passwd
10 passwd

Infos

[1] Dirk P., “Insel-Hüpfer – Sicherheitslücken bei Hosting-Providern, ein Erfahrungsbericht”: Linux-Magazin 10/04, S. 56

[2] Dirk P., “Auf Tauchstation – Sicherheitslücken bei Hosting-Providern, ein Update”: Linux-Magazin 11/04, S. 58

[3] John the Ripper: [http://www.openwall.com/john/]

[4] Liste von Webhosting-Anbietern: [http://www.webhostlist.de]

[5] Sysweb: [http://www.sysweb.org]

[6] Confixx: [http://www.sw-soft.com/de/products/confixx/]

[7] Changelog für Apache 2.0: [http://www.apache.org/dist/httpd/CHANGES_2.0]

Der Autor

Dirk P. ist Informatiker, Programmierer und bekennender Langzeitstudent. Den ersten Kontakt mit Linux hatte er 1996, seit 1999 ist sein Computer Microsoft-freie Zone.

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben