WordPress Sicherheit – Guide zur schrittweisen Absicherung ohne Programmierkenntnisse

WordPress ist in vielen Bereichen eine geeignete Software, welche vor allem in seiner Basisausstattung ohne große technische Kenntnisse oder Hürden direkt einsetzbar ist. Deswegen und auf aufgrund seiner Flexibilität ist die Open Source-Software für den Einsatz von Blogs, Content Management Systemen, modernen Webseitenauftritten und Online Shops sehr beliebt.

Jeder ernsthafte Webseitenbetreiber sollte neben der inhaltlichen Gestaltung und dem optischen Design aber vor allem den Aspekt der Sicherheit im Auge behalten. Das gilt sowohl für Hackerangriffe, wie schädliche Malware gleichermaßen. In diesem Artikel sehen wir uns die wesentlichen Faktoren zur Absicherung von WordPress Installationen an, welche als rudimentär gewertet werden können.

Dieser Artikel ist auf Grundlage des Artikels „Wordpress Sicherheit“ der auf fastWP veröffentlicht wurde, entstanden. Vielen Dank für die umfangreichen Informationen. (https://fastwp.de/wordpress-sicherheit/ )

Grundlagen der WordPress Sicherheit

Aufgrund einer großen Community mit Hunderten von Entwicklern kann die Basissoftware von WordPress als sicher angesehen werden. Dennoch: WordPress wird ständig weiterentwickelt. Somit vergeht nur selten eine Woche, in der es kein kleineres Update gibt, welches neue Funktionen oder einen Bugfix für eine kleine Sicherheitslücke bereitstellt.

Um die Webseiteninstanz mit der WordPress-Installation nicht zu gefährden ist notwendig, dass diese gepflegt wird. Dabei geht es aber um deutlich mehr als nur gelegentlich ein fälliges Update zu installieren.

WordPress Logo

Mit den nachfolgenden Hinweisen, konkreten Anleitungen und Tipps + Tricks werden auch weniger erfahrene WordPress-Benutzer in der Lage sein, dass System abzusichern. Zudem ist dieses Tutorial ideal dazu geeignet, die eigenen Kenntnisse im Bereich der WordPress Administration aufzufrischen oder zu ergänzen.

WordPress aktuell halten

Ein aktuelles Livesystem ist der erste Schritt in die richtige Richtung, um nachhaltige WordPress Sicherheit zu gewährleisten. Die Aktualisierungen erfolgen in zwei Ebenen: Zum einen muss WordPress selbst auf dem aktuellen Stand gehalten werden und zum anderen sind Plugins nicht zu vernachlässigen. Aus Gründen der Sicherheit wird dringend angeraten, jedes Update zeitnah zu installieren.

WordPress Aktualisierung Schritt-für-Schritt

Bevor ein WordPress Update durchgeführt wird, empfiehlt es sich ein Backup der Datenbank und der Dateien der WordPress Installation auf dem Server durchzuführen. Für diese Aufgaben existieren sowohl diverse Bordmittel, wie auch zahlreiche Plugins mit unterschiedlichen Funktionsumfang. Durch das Backup wird gewährleistet, dass ein eventuell fehlgeschlagenes Update schnell zurückgesetzt werden kann, sodass der eigentliche Betrieb des Webauftritts sichergestellt ist.

WP-Dashboard Aktualisierungen

Die Funktion zur Aktualisierung von WordPress befindet sich im Menü DASHBOARD – AKTUALISIERUNGEN. Dort besteht die Möglichkeit angezeigte Updates für WordPress oder Plugins direkt zu installieren. Die automatische Installation wird empfohlen, da diese am einfachsten zu handhaben ist. Falls die automatische Installation nicht aktiviert wurde, können Updates auch von Hand vorgenommen werden, indem die neusten Dateien heruntergeladen und auf Serverebene installiert werden.

Im selben Bereich befinden sich auch Updates für Plugins. Diese beheben oft (große) Sicherheitslücken und bieten nützliche neue Features an, weswegen die Aktualisierung der Erweiterungen keineswegs vernachlässigt werden sollte. Ein Blick auf die Liste der installierten WordPress Plugins kann nicht schaden und es wird empfohlen nicht mehr benötigte Erweiterungen rigoros zu deinstallieren. Das trägt nicht zur Sicherheit des Systems bei, sondern erhöht nebenbei auch die Performance der Installation.

Auf dem Weg zu einer sicheren WordPress Installation („WordPress hardening“) gibt es aber noch weitere Methoden, welche empfohlen und nachfolgend vorgestellt werden.

WP-Login Fenster

Passwörter und Zugriffsrechte bei WordPress absichern

Eine der größten Sicherheitsrisiken – nicht nur bei WordPress – sind gestohlene Benutzernamen und Passwörter. Dies kann verhindert oder zumindest deutlich erschwert werden, wenn nachfolgende Tipps Berücksichtigung finden.

Einprägsame Benutzernamen und Passwörter erleichtern zwar das Arbeiten, sind aber zugleich ein hohes Sicherheitsrisiko, da diese ggf. schnell erraten werden können oder vor Angriffen nicht sicher sind. Sichere Kennwörter sind durch einen Mix von

  • Kleinbuchstaben
  • Großbuchstaben
  • Zahlen
  • Sonderzeichen

gekennzeichnet. Es bietet sich an möglich lange Kennwörter zu verwenden und diese in unregelmäßigen Abständen zu ändern. Auf diese Weise kann eine gleichbleibend hohe Sicherheit gewährleistet werden.

Tipp: Die Wahl von Benutzernamen und Passwörter, welche nicht in Verbindung mit persönlichen Aspekten gebracht werden können ist dringend angeraten. Bei fehlender Kreativität bietet es sich an, Sätze wie zum Beispiel „Freitags kostet ein Brot im Supermarkt 1 Euro weniger!“ zu verwenden und davon nur die Anfangsbuchstaben (mit Groß- und Kleinschreibung!) einzusetzen. Im Beispiel würde dann diese Kombination aus Buchstaben, Zahlen und Zeichen entstehen: FkeBiS1w! Wer sich diese Mühe nicht machen möchte oder sehr viele Zugänge verwalten muss, dem wird der Einsatz einer sicheren Passwortverwaltung nahegelegt.

Es ist wichtig, hierbei nicht nur WordPress im Auge zu behalten, sondern alle den professionellen Webauftritt betreffenden Systeme. Dazu zählt zudem der Zugang zum Server oder Hosting, FTP-Account, Datenbank und auch E-Mail. Nur wenn alle involvierten Systeme mit einer starken Kombination von Benutzernamen/Passwort abgesichert sind, kann die gesamte WordPress-Installation als deutlich sicherer angesehen werden!

Benutzerkonfiguration WordPress

Sicheren Admin-Benutzernamen vergeben

Der Administrator-Account wird am häufigsten angegriffen, was wenig verwunderlich ist, da dieser die Kontrolle über die komplette Installation bereithält. Seit WordPress 3.0 kann der Benutzername für den Administrator (Standard: admin) während der Installation geändert werden. Es wird empfohlen von dieser Möglichkeit Gebrauch zu machen. Bei einer bestehenden Installation stehen zwei Möglichkeiten zur Auswahl um das Kennwort des WordPress Administrator zu ändern:

  1. Mittels phpMyAdmin kann auf die Datenbank der betreffenden Installation zugegriffen werden. Dort kann in der Tabelle users im Feld user_login der Benutzername geändert werden. Technisch weniger anspruchsvoll ist die nachfolgende zweite Variante:
  2. Mit dem Administrator-Account kann im WordPress Backend ein zweiter Benutzer mit Administrator-Rechten angelegt werden. Nachdem geprüft wurde, dass der neue Admin-Account korrekt arbeitet, kann der bisherige Administrator-Account gelöscht werden.

Tipp: Prinzipiell empfehlen wir den Einsatz von zwei mindestens zwei Accounts. Neben dem Admin-Account bietet sich noch ein Benutzerkonto mit der Rolle „Redakteur„. Das Benutzerkonto ‚Redakteur‘ eignet sich ideal für die tägliche Arbeit, sodass der administrative Account nur im Falle von Konfigurationen, Updates, Änderungen am Theme, etc. genutzt wird. Damit wird gleichzeitig vermeiden, dass bei der täglichen Arbeit ungewünschte Änderungen an den Einstellungen vorgenommen werden.

Sperre nach fehlgeschlagenen Login-Versuchen

Ein weiteres Sicherheitsfeature stellt die Sperre nach einer definierten Anzahl ungültiger Loginversuche dar. Damit können Brute-Force-Attacken verhindert werden! Dazu Plugin „Limit Login Attemps“ leistet hierbei gute Dienste. Damit kann festgelegt werden, nach wie vielen fehlgeschlagenen Logins eine Sperre erfolgt. Zudem können E-Mail-Nachrichten versendet werden, die darüber informieren, wenn sich Unregelmäßigkeiten bei der Login-Maske bemerkbar machen.

URL-Zeile mit /wp-admin

Zugriffsrechte auf die WordPress Installation sicher gestalten

Um potentiellen Angreifern Attacken weiter zu erschweren ist das Umbenennen der Standard-Login-URL /wp-admin oder wp-login.php ein bewährtes Mittel. Dafür wird die Standard-Login-Schnittstelle mit einem beliebigen String umbenannt. Auch hier bietet sich eine beliebige Kombination aus Zahlen und Buchstaben an. Dies hat zur Folge, dass Anfragen auf diese bekannten URLs nicht mehr zum Login-Fenster führen und somit keine Attacken auf die Anmeldung durchgeführt werden können.

Es gibt eine Vielzahl von Plugins, welche diese Funktion unterstützen. Die Plugins „Protect Your Admin“ und „WPS Hide Plugin“ werden gegenwärtig noch regelmäßig gepflegt und werden daher empfohlen. Zudem bieten die Plugins noch einige Zusatzfeatures, die die Sicherheit der betreffenden WordPress Installation erhöhen können.

Login-Fehlermeldungen deaktivieren

Wem das Verstecken der Anmeldeseiten zu aufwendig ist, der kann Angreifern das Leben zu erschweren, indem er Fehlermeldungen bei der Anmeldemaske unterbindet. Hintergrund: WordPress gibt bei erfolgloser Anmeldung eine Fehlermeldung aus, welche anzeigt, ob das Passwort und/oder der Benutzername fehlerhaft waren. Bei der Eingabe eines korrekten Benutzernamens, weiß der Angreifer, dass er nur noch das Passwort „knacken“ muss, da die Fehlermeldung anzeigt, dass der Benutzername korrekt war.

Um dies zu unterbinden empfehlen wir keine Fehlermeldungen beim Login-Fenster auszugeben. Dies wird erreicht, indem in die Datei functions.php des aktivierten Themes folgende Zeile hinzugefügt wird:

add_filter('login_errors',create_function('$a', "return null;"))';

Ausschnitt functions.php

Sicherer Zugriff auf die Dateiebene des Webservers

Um Dateien auf den Webserver zu übertragen wird in den meisten Fällen ein FTP-Programm genutzt. Damit die Übertragung verschlüsselt erfolgt und somit ein Auslesen von wichtigen Informationen wie Benutzernamen und Passwörtern verhindert wird, empfehlen wir den Einsatz des SFTP-Protokolls (SecureFTP) beim direkten Zugriff auf den Webserver.

Zugriff auf Ordner und Dateien einrichten

Dem Zugriff auf Dateien und Ordner ist besondere Aufmerksamkeit zu widmen. Ein mächtiges Werkzeug ist die Konfiguration mittels der Datei .htaccess, welche sich im Root-Verzeichnis der Installation befindet.

Verzeichnisschutz für den Administrationsbereich

Mit dem Einrichten einer zweiten Passwort-Ebene wird das Sicherheitsniveau einer WordPress Installation deutlich angehoben. Nicht nur, dass unautorisierte Zugriffe vermieden werden können, auch Brute-Force-Attacken können nicht dazu führen, dass Angriffe auf die Login Maske zu einer Überlastung des Servers führen.

Screenshot erzeugtes PW für .htaccess

Die Erstellung einer sicheren, verschlüsselten Passwort-Datei wird hierfür am besten mit dem .htpasswd Generator erstellt. Das Passwort wird auf dem Server in einer Datei mit dem Namen .htpasswd hinterlegt. Der Aufruf dieser Passwort-Datei muss in die .htaccess eingefügt werden. Beispiel:

<Files wp-login.php>

AuthType Basic

AuthName "Verzeichnisschutz durch zweites Passwort"

AuthUserFile /pfad/pfad/.htpasswd ### hier den Pfad mit der Datei .htpasswd eintragen ###

Require valid-user

</Files>

Diese Anweisungen sorgen dafür, dass zunächst eine Anmeldung am Webserver erfolgen muss. Erst wenn diese erfolgreich ist, kommt die Login-Maske der WordPress-Installation.

SSL-Verschlüsselung aktivieren

SSL ist mittlerweile Standard für sichere Verbindungen. Nicht nur den Besuchern, sondern auch der Administrationsoberfläche sollte diese Feature spendiert werden. Nachdem SSL auf dem Webserver eingerichtet und aktiviert wurde, müssen diese Zeilen in die Konfigurationsdatei wp-config.php eingetragen werden:

define('FORCE_SSL_LOGIN', true);

define('FORCE_SSL_ADMIN', true);

Damit wird eine sichere Datenübertragung gewährleistet, welche es potentiellen Angreifern deutlich erschwert Zugangsdaten oder Passwörter auszuspähen.

Mediathek Upload-Ordner Pfad ändern

Der Upload-Ordner, welcher für das Speichern von Grafiken oder Download-Dateien verwendet wird ist ein relativ ungeschützter Ordner. Die Zugriffsrechte (jeder kann lesen und schreiben) können nicht geändert werden, da sonst die Funktionalität nicht mehr gegeben wäre. Aber die Einstellungen erlauben es den Ordner auf einem anderen Pfad des Webservers zu speichern. Dazu muss im Konfigurationsmenü „Einstellungen – Mediathek – Uploads in folgendem Ordner speichern“ der Verzeichnispfad geändert werden.

WordPress Datenbank absichern

Die Datenbank von WordPress ist ein beliebtes Ziel für Angriffe. Der Standard-Tabellenprefix „wp_“ der Datenbanken ist bekannt. Erfreulicherweise kann dieser während der Installation geändert werden. Durch das Anfügen einer beliebigen Zeichenkette, wie z.B. „wp64aezf_“ wird es potentiellen Angreifern schwerer möglich sein Zugriff auf die Datenbank zu erlangen. Bei einer bestehenden Installation kann das Tabellen-Präfix zwar geändert werden, was aber mit etwas Aufwand verbunden ist.

Besonderes Augenmerk muss auf die Datei wp-config.php gelegt werden. Dort sind alle relevanten Zugangsdaten zur Datenbank eingetragen. Damit diese nicht in unbefugte Hände gelangen, sollte folgende Zeile zur .htaccess hinzugefügt werden:

<FilesMatch ^wp-config.php$>deny from all </FilesMatch>

Wir empfehlen in dem Zusammenhang zudem den Zugriff auf die Inhalte der Ordner des Webservers zu unterbinden. Zwei Methoden führen hier zum Ziel. Entweder wird in jedem Ordner eine leere Datei index.html angelegt oder deutlich effektiver diese Zeile zur .htaccess hinzugefügt:

Options All -Indexes

Unnötige Informationen zur WordPress Installation abschalten

Gravierende Sicherheitsmängel bei WordPress Versionen werden normalerweise durch Hot Fixes oder Updates schnell behoben, sobald diese öffentlich bekannt sind. Umso wenig wie möglich Informationen preiszugeben, sollte die Anzeige der verwendeten Version im Quelltext unterbunden werden. Dazu wird diese Zeile in die functions.php des betreffenden Themes hinzugefügt:

remove_action('wp_head', 'wp_generator');

Somit wird verhindert, dass ein Angreifer die nötigen Informationen zur aktiven WordPress Version erhält.

Beispiel einer gehackten Webseite

Meine Webseite wurde gehackt! Was tun?

Auch wenn dieser Fall nach der korrekten Umsetzung unserer Tipps zur Absicherung von WordPress unwahrscheinlicher wird, so ist er nie ganz auszuschließen. Sollte der Eindruck entstehen, dass die WordPress-Seite gehackt wurde, dann gilt es zunächst Ruhe zu bewahren und besonnen die nachfolgenden Maßnahmen zu ergreifen:

  1. Änderungen der Kennwörter aller (!) WordPress-Accounts, Datenbank und FTP-Zugang. In dem Zusammenhang sollte geprüft werden, ob nicht „unbekannte“ Benutzer vom Angreifer angelegt worden. Diese sind zu löschen.
  2. Datenbank und Dateien auf dem Webserver sichern. Diese könnten mit einem Schadcode infiziert sein. Wenn möglich wird empfohlen auf ein älteres Backup vor dem erfolgreichen Angriff zurückzugreifen. Im Falle einer tragbaren Backupstrategie sollte dies vorhanden sein.
  3. Löschen der Ordner wp-admin und wp-includes. Diese sind das Herzstück (core) von WordPress und sollte durch die Dateien der WordPress-Installation (ZIP-Datei) ersetzt werden.
  4. Austauschen aller Dateien des Root-(Wurzel)-Verzeichnis auf dem Webserver mit Ausnahme von .htaccess und wp-config.php. Da diese möglicherweise infiziert sein könnten, empfehlen wir hier eine Prüfung der Konfigurationsdateien.

Nach erfolgreichem Abschluss ist zu prüfen, ob sich noch Spuren des Angriffs finden lassen. Eine alternative Strategie besteht darin, dass System komplett neu zu installieren und eine Backup-Version vor dem Angriff einzuspielen. Sollten alle Versuche fehlschlagen, empfehlen wir die Konsultation eines WordPress Fachmanns oder Dienstleister, welcher nachweislich Erfahrung in der Behebung derartiger Vorkommnisse vorweisen kann.

Fazit WordPress Sicherheit

Bei ordnungsgemäßer Umsetzung der vorgestellten Tipps kann davon ausgegangen werden, dass die WordPress-Installation über eine Basis Sicherheit verfügt. Somit bietet das System sowohl vor fehlerhaftem Code, schädlicher Malware und der „feindlichen“ Übernahme durch Angreifer ein Level, welches deutlich schwieriger zu überwinden ist, als wenn die Installation auf dem Standardniveau ist.

Um langfristig im Internet mit WordPress Projekten erfolgreich zu sein, gehört neben der Pflege, Wartung und Weiterentwicklung auch das Thema Sicherheit dazu. Ein stabiles, abgesichertes System sichert nicht nur reibungsfreies Arbeiten, sondern trägt auch zum Vertrauen und der Akzeptanz bei den Besuchern bei.