Beiträge

Belta.de - Einen Wordpress-Blog absichern

Einen WordPress-Blog absichern – XML-RPC-Schnittstelle abschalten

Die sogenannten XML-RPC-Schnittstelle steht für „Extended Markup Language Remote Procedure Call“ und bietet die Möglichkeit einer automatisierten Schnittstelle zwischen einem anderen System und Ihrem Blog. Beispielsweise lassen sich so B2B-Schnittstellen zu Dienstleistern realisieren, um bspw. neue Bestellungen (Einkauf) für Ihren Onlineshop automatisch abzusetzen. Viele Standardinstallationen von WordPress benötigen diese Schnittstelle gar nicht. Aber: sie wird oft als Angriffspunkt verwendet. Wir sehen regelmäßig in unseren Logfiles (access.log bzw. secureaccess.log) automatisierte versuchte Logins über diese Schnittstelle. Das Fatale daran: selbst, wenn man den Standardlogin per System überwacht und bspw. nach 3 Anmeldeversuchen eine Zeitverzögerung einbaut, so steht die XML-RPC-Schnittstelle meist ohne diese Schutzmechanismen im Internet und es gibt immer wieder sog. Brut Force-Angriffe.

Schalten Sie die XMLRPC-Schnittstelle ab, falls Sie sie nicht benötigen. Das erhöht die Sicherheit Ihrer WordPress-Website und verhindert versuchte Logins mittels Brut Force-Technik. Die XMLRPC-Schnittstelle können Sie bspw. mit einem Plugin abschalten.

Um in einer WordPress-CMS-Website die XMLRPC-Schnittstelle abzuschalten, können Sie folgendermaßen vorgehen:

  • Melden Sie sich an Ihrer WordPress-Installation an und navigieren Sie zum Dashboard.
  • Unter dem Menüpunkt Plugins finden Sie den Punkt „Installieren“.
  • Geben Sie im Suchfenster den Begriff „XML RPC“ ein und wählen Sie eines der Plugins, die die Schnittstelle abschalten. Bspw. haben wir das Plugin „Disable XML RPC“ von Philip Erb ausgewählt.
  • Installieren Sie das Plugin und aktivieren Sie es.
  • Die XML-RPC-Schnittstelle ist nun nicht mehr aktiv und kann nicht mehr als Einbruchslücke per versuchtem Hacker-Login missbraucht werden.
Belta.de - Einen Wordpress-Blog absichern

Einen WordPress-Blog absichern – Login-Seite verstecken

Viele automatisierte Hackinganfragen zielen auf die Standard-Login-Seite des WordPress-CMS-Systems ab. Konkret heißt das: ein Script ruft Ihre Domain auf (bspw. www.belta.de) und hängt daran die URL-Vervollständigung wp-login.php, d.h. in diesem Fall würde das Script die Seite www.belta.de/wp-login.php aufrufen und per Brut Force-Technik aus einem Lexikon bestimmte Benutzernamen und Passwörter zufällig einsetzen. Wenn Sie das selbst in einem Logfile nachvollziehen möchten, so ist der Aufruf leicht zu sehen, der HTML-Antwortcode des Servers ist in der Regel 200 (Aufruf ok und korrekt ausgeführt), der Login funktioniert selbstverständlich nur, wenn der Angreifer korrekten Benutzernamen und Kennwort eingibt.

Brut Force bedeutet in diesem Fall, dass ein Angreifer verschiedene Kombinationen von Benutzernamen und Kennwörtern eingibt. Das passiert – wenn es nicht eingeschränkt wird – dauernd und belastet neben der eigentlichen Gefahr auch die Perfomance des Servers.

Um diese Standardangriffe zu vermeiden, kann man einfach die URL der Login-Seite ändern. Das kann folgendermaßen ganz einfach passieren:

  • Rufen Sie das Dashboard Ihrer WordPress-CMS-Seite auf.
  • Unter dem Menüpunkt Plugins rufen Sie den Punkt „Installieren“ auf.
  • Suchen Sie das Plugin WPS Hide Login von WPServeur, NicolasKulka, wpformation
  • Installieren Sie das Plugin
  • Konfigurieren Sie unter Einstellungen – „WPS Hide Login“ die neue Login-URL, bspw. setzen Sie dort „anmelden“ als neue URL. Somit wäre hier die Beispiel-URL: www.belta.de/anmelden
Belta.de - Einen Wordpress-Blog absichern

Einen WordPress-Blog absichern – PHP-Version, CMS und Module

In aktueller Zeit ist es wichtig, seine bestehende Website bzw. das WordPress-System mit geeigneten Mitteln abzusichern. Was viele, die bspw. ein Hostingpaket ohne Logfile-Kontrolle gemietet haben, gar nicht wissen: minütlich gibt es versuchte Angriffe von Hackern, die zum Ziel haben, sich unberechtigt an der Website anzumelden oder Malware (Schadsoftware) zu installieren.

Dabei werden mögliche Schwachpunkte ausgenutzt, die sich in die folgenden Kategorien einsortieren lassen:

  • PHP (Scriptsprache, mit der WordPress realisiert ist) und veraltete PHP-Versionen
  • WordPress CMS
  • Plugins (Module)
  • Themes (Themenvorlage für die Website, üblicherweise 1 verwendetes Theme je WordPress-Installation
  • Benutzerkonten (Anmelde-Accounts mit Benutzernamen und Kennwort)

PHP und PHP-Versionen

Die Scriptsprache PHP bildet zusammen mit dem Datenbanksystem mySQL die Grundlage für die Darstellung des CMS-Systems. Die Vorlagen für die Hauptseite, Kopf sowie Footer und Systemprozeduren sind allesamt in PHP programmiert. PHP wird regelmäßig mit Updates versehen, u.a. mit Sicherheitsupdates. Eine neuere Version ersetzt ältere Versionen.

Typische PHP-Versionen:

  • PHP-Version 4.0 – ab dem Jahr 2000
  • PHP-Version 5.6 – zwischen 2014 – 2019
  • PHP-Version 7.0 – ab 2015
  • PHP-Version 7.4 – zwischen 2019 – 2021
  • PHP-Version 8.0 – ab November 2020 bis Januar 2022

Ideal wäre, jeweils zeitnah die aktuelle Version zu verwenden. Auch die Provider (Strato, Alfahosting, 1&1) halten ihre Kunden dazu an, die PHP-Version jeweils selbst über das Admin-Panel zu erhöhen. Wenn Sie das nicht tun, kann es gegen eine Gebühr eine Ausnahmeregelung geben. Die Erhöhung der PHP-Version muss aber überprüft werden, um Fehler zu vermeiden. Das WordPress-CMS selbst zeigt in verschiedenen Versionsständen eine Kompatibilität mit bestimmten PHP-Versionen. Ebenfalls sind Plugins und Themes in verschiedenen Version mit bestimmten PHP-Versionen kompatibel. In der Praxis prüft man vorher das CMS-System, die Plugins, Themes auf Kompatibilität und – falls kompatibel – testet dann die Erhöhung der PHP-Version in einer Testumgebung oder (falls keine Testumgebung) in der Produktion. Das geschieht dann idealerweise in der Nebenzeit (Wochenende, Nacht).

Halten Sie die PHP-Version Ihrer Website möglichst aktuell. Dabei sollten Sie vor einer Erhöhung der Version das WordPress-CMS sowie Module (Plugins, Themes) testen. Ideal ist eine Testumgebung, eine parallele Installation der Produktionsumgebung. Dort erhöhen Sie dann über das Admin-Panel Ihres Providers die PHP-Version. Testen Sie die Seite! Funktioniert alles wie erwartet, so können Sie die PHP-Version der Produktivumgebung erhöhen. Regelmäßige Backups sollten immer eingeplant werden und so können wir bei einem unerwarteten Verhalten einen älteren Stand der Website zurückspielen.

WordPress CMS

Das WordPress-System selbst ist möglichst aktuell zu halten. Hier gibt es ähnlich wie bei der PHP-Version ggf. Abhängigkeiten der Module (Plugins, Themes) und es muss getestet werden.

Typische WordPress-Versionen:

  • WordPress CMS Version 1.0 – 2004
  • WordPress CMS Version 3.0 – ab 2010
  • WordPress CMS Version 3.7 – ab 2013
  • WordPress CMS Version 4.0 – ab 2014
  • WordPress CMS Version 5.0 – ab 2018
  • WordPress CMS Version 5.6 – ab 2020
  • WordPress CMS Version 5.8 – Juli 2021
  • WordPress CMS Version 5.9 – Januar 2022

Halten Sie die Version Ihres WordPress CMS immer auf dem neuesten Stand. WordPress wird somit mit Sicherheitsupdates versehen, evtl. vorher vorhandene Sicherheitslücken werden gestopft, Angriffe von Hackern erschwert. Prüfen Sie vorab die Verträglichkeit des WordPress-Upgrades mit den vorhandenen Plugins und dem vewendeten Theme. Ggf. ist hier ebenfalls der Test über eine Testumgebung sinnvoll. Bei unerwarteten Reaktionen lässt sich aus vorher gemachten Backups des CMS-Systems (Dateien) sowie der Datenbank (MySQL) die Website wieder zurücksetzen.

Plugins und Themes

Plugins und Themes stammen von verschiedenen Herstellern. Diese haben auf ihrer Website immer Infos zu den Versionen und zu Änderungen bei neueren Versionen. Gerade Lücken und Sicherheitslücken sollten zeitnah behoben werden (was leider nicht immer bei allen Herstellern der Fall ist) und so kann man durch eine gewisse Sisyphusarbeit herausbekommen, welche Lücken in welchem Modul besonders gefährlich sind und diese Module jeweils schnell entweder mit Updates versehen oder (wenn Hersteller keine Updates anbietet) das Modul entfernen oder zeitweise mit einer Alternative ersetzen.

Halten Sie möglichst alle Plugins und Themes aktuell. Sollte es keine Updates geben und es bestehen Sicherheitslücken, so schauen Sie sich ggf. nach einem alternativen Modul um. Das alte sicherheitsanfällige Modul wird dann deaktiviert und deinstalliert.