Der WordPress Basis Security Guide

Das Content Management System WordPress kommt bei etwa 30% aller Webseiten im Internet zum Einsatz. Eine so weitverbreitete Software zieht natürlich auch das Interesse potenzieller Angreifer auf sich, umso wichtiger also, dass Ihre WordPress Webseite ausreichend abgesichert ist und möglichst wenig Angriffsfläche bietet.

Um Sie dabei zu unterstützen, haben wir diesen WordPress Basis Security Guide zusammengestellt, der einige leicht umzusetzende Maßnahmen enthält, mit denen Sie die Sicherheit Ihrer Webseite sofort erhöhen können. Da vieles davon über den Einsatz von Plugins realisiert wird, finden Sie natürlich auch Vorschläge für entsprechende Plugins im Guide.

Eine Kurzversion dieses Guides können Sie kostenlos als Checkliste downloaden und abhaken wie gut es um die Sicherheit Ihrer WordPress Webseite bestellt ist.

Login Seite verstecken

Unter /wp-login und /wp-admin (bzw. /login und /admin als Weiterleitungen) kann jeder die Login Seite einer WordPress Webseite erreichen. Das ist bei einem Forum oder einem Onlineshop sicher sinnvoll, da hier ja ein Login nötig ist, um die volle Funktionalität der Seite nutzen zu können.

Stellt die Seite allerdings nur Informationen bereit (was bei den meisten Unternehmenswebseiten der Fall ist) dann ist es vollkommen unnötig, dass jeder weiß, wo sich die Login Seite befindet. Die Login Möglichkeit wird dann nur von wenigen Menschen genutzt, etwa um die Seite zu administrieren oder neue Beiträge auf dem Firmenblog zu veröffentlichen.

In diesem Fall sollte die URL der Login Seite geändert werden, auf einen möglichst zufälligen Pfad, der nur den Mitarbeitern bekannt ist, die sich auch einloggen müssen. In diesem neuen Pfad sollte auch nicht das Wort „login“ vorkommen, sondern er besteht im Idealfall aus einer zufälligen Buchstaben und Zahlenkombination. Beispielsweise www.[ihreSeite].de/fewd0921iosaw76786 .

Beachten Sie, dass der neue Pfad lang genug sein sollte, um eine Entdeckung mittels Brute Force möglichst zu verhindern. Kurze Namen könnten ansonsten mit Tools wie DirBuster oder Burp Suite relativ leicht ausfindig gemacht werden, da diese in der Lage sind, verschiedene Buchstabenkombinationen durchzuprobieren und die erfolgreichen Versuche anschließend ausgeben können.

Die Umbenennung der Login Seite ist in vielen Security Plugins standardmäßig enthalten. Wer möchte, kann aber auch ein eigenes Plugin verwenden, das sich nur um diese Aufgabe kümmert. Eine kurze Übersicht zu solchen Plugins ist nachfolgend aufgeführt (ohne Anspruch auf Vollständigkeit):

  • Change wp-admin login
  • WPS Hide Login
  • Hide My WP Lite

 

Das Verstecken der Login Seite ist eine einfache und leicht umzusetzende Maßnahme, die das Sicherheitslevel Ihrer Seite sofort erhöht. Sicherstellen sollte man allerdings, dass man den Pfad zur Login Seite nicht vergisst, ansonsten wird es schwierig, sich wieder Zugriff auf die Seite zu verschaffen. Am besten verwendet man hier einen Passwort Manager, in dem sich neben Username und Passwort auch die URL der Seite speichern und beim Login dann einfach kopieren lässt.

2-Faktor Authentifizierung verwenden

Die Einrichtung einer 2-Faktor Authentifizierung ist eine der wirkungsvollsten und gleichzeitig am einfachsten umzusetzenden Maßnahmen, um einem Hacker sein Handwerk zu erschweren. Plugins, mit denen dies erreicht werden kann, sind beispielsweise (ohne Anspruch auf Vollständigkeit):

  • Duo Two-Factor Authentication
  • Google Authenticator – Two Factor Authentication
  • Two Factor Authentication
  • Rublon Two-Factor Authentication

 

Der Ablauf sieht in der Regel so aus, dass man sich eine App auf sein Handy lädt (beispielsweise den Google Authentificator) und vom Plugin innerhalb des WordPress Dashboards einen Zahlen- oder QR-Code angezeigt bekommt. Diesen tippt man in der App ein (bzw. scannt ihn) um die Verbindung herzustellen. Anschließend wird man nach jedem Login im Anschluss an das Passwort noch nach einem sechsstelligen Zahlencode gefragt, der in der App angezeigt wird und sich in regelmäßigen Abständen aktualisiert.

Die Einrichtung ist also in unter einer Minute erledigt und auch der Login dauert kaum länger als bisher. Dennoch bringt diese Maßnahme einen deutlichen Zugewinn an Sicherheit mit sich. Denn selbst wenn es einem Hacker nun gelingen sollte, an Ihr Passwort zu gelangen (etwa durch Phishing) bringt ihm das nichts, weil er außerdem noch physischen Zugriff auf Ihr Handy brauchen würde, um den Login erfolgreich durchzuführen.

Im Grunde gibt es also kaum einen Grund die 2-Faktor Authentifizierung nicht zu verwenden.

Regelmäßig updaten

Grundsätzlich gibt es zwei Arten von Updates: Updates der WordPress Version und Updates für einzelne Plugins. Updates für die WordPress Version kommen nur alle paar Monate vor, sollten aber unbedingt so bald wie möglich durchgeführt werden, da damit oft auch Sicherheitslücken behoben werden.

Plugin Updates kommen dagegen sehr viel häufiger vor, schon bei 10-15 installierten Plugins (und diese Anzahl hat man schnell zusammen) wird man sehr wahrscheinlich pro Woche mindestens eines davon updaten müssen. Hierbei handelt es sich aber nicht immer um sicherheitskritische Updates, sondern oft auch nur um kleinere Verbesserungen oder das Hinzufügen neuer Funktionalitäten. Hier ist es also nicht dramatisch, wenn man nicht sofort updatet, dennoch sollte man darauf achten, dass Updates möglichst zeitnah installiert werden.

Sowohl WordPress als auch Plugin Updates können mit einem Klick durchgeführt werden und erfordern keine weiteren Interaktionen von Seiten des Users. Wer sich Sorgen macht, ob ein Update eventuell die Funktionalität der Seite beeinträchtigt, kann ein Backup erstellen, eine Kopie der Seite aufsetzen und dort dann alle Updates zunächst auf ihre Verträglichkeit mit der bestehenden Seite testen. Falls es dann allerdings einmal ein unverträgliches Update gibt, sollte man auch versuchen, die Probleme vollständig zu beheben und nicht einfach das Update überspringen.

Security Plugins verwenden

Es gab Zeiten, da wurde WordPress als Backdoor mit Login Funktionalität beschrieben. Mittlerweile hat sich die Sicherheit der WordPress Software zwar verbessert (und jeder kann bei GitHub einen Blick auf den Code werden: https://github.com/WordPress/WordPress ), dennoch stellt WordPress aufgrund seiner weiten Verbreitung natürlich ein beliebtes Angriffsziel für Hacker dar.

Von Haus aus bietet WordPress eher wenig Möglichkeiten, die Sicherheit zu verbessern, doch wie im WordPress Ökosystem üblich, haben sich natürlich einige Plugins diesem Thema angenommen. Einige davon sollen hier kurz vorgestellt werden, allerdings ohne Anspruch auf Vollständigkeit und ohne Wertung, welches denn nun das Beste ist:

  • Wordfence-Security
  • Sucuri Security
  • All In One WP Security & Firewall
  • Security Ninja

 

Daneben gibt es auch noch weitere Plugins, die sich einem bestimmten Thema widmen:

  • Security & Malware scan (Scanner)
  • WP Activity Log (Logging)
  • Akismet Spam-Schutz (Anti Spam)

 

Neben der Einrichtung einer 2-Faktor Authentifizierung stellt die Verwendung eines guten Security Plugins wohl die Maßnahme dar, die den größten Zugewinn an Sicherheit für die Webseite mit sich bringt. Allerdings ist es mit der bloßen Installation noch nicht getan, die meisten Plugins bieten unzählige Einstellungsmöglichkeiten, die je nach persönlichem Bedarf konfiguriert werden können. Hier sollte man sich also ein wenig Zeit nehmen, um das Plugin optimal auf die eigenen Bedürfnisse und Anforderungen abzustimmen.

Übrigens: Wie auch bei Antiviren Software gilt hier NICHT das Motto „Viel hilft viel“. Stattdessen ist es eher so, dass sich verschiedene Plugins, die dieselben Aufgaben erledigen wollen, ins Gehege kommen und darunter die Performance der Seite oder sogar die Funktionalität der Security Funktionen leiden kann. Am besten entscheidet man sich also für ein einziges Plugin, das alle Funktionen liefert, die man gerne haben möchte.

Backups anlegen

Egal wie gut man sich vorbereitet und absichert, es ist nicht möglich, jedes Risiko zu eliminieren. Neben der Absicherung seiner Seite sollte man sich also auch Gedanken darüber machen, was passiert wenn der Ernstfall eintritt und die Seite gehackt wird.

Das bedeutet zunächst einmal: Regelmäßig Backups anlegen. Wie so vieles bei WordPress gibt es dafür natürlich auch Plugins. Im Folgenden eine kleine Auswahl ohne Anspruch auf Vollständigkeit:

  • UpdraftPlus
  • VaultPress
  • BackWPup
  • Duplicator

 

Diese Plugins sind in der Lage, in regelmäßigen Abständen Backups zu erstellen und in einem Cloudspeicher wie Dropbox oder Google Drive zu sichern. Alternativ kann das Backup auch auf den eigenen Computer heruntergeladen werden.

Wichtig: Allein mit dem Anlegen von Backups ist es noch nicht getan. Hin und wieder sollte das Backup auch getestet werden, einerseits um zu sehen, ob alle relevanten Daten erfasst wurden und alle Funktionen wie gewohnt zur Verfügung stehen. Andererseits aber auch um den Prozess des Backup Einspielens zu trainieren, damit im Ernstfall alles so reibungslos wie möglich abläuft. Damit das Ganze möglichst ohne Störung der Produktivwebseite abläuft, bietet sich dafür ein extra Testserver an. Diese kann dann gleichzeitig auch dafür genutzt werden, größere Updates auf ihre Kompatibilität mit der bestehenden Seite zu testen und gegebenenfalls Anpassungen vorzunehmen.

Ebenfalls wichtig: Falls Sie eine Versicherung gegen Cyberangriffe abgeschlossen haben, dann wird diese Versicherung ein Interesse daran haben, den Schadensfalls und seine Hintergründe zu untersuchen. Das ist aber kaum mehr möglich, wenn Sie bereits die gehackte Webseite ausradiert und das Backup eingespielt haben. Das wiederum kann dann zu Problemen führen, wenn es darum geht, wer für den entstandenen Schaden aufkommen muss. Um das zu verhindern, sollten Sie schon im Vorfeld klären, welche Schritte zu unternehmen sind, damit Sie einerseits möglichst schnell wieder eine Seite im Netz haben und andererseits die Versicherung dennoch die Möglichkeit hat, den Vorfall zu untersuchen.

https statt http

Als Webseiten Betreiber sind Sie nicht nur für die Sicherheit Ihrer Webseite verantwortlich, sondern auch für die Sicherheit der Daten, die Ihre User bei Ihnen auf der Seite eingeben. Damit diese Datensicherheit gegeben ist, sollten Sie ein SSL/TLS Zertifikat verwenden. Ihre Webseite wird dann über https statt http aufgerufen und viele Browser visualisieren die Verwendung von https noch zusätzlich, etwa durch ein grünes Schloss in der Adresszeile.

Ein SSL/TLS Zertifikat können Sie entweder bei Ihrem Hostingprovider erhalten (bei Ionos ist etwa standardmäßig ein Zertifikat pro Hostingpaket enthalten) oder Sie besorgen sich ein kostenloses Zertifikat von Let´s encrypt.

Übrigens hat die Verwendung von https noch einen weiteren Sinn: Sie wirkt sich positiv auf die Google Suchergebnisse und die Anzahl der Besucher aus. Oder anders gesagt: Sie wirkt sich, im Gegensatz zu http, nicht negativ aus.

Mittlerweile sind die meisten Browser dazu übergegangen, unverschlüsselte Webseiten als nicht sicher zu markieren. Der User erhält also eine Warnung, dass seine Daten auf dieser Seite nicht sicher sind. Mal ehrlich, würden Sie eine solche Seite guten Gewissens besuchen? Vermutlich eher nicht.

Ähnlich sieht es bei den Google Suchergebnissen aus: Dort werden Seiten, die kein https verwenden, mittlerweile schlechter geranked und erhalten somit auch weniger Aufmerksamkeit bzw. Traffic.

Https sollte also nicht nur Ihren Usern zuliebe genutzt werden, sondern hat auch ganz konkrete Auswirkungen auf den Erfolg Ihrer Webseite bei Google.

Userrollen verwenden

WordPress bietet die Möglichkeit Usern Rollen zuzuweisen, die unterschiedliche Berechtigungen haben. Um die Sicherheit einer WordPress Installation zu erhöhen, bietet es sich an, davon auch Gebrauch zu machen.

Ein Mitarbeiter der PR-Abteilung, der hin und wieder einen Blogbeitrag über das Unternehmen veröffentlicht, braucht mit Sicherheit keinen Administratorzugang mit dem er tiefgehende Änderungen an der Seite vornehmen kann. Für ihn wäre stattdessen die Rolle eines Redakteurs oder Autors vollkommen ausreichend.

Ein kurzer Überblick über die Userrollen die mit WordPress zugewiesen werden können:

  • Administrator: Hat die volle Kontrolle über die Seite (Anlegen von Usern, Installation von Plugins und Themes, Löschen der Seite etc.).
  • Redakteur: Kann Beiträge, Seiten, Kommentare, Kategorien und Schlagwörter sehen und bearbeiten. 
  • Autor: Kann eigene Beiträge schreiben und veröffentlichen.
  • Mitarbeiter: Kann Beiträge schreiben und bearbeiten, sie aber nicht selbst veröffentlichen.
  • Follower/Leser: Kann Beiträge und Seiten sehen und kommentieren.

 

Damit kann man also recht genau einstellen, wer was machen kann. Vor allem mit Administrator Berechtigungen sollte extrem sparsam umgegangen werden, da diese die volle Kontrolle über die Seite ermöglichen. Diese Berechtigung sollte also nur derjenige haben, der diese Art von Kontrolle auch wirklich benötigt. Zudem sollte darauf geachtet werden, dass Accounts mit Admin Rechten nicht Admin oder Administrator als Benutzernamen verwenden.

Problematisch kann es vor allem dann werden, wenn Mitarbeiter Accounts mit höheren Berechtigungen verlangen, als sie benötigen würden, weil sie der Meinung sind, dass ihnen das aufgrund ihres Ranges zusteht. Für den Chef einer kleineren Firma ist es vielleicht nur schwer zu verstehen, dass er in „seiner“ Firma nicht auch die volle Kontrolle über die Webseite hat.

Allerdings können eben genau solche selten genutzten Accounts mit hohen Berechtigungen, die dann eventuell auch noch Leuten gehören, die kein besonderes Bewusstsein für IT-Sicherheit haben, ein ernstes Sicherheitsproblem darstellen.

Login Versuche begrenzen

Falls die Login Seite nicht versteckt werden kann, sollte zumindest eine Möglichkeit geschaffen werden, die Anzahl möglicher Logins zu begrenzen. Das kann etwa durch das zusätzliche Lösen eines Captchas geschehen oder durch einen Timeout nach einer gewissen Zahl an nicht erfolgreichen Logins.

Der Sinn dahinter ist, dass sich ein Brute Force Angriff deutlich schwerer automatisieren lässt, wenn ein Captcha gelöst werden muss. Bzw. falls nach einer gewissen Anzahl fehlerhafter Logins vor jedem weiteren Login 30 Sekunden gewartet werden muss, würde selbst eine kleine Passwort Liste, Tage bzw. Wochen brauchen, um vollständig durchlaufen zu werden.

Die Möglichkeit, Logins zu begrenzen, ist in vielen Security Plugins bereits enthalten. Allerdings gibt es auch spezielle Plugins nur für diese Aufgabe, von denen wir hier einige aufführen wollen (ohne Anspruch auf Vollständigkeit):

  • Limit Login Attempts Reloaded
  • WP Limit Login Attempts
  • WPS Limit Login

 

Wichtig: Unabhängig davon, für welches Plugin und welche Begrenzungslösung man sich am Ende entscheidet, sollte man immer auch darauf achten, dass ein Login für einen legitimen Nutzer möglich bleibt, selbst wenn ein Angreifer das Konto angreift. Ein Account sollte also nicht für mehrere Tage gesperrt werden, da ein Angreifer sonst andere User von deren Accounts aussperren könnte, selbst wenn er nicht das Passwort kennt (also gewissermaßen eine Denial of Service Attacke gegen diese Accounts). Eine Möglichkeit dazu könnte etwa sein, dass nach einer gewissen Anzahl fehlerhafter Logins zwar die Login Möglichkeit für dieses Konto blockiert wird, gleichzeitig aber ein Link an die mit dem Konto verknüpfte Emailadresse verschickt wird, über den ein Login weiterhin möglich ist. So bleibt der Angreifer außen vor und der legitime User kann sein Konto dennoch nutzen (immer vorausgesetzt der Angreifer hat nicht bereits das Emailkonto unter seine Kontrolle gebracht. Allerdings könnte er in diesem Fall auch einfach von der Passwort Rücksetzen Funktion Gebrauch machen).

Noch sicherer als eine Login Begrenzung wäre im Übrigen die Aktivierung einer 2-Faktor Authentifizierung.

HIER finden Sie übrigens eine Kurzversion dieses Guides als praktische Checkliste im PDF Format. Gerne können Sie diese herunterladen und in Ihrem Unternehmen verwenden.

Bitte beachten Sie, dass es sich hier um einen Basis Guide handelt, der dazu dienen soll, grundlegende Sicherheitsmechanismen umzusetzen. Wenn Sie Ihre WordPress Seite dagegen auf Herz und Nieren testen möchten, empfehlen wir Ihnen einen Penetrationtest. Bei einem solchen testen wir Ihre Seite intensiv aus Sicht eines Angreifers und dokumentieren alle gefundenen Schwachstellen und Sicherheitslücken in einem verständlichen Bericht.