Vom Reiten des toten Pferdes

Wenn du merkst, dass du auf einem toten Pferd reitest, dann steig ab!

Den Dakota-Indianern zugeschriebene Redensart

Hinweis: Dieser Text kann mehr als nur Spuren sehr gereizten Tones enthalten. Allergiker bitte ich, vom Genuss Abstand zu nehmen.

Wer ein selbstgehostetes WordPress verwendet, hat sicherlich zwischen Weihnachten und Neujahr sein Grundsystem aktualisiert. Es gab ein ernstes Sicherheitsproblem, das einen XSS-Angriff auf ein WordPress-Blog ermöglichte. Der Bugfix wurde wie gewohnt relativ schnell veröffentlicht, der Fehler wurde im offiziellen Blog beschrieben, eine genauere technische Beschreibung des Fehlers wurde dort verlinkt, und einmal davon abgesehen, dass so etwas immer auch ein bisschen nervt, sehe ich kein Problem darin, so zu verfahren. Wer hat schon gern ein gehacktes Blog? Diese Offenheit, diese Deutlichkeit und dieses entschiedene Handeln werden viel Schaden verhindert haben.

So weit zum Guten.

Und nun zum Schlechten. Also zu bbPress.

Denn bbPress hat wegen der Verwendung von BackPress genau das gleiche Sicherheitsproblem, und eine bbPress-Forensite in der gegenwärtig aktuellen Version 1.0.2 und selbst die hier veröffentlichte Alpha-Version mit Stand vom August 2010 ist auf genau die gleiche Weise angreifbar.

Um es noch einmal ganz deutlich zu sagen: Wer zurzeit ein bbPress-Forum betreibt, ist einem Hacker, der ein allgemein bekanntes Sicherheitsloch ausnutzt, schutzlos ausgeliefert. Die Foren-Site kann übernommen werden. Es ist verhältnismäßig einfach. Es ist automatisierbar. WordPress-Blogs sind teilweise davon betroffen gewesen. Es ist der Security-Ernstfall für eine Webanwendung. Man könnte sagen: Wer unbedingt ein geowntes Forum haben möchte, sollte sich jetzt für bbPress entscheiden.

Wer gar nicht weiß, was dieses BackPress ist, hier nur eine ganz kurze Aufklärung: Es handelt sich um allgemein nützlichen PHP-Code, der so erstellt wurde, dass er in vielen typischen Web-Anwendungen gemeinsam genutzt werden könnte. Ursprünglich sollten über diesen Weg einmal die vielen WordPress-artigen Projekte auf eine gemeinsame Codebasis gestellt werden, und deshalb wurde in der Version 1.0 bbPress auch auf die Grundlage von BackPress gestellt – was übrigens den Speicherbedarf pro Seitenaufbau um 40 Prozent erhöht, die Anzahl der Datenbankabfragen für ein Grundsystem ohne Plugins verdoppelt und die Wartezeit für einen Seitenaufbau ebenfalls ungefähr verdoppelt hat. Letzteres ist gar nicht so tragisch, wie es klingt, denn bbPress ist, verglichen mit anderer Software zum Betrieb einer Foren-Site, immer noch sehr sparsam und schnell. Minimalismus ist auch ein Feature, und zwar manchmal ein gewünschtes. Dass die bisherige Sicherheitsgeschichte von bbPress so erfreulich aussieht, dürfte ebenfalls in diesem Minimalismus begründet sein.

Vielleicht ist dem einen oder anderen der Konjunktiv in der Beschreibung von BackPress aufgefallen. Denn es ist alles ganz anders verlaufen, und WordPress benutzt BackPress gar nicht mehr. Die bbPress-Entwickler sind damals – sicherlich auch schon unter dem Drängen von Matt Mullenweg, aber das ist spekulativ, weil über Interna niemals etwas nach Außen kommuniziert wurde – in diese Sackgasse gegangen, und sie sind dort noch heute. Wie man an den Performance-Einbußen, die sich damit verbinden, erkennen kann, sind sie dort sehr zum Schaden jeder einzelnen bbPress-Installation und damit auch zum Schaden des Projektes. Soviel nur zu BackPress.

Die ganze Zeit, in der ich diese Site betreibe, auf der ich eigentlich nur eine deutsche Sprachdatei für bbPress anbiete, damit sich niemand diese Mühe noch einmal machen muss, schaue ich bbPress mit recht traurigen Augen beim Zerfall zu. Zum Glück hat sich bbPress in dieser ganzen Zeit als leidlich fehlerfrei und unter Sicherheitsaspekten sehr robust erwiesen. (Eine grandiose Leistung der früheren Entwickler, die wirklich für die langsamen Release-Zyklen entschädigt.) Seit bbPress unter der Leitung von Matt Mullenweg steht, der sich lieber auf sein sehr erfolgreiches Kind WordPress konzentriert – wer mags ihm verdenken, es ist das Blogsystem geworden – stagniert die Weiterentwicklung. Gelegentlich hat Matt Mullenweg mal eine große Sprechblase herausgelassen, aber diesen Worten folgte… nichts. Eine Kommunikation findet zumindest nach außen seit Monaten nicht mehr statt, und die ärgerlichen kleinen Fehler in der aktuellen Release sind zwar schon lange bekannt und beseitigt, aber niemand macht daraus den seit Monaten überfälligen Bugfix. Man nimmt es seit über einem Jahr in Kauf, dass sich bbPress-Anwender eine Entwicklerversion direkt vom Subversion-Server installieren – nicht einmal eine für den öffentlichen Test gedachte Alpha – wenn sie Abhilfe gegen ärgerliche Fehler haben möchten. Wer eine Anleitung sucht, wie man ein solches Projekt vor die Wand fährt, der sollte einfach auf die offizielle bbPress-Site gehen und sie sich an einem müßigen Tag lesend zu Gemüte führen. Genau so muss man vorgehen. Wenn man dazu noch alle Wünsche der Anwender ignoriert und dazu öffentlich seine feuchten Träume von der „Weltherrschaft durch PHP-Skripting“ träumt und wenn man einen Chefentwickler hat, der jede nur erdenkliche Web-Software nur noch als Plugin für ein ausgesprochen fettes, träges und ressourcenhungriges Blogsystem verstehen kann – was interessiert schon der Wunsch vieler Anwender nach einem kleinen, leicht handhabbaren und performanten Foren-System – denn ist der Zerfall garantiert. Das ist bbPress. Open Source wie aus der geschlossenen Anstalt. Präsentiert von den Leuten, die uns auch WordPress gegeben haben.

Aber ich habe mich auch die ganze Zeit gefragt, was wohl geschehen würde, wenn es einmal zum Ernstfall kommt, wenn ein schweres Sicherheitsproblem erfordert, dass schnell ein Fehler korrigiert und eine neue Release erstellt wird. Vielleicht bin ich etwas naiv, denn ich habe gehofft, dass in einer solchen Situation schnell und verantwortlich gehandelt würde, dass eine Security-Release binnen weniger Stunden nach Bekanntwerden des Fehlers zur Verfügung steht. Wer hat schon gern ein gehacktes Forum?

Nun, ich habe mich getäuscht:

Screenshot vom Blog der bbPress-Entwickler

So sieht heute, am 3. Januar 2011 um 7.00 Uhr morgens mitteleuropäischer Zeit das Blog der bbPress-Entwickler aus. Der letzte Blogeintrag ist vom 21. Juli des vorigen Jahres und enthält einen IRC-Log des letzten Chats, den die Entwickler miteinander führten.

[Wer die Farben im Screenshot komisch findet: Ich gestalte manchmal am Rechner, an dem ich gerade sitze, Websites, und um einen leicht zu machenden Fehler nicht zu machen, ist meine Hintergrundfarbe nicht weiß, sondern etwas eigentümlich gewählt, so dass es ich auf dem ersten Blick sehe, wenn ich für ein Element keine Hintergrundfarbe definiert habe. Bei den Gestaltern der bbPress-Site war man offenbar nicht so umsichtig, und wer ein dunkles Farbschema benutzt, hat es hier eben mit einer unlesbaren Website zu tun. Wenn das der gewünschte Eindruck ist, den bbPress bei Interessierten erwecken will – bitte! Wer einen solchen Eindruck nicht erwecken möchte, der definiert bei der Gestaltung einer Website alle Farben, wenn er eine definiert.]

Es gibt keinen Hinweis auf das bekannte Problem. Ein bbPress-Anwender wird darüber in Unkenntnis gelassen, dass er gerade eine gefährliche Software auf seinem Server laufen lässt und dass er doch besser bis zur Lösung des Problems eine gewisse Aufmerksamkeit darauf richten sollte, wenn es nicht möglich ist, die Foren-Site für einige Zeit vom Netz zu nehmen. Es gibt erst recht keinen Hinweis, dass daran gearbeitet wird oder wo man schnell Code herunterladen kann, der zwar noch ungetestet ist, aber doch wenigstens den Hack des Forums verhindern könnte. Es gibt nur Schweigen.

Das ist die bbPress-Kommunikationskultur, seit Matt Mullenweg dort Chef ist. Sie ist verantwortungslos und gefährlich. Ich finde sie zum Erbrechen.

Vor etwas über einer Woche hat jemand im offiziellen Support-Forum auf den Fehler hingewiesen:

Betreff: Kontakt wegen der Meldung eines sicherheitskritischen Fehlers

Es hat den Anschein, dass die Kontakt-Mailadressen und Mailinglisten nicht beachtet werden könnten. Sind hier einige Entwickler, so dass wir das Problem privat mitteilen können?

Danke.

Ich weiß natürlich nicht, wie yehgdotnet zu dem Schluss kam, dass eine Mail an eine angegebene Kontaktadresse oder an die Mailingliste einfach im Nirvana versinken könnte, aber ich kann mir schon vorstellen, wie er darauf gekommen ist – denn ich hatte dieses „Vergnügen“ auch schon und konnte mich des gleichen Eindruckes nicht erwehren. Ist ja nicht weiter wichtig, was Anwender den Entwicklern so mitzuteilen haben – ich glaube unbesehen, dass darunter auch viel „Schrott“ ist – das kann man alles mechanisch nach /dev/null verschieben. Es ist die bbPress-Kommunikationskultur, seit Matt Mullenweg dort Chef… ach, ich wiederhole mich. :(

Nun, der dann in einer Mail an _ck_ mitgeteilte Fehler wurde schon vor einer Woche gefixt, wenn auch etwas auf die Schnelle. Seit etwas über zwei Tagen ist der Fehler in der BackPress-Entwicklerversion gefixt.

Kommnikation gegenüber den „normalen“ bbPress-Anwendern? Siehe oben. Aktuelle Version von bbPress? Siehe hier:

Screenshot von der offiziellen Download-Seite für bbPress

Es wird weiterhin, auch etwas über zwei Tage später noch – und von Seiten der Entwickler gegen besseres Wissen – eine bbPress-Version mit einem bekannten und recht schweren Sicherheitsproblem zum Download angeboten. Es gibt keine Warnung, keinen Hinweis, nichts. Ein an bbPress interessierter Anwender, der dem ganz besonders deutlich hervorgehobenen Link in der Navigation…

Der Download-Link auf der offiziellen bbPress-Site

…folgt, lädt sich dort eine Software herunter, die es anderen Menschen ohne große Mühe ermöglicht, den Server zu ownen. Ungewarnt. Nicht einmal durch einen Hinweis im Entwickler-Blog aufmerksam gemacht – wenn dieses Blog überhaupt beachtet wird, etwas, was die meisten Menschen eher nicht tun. Und ich würde mich nicht wundern, wenn das auch nächste Woche noch so aussieht.

Das ist der Zustand bbPress, seit Matt Mullenweg… ach, ich wiederhole mich. :(

Ich bin ja eigentlich ein recht friedlicher Mensch, aber ich ertappe mich gerade dabei, dass ich mir wünsche, dass in den nächsten Tagen zehntausende Foren so gehackt werden, dass die Forenbetreiber es nicht übersehen können – und dass das Support-Foren von derartigen Berichten überquillt. Dann wird vielleicht einmal jemand dort auf die Idee kommen, dass man wohl mal eine Bugfix-Release machen sollte. Vielleicht aber auch nicht. Denn bei einem bekannten ausbeutbaren Problem, das bereits gefixt ist, kommt ja auch niemand auf diese Idee.

Unterdessen träumt Matt Mullenweg weiterhin feuchte Träume von seinem Foren-Plugin für WordPress – und lässt das jetzige bbPress verrecken, in einer Haltung vollkommener Gleichgültigkeit gegenüber hunderttausenden Anwendern.

Wenn du merkst, dass du auf einem toten Pferd reitest, dann steig ab!

Für mich ist dieser Zeitpunkt jetzt gekommen. Diese Website wird – wenn nicht etwas sehr Besonderes geschieht – in wenigen Tagen ersatzlos verschwinden. Ich kann niemandem mehr empfehlen, bbPress einzusetzen. Auf diesem Hintergrund noch eine deutsche Sprachdatei anzubieten, die ja zum Betreiben einer deutschsprachigen bbPress-Forensite ermutigt, wäre schizophren.

Aber ich finde es wirklich schade um eine gute, kleine Forensoftware.

WordPress XSS-Hack bei integriertem bbPress

Der beim fiesen Admin beschriebene, aktuelle XSS-Hack für WordPress betrifft nicht nur WordPress-Blogs mit einer Benutzerregistrierung, sondern auch jedes WordPress mit einem integrierten bbPress-Forum, selbst wenn die Benutzerregistrierung im Blog abgeschaltet wurde.

Es handelt sich bei der bbPress-Integration ja gerade um die Möglichkeit, dass sich WordPress und bbPress eine gemeinsame Benutzerdatenbank teilen. Das hat nicht nur den angenehmen Effekt, dass ein in bbPress registrierter und angemeldeter Benutzer beim Kommentieren nicht mehr seine Daten beim Kommentieren eines Blogeintrages eingeben muss, sondern er erhält auch einen Zugriff auf das WordPress-Dashboard. Damit ist auch der beschriebene Hack möglich.

Angesichts der Tatsache, dass dieser Hack sehr einfach in seiner Durchführung und auch leicht mit einem Skript automatisierbar ist, und angesichts der Tatsache, dass es schon betroffene Blogs gibt, sollte bei jedem WordPress-Anwender, der eine Benutzerregistierung ermöglicht oder ein eingebettetes bbPress-Forum betreibt, die Alarmglocke unüberhörbar sein. Ein Upgrade auf die aktuelle WordPress-Version 2.8.4 ist dringend erforderlich.