WordPress schützen

wordpress_logo_100x100_a78255fc17f2edb392d6f49146ec6d5aZugegeben, die wenigsten privaten Internetnutzer haben eine eigene Webseite, aber dennoch geht der Trend mehr und mehr in diese Richtung. Unabhängig vom Sinn und Zweck, werden heutzutage Websites gerne und vor allem “eben mal schnell” erstellt. CMS macht´s ja möglich! CMS steht für “Content-Management-System” und bedeutet soviel wie “Inhaltsverwaltungssystem”. Dadurch ist es mit ein wenig Geschick und Verständnis ganz einfach eine relativ gute Webseite zu erstellen. Da ein Teil der großen Internetgefahren von Servern aus geht, befassen wir uns hier mit dem Schutz von Webseiten die auf WordPress basieren.

WordPress ist eines der beliebtesten Content-Management-System, aber abgesehen davon existieren auch viele weitere, z.B. Joomla, Drupal, TYPO3, usw. WordPress wird inzwischen für rund 50-60% aller Webseiten genutzt. Der große Vorteil: Es gibt viele Anleitungen, kostenlose Erweiterungen (Plugins) und unzählige Themes (Designvorlagen). WordPress ist zudem OpenSource und frei verfügbar – für private und kommerzielle Zwecke.

Durch die große Beliebtheit von CMS bzw. WordPress ist es auch ein gerne genutztes Angriffsziel. Immer häufiger sind WordPress Installationen Opfer von Cyberangriffen, zuletzt im April 2013 durch ein großes Botnetzwerk. Das ganze funktioniert relativ einfach, denn der Aufwand muss gegenüber dem Nutzen im Verhältnis stehen und für den Angreifer rentabel sein. Für uns bedeutet das nun, dass wir es dem Angreifer zwar nicht unmöglich machen können, aber eine ca. 90%ige Sicherheit herstellen können. Damit wir das erreichen, können wir zum einen die Login-URL (Standard: “http://www.Name-deiner-Webseite.de/wp-login.php”) und den Namen des Administrators (Standard: “Admin”) ändern. Damit lassen sich bereits viele Angreifer abwehren, denn die meisten erfolgen automatisiert. Nachfolgend werde ich ein paar Tipps zeigen, die man in seinem WordPress-Blog auch ohne großes Hintergrundwissen anwenden kann.
 
 
Gliederung:
1. Absicht eines Cyberangreifers
2. Regelmäßige Aktualisierungen
3. Benutzernamen
4. Passwort
5. Öffentliches WLAN
6. Security Plugins
7. Tabellen Präfix
8. Loginversuche und Fehlermeldung begrenzen
9. wp_config.php verschieben
10. Sparsamer Umgang mit Plugins
11. Geänderte Standardpfade
12. htaccess für das Backend
13. Zwei-Faktor-Authentifizierung
14. Backups
 
 


1. Absicht eines Cyberangreifers

Ich persönlich würde es mir so einfach wie nur irgendwie möglich machen und einfach die Standardangaben nutzen. Damit muss ich nur noch das Passwort “erraten” und erhalte den vollen Zugriff auf die Webseite. Dabei geht es nicht um die Webseite selbst, sondern nur um den Erfolg. Welche Webseite dann letztendlich meine Malware verteilt kann mir als Cyberkrimineller egal sein – je mehr Webseiten ich unter meiner Kontrolle bekomme, umso besser!
 

 


2. Regelmäßige Aktualisierungen

Einer der einfachsten Tipps sind Aktualisierungen: WordPress selbst, aber auch Plugins und ggf. Themes! WordPress verteilt häufig neue Versionen und reagiert damit zügig auf neu entdeckte Sicherheitslücken, daher ist es absolut notwendig diese auch einzuspielen! Sicherheitshalber sollte man dazu vorher ein Backup anlegen, dazu aber mehr im letzten Tipp.
 

 


3. Benutzernamen

Bei einer frischen WordPress Installation kann man inzwischen einen individuellen Benutzernamen vergeben – ältere WordPress-Installationen hatten diese Funktion nicht und vergaben automatisch den Benutzernamen “Admin”. Alle Benutzernamen in Form von Admin, Administrator, o.ä. müssen gemieden werden. Wer bereits WordPress einsetzt, muss einen neuen Benutzer vergeben, ihm die Administratorrechte zuteilen und den “alten” Administrator löschen. Beim Löschvorgang wird man gefragt was mit den Beiträgen des “alten” Benutzers passieren soll. Dort kann man dann alle bisherigen Beiträge an den neuen Benutzer übertragen. Sinnvoll ist es auch, wenn Administrator und Autor getrennt werden. Für die Zukunft schreibt und kommentiert man alle Beiträge mit dem “Autor-Konto” und nutzt das Administrator-Konto nur noch für die Verwaltung von WordPress selbst.
 

 


4. Passwort

Wie immer ist das Passwort ein weiterer wichtiger Faktor für die Sicherheit. Es muss nicht unbedingt “kryptisch” sein (z.B. 3*#;0/Qf”§fWEtr/4), Hauptsache die Länge stimmt (ab 16-Stellen) und man findet es nicht in einem Wörterbuch. Das Thema wurde ja bereits hier und hier ausführlich beschrieben.
 

 


5. Öffentliches WLAN

Wenn ihr auch gerne mal im Lieblingscafé sitzt und dabei Artikel für euren Blog verfasst, dann sollte man nur eine verschlüsselte Verbindung (SSL/TSL) nutzen und für den FTP-Client sollte man inzwischen sowieso ausschließlich SFTP verwenden. Damit ist die Verbindung auch über FTP verschlüsselt. Leider sind SSL-Zertifikate nicht kostenlos, daher muss man dafür etwas in Portemonnaie greifen. Fragt am besten bei eurem Hoster nach, ob auch SSL-Zertifikate genutzt werden können. Eventuell benötigt ihr dafür ein höherwertiges Hosting-Paket.
 

 


6. Security Plugins

Durch den Einsatz von s.g. Security Plugins lassen sich viele Tipps auch mit wenigen Mausklicks umsetzen. Beliebt und bekannt sind dafür z.B. iThemes Security (ehemals Better WP Security) oder BulletProof Security, es gibt natürlich viele weitere auch kostenlose Security Plugins.
 

 


7. Tabellen Präfix

WordPress nutzt für die Datenbank einen Präfix (Standard: “wp_”) z.B. “wp_posts” oder “wp_users”. Eine Änderung des Präfixes bewirkt einen weiteren wirksamen Schutz vor Angriffen. Security Plugins wie z.B. iThemes Security (ehemals Better WP Security) ändern diesen mit nur einem Mausklick.
 

 


8. Loginversuche und Fehlermeldung begrenzen

Standardmäßig sind in WordPress unzählige Loginversuche möglich. Durch die Begrenzung und ggf. IP-Sperre kann es dem Angreifer ziemlich schnell langweilig werden, da er eine bestimmte Zeit zwischen den Loginversuchen abwarten muss. Durch die Unterdrückung von detaillierten Fehlermeldungen beim gescheiterten Loginversuch vermeidet man die Bekanntgabe des Benutzernamen, sofern erfolgreich. (Standard: “Falsches Passwort” -> bedeutet, dass der Benutzername anscheind richtig war) Viele der verfügbaren Security Plugins ändern auch diese Einstellung mit nur einem Mausklick.
 

 


9. wp_config.php verschieben

Die Datei “wp_config.php” beinhaltet alle Zugangsdaten für die Datenbank und andere Einstellungen. Damit wir diese überaus wertvolle Datei schützen können, genügt es diese einfach in ein höheres Verzeichnis zu legen. Wenn sich die WordPress-Installation in “/var/www/sites/beispielseite/wp_config.php” befindet, müssen wir die Datei nach “/var/www/sites/wp_config.php” verschieben. Das können die Security Plugins jedoch nicht automatisch machen, daher braucht ihr dafür ein FTP-Programm!
 

 


10. Sparsamer Umgang mit Plugins

Jedes Plugin bietet eine Angriffsfläche, daher sollte man sich nur auf die wirklich notwendigen Plugins beschränken. Das Deaktivieren genügt nicht, denn auch die deaktivierten Plugins bieten mögliche Angriffspunkte.
 

 


11. Geänderte Standardpfade

Der Standard Login-Pfad für WordPress-Installationen lautet “http://www.deineseite.de/wp-login.php”. Durch das Einsetzen von Security Plugins lässt sich auch dieser Pfad leicht und schnell ändern, z.B. in “http://www.deineseite.de/12479823798213497-login-2134.php”. Gerne wird auch ein anderer Ordnername für wp-content empfohlen, davon sollte man aber die Finger lassen, denn einige Plugins könnten damit ihre Probleme haben, wenn sie unsauber geschrieben wurden. Abgesehen davon gibt es keinen nennenswerten Mehrwert, da sich der neue Pfad im Quellcode ohne große Probleme ausfindig machen lässt.
 

 


12. htaccess für das Backend

Sobald ein Angreifer dann doch die Login-URL hat, sollten wir die ersten Loginversuche bereits auf Serverebene abwehren (Stichwort: htaccess). Dazu benötigt man eine “.htaccess” und “.htpasswd”-Datei. Wichtig bei beiden Dateien ist der Punkt vor dem Namen! Der Inhalt der “.htaccess” lautet dann wie folgt:
 
# Auth protect wp-login.php

AuthName "Restricted Admin-Area"
AuthType Basic
AuthUserFile ~/.htpasswd
Require valid-user

# Deny access to important files

Order deny,allow
Deny from all

..und für die “.htpasswd” schnappen wir einfach einen Online-Generator wie z.B. http://www.htpasswdgenerator.de/. Einfach Benutzernamen und Passwort eintragen und auf “Generieren” klicken. Beide Dateien landen nun im Hauptverzeichnis deiner WordPress-Installation (“http://www.deineseite.de/”). Für beide Dateien müssen wir dann noch die passenden Rechte vergeben, CHMOD 444 oder 644. Dazu im FTP-Programm rechtsklick auf die Dateien und “Dateiattribute” o.ä. ändern.
 

 


13. Zwei-Faktor-Authentifizierung

Sollten alle Mittel scheitern, bleibt immer noch das Verwenden von Einmalcodes, einer s.g. Zwei-Faktor-Authentifizierung. Mithilfe des Google Authenticators lassen sich über eine Smartphone-App zusätzlich zum Benutzernamen und regulären Passwort auch ein Einmalcode generieren. Dieser Code ist dann für ca. 2 Minuten gültig.
 

 


14. Backups

Sollte einmal wirklich das schlimmste passieren und ein Angriff erfolgreich verlaufen, so kann man durch ein Backup die Webseite auf den ursprünglichen Stand zurücksetzen. Zumindest sind dann alle veröffentlichten Beiträge, Fotos, etc. gerettet. Wichtig: Ein WordPress Backup beinhaltet immer die Datenbank und die Dateien, die auf dem Server liegen. Ersteres lässt sich über den Provider sichern (Stichwort: phpMyAdmin – Datenbank exportieren), letzteres über das einfache FTP-Programm. Einfach alle Daten herunterladen und lokal speichern. Wer das nicht immer manuell machen möchte, findet auch eine Vielzahl an Plugins (kostenlos/kostenpflichtig). Ein bekanntes, beliebtes und gleichzeitig effizientes Plugin ist UpdraftPlus (kostenlos).
 

 
Zugegeben, diese Liste noch lang nicht vollständig, aber damit lassen sich bereits eine große Anzahl der Angriffe vermeiden. Durch die einfachen Tipps können auch unerfahrene WordPress-Nutzer die Maßnahmen umsetzen und für ein Stück mehr Sicherheit sorgen. Grundsätzlich stellen diese Maßnahmen jedoch ein Mindestmaß der Verteidigung dar. Eine 100%ige Sicherheit kann und wird es nie geben, denn eine erfolgreicher Angriffe ist immer abhängig vom betriebenen Aufwand und Nutzen für den Cyberangreifer. Solltet ihr weitere Tipps haben, dann schreibt es in die Kommentare.
 
Grafik: Wikimedia
 
 



Über Daniel Stahl

Hallo, ich bin Daniel und blogge leidenschaftlich gerne über IT-Sicherheit und Webdesign. Ich biete IT-Unterstützung für Privatpersonen, aber auch für KMU. Ich liebe die IT-Welt, Kaffee und Kuchen. Man findet mich auf Facebook, Google+ und Twitter.