Aus aktuellem Anlass möchte ich mich heute dem Thema Schutz von WordPress-Installationen widmen. Bereits unzählige Male wurde eine meiner Seiten angegriffen, mal mehr, mal weniger intensiv. Doch im Frühjahr 2013 registrierte ich das erste Mal eine enorme Welle von Einbruchsversuchen über den Login. Angriffe von unzähligen, verschiedenen IP-Adressen im Sekundentakt habe ich damals protokolliert. Alle nutzten die Standard Benutzerdaten, welche WordPress im Rahmen der Installation vergibt.
Nun jedoch, gut sechs Monate später, rollt eine neue Angriffswelle auf meine Installationen. Das besondere hierbei ist, dass eine noch wesentlich größere Anzahl unterschiedlicher IPs beteiligt sind und neben den bekannten Login Benutzernamen Begriffe meiner Projekte mit einbezogen werden. So z.B. geschehen auf chilimarketing.de: chilimarketing oder chili bzw. marketing sind als Benutzernamen in die Enterversuche mit einbezogen. Die Geschwindigkeit und die Dichte der Angriffe zeigt ganz deutlich, dass es sich hierbei um keine Einzelperson am heimischen Esstisch handelt sondern um ein ganzes Netzwerk (Botnet).
Da ich mich nach früheren, leidvollen Erfahrungen ausgiebig dem Schutz meiner Installationen gewidmet habe kann ich, vielleicht noch, von Glück sagen, dass bisher alle Versuche gescheitert sind. Das soll auch meine Botschaft in diesem Artikel sein: Schutz durch Prävention!
Effektive Schutz-Maßnahmen
Effektiv und einfach sollen Schutzmaßnahmen sein. Nachfolgend habe ich die wichtigsten aufgeführt, möchte aber darauf hinweisen, dass hierdurch nur die Angriffsversuche über den Login gut geschützt sind. Angriffe über bekannte Sicherheitslücken werden hierdurch nicht gesichert, hier hilft nur ein Update auf die aktuellste WordPress-Version und die Vermeidung von Plugins, denn diese wiederum haben eigene Sicherheitslücken.
Standard-Login löschen
Wie ich zuvor beschrieben habe konzentrieren sich die meisten Angriffe auf die standardmäßig vergebenen Benutzernamen Admin und Administrator. Diese sollten unbedingt gelöscht werden. Hierzu muss jedoch zuvor ein neuer Benutzer mit vollen Adminstratorrechten eingerichtet werden.
Bedachte Auswahl der Benutzernamen
Da in der aktuellen Welle auch Begriffe des jeweiligen Projektes bzw. der URL/Domain genutzt werden empfehle ich dringend, diese nicht als Benutzernamen zu wählen. Auch kann ich mir vorstellen, dass das Impressum in Bezug auf den Namen des Ansprechpartners ein neues Ziel ist. Darum wählt bitte einen Benutzernamen, der kryptisch ist und in keinem Zusammenhang mit Eurer Seite steht.
Rechtevergabe
Ich benutze für meine Projekte jeweils zwei Benutzer: Einen zur Administration und einen für die Veröffentlichung der Beiträge. Somit kann ich ausschließen, dass im Falle eines gelungenen Einbruchversuchs über den Veröffentlichungs-Benutzer weitreichende Rechte vorhanden sind. Denn vollumfängliche Administratorenrechte benötigt wirklich kein Benutzer! Eine Übersicht über die diversen Rechte findest Du auf der offiziellen Seite von WordPress.
Auch sollte überlegt werden, ob nicht generell das Template dahingehend modifiziert wird, dass die Authoren nicht bei den Posts angezeigt werden.
Ausschluss von IPs über die .htaccess
Anfänglich habe ich mir die Mühe gemacht und alle gespeicherten IP Adressen, die im Zusammenhang mit den Angriffen standen, über die .htaccess zu sperren. Hiervon bin ich jedoch abgekommen, da ich, wie im aktuell Fall, hunderte Adressen sperren müsste und ich so vermutlich eine höhere Serverlast zu erwarten hätte. Auch sperre ich wohl Nutzer, die nicht im Zusammenhang mit den Angriffen stehen.
Einzelne IPs lassen sich in der .htaccess mit folgendem Zusatz sperren:
order Deny,Allow deny from xx.xxx.xxx.xx
Die Platzhalter „x“ sind hierbei durch die IP zu ersetzen. Erfolgt nun der Webseiten-Aufruf über eine gesperrte IP, wird die Meldung „forbidden“ ausgegeben und die Seite wird nicht ausgeführt.
Plugin zum Schutz
Eine andere Lösung ist die über ein simples WordPress-Plugin. Sehr gute Erfahrungen habe ich mit dem Plugin Limit Login Attempts gemacht, welches nach einer bestimmten Anzahl ungültiger Anmeldeversuche diese IP-Adresse sperrt. Aktuell habe ich die Toleranzschwelle bezüglich der Anmeldeversuche sehr niedrig eingestellt und kann somit effektiv den rollenden Angriff ausbremsen.
Backup
Zu guter Letzt möchte ich noch auf eine Selbstverständlichkeit hinweisen: regelmäßige Backups. Durch diese kann, im Falle eines erfolgreichen Angriffs, die gesamte Installation wieder in den Ursprungszustand versetzt werden. Denn gerade nach einer erfolgreichen feindlichen Übernahme ist nicht klar, was und wo im Code geändert wurde. Mit einem Backup können wir uns die mühevolle Suche nach dem Schadcode sparen und einfach unsere „sauberen“ Daten drüberbügeln.
Mit diesen simplen Maßnahmen habe ich bis dato alle Angriffsversuche abwehren können. Zwei, drei kleinere Modifikationen an meinen Installationen habe ich zusätzlich durchgeführt, möchte diese hier jedoch zu meiner eigenen Sicherheit nicht preisgeben. Viel Erfolg wünsche ich Euch!