WordPress ist mit einem Marktanteil von mittlerweile über 35 Prozent ein überaus lohnendes Ziel für Angreifer. Damit lohnt es sich, nach Lücken zu suchen, Angriffsszenarien zu entwickeln und zu skalieren: Einmal gefundene Angriffsvektoren kann man auf sehr viele WordPress-Installationen anwenden. Meist geht es darum, die Installation zu hacken, um sie unter Kontrolle zu bekommen.
Typischerweise ergaunern sich die Angreifer so entweder die Admin-Berechtigung oder sie schaffen es, aus der Ferne Code auszuführen, der die WordPress-Installation fernsteuert. Damit kann man dann zum Beispiel Spam versenden, Phishingseiten aufbauen oder Daten abgreifen. Gerne wird auch ein spammiger Redirect auf irgendeine Shopseite ausgelöst.
Wie die Situation aktuell aussieht und wo Ansatzpunkte für besseren Schutz zu finden sind, steht in diesem Blogartikel.
WordPress.org, also die herausgebende Organisation der Open-Source-Software, tut einiges dafür, WordPress zu schützen.
Doch immer wieder tauchen Berichte über Plugins auf, die anfällig für Angriffe sind. Es handelt sich ähnlich wie bei WordPress selbst, um populäre, häufig eingesetzte Plugins, die Zusatzfunktionen bereitstellen, die viele WordPress-Seitenbetreiber verwenden möchten.
Wird eine solche Lücke bekannt, wird sie von den Herausgegebern und Entwicklern für gewöhnlich auch schnell geschlossen. Allerdings kann man nur damit rechnen, wenn die Community, die hinter einem Plugin steht, noch existiert oder auch der einzelne Entwickler noch aktiv ist und sich um die Weiterentwicklung bemüht. Man erkennt die Aktivität rund um ein Plugin meist an der Frequenz, mit der neue Versionen oder Unterversionen veröffentlicht werden. Liegt das letzte Aktualisierungsdatum schon recht weit in der Vergangenheit, also etwa zwölf bis 18 Monate, sollte man davon ausgehen, dass mit diesem Plugin nicht mehr allzu viel passieren wird.
Man sollte sich bei so alten Plugins die Frage stellen, ob nicht ein anderes Plugin die bessere Alternative wäre, auch wenn zunächst etwas Aufwand entsteht, um eine Änderung vorzunehmen.
Hinzu kommt, dass WordPress um sich herum eine Art Ökosystem geschaffen hat. Auch Anbieter von Sicherheitstools spielen dabei eine Rolle. Zu nennen wäre das fast-WordPress-eigene Jetpack-Plugin, das neben einer Vielzahl an Funktionen auch Sicherheitsfeatures mitbringt und gegen Spam und Brute-Force-Attacken wirken soll. Daneben existieren viele unabhängige Softwareproduzenten wie Wordfence, die eigene Tools und Features anbieten, teilweise kostenpflichtig, teilweise gratis. Diese Unternehmen machen sich auch initiativ auf die Suche nach Schwachstellen und berichten darüber, was natürlich in der Folge Cyberkriminelle auf den Plan rufen kann.
Aktuelle Angriffszenarien
Zur Zeit sehen wir auch bei goneo Angriffe auf Plugins wie ThemeGrill Demo Importer. In Versionen unter 1.6.3 war es möglich, die WordPress-Datenbank zu löschen. In vielen Fällen gibt es in WordPress-Installationen einen Useraccount „admin“. Wenn dieser mit ThemeGrill zusammen noch in einer Installation vorhanden ist, kann man von außen die Zugriffsrechte übernehmen und mit der Installation machen, was man möchte. „Auth Bypass“ und „Database Wipe“ nennen sie diese Angriffsmuster. Golem und Heise berichteten darüber. Die Entdeckung bezüglich ThemeGrill geht auf das Sicherheitsunternehmen WebARX zurück.
Das ThemeGrill-Problem hat auch mindestens einen goneo-Kunden getroffen. Der Kunde konnte glücklicherweise die Website aus einem eigenen Backup wieder herstellen. Wir vermuten allerdings, dass es eine gewisse Dunkelziffer gibt und einigen Betroffenen das Problem noch gar nicht bewusst ist.
Weitere Plugins, die in Sachen Sicherheitslücken kürzlich aufgefallen sind, waren
Profile Builder und Profile Builder Pro. In Versionen vor 3.1.1 konnte man von außen User registrieren und die Rolle Admin mit allen Berechtigungen zuweisen.
Eine eher weniger weit verbreitete Lücke befindet sich laut Wordfence im ThemeREX-Addon, das in etwa 44.000 Installationen weltweit etabliert sein soll. Remote Code Execution heißt das Angriffsmuster mit dem man Code innerhalb der Installation über das Internet ausführen kann.
Was kann man tun?
Man wird immer wieder mit Sicherheitsproblemen zu tun haben, wenn man WordPress, zusätzliche Plugins und Themes einsetzt. Dies ist bei jeder Software so. Je exotischer die Anwendungen sind, das heißt: je weniger User diese installiert haben, desto weniger attraktiv sind diese für Massenangriffe per Skript. Solche massenhaften und hochgradig automatisierten Versuche sind das gewöhnliche Phänomen, das sowohl spezialisierte Sicherheitspluginhersteller als auch wir als Hoster beobachten können.
Welche Gegenmaßnahmen oder vorbeugende Maßnahmen lassen sich daraus ableiten? Oft sind eben die populären und damit auch für Angriffsversuche attraktiven Plugins notwendig für den Betrieb der Website und man kann nur schwer darauf verzichten.
Man sollte (mindestens ein) Backup haben
Auf jeden Fall sollte man Backups herstellen, und das regelmäßig, etwa alle 24 Stunden. Zudem ist es wichtig, mehrere Backupgenerationen aufzubewahren. Die Backupdateien sollten an einem sicheren Ort, auf einem anderen Server, gespeichert werden. Sehr zu empfehlen ist, auszuprobieren, ob die Backups wirklich funktionieren. Aus den Backupdateien sollte sich die Installation komplett wieder herstellen lassen.
Für WordPress (wie auch für andere Systeme) gibt es ebenfalls Plugins, die die Backupaufgabe und -verwaltung übernehmen und den Webseitenbetreiber dahingehend entlasten. Man sollte nur sicherstellen, dass dieses Plugin korrekt arbeitet, die Backups tatsächlich herstellt und diese auch zurückgespielt werden können.
Im einfachsten Fall lassen sich die Dateien im Webspace (zugeordneter Speicherplatz auf dem Webserver) und die Informationen in der MySQL-Datenbank manuell oder mit einem einfachen eigenen Skript kopieren, packen und exportieren.
Natürlich kann man versuchen, die Installation wieder zu bereinigen, wenn man ein Problem festgestellt hat. Allerdings heißt das, man muss den Schadcode finden, der sich vielleicht als eine Zeile irgendwo in ein php-Datei manifestiert hat oder auch an mehreren Stellen zu unerwünschtem Verhalten der Software führt.
Sicherheitstools nutzen
Unter Umständen kann es sinnvoll sein, spezialisierte Tools oder Dienste zu buchen, die im Falle von WordPress sich als Plugin einklinken und eine Art Monitoring und Absicherung übernehmen können. Nicht alle diese Angebote sind kostenlos.
Updates nutzen: Nur aktuelle oder neue Versionen einsetzen
Sehr sinnvoll ist es, stets nur aktuelle (nicht veraltete) Software zu nutzen, um die sich ein Entwickler, bestenfalls eine ganze Community kümmert. Auch wenn alte Versionen noch ihren Dienst tun, empfehlen wir, nur die neuen Versionen einzusetzen, egal, ob es sich um das Hauptprogramm (den Core von WordPress) oder um Plugins und Themes handelt.
Es sollte, wenn möglich, auch immer die neuste Version von Basistechnologien verwendet werden, zum Beispiel die aktuellste stabile Version von PHP. Aus diesem Grund führt goneo regelmäßig, mindestens einmal pro Vierteljahr, ein Update der Software auf den Servern wie nun Anfang März 2020 durch und spielt die neuen Pakete für FreeBSD (Serverbetriebssystem, gegebenenfalls auch Linux), MySQL, PHP und einer großen Zahl an weiterer Software ein.
Auf Anwendungsebene sollte das gleiche geschehen. Hier ist allerdings der Anwender, sprich: der Webseitenbetreiber, gefragt.
Nicht immer ist es erforderlich, die allerneuste von mehreren als aktuell eingestuften PHP-Releases zu verwenden. Zur besseren Planung gibt es eine PHP-Roadmap, aus der auch hervorgeht, bis zu welchem Zeitpunkt die einzelnen „Punktversionen“ (wie PHP 7.3 oder PHP 7.4) unterstützt werden. Wesentlich ist, keine alte Version einzusetzen, die noch aus der Zeit von PHP 5 stammt. Bei goneo kann PHP 5.x nicht mehr betrieben werden. Auf der großen Skala sieht die Situation jedoch anders aus. Weltweit laufen sehr viele Webserver noch mit PHP 5, vor allem PHP 5.6.
Kontrolle auf Anomalien
Viele Websites laufen im Autopilot-Modus, das ist klar. WordPress hat vor einiger Zeit damit begonnen, neue Releases automatisch einzuspielen. Man kann dies abschalten, doch standardmäßig ist die Autoupdatefunktion aktiviert. Eine Mail an die E-Mailadresse des Admin-Kontos weist gegebenenfalls auf ein erfolgtes automatisches Update hin. Es gibt jedoch Konstellationen, in denen dies nicht funktioniert.
Zudem arbeitet WordPress an einem Feature, nicht nur den WordPress-Core mit automatischen Updates aktuell zu halten, sondern auch Plugins und Themes. Dieses ist eines der Entwicklungskernthemen, die sich WordPress für 2020 vorgenommen hat (Blogeintrag bei WordPress.org dazu hier). Ursprünglich war der Rollout dieses Features schon für Release 5.4 für Ende März 2020 geplant, wurde aber auf 5.5 verschoben, um mehr Zeit zum Testen zu erhalten.
Bislang beschränkt sich die Pluginüberwachung seitens WordPress auf eine Warnung im Dashboard, die anzeigt, dass auch für spezifische Plugins Updates vorliegen. Dies ist durchaus ein Pluspunkt in Sachen Sicherheit, doch schützt dies nicht vor bislang ungepatchten problematischen Lücken in Plugins solange es kein Update gibt.
Es ist also eine gute Idee, ein Auge auf die Ankündigungen der Pluginhersteller zu haben und wachsam zu bleiben, denn Sicherheitswarnungen erscheinen erfahrungsgemäß zuerst in allgemeinen Tech-Magazinen online. Später erst melden sich die Herausgeber der betroffenen Plugins zu Wort, hoffentlich dann mit einer wenigstens behelfsmäßigen Lösung.
Anomalien im eingehenden und ausgehenden Traffic deuten darauf hin, dass unter Umständen jemand versucht, in die WordPress-Installation einzudringen oder dies bereits geschafft hat. Sollte so etwas auffallen, ist Aktion geboten. Man sollte dann versuchen, zumindest die Ursache für einen plötzlichen oder punktuellen Trafficanstieg zu finden.
Ähnlich verhält es sich, wenn im eigenen E-Mailkonto ungewöhnlich viele und nicht nachvollziehbare Bounce-Mails eingehen, die den Absender angeblich über die Nichtzustellbarkeit von Mails informieren wollen. Dann hat es womöglich jemand geschafft, den Webserver für den Versand von Spam zu missbrauchen.
Ein guter Ansatzpunkt bei goneo wäre es, im Kundencenter den Menüpunkt „Statistik“ aufzurufen. Hier werden Trafficdaten, die aus den Logfiles generiert werden, tabellarisch und in Diagrammen abgebildet. Ungewöhnliche Spitzen bedürfen einer weiteren Abklärung. Unter Umständen hilft auch schon ein Blick in die Besucheranalyse bei WordPress, falls Jetpack installiert ist.
Wir werden hier im Blog künftig verstärkt auf solche sicherheitsrelevanten Meldungen zu WordPress-Plugins hinweisen.