WordPress sicher machen

/, Dev/WordPress sicher machen

WordPress sicher machen

WordPress ist aufgrund seiner hohen Verbreitung (siehe Infografik) ein häufiges Angriffsziel für Hacker. Wer ein WordPress-Blog betreiben will, sollte sich also um das leidige Thema Sicherheit Gedanken machen. Diese 10 Tipps sollen Dir dabei helfen Deine WordPress Installation sicher(er) zu machen.

Wordpress Facts

Die gute Nachricht: man kann mit einigen grundlegenden Maßnahmen das Risiko eines erfolgreichen Angriffs senken und damit auch in Zukunft halbwegs beruhigt WordPress nutzen. Legt man auch regelmäßig Backups der Dateien und der Datenbank an, ist ein WordPress-Webauftritt auch schnell wieder in einen Ursprungszustand hergestellt.

Ursachen erfolgreicher WordPress Hacks

Diese Tipps helfen WordPress sicher zu machen

Schon vor der Installation sollte die Absicherung eines WordPress-Systems bedacht werden. Zunächst sollte immer die neuste Version verwendet werden und von Vertrauenswürdigen Quellen bezogen werden. Für die Deutsche Version ist dies zum Beispiel http://wpde.org/download/

Nach dem Download erfolgt die Vorbereitung der Installation. Und genau an dieser Stelle können und sollten die ersten Weichen für ein sicheres WordPress gestellt werden.

1. Vor der Installation wp-config anpassen

Die folgenden sicherheitsrelevanten Änderungen sollten vor der Installation an der “wp-config.php” Datei erfolgen:

Tabellen Prefix Ändern

Ändere den Datenbank “Prefix” – ($table_prefix) von „wp_“ auf ein weniger leicht zu erratendes Prefix (z.B. A93n_)
Das ist quasi das “Wort” welches vor den Datenbankeinträgen von WordPress steht. Wichtig ist jedoch das auf jeden Fall “_” am Ende des Wortes steht.

“Themes bearbeiten” ausschalten

Mit folgendem Eintrag in der wp-config kann vermieden werden, das ein Benutzer, ob Admin oder nicht, per Dashboard Theme Dateien oder Plugins bearbeiten kann.
Dazu wird der Eintrag “define(‘DISALLOW_FILE_EDIT’,true);” in der wp-config.php hinzugefügt.
Angreifer die sich einen unbefugten Zugriff auf das WordPress Backend verschafft haben, ist somit eine Möglichkeit genommen sehr versteckt Änderungen vorzunehmen. Berechtigte Seitenbetreiber können ohnehin auf die Dateien über das Dateisystem zugreifen.

Ändern der Sicherheitsschlüssel

WordPress bringt eigene Sicherheitsmechanismen mit – dazu gehört auch das Setzen individueller Sicherheitsschlüssel.
In der wp-config.php Datei befinden sich folgende Zeilen:

define(‘AUTH_KEY’, ‘put your unique phrase here’);
define(‘SECURE_AUTH_KEY’, ‘put your unique phrase here’);
define(‘LOGGED_IN_KEY’, ‘put your unique phrase here’);
define(‘NONCE_KEY’, ‘put your unique phrase here’);
define(‘AUTH_SALT’, ‘put your unique phrase here’);
define(‘SECURE_AUTH_SALT’, ‘put your unique phrase here’);
define(‘LOGGED_IN_SALT’, ‘put your unique phrase here’);
define(‘NONCE_SALT’, ‘put your unique phrase here’);

Obige Schlüssel sollten gegen zufällig generierte ausgetauscht werden.

Wem kein selbstgeberierter Schlüssel einfällt geht wie folgt vor:
Gehe auf https://api.wordpress.org/secret-key/1.1/salt/
Kopiere alle Zeilen in Deine “wp-config.php” Datei – Ersetze damit die entsprechenden bestehenden Zeilen.

Datenbank nicht „Wordpress“ nennen

In der wp-config.php muß die zu benutzende MySQL-Datenbank eingetragen werden. Du solltest Deiner Datenbank ebenfalls einen „aussergewöhnlichn“ Namen geben (zumindest nicht „wordpress“)
Zuständig dafür ist der Eintrag

define('DB_NAME', ‚cryptischername');

in der wp-config.php

Befinden sich auf dem Server weitere Datenbanken, sollte für die WordPress-Datenbank ein separater Nutzer (mit eigenem Nutzernamen) angelegt werden.

wp-config für externe Zugriffe blocken

Mit einer Anpassung Deiner .htaccess-Datei kann sehr einfach drn Zugriff von außen auf die wp-config.php verhindert werden. Dazu kann folgender Code in die .htacces-Datei eingetragen werden:

Order deny,allow
deny from all

SSL für den Adminbereich

Da Passwörter im Internet übertragen werden, solltest Du im übrigen darauf achten dass Du Dich in Deinem WordPress-Blog immer über eine gesicherte Verbindung (https) anmeldest. Tust Du das nicht, kann jeder Server über den Deine Verbindung läuft auch Deinen Benutzername und Dein Passwort „mitlesen“.
Dazu muß Dein Server bzw. Dein Hoster natürlich SSL unterstützen bzw. es muß konfiguriert sein. Ist dies der Fall, empfiehlt es sich den gesicherten Login zu erzwingen. Auch hierzu gibt es einen Eintrag in der Datei wp-config.php :

define('FORCE_SSL_ADMIN', true);

2. wp-content umbenennen

Sehr schnell nach der Installation eine neuen WordPress-Blogs sollte man sich überlegen den Ordner wp-content umzubenennen.
Der Name dieses Verzeichnisses gibt Angreifern einen eindeutigen Hinweis, dass WordPress verwendet wird.
Diesen Schritt sollte man bald nach der Installation eines neuen Blogs machen, da einige Plugins den Pfad zu diesem Verzeichnis in der Datenbank speichern. Diese Einträge wiederzufinden bedeutet einen großen Aufwand.

Den neuen Namen muss man auch in der wp-config.php bekannt machen:

define('WP_CONTENT_DIR', '/absoluter/pfad/zur/wordpress/installation/neuercontentordnername');
define('WP_CONTENT_URL', 'http://www.domain.tld/neuercontentordnername')

Das Umbenennen sollte man auch für den Ordner wp-admin in Betracht ziehen. Eine Anleitung hierfür gibt es hier: http://playground.ebiene.de/adminbereich-in-wordpress-schuetzen/

3. Benutzer Admin ändern

Bei der Installation eines WordPress-Blogs wird automatisch der Benutzer “Admin” vorgeschlagen. Hier sollte dringend ein anderer gewählt werden. Am besten benutzt Du einen Benutzernamen, den man nicht so einfach erraten kann. Gerne können hier auch z.B. Zahlen verwendet werden.

4. Sichere Passwörter verwenden

Ähnliches gilt für das Passwort – sowohl des Admin-Nutzers (der ja einen neuen Namen bekommen hat) als auch für alle folgenden Nutzer – egal welche Rolle ihnen zugewiesen wird. Zwar verursachen unsichere Passwörter nur einen Bruchteil aller erfolgreichen WordPress-Hacks (Quelle), jedoch handelt es sich um die einfachste Maßnahme WordPress sicher zu machen. Letztendlich nützen die aufwändigsten technischen Sicherungsmechanismen nichts wenn ein Angriff durch schwache Passwörter erleichtert wird.

Ein Passwort sollte mindestens 10 Zeichen lang und Buchstaben, Zahlen sowie Sonderzeichen enthalten. Ausserdem sollte sowohl Groß- und Kleinschreibung verwendet werden.
Es mag zwar umkomfortabel erscheinen aber nur so kann die Sicherheit erhöht werden. Damit die Zugangsdaten nicht verloren gehen, sind Passwort-Safes wie Keepass (http://keepass.info ) oder 1password sinnvoll.

5. htaccess / htpasswd Schutz

Wichtige Files kann man für den Zugriff von aussen sperren oder mit einem zusätzlichen Passwort-Schutz versehen-.

Die wp-config.php kann sollte vollständig für den Zugriff von aussen geschützt sein.
Dazu genügt ein Eintrag in der .htaccess

Order deny,allow
deny from all

Schutz für Login und Administrationsbereich

Will man den Login-Bereich – also die wp-config.php – mit einem zusätzlichen Passwortschutz versehen, benötigt man neben dem Eintrag in der .htaccess auch eine Datei .htpasswd, die idealerweise ausserhalb des WordPressverzeichnisses und damit ausserhalb des Zugriffs über das Web auf dem Server abgelegt wird.

Der Eintrag in der .htaccess sieht dann folgendermaßen aus:

AuthType Basic
AuthName „Mein kryptischer Name"
AuthUserFile /pfad/zur/datei/.htpasswd
Require valid-user

6. Generator meta-tag aus dem html-head entfernen

Um nicht sofort Jedem potentiellen Angreifer schon im Seiten-Quelltext zu verraten das WordPress verwendet wird (und sogar welche Version der Software verwendet wird), empfiehlt es sich den entsprechenden Meta-Tag zu entfernen.
Dazu wird einfach in die functions.phph des Themes (nicht der WordPress-Installation) folgenden Code einzufügen:

/**
*remove generator meta tag
*/
function remove_wp_generator() {
if (is_admin() || is_feed()) {
return;
}
if (function_exists('the_generator')) {
add_filter(
'the_generator',
create_function(
'$x',
'return;'
)
);
}
}
add_action(
'init',
remove_wp_generator
);

Lediglich wenn das Theme aktualisiert wird muß darauf geachtet werden, dass diese Änderung bestehen bleibt. Reguläre WordPress-Updates sind hiervon nicht betroffen.

7. Security Plugins

Eine der wichtigsten Funktionen, die mit Security-Plugins bereitgestellt werden ist die Sperung von IP Adressen nach einer bestimmten Anzahl von Login-Versuchen. Damit können sogenannte Brute-Force-Angriffe häufig erfolgreich abgewehrt werden. Ein sehr umfangreiches und sehr beliebtes Plugin ist Wordfence. Einige Features gibt es nur in der kostenpflichtigen Premiumversion. Doch auch die Grundversion deckt die wichtigsten Bereiche bezüglich Sicherheit ab.

Plugins für die Login Limits

Mit dem Plugin “Limit Login Attempts” können Sie z.B. einstellen, dass nur bestimmte IP-Adressen Zugriff auf Ihr WordPress-Admin Bereich haben. Oder Sie lassen automatisch IP-Adressen sperren, die versuchen nach einer Anzahl Anmeldungen reinzukommen.
Ähnlich funktioniert das Plugin „Login LockDown“ https://wordpress.org/plugins/login-lockdown/

8. Backups regelmäßig erstellen

Ein WordPress Blog sollte – je nach Nutzung (wie häufig werden Artikel geändert / hinzugefügt) regelmäßig gesichert werden. Das betrifft sowohl die Dateien als auch die Datenbank. Es empfiehlt sich ein Backup z.B. täglich zu erstellen und an einem sicheren Ort zu speichern.
Ein Dienst der diesen Service (kostenpflichtig) anbietet ist http://blogvault.de/

9. Updates machen

Wenn Sicherheitslücken in der WordPress Software bekannt werden, dauert es meist nicht lange bis eine korrigierte Version veröffentlicht wird. Daher ist es wichtig die WordPress Software immer auf dem neuesten Stand zu halten.

Gleiches gilt für Plugins und eventuell Themes. Hier ist die Reaktionszeit auf eventuelle Sicherheitslücken allerdings stark von den jeweiligen Plugin-Entwicklern abhängig. Auch deshalb empfiehlt es sich möglichst Plugins zu wählen die „gepflegt“ werden. Angaben dazu findet man im offiziellen WordPress Plugin-Verzeichnis wo auch eine Warnmeldung angezeigt wird, wenn ein Plugin seit längerem kein Updaten mehr erhalten hat. Wurde ein Plugin seit längerem nicht mehr aktualisiert, sollte man besser die Finger davon lassen.

Generell gilt sowieso: Je weniger Plugins man in seinem WordPress-Blog verwendet, desto geringer ist die Gefahr potentieller Schlupflöcher für Hacker. Man sollte folglich wirklich nur die Plugins installieren, die man wirklich braucht. Zudem verlangsamen zu viele Plugins eine WordPress-Installation.

10. Auf Dateirechte achten

WordPress benötigt für fast alle Dateien keine Schreibrechte für PHP. Bei den meisten Hostern ist das chmod 644 für Dateien bzw. 755 für Ordner. Lediglich in einigen Ordnern muss der WordPress-Nutzer trotzdem schreiben (benötigt also 664 für Dateien und 775 für Ordner)

Dies sind typischerweise

  • /wp-content/uploads/ (z.B. für Bilder, PDFs etc.)
  • /wp-content/cache/ (bei Verwendung eines Caching-Plugins)

Einige Themes oder Plugins benötigen noch weitere Ordner mit Schreibrechten. Sollten Themes oder Plugins überall 664 / 775 oder gar 666 / 777 benötigen, sind diese schlecht programmiert und sollten nicht eingesetzt werden!

Generell braucht WordPress überhaupt keine Schreibrechte auf PHP-Dateien braucht man nicht schreiben können. Es reicht, sie lesen zu können. Mit einer Ausnahme: dem Update-Vorgang. Wer darauf verzichten kann – und seine WordPress-Updates „manuell“ per FTP einspielt, sollte seine Installation darauf bezüglich Anpassen. Weitere Informationen zum Thema Dateirechte bei WordPress gibt es bei binary butterfly.

Fazit

Viele Maßnahmen zum Absichern einer WordPress-Installation sind leicht umzusetzen und Punkte, wie den Nutzer Admin zu ändern oder sichere Passwörter zu benutzen, sollten eigentlich zur Selbstverständlichkeit gehören. Eine hundertprozentige Sicherheit gibt es nicht, dennoch helfen die Beschriebenen Maßnahmen dabei mehr als 90% der möglichen Angriffe abzuwehren. Wie Einbrecher im wirklichen Leben sind Hacker häufig faul und wählen die ungeschütztesten Objekte bzw. Installationen aus. Eher selten wird es ein Angreifer genau auf Dein Blog abgesehen haben. Er wird somit nicht alles versuchen um genau Dein Blog zu knacken.

Weitere Informationen für Fortgeschrittene

Wer sein WordPress sicher machen will findet in den folgenden Quellen weitere Informationen.

  • http://playground.ebiene.de/adminbereich-in-wordpress-schuetzen/ (inklusive verschieben bestimmter Dateien und Ordner)
  • Gesamtes Verzeichnis wp-admin schützen: http://playground.ebiene.de/initiative-wordpress-sicherheit/
  • Die Seite https://wpvulndb.com/ listet alle bekannten Sicherheitslücken von WordPress auf.
By | 2017-02-09T12:52:26+00:00 24.01.2017|Categories: Blogging, Dev|Tags: , , |0 Comments

About the Author:

Als Media-Experte habe ich mich auf die Beratung von Internetunternehmen, technisches Projektmanagement sowie Webpromotion spezialisiert. Ein wesentlicher Schwerpunkt liegt dabei auf der Produktion und Entwicklung von mehrsprachigen Webapplikationen und Special-Interest-Portalen. Meine Dienstleistungen umfassen sowohl Online-Marketing, Online-Publishing, als auch Online-Development. raquo; Mehr erfahren...

Leave A Comment