Bei WordPress gibt es häufig Brute-Force-Angriffe, wobei die XML-RPC-Schnittstelle gerne verwendet, wird, um den Angriff zu automatisieren. Eine sinnvolle Absicherung ist deshalb, die XML-RPC-Schnittstelle z.B. per Plugin zu deaktivieren. Dass für WordPress, den FTP-Zugang, die MySQL-Datenbank und den Zugang zum Kundenmenü des Webhosters hinreichend komplexe Passwörter verwendet werden sollen, versteht sich von selbst. Ergänzend sind Plugins zur Zwei-Faktor-Authentifikation (z.B. Two Factor) eine sinnvolle Ergänzung, während ich von All-in-One-Sicherheits-Plugins eher abrate, weil sie rasch ein falsches Sicherheitsgefühl vermitteln.
Bei Angriffen werden auch Sicherheitslücken in Themes und Plugins, eher selten in WordPress selbst, ausgenutzt. So genannte „genullte“ Themes (kostenpflichtige Themes, bei denen die Lizenzinformation überschrieben wurde und die über dubiose Anbieter verteilt werden) sollte man natürlich überhaupt nicht nutzen. Da nur durch zeitnahe Updates Sicherheitslücken schnell geschlossen werden können, sind Aktualisierungen bei einem so weit verbreitetem Content Management System besonders wichtig. WordPress bietet inzwischen automatische Aktualisierungen für den Core, Themes und Plugins, die man möglichst nutzen sollte (was aber ein regelmäßiges Monitoring voraussetzt).
Haben Angreifer einmal Zugriff auf den Server, werden oft Backdoors eingerichtet, um auch nach einer vermeintlichen Säuberung der Website wieder Zugriff auf die Website zu erlangen. Dabei werden oft Dateien mit unverfänglichen Namen wie settings.php
verwendet, die in irgendeinem (meist in mehreren) Unterverzeichnis platziert wird. Daher bringt ein Überschreiben vorhandener Dateien alleine erst mal wenig, weil die vom Angreifer hinzugefügten Dateien dabei gar nicht berührt werden. Die beste Methode ist, alle Dateien mit Ausnahme der eigenen Uploads in wp-content
komplett zu löschen und dann neu aus verlässlichen Quellen heruntergeladene Dateien zu WordPress Core, Themes und Plugins hochzuladen.
Das Verzeichnis wp-content/uploads
sollte nur selbst hochgeladene Mediendatei enthalten. Angreifer könnten aber auch hier Skripte versteckt und ggf. sogar als vermeintliche Grafikdatei gespeichert haben. Hier ist wichtig, wirklich jede einzelne Bilddatei zu prüfen, was recht umfangreich ausfallen kann (besonders bei Websites von Fotografen, die ein mehere Gigabyte großes Portfolio auf ihrer Website präsentieren).
In der Datenbank sollte geprüft werden, ob neben den bekannten Benutzern weitere Benutzer mit administrativen Rechten angelegt wurden. In dem Fall kann sich ein Angreifer mit eigenen Zugangsdaten anmelden und dann auf der Website allerlei Schaden anrichten.
Die komplette Säuberung einer WordPress-Website wurde an verschiedenen Stellen beschrieben. Der bereits erwähnte Beitrag des Hosters Kinsta ist da eine gute erste Anlaufstelle. Einfacher, Nerven und Kosten schonender ist die Wiederherstellung eines unkompromittierten Backups. Hat man selber versäumt, regelmäßig Backups anzulegen, lohnt es sich oft, beim Webhoster nachzufragen, der meist gegen eine kleine Gebühr die Dateien wiederherstellen kann. Wir hatten aber hier auch schon Fälle, in denen eine Website dreimal umgezogen und keine Backups gemacht wurden und die Wiederherstellung nur durch neues Aufsetzen und Copy/Paste aus dem Internet-Archiv möglich war. Der Aufwand von kompletter Säuberung über Backup-Wiederherstellung bis hin zur manuellen Rekonstruktion kann sehr unterschiedlich ausfallen, was auch pauschale Aussagen zu Kosten schwierig macht.
Bei der Suche nach „Experten“ kann man sich oft daran orientieren, wie weit sich der Dienstleister selber in der WordPress-Community betätigt, ob er einen eigenen Blog oder ein eigenes GitHub-Repository pflegt und welche Erfahrungen er/sie selber angibt. Bei Anbietern, die schnelle und einfache Lösungen versprechen, wäre ich aber tendenziell zurückhaltend.
Viel Erfolg bei der Bereinigung der Website.