WordPress ist die beliebteste Blog-Software und das populärste Content Management System. Kein Wunder, dass deshalb so viele Angreifer versuchen, wahllos WordPress Installationen und Server anzugreifen und zu hacken. Dagegen kann und muss man sich wehren, alleine schon, weil auf Google diverse Anleitungen existieren, wie Sicherheitslücken ausgebeutet werden können.
Der WordPress Security Scan
Bist Du unsicher, ob Deine WordPress Webseite oder Dein Blog verwundbar gegen Hackerangriffe ist und ob Du sie besonders schützen musst? Dann mache den Security Scan (externe Seite, kostenlos). Der Scan prüft u. a. die Version von WordPress, sie sollte auf dem neuesten Stand sein. Weiterhin werden alle erkannten Plugins überprüft und mit einer Datenbank von gefährlichen Plugins abgeglichen. Wenn alles gut läuft, sieht das Testergebnis so aus:

Außerdem prüft der Scan die verwendeten Namen der Adminbenutzer. Nach Möglichkeit sollte dieser weder admin heißen noch so, wie die Webseite selbst.
Ein weiterer Scanner namens Nikto checkt Deinen Webseite und Deinen Server generell auf Sicherheitslücken (man muss sich dafür allerdings registrieren oder die Offline-Version herunterladen).
Allgemeine Maßnahmen
Auf jeden Fall ist es notwendig und absolut essentiell, ein starkes Passwort für Deinen WordPress Admin-User zu verwenden, so kannst Du mit wenig Aufwand WordPress absichern und vorn Angriffen schützen. Weiterhin keinesfalls dasselbe Passwort mehrfach nutzen, weder innerhalb einer WordPress Installation für mehrere User noch gleichlautende Passworte für verschiedene Dienste und Anwendungen verwenden!
Zu den einfachsten Sicherheits-Maßnahmen gehört das Löschen des Standard-Users mit der Identitätsnummer 1 und dem User-Namen »admin«. Denn der Name des Autors mit dem Index 1 kann sehr leicht über den Aufruf der folgenden URL ermitelt werden.
www.deinblog.de/?author=1
Der Admin-Bereich auf Deinem Server sollte zudem mit einem Verzeichnisschutz versehen werden. Man kann ansonsten einfach den Login-Screen wie folgt aufrufen:
www.deinblog.de/wp-admin
So erstellt man einen Verzeichnisschutz für den Admin-Bereich:
Eine Passwort-Datei außerhalb des zu schützenden Verzeichnisses und außerhalb des Hauptverzeichnisses ablegen, die mit .htpasswd benannt ist und folgenden Aufbau hat:
username:passworthash
Für username wählst Du einen beliebigen Usernamen, der am besten nicht mit Deinem WordPress-Usernamen übereinstimmt. passworthash ist der Hashwert des Passworts, mit dem Du den Verzeichnisschutz authentifizieren willst. Am einfachsten kannst Du den Inhalt dieser Datei mit einem htpasswd-Generator erzeugen. Achte auf sichere Passwörter, das sollte sich eigentlich von selbst verstehen!
Danach eine Datei namens .htaccess im Verzeichnis wp-admin Deiner WordPress Installation anlegen, die folgenden Inhalt hat:
AuthType Basic AuthName "Passwortgeschuetzter Bereich" AuthUserFile /pfad/zur/Datei/.htpasswd AuthGroupFile /dev/null require valid-user
Nun auch noch den Zugriff von außen auf die Datei wp-config.php im Pfad von WordPress verbieten, denn in dieser Datei stehen alle wichtigen Zugriffsinformationen wie der Datenbankuser und das zugehörige Passwort drin. Im selben Verzeichnis bzw. Ordner wie wp-config.php befindet sich eine htaccess-Datei. In diesem File ergänzt Du ganz am Ende folgende Zeilen:
# Zugriff auf wp-config.php von außen verbieten <files wp-config.php> Order deny,allow deny from all </files>
Diese Maßnahmen sollten spürbar mehr Sicherheit bringen, damit kannst Du schon recht effektiv WordPress gegen Hacker absichern!
Plugins und WordPress selbst regelmäßig updaten
Das Dashboard meldet, wenn ein Update zur Verfügung steht. Oft enthalten Updates Sicherheitsmaßnahmen oder Code, um Sicherheitslücken zu schließen. Wem das manuelle Aktualisieren zu lästig ist, der kann in der wp-config.php Datei folgende Zeile hinzufügen, um das automatische Update zu aktivieren:
// Enable all automatic updates
define( 'WP_AUTO_UPDATE_CORE', true );
Noch mehr Security-Tipps
Damit Angreifer oder Hacker nicht direkt die WordPress-Version auslesen können, am besten noch automatisiert, füge folgende Zeile Code in der Datei functions.php ganz am Ende ein:
remove_action('wp_head','wp_generator');
Die Datei kannst Du bearbeiten über das Admin-Panel, Design → Editor.
Möchtest Du noch weitergehend WordPress absichern, dann füge folgende Zeile am Ende der Datei wp-config.php ein:
define('DISALLOW_FILE_EDIT', true);
Das verhindert das Editieren von PHP- und CSS Files über den WP-Editor im Admin-Panel durch Hacker. Allerdings sollten Änderungen an diesen Dateien nur verboten werden, wenn Du nicht selbst über den Editor im Panel öfters Dateien ändern willst (aus Komfortgründen). Allerdings kannst Du all diese Dateien auch direkt auf dem Webserver ändern, etwa per FTP oder Shell.
Wenn Deine WordPress-Seite kein HTTPS bzw. SSL unterstützt, dann solltest Du keinesfalls per WLAN von öffentlichen Orten aus als Admin auf Deine Installation zugreifen, denn dann kann es passieren, dass Angreifer Dein Passwort im Klartext mitlesen! Und diesen Pfad willst Du sicher nicht beschreiten! Unter Umständen müssen auch rechtliche Konsequenzen in Kauf genommen werden, wenn Du über Funknetze Sicherheitstore offenbarst. SSL kann allerdings nur mit einem meist kostenpflichtigen Zertifikat benutzt werden, sodass eher Firmen hierzu die Möglichkeit haben.
Zwei-Faktor-Authentifizierung
Mithilfe eines Plugins kann eine Zweifaktor-Authentifikation beim Login vorgesehen werden. Dafür braucht man zusätzlich eine Google App. Neben dem eigentlichen WordPress Login muss man sich also über das Smartphone berechtigen. Das Plugin heißt Google Authenticator – Two Factor Authentication (2FA). Danke an Ralf für den tollen Hinweis per Kommentar zu diesem Beitrag!
Anzahl der Login-Versuche begrenzen
Unglaublich, aber wahr: Per Default kann jeder beliebig viele Login-Versuche in Deinen Admin-Bereich unternehmen! Im Zeichen der WordPress Security solltest Du ein Plugin wie Login Lockdown installieren, um ein Limit einzubauen. Nach Installation findest Du unter Einstellungen -> Login Lockdown die Optionen des Plugins. Dort kann man insbesondere einstellen, wie oft jemand hintereinander versuchen darf, sich anzumelden, also wie viele Fehlversuche er hat. Nachdem diese Versuche erreicht sind, ist eine Anmeldung für 5 Minuten von derselben IP-Adresse nicht mehr möglich. Diese Zeit kannst Du ebenfalls konfigurieren. Nun müssen Bösewichten sich mehr anstrengen, wenn sie sich einhacken wollen!
Sehr nützlich ist auch die Einstellung Mask Login Errors. Man sollte sie auf Yes stellen. Dann nämlich bekommt der Angreifer keine Information, warum seine Anmeldung fehlschlug. Ansonsten wird nämlich gemeldet, ob der Username bekannt, aber das Passwort falsch war oder ob schon der Username falsch war.
Table Prefix ändern
Normalerweise beginnt jede Tabelle mit dem Präfix wp_. Das macht es bei erfolgreichen SQL Injection Versuchen einfach, Tabelleninhalte aus der Datenbank auszulesen oder zu manipulieren. Vor der Installation kann man durch Editieren der wp-config.php Datei jenes Präfix ändern. Wurde die Installation schon vorgenommen, dann hilft das Plugin Change DB Prefix.
Wir haben selbst vor kurzem einen Spam Kommentar erhalten, der einen plumpen SQL Injection Versuch enthielt und den Pfad der Hacker erkennen lässt:

Das war wohl ein russischer Mitbürger, der allerdings weder englisch noch SQL richtig schreiben kann. Denn das SQL Statement enthält Syntaxfehler und führt zu keiner Aktion auf der Datenbank. Dümmer geht es kaum, aber kaum auszudenken, wenn dieser Angriff erfolgreich gewesen wäre!
Readme und License Dateien schützen oder löschen
Die Dateien readme.html und license.txt liegen im Hauptverzeichnis der Installation und enthalten Informationen über die WordPress Version. Sie bieten für Angreifer einen guten Ausgangspunkt, um das Angriffsziel auszuwerten. Entweder diese beiden Dateien löschen, denn sie werden für den Betrieb nicht benötigt. Oder die htaccess Datei, die im Root Verzeichnis liegt, um folgende Zeilen erweitern:
# Protect readme.html File
<Files readme.html>
order allow,deny
deny from all
</Files>
# Protect license.txt file
<Files license.txt>
order allow,deny
deny from all
</Files>
Security Plugins verwenden
Mit einem Plugin wie Bullet Proof Security, das weit verbreitet ist und sich großer Beliebtheit bei Admins in zahlreichen Installationen erfreut, bekommt man eine kostenfreie und umfassende Lösung zum Schließen potentieller Sicherheitslücken und Einfalltore.
Das Plugin wehrt diverse Angriffe ab, es schützt beispielsweise die htaccess Datei, baut eine Firewall um die gesamte Installation auf, limitiert die maximale Anzahl erlaubter Login Versuche, prüft Passwörter und bietet eine wirksame Absicherung für die Datenbank.
Dieses Security-Plugin ist sehr einfach zu bedienen und mit wenigen Klicks installiert und konfiguriert, auf jeden Fall ausprobieren!
Weitere Hinweise
Selbstverständlich solltest Du regelmäßig ein Backup Deiner WordPress Installationen vornehmen, dazu reicht es, das Installationsverzeichnis auf ein lokales Laufwerk zu kopieren. Auf keinen Fall das Backup auf demselben Server ablegen, wo Du WordPress installiert hast oder per FTP uploaden! Das zuvor genannte Plugin erstellt übrigens ein Backup Deiner Datenbank! Einmalige Maßnahme wie das Anpassen von htaccess zur Absicherung von Installationen und andere oben beschriebene Security Einstellungen schützen jedenfalls ganz gut davor, gehackt zu werden. Ganz wichtig sind die Updates, die für Plugins und Themes angeboten werden. Auf jeden Fall das Change Log dazu lesen und wenn Sicherheitslücken geschlossen wurden, unbedingt installieren.
Erstellst Du selbst Themes oder ändert vorhandene Templates ab, dann achte beim Webdesign darauf, dass Du keine Sicherheitslücken öffnest. Informiere Dich am besten, bevor Du externe Javascript Bibliotheken verwendest, ob diese als sicher gelten.
WordPress selbst führt übrigens ein Archiv mit sicherheitsrelevanten Meldungen.
Webseiten checken
Die Aspekte Sicherheit und Datenschutz gehören zusammen. Wer seine WordPress-Website absichert, sollte nicht nur Hacker im Blick haben, sondern auch Datenschutzgesetze. Mit dem online Website Check erfährst Du direkt, wie Deine Homepage aufgestellt ist.
Der Website Check funktioniert ganz einfach:
- Webseite eingeben
- Start drücken
- Wenige Sekunden warten, Ergebnis direkt im Browser ansehen
Kommentare von Lesern