Immer wieder ist die Sicherheit bei WordPress ein großes Thema. Wir zeigen euch unsere Top 9 WordPress Security Hacks.
Inhaltsverzeichnis
Update, Update, Update!
Achtet stets auf die Aktualität eures Systems. Immer wieder ernten wir Augenrollen bei dieser Ansprache, aber leider ist eben genau ein veraltetes System der Hauptangriffspunkt. Dabei muss nicht zwingend sofort eine Veränderung am WordPress stattfinden. Wir haben auch schon beobachtet, dass erst Wochen oder Monate später das System umgedreht wird und dann als z.B. Spamschleuder dient. Die meisten Security Releases in WordPress sind meist unentdeckte Fehler oder Lücken und daher ist ein Update auf die neueste WordPress Version stets zu empfehlen. Die meisten Sicherheitsprobleme werden gefixt bevor sie jemand anderes findet. Das sollte ihr nutzen und euer WordPress System stets aktuell halten. Bei größeren Projekten wird das natürlich schon schwieriger.
Admin Account sichern
Wir sehen immer wieder Kundensysteme die „admin“ als Nutzer verwenden. Damit macht man es Angreifern sehr leicht. Oft sind dann leider auch die Passwörter sehr schwach gewählt. Daher raten wir dringend dazu, auch eigene Benutzernamen für einen Adminaccount zu vergeben. Als Beispiel könnte man für das Projekt „Sommerblumen“ einfach den Adminaccount projekt.sommerblumen benennen. So wird es schon weitaus schwieriger den Account ausfindig zu machen. Oder ihr überlegt euch nach einem festen System die Benutzernamen. Beispielsweise die ersten zwei Stellen des Projektnamens, die letzten zwei Buchstaben eures Nachnamens, das Geburtsdatum des Projekts oder von euch selbst und dann entsprechend die letzten zwei Buchstaben eurer Stadt.
wmla2017le
Dazwischen noch ein „!“ oder „*“ und schon wird es aufwändiger für potentielle Angreifer.
wmla*2017le
Je länger euer Passwort, um so schwieriger wird die Dechiffrierung dieses Passworts. Wir raten zu 12-18 Stellen Passwörtern mit Buchstaben, Zahlen und Sonderzeichen. Viele Leute bilden auch Geschichten mit Ihren Passwörtern oder andere Tricks. Einfacher wird es natürlich mit einem Passwortgenerator.
Verwendet am besten ausschließlich Redakteur Accounts, wenn ihr Blogposts schreiben wollt. Diese haben weniger Rechte und bieten so weniger Angriffsmöglichkeiten. Es brauchen nicht alle Nutzer einen WordPress Admin Zugang.
WordPress Login ohne Fehlermeldungen
Gibt man beim WordPress Login die falschen Daten an, erscheint die Meldung Ungültiger Benutzername, ungültige E-Mail-Adresse oder Passwort nicht korrekt. Damit gibt man potentiellen Angreifern aber auch viele Informationen mit. Um die WordPress Security dementsprechend auszubauen deaktivieren wir diese Warnhinweise.
Füge diesen Code in deine functions.php ein
add_filter('login_errors',function($a) {return null;});
Two Factor Auth
Die so genannte Zwei Faktor Authenfizierung (Two Factor Authentication) ist ein sehr spannendes und zugleich sicheres Verfahren. Ihr könnt euren WordPress Login damit zusätzlich schützen, ohne Captchas oder ähnliches einzusetzen. Ihr braucht dafür z.B. die Google Authenticator App auf eurem Smartphone. Dort wird in der App alle 30 Sekunden ein neuer Code für den Login erzeugt. Ohne euer Mobiltelefon ist der Angreifer also aufgeschmissen. Dieser Vorgang ist vor allem für Administrator Accounts zu empfehlen.
Datenbank Prefix umbenennen
Funfact: Auch wir haben gedacht, sowas funktioniert. Aber niemand ist unfehlbar. Wenn jemand Zugriff auf den Server hat, kommt er auch über einen einfachen Befehl an die Daten der Tabellen inklusive des Datenbank Prefixes von WordPress. Eine sinnvolle Benennung kann bei mehreren Projekten von Vorteil sein und sollte vielleicht generalisiert eingesetzt werden.
/wp-admin/ Ordner mit Passwort schützen
Ihr könnt auch serverseitig euer WordPress schützen indem Ihr einen Verzeichnisschutz anwendet. Viele Hoster bieten diese Funktion direkt über das Backend an. Alternativ zeigen wir euch hier wie ihr das selbst bewerkstelligen könnt.
Inhalt für die .htaccess Datei im /wp-admin/ Ordner.
# protect /wp-admin
AuthName "Admin-Bereich"
AuthType Basic
AuthUserFile /pfadzur/.htpasswd
require valid-user
Den Inhalt für die .htpasswd könnt ihr mit diesem Tool erzeugen. Auch diese Datei ladet ihr in das Verzeichnis. Der Inhalt sollte dann so aussehen:
Benutzername:$apr1$YEMfFKx1$AjD8D6ORNMrxe.b7MeWLo1
Achtung: Einige Plugins oder Funktionen von Themes greifen auf die admin-ajax.php im Ordner /wp-admin/ zu. Diese kann mit einem Passwortschutz aber nicht aufgerufen werden und führt zu Problemen. Daher geben wir diese Datei per .htaccess frei und die Datei kann ohne Probleme genutzt werden.
Füge folgendes ans Ende deiner .htaccess ein:
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
Mehr über .htaccess Konfigurationen und Anleitungen erfahrt ihr in unserem entsprechenden Blogpost.
Captcha und Login Limitierung
Du kannst deinen WordPress Login auch per Captcha „schützen“ und mit einer Limitierung für die Login versuche versehen. Das kann schon etwas bringen, ist aber nicht das Allheilmittel. Vorteil: Bei zu vielen falschen Login versuchen wird der Zugang generell für x Minuten gesperrt. Die Sperrzeit und die möglichen Versuche können eingestellt werden. Idealerweise bringt das Plugin WP Limit Login Attemps beide Features mit und wird regelmäßig aktualisiert.
Security Plugin
Es gibt eine Reihe von Security Plugins für WordPress. Viele davon bringen einige brauchbare Features mit und können die Sicherheit im WordPress verbessern. Zu empfehlen ist hierbei z.B. Sucuri Security. Es hilft dabei das System zu überwachen. Es scant nach gefährlicher Malware, überwacht die Dateiintegrität nach unerlaubten Änderungen, eine Firewall für WordPress uvm. ABER: Diese Plugins sind auch nicht unfehlbar oder bieten 100% Schutz. Sie unterstützen lediglich, man sollte also generell wissen was man tut. Auch im Rahmen der DSGVO ist der Einsatz solcher Tools oft schwierig.
Editor für Theme & Plugins deaktivieren
Um weiteren Schutz zu bieten, kann das editieren von Theme- und Plugin-Dateien im WordPress deaktiviert werden. Hiermit kannst du deine WordPress Sicherheit durchaus stark verbessern. Das geht sehr einfach über die wp-config.php.
Füge folgenden Code in die wp-config.php Datei ein:
define( 'DISALLOW_FILE_EDIT', true );
Bonus
Zugriff auf wp-config.php unterbinden
Warum sollte man den Zugriff auf die wp-config.php verhindern? Weil dort alle wichtigen Daten für den Zugriff des Systems zu finden sind – Die Datenbankdaten! Aus dem Grund verwenden wir einen Zusatz in der .htaccess Datei um diesen Zugriff auf jeden Fall zu unterbinden.
Fügt folgendes an das Ende eurer .htaccess hinzu:
# wp-config.php Zugriff verhindern
<files wp-config.php>
Order deny,allow
deny from all
</files>
Sichere Dateirechte
Generell sollte man darauf achten das die Dateirechte korrekt gesetzt sind. Je nach Hoster wird automatisch 644(Dateien) oder 755(Ordner) gesetzt. Das sollte man kontrollieren. Einige Bereiche, wie auch der Uploads Bereich, benötigen jedoch 664(Dateien) und 775(Ordner). ACHTUNG: Wenn ein Theme oder Plugin unbedingt volle Rechte wie 666(Dateien) oder 777(Ordner) möchte, raten wir dringend vom Einsatz ab!
Weitere Infos über Dateirechte findet ihr bei Binary Butterfly von Ernesto.
WP Version verstecken
Im Quelltext ist der Metatag <meta name=“generator“ content=“WordPress x.x.x“ /> zu finden. Dieser verrät eure WordPress Version und macht es damit Angreifern sehr einfach eure WP Version zu erkennen. Wir schalten diese Funktion also einfach ab.
Füge folgendes in deine functions.php des Themes ein:
remove_action('wp_head','wp_generator');