Brute-Force Angriffe sind bei WordPress besonders häufig zu verzeichnen, was einen einfachen Grund hat. Alles an WordPress ist immer gleich. Die Verzeichnisstruktur, die Nutzerbasis, das Login und das Backend. Jeder weiß, wo genau die Schwachpunkte des CMS liegen, weshalb automatisierte Brute-Force Angriffe stets auch einen potenziellen Erfolg versprechen.
Damit werden sie verlockend, zumal sie weitgehend automatisiert stattfinden können, da WordPress eben bei jeder Installation denselben Aufbau verwendet. Angreifer wissen das und nutzen es aus.
Heute schauen wir uns daher gemeinsam an, wie ihr derartige Brute-Force Angriffe unterbinden oder sogar verhindern könnt und was hilft, um die eigene WordPress-Website abzusichern.
5 Methoden, um eure WordPress-Website vor Brute-Force Angriffen zu schützen
WordPress-Hacks haben eine lange Geschichte. Das Content Mangement System ist vor allem aus einem Grund anfällig für Angriffe, nämlich dem, dass es sehr häufig und vor allem auch weltweit genutzt wird.
Die Verbreitung von WordPress ist enorm und damit geht einher, dass ein potenzieller Hack möglicherweise auf einer Vielzahl von verschiedenen Installationen erfolgreich ausgeführt werden kann. Vor allem weil die meisten WordPress-Websites ähnliche Plugins verwenden. Eine Sicherheitslücke in solch einem Plugin oder Theme bedeutet daher eine Menge potenzieller Angriffsziele.
Um WordPress sicherer gegen Brute-Force Angriffe zu gestalten hilft es, verschiedene Maßnahmen einzuleiten. Einige davon lassen sich ganz einfach und schnell über ein zusätzliches WordPress Plugin regeln, andere hingegen erfordern ein Snippet oder genauere Einstellungen.
Meine fünf Favoriten zum Schutz eurer WordPress-Website vor Brute-Force Angriffen werden ich euch nun vorstellen und deren Umsetzung ein wenig erläutern.
1. Login-Versuche limitieren
Ganz wichtig bei WordPress ist es, die Login-Versuche zu begrenzen. Geschieht dies nicht, ist es Angreifern ohne Blockade möglich, Tausende von Passwörtern per Script bzw. Bot automatisch zu testen. Gibt es kein Limit, führt die Brute-Force Methode mit hoher Wahrscheinlichkeit zum Erfolg und findet vor allem nahezu durchgehend statt, was dann auch auf die Leistung der jeweiligen Website geht.
Der erste Schritt zum Schutz vor Brute-Force Attacken ist es also, die Login-Versuche in WordPress zu limitieren und IP-Adressen, die das festgelegte Limit überschreiten, für einen bestimmten Zeitraum zu sperren. Auf diese Weise lassen sich hartnäckige Brute-Force Angriffe abwehren. Das Plugin Limit Login Attempts Reloaded hilft dabei.
Mit der Erweiterung ist es möglich, die Anzahl der erlaubten Login-Versuche festzulegen und die Zeit einstellen, die auffällige IP-Adressen gesperrt bleiben sollen. Außerdem lassen sich die Vorgänge protokollieren, sodass Logs entstehen, in denen verdächtige Aktivitäten nachvollziehbar gelistet sind.
2. Login-URL verschleiern
WordPress wird vor allem deshalb sehr stark und oft automatisiert angegriffen, weil die Strukturen bei allen WordPress-Installationen gleich ausfallen. Kennt der Angreifer WordPress, weiß er somit schon im Vorfeld, wo sich was befindet und kann entsprechende Angriffe starten. Bei WordPress ist alles immer gleich und das ist ein potenzielles Sicherheitsrisiko.
Es sei denn ihr sorgt dafür, dass etwaige URLs umgeschrieben werden. Dann ist beispielsweise das Login unter einer URL erreichbar, die der Angreifer nicht herausfinden kann. Ihr hingegen kennt eure Login-Adresse und verhindert somit direkte Brute-Force Angriffe auf den Login.
Das WordPress Plugin WPS Hide Login nimmt sich dem Problem an und leitet das Login auf eine neue URL um. Die Erweiterung ist dabei nicht überladen, wird gut gepflegt und ist derzeit bereits auf über einer Million Websites im Einsatz. Die URL kann dabei selbst festgelegt werden, sodass Angreifer keine Chance mehr haben, diese ohne Weiteres zu erkennen.
3. Zwei-Faktor-Authentifizierung gegen Brute-Force Angriffe
Mit der Zwei-Faktor-Authentifizierung wird neben dem Login mit Nutzername und Passwort eine zusätzliche Sicherheitsebene hinzugefügt. Statt also einfach nur einen Login zu nutzen, gibt es eine weitere Identifikationsprüfung, in Form eines Verifizierungscodes. Dies kann per E-Mail oder SMS geschehen und sollte so weit von der Bank, PayPal oder anderen Diensten bekannt sein.
Jeder der sich einloggen möchte, benötigt daher einen Verifizierungscode, der ihm entsprechend zugesendet wird. Für WordPress gibt es jede Menge Plugins, die diese Funktion hinzufügen. Unter anderem Wordfence Login Security. Mit der Erweiterung wird eine Authentifizierung via Google Authenticator, Authy, 1Password oder FreeOTP integriert.
Wie schon gesagt, gibt es aber noch viele weitere WordPress Plugins, die dann auch andere Authentifizierungsmethoden wie SMS oder E-Mail hinzufügen können. Wer die Wahl hat, hat die Qual.
4. Firewall einrichten
Grundsätzlich ist eine Firewall eine sehr wichtige Sache. Sowohl auf Serverbasis, als auch direkt innerhalb von WordPress. Die Firewall schirmt das CMS vor bösartigen Zugriffen ab, erkennt Brute-Force Angriffe und kann die entsprechenden IP-Adressen vorübergehend oder dauerhaft sperren. Hinzu kommen viele weitere Features, wie das Blocken von bekannten Bots, User Agents oder Crawlern.
Wer eine große und effektive Web Application Firewall (WAF) für WordPress sucht, ist mit Sucuri mehr als gut beraten. Alle anderen finden mit der Ninja Firewall eine Art Low-Budget-Lösung. Es gibt noch viele andere Firewalls für WordPress, doch diese beiden kann ich euch aus eigener Erfahrung empfehlen.
5. Backend komplett sperren
Wenn ich WordPress ausschließlich selbst verwende, ohne externe Autoren oder Admins, sperre ich grundsätzlich immer das gesamte Backend. Dazu verwende ich kein Plugin, sondern handhabe dies ganz klassisch und effektiv über eine sogenannte .htpasswd, also eine Datei die den Zugriff auf Serverebene verbietet.
Diese Methode ersetzt dann auch Plugins, die den Login schützen etc. da dieser gar nicht mehr erreichbar ist. Hierfür wird ein Passwort fällig, sonst besteht kein Zugriff auf das WP-Admin-Verzeichnis. Um eine .htpasswd zu erstellen, gibt es ein praktisches Online-Tool. Das generiert eine solche Datei und lässt euch zusätzlich den Mode wählen, um für noch mehr Sicherheit zu sorgen.
Die Datei selbst kommt in das Hauptverzeichnis, während innerhalb von WP-Admin eine neue .htaccess (bzw. eine bestehende ergänzt) mit Pfad und Verweis auf die Sicherheitsprüfung hinterlegt wird. Wie genau das geht und worauf dabei zu achten ist, habe ich euch in diesem Artikel bereits ausführlich geschildert. Dort findet ihr also weitere Anweisungen.
Warum Brute-Force Attacken so schädlich sind
Brute-Force Attacken sind ihrer Form sehr einfache Angriffe, die aber oft durchkommen, weil sie unterschätzt werden. Unter anderem deshalb, weil WordPress es Nutzern simpel gestaltet, einen eigenen Blog zu betreiben, ohne dabei zwangsläufig auch Ahnung von der technischen Seite haben zu müssen. Jeder Brute-Force Angriff führt, wenn man so will, außerdem irgendwann zu einem Erfolg. Es ist nur eine Frage der Zeit und der Rechenkraft. Daher ist es wichtig, sich vor derartigen Angriffen zu schützen.
Dazu gehören die oben erwähnten Maßnahmen, wie der Schutz des Logins oder Admin-Bereichs, eine installierte und konfigurierte Firewall sowie nach Möglichkeit eine funktionierende Zwei-Faktor-Authentifizierung. Wer hier bereits die richtigen Schritte einleitet, ist gut gegen Brute-Force Angriffe geschützt, auch wenn Sicherheit niemals etwas Hundertprozentiges ist.
Wichtig ist sie aber definitiv, da so das Risiko sinkt, einem Hack zum Opfer zu fallen. Die Performance leidet unter Brute-Force Angriffen ebenfalls, weshalb sich nach den entsprechenden Schutzmaßnahmen oft auch die Leistung der eigentlichen Website verbessert.
- So fügst du PDF- und Drucken-Button in deine Website-Artikel ein + Plugin-Tipps - 23. November 2022
- So muss euer Facebook-Titelbild aussehen, damit es geklickt wird! - 10. März 2022
- 3 WordPress Plugins für Diagramme: Visualizer, wpDataTables & WP Charts and Graphs - 15. Februar 2022
Guten Morgen David,
durch einen Artikel in der C’T bin ich noch auf einen weiteren Punkt aufmerksam geworden ( Schnittstellen deaktivieren bei WordPress siehe auch https://www.andreas-unkelbach.de/blog/?go=show&id=1119 ).
Persönlich war ich für ein ehrenamtliches Projekt sehr überrascht, dass hier das Thema Sicherheit in der breiten Öffentlichkeit offensichtlich als wichtig angesehen wird und alle ohne zu Zögern die optional angebotene 2FA Absicherung für sich aktiviert haben.
Beim Plugin “Limit Login Attempts Reloaded” helfen auch die Protokolle dabei festzustellen, welche Anmeldeversuche hier übernommen worden sind und überraschen mich bzgl. der verwendeten Usernamen (Mailanschriften aus Umfeld des Ehrenamtes) immer wieder.
Viele Grüße und noch eine gute Woche
Andreas
Seit Jahren nutze ich eine Methode, welche ohne Installation zusätzlicher Plugins auskommt: Durch eine entsprechende Anweisung in der .htaccess schütze ich die wp-login.php mittels HTTP-Basisauthentifizierung (diese Methode funktioniert natürlich nur, wenn die Passwörter dann nicht die gleichen sind). So kann der Brute Force gerne kommen, der Angriff dringt gar nicht zur eigentlichen WordPress-Installation durch. Ein zusätzlicher Vorteil dieser Methode: Sie ist performant, da der Server den Angriff einfach kurz und schmerzlos mit dem Statuscode 401 beantwortet. Keine Datenbankabfrage, keine Ausführung von PHP.
Also meine Empfehlung von Punkt fünf. Ist auch sehr sinnvoll, wenn WordPress von nur einer Person verwendet wird.