Tipps zum Absichern von WordPress Blogs
Ein populäres Open Source Blog Script wie WordPress bietet naturgemäß wegen des für jedermann zugänglichen Sourcecodes viele Angriffsmöglichkeiten. Zahllose Plugins und Themes bieten Angreifern weitere Möglichkeiten Schadcode einzuschleusen oder gleich das ganze Blog zu übernehmen. Aus diesem Grund möchte ich heute einige Methoden und Tools vorstellen, die bei der Absicherung eines WordPress Blogs helfen können.
1. Keine Standard-Benutzernamen einsetzen
Wenn ein potentielle Hacker den Namen des Administrators kennt, ist das für ihn schon die halbe Miete, denn jetzt braucht er nur noch das Passwort. Also beim Einrichten des Blogs nicht den vorgeschlagenen Namen „admin“ wählen.
2. Unbedingt ein sicheres Passwort wählen
Meist wählt man Passwörter die irgendwas mit dem eigenen Leben zu tun haben. Zum Beispiel den Namen der Katze, des Hundes, das Geburtsdatum und so weiter. Diese Strings sind in den Passwortlisten von Brut-Force Passwort Programmen mit Sicherheit vorhanden und werden in relativ kurzer Zeit gefunden. Es gibt im Web einige gute Passwortgeneratoren die Perfekte Passwörter generieren, die zwar schwer zu merken sind aber eine relativ hohe Sicherheit bieten. Ein gutes Angebot ist der Generator von sicherespasswort.com. Ein weiteres gutes Tool ist der Generator auf passwort-generator.com.
3. Die Datei wp-config.php schützen
Mitunter kann es vorkommen das ein Server überlastet ist und deshalb PHP kurz aussetzt. Dann ist es möglich die Datei wp-config.php im Browser zu listen. Um die wp-config.php Datei dagegen zu schützen genügt der Eintrag der folgenden Zeilen in die htaccess Datei im Hauptverzeichnis des Blogs:
#Schutz der wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>
4. Dateien im wp-include Verzeichniss schützen
Dazu einfach diese Zeilen in die htaccess Datei des Blogs einbinden. Der Code muss außerhalb des mit
# BEGIN WordPress
und
# END WordPress
gekennzeichneten Bereiches eingebunden werden. Da die Zeilen sonst bei Änderungen der Konfiguration überschrieben werden.
# Block the include-only files. RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L]
5. Die Login-Versuche begrenzen
Damit Brute-Force Attacken auf das Login Fenster gelingen müssen unbegrenzte Zugriffe möglich sein, wie es bei WordPress leider der Fall ist. Das Plugin Login Dongle schützt das WordPress Login über ein spezielles Bookmarklet. Beim ersten Login nach der Installation des Plugins wird eine Sicherheits-Abfrage definiert.
Das WordPress Plugin Limit Login Attempts Plugin von Johan Eenfeldt ermöglicht es die Anzahl der Login-Versuche einschränken und dem Administrator des Blogs automatisch eine Email zu senden. Es kann neben anderen Optionen eine Whitelist mit IP eingegeben werden, die diesen IPs unbegrenzte Login-Versuche erlaubt.
Das User Locker Plugin bietet eine weitere Möglichkeit die Zugriffe auf den Login Bereich wirkungsvoll einzuschränken.
Das Captcha Plugin realisiert einen auf Rechenaufgaben basierenden Spamschutz für WordPress Blogs. Der Captchacode kann in Loginformulare, Registrierungsformulare, das Formular für verlorene Passwörter und das Kommentarformular integriert werden.
Zusätzlich kann man als Option „Keine CAPTCHA-Abfrage für angemeldete Benutzer“ wählen. Da auch das Login Formular geschützt wird, kann dieses Plugin auch gegen Brute-Force Attacken zum Knacken des Loginpassworts schützen.
Das weiter unten beschriebene Better WP Security Plugin bietet ebenfalls eine Möglichkeit die Anzahl der Logins einzuschränken.
Desweiteren kann der Login-Screen auf https:// umgeleitet werden. Dazu genügt der Eintrag in der wp-config.php
define(’FORCE_SSL_ADMIN’, true);
6. Nach Möglichkeit immer die aktuelle WordPress-Version einsetzen
WordPress-Updates kommen nicht nur wegen neuer Features, sonder sie schließen meist auch Sicherheitslücken. werden auch immer wieder Sicherheitslücken behoben. Dashalb sollte man immer updaten sobald eine aktualisierte Version verfügbar ist.
7. Neue Themes und Plugins immer auf Schadcode prüfen
Themes können wie auch Plugins immer Schadcode enthalten, deshalb sollte man die Themes immer auf potentiellen Schadcode prüfen. Wer es sich etwas einfacher machen möchte kann Plugins zum prüfen der Themes nutzen.
Hilfreiche Plugins zum Theme-Check sind Theme Authenticity Checker (TAC). Das Plugin Theme-Check überprüft das Theme per Mausklick gemäß der Theme Review Checks von wordpress.org . Das Antivirus Plugin von Sergej Müller überprüft das Theme auf Malware-Code. Das Plugin Plugin Check macht ähnliche Checks wie das Theme Check Plugin, jedoch für Plugins.
8. Das Editieren von Dateien unterbinden
Mit nut einer Zeile in der wp-config.php kann das Editieren von Dateien unterbunden werden. Dazu einfach folgende Zeile in die wp-config.php einfügen:
define('DISALLOW_FILE_EDIT', true);
9. Security Plugins Einsetzen
Es gibt einige praktische Plugins, welche die Sicherheit einer WordPress Installation verbessern können. Sehr effektiv ist das Plugin Better WP Security. Es bietet unter anderem die die Möglichkeit die Anzahl der Logins einzuschränken, den Meta „Generator“ Tag, der die WordPress Version anzeigt zu löschen und den Admin-Bereicht mit Hilfe von htaccess Dateien zu schützen. Das Plugin File Permissions & Size Check von Wycks check die Dateirechte und die Größe der Blogdateien und zeigt anschließend an wo Änderungen vorgenommen werden sollten. Das Plugin läuft nicht unter Windows gehostetem WordPress, da dort die Dateirechte anders behandelt werden. Bulletproof Security ist ein weiteres Plugin das unter anderem diverse Verzeichnisse wie zum Beispiel das wp-admin Verzeichnis mit einer htaccess Datei wirkungsvoll schützt.
10. Immer Backups anlegen
Wenn das Blog dennoch gehackt wird oder es zum einem Crash des Servers kommt, ist es gut eine Sicherheitskopie der Daten zu haben. Das Plugin Snapshot Backup ist ein der Lage ein komplettes Backup aller zu WordPress gehörenden Dateien inklusive der MySQL Datenbank anzulegen und auf einen der vielen Cloud-Storage Dienste oder einen FTP-Server zu übertragen. Das Plugin kann wann immer man möchte mit einem Klick manuell gestartet werden, oder man kann es im Plugin-Adminbereich automatisieren.Viele weitere Backup Plugins findet man unter diesem Link.
Welche Möglichkeiten ein WordPress Blog zu schützen kennt Ihr noch?