Vor kurzem hat Benjamin Flesch eine Reihe von Zero-Day-Schwachstellen in Wordpress 2.2.1 gefunden (wir berichteten), die nun sein selbst programmierter Wurm beseitigen soll. Wir haben den jugendlichen Sicherheitsexperten im Interview zu seinen Entdeckungen befragt.
TecChannel: Wie sind Sie auf diese Lücken gestoßen?
Benjamin Flesch: Am Freitag vor einer Woche habe ich an meinem Blog-Theme rumgebastelt. Dabei bemerkte ich einige Funktionen von Wordpress, die mir vorher noch nie aufgefallen waren, etwa Blogroll importieren, User / Datenbanken von anderen Feeds portieren. In alter Manier eines Websicherheits-Besessenen habe ich auf dieser neuen Spielwiese das Übliche gemacht: Alles, was mein Browser an Wordpress sendete, war manipuliert, um die Software aus der Reserve zu locken ;-)
Im Laufe der Zeit habe ich so eine Sicherheitslücke nach der anderen gefunden. Daraufhin stellte sich natürlich die Frage, was man mit so einem Haufen an Zero-Days macht: Ich meldete mich bei Wabisabilabi (Anmerkung der Redaktion: Eine Plattform, auf der Sicherheitslücken versteigert werden, siehe hier) an, was mir aber dann zu riskant erschien, auch im Bezug auf § 202c (Anmerkung der Redaktion: Der neue Anti-Hacker-Paragraf, siehe hier).
Schließlich kam ich auf die Idee, die gefundenen Sicherheitslücken dazu zu benutzen, die Blogs sicherer zu machen. Und das alles automatisch! - Die Idee vom Wordpress Blog Wurm hatte sich in meinem Kopf festgesetzt. Daraufhin werkelte ich an dem AJAX-Wurm, den Ihr jetzt auf meinem Blog veröffentlicht seht, und nach ca. fünf Stunden stand das komplette Programm.
TecChannel: Wie haben die Wordpress-Entwickler Ihre Entdeckungen aufgenommen? Gibt es bereits Informationen, wann die Lücken behoben werden?
Benjamin Flesch: Ich habe alle Lücken direkt nach meinem Blogpost in den Wordpress-Bugtracker eingetragen.
Schon nach einer Stunde hatte ein Programmierer namens "Nazgul" die Tickets zugeordnet und meine Patches auf offiziellen "Wordpress-Standard" korrigiert, soll heißen, dass er beispielsweise statt meinem RegEx-Hickhack die Wordpress-internen Filterungsfunktionen als Patch vorschlägt (meine vorgeschlagenen Workarounds funktionieren natürlich auch!).
In den Tickets steht, dass die Lücken im 2.2.2er-Release geschlossen sind, direkten E-Mail-Kontakt mit einem Mitglied der Developer hatte ich bisher leider noch nicht.
Wie vertrauenswürdig ist der Patch-Wurm?
TecChannel: Wie bereits erwähnt, haben Sie einen Wurm geschrieben, der sich der Sicherheitslücken annimmt und diese beseitigt. Aber wie können Administratoren sicher sein, dass Ihr Wurm auch keinerlei Schadcode mit sich trägt?
Benjamin Flesch: Das ist natürlich eine gute Frage! In meinem Post habe ich extra "Trust me" dazugeschrieben und ich finde es echt toll, dass viele Admins genau dies tun. Zudem verbreitet sich diese Variante des Wurms nicht von selbst weiter und erklärt genau, was wann und wie genau geschieht. Der Ablauf funktioniert so:
-
Der Admin besucht meine Homepage über einen Link aus seinem Wordpress Adminpanel heraus: Meine Seite erkennt ihn an seinem Referer (der /wp-admin/ enthält).
-
Ein <div>, generiert durch die
main.js
, erscheint und teilt dem Admin Informationen über die Lücke mit. Anschließend erhält er die Auswahlmöglichkeiten "Close" oder "Secure my Blog". -
Bei einem Klick auf Letzteres wird der Admin auf sein eigenes Blog geleitet. Anschließend nutzt ein Link die XSS-Lücke in upload.php aus, um dadurch das Script
stage1.js
im Kontext des Adminpanels zu starten. -
Danach startet ein Setup, das in drei Schritten die Scripts
upload.php
,options.php
undlink-import.php
mit Workarounds versieht. Der Admin erhält den jeweiligen Code angezeigt und muss mit einem Klick auf "Skip" oder "Apply this Patch" eingreifen. -
Nach dem Patch wird der Admin gefragt, ob er den Wurm weiterverbreiten will (durch ein paar Zeilen PHP-Code in seinem Template), und ob er mein Blog verlinken will. Beides ist natürlich freiwillig.
-
Damit ist das Script beendet und die Lücke geschlossen.
Für die, denen das nicht reicht: Da der Wurm auf JavaScript basiert und ich kein schlechtes Gewissen habe, wenn ihn jemand lesen will, ist der Sourcecode natürlich auf meinen Server gelagert. Der Dialog, der den Admin begrüßt, lässt sich hier herunterladen, der Code, der anschließend ausgeführt wird und die Sicherheitslücken schließt, liegt hier.
Übrigens ist der Code mit Absicht unordentlich, damit nicht morgen Hunderte Blogroll-Links hinzufügende Miniwürmer durch das Netz kriechen.
Allgemeine Sicherheitstipps zum Wordpress-Einsatz
TecChannel: Ok, der Wurm entschärft die neuen Sicherheitslücken. Aber gibt es denn grundlegende Tipps, die Sie Webmastern von Wordpress-Blogs raten?
Benjamin Flesch: Ja, da habe ich schon einige Anmerkungen. Wordpress-Admins sollten auf jeden Fall:
-
3rd Party Templates immer genau untersuchen, diese enthalten sehr oft Sicherheitslücken, im besonderen XSS (Cross-Site Scripting),
-
zumindest die wp-login.php beziehungsweise das ganze /wp-admin/-Verzeichnis durch eine .htaccess mit Passwortabfrage sperren,
-
die Userregistrierung abschalten (meist sowieso überflüssig),
-
keine "NoName"-Plug-ins benutzen.
Das Problem bei Letzteren ist, dass sie meist nicht sauber erstellt sind und dementsprechend viele Sicherheitsmakel aufweisen. Lieber sollte man auf größere "Mainstream"-Plug-ins setzen. Falls es gar nicht anders geht, sollte man den Code auf alle Fälle durchgehen oder von einem Spezialisten prüfen lassen.
TecChannel: Herr Flesch, ich danke Ihnen für das Gespräch.
Benjamin Flesch ist 17 Jahre alt und besucht derzeit die Oberstufe des Paul-von-Denis-Gymnasiums in Schifferstadt. Er beschäftigt sich mit den Themen Cross-Site Scripting und Web Application Security und hat bereits mehrere Schwachstellen in Bankapplikationen sowie auf Google.com entdeckt. Seit Juni arbeitet er zudem nebenbei für die WaveCon GmbH als Security Consultant und führt in deren Auftrag Sicherheitsprüfungen durch. Seinen Blog finden Sie hier. (mja)