Blog

Eine Mauer mit zwei Laternen
Foto: © Simone Hutsch/unsplash

Blog

WordPress als Sicher­heits­risiko: So schützen Sie Ihre Web­site

Schätzungen zufolge wird rund ein gutes Drittel aller Websites im Internet mit WordPress betrieben. Das spricht zum einen für die Qualitäten dieses Content-Management-Systems, aber macht es zeitgleich auch zu einem sehr attraktiven Ziel von Hackern. Die Folgen können verheerend sein. Möglich ist der vollständige Verlust oder gar der Diebstahl Ihrer Daten. Bei einer Übernahme kann von Ihrer WordPress-Website auch selbst eine Gefahr ausgehen, beispielsweise können über kompromittierte Websites Viren und Malware verteilt werden, Spam-Mails verschickt werden oder andere Server angegriffen werden. Ihre Website kann mit Informationen über Potenzmittel oder illegale Pharmazeutika überschrieben werden oder gar Nachrichten von Terrororganisationen verbreiten.

Diese Szenarien sind besonders schlimm, aber treten auch deshalb immer wieder ein, weil sich im Vorfeld zu wenig mit der Sicherheit der WordPress-Installation auseinandergesetzt wurde. In der unvorstellbaren Breite des Internets halten manche Seiteninhaber*innen ihren eigenen Internetauftritt fälschlicherweise nicht für ein lohnenswertes Ziel von Attacken oder verdrängen mit der Zeit, dass der Schutz eine stetige Aufmerksamkeit erfordert, beispielsweise mit der Installation von Updates.

In diesem Artikel zeige ich, wie ich die WordPress-Websites meiner Kund*innen schütze.

1. Wählen Sie einen guten Webhoster

Noch bevor es sich wirklich um WordPress dreht, benötigen Sie einen guten Webhoster. Die Server müssen eine Vielzahl von Angriffen im Vorfeld abwehren können, beispielsweise durch korrekt konfigurierte Firewalls und dem regelmäßigen Aktualisieren der Software. Selbst bei bewährter Software werden immer wieder Sicherheitslücken publik, die zeitnah geschlossen werden müssen.

Außerdem sollten die Dateien mittels SFTP zu Ihrem Webhoster übertragen werden. Viele Webhoster bieten noch das einfache File Transfer Protocol (FTP) an, ohne »S« für Secure davor. Dabei werden die Dateien samt Zugangsdaten unverschlüsselt übertragen und können auf dem Weg zum Webserver abgegriffen werden.

Längst die Regel sollte auch der Schutz mit SSL sein. Wenn der Webhoster Ihre Website nicht durch ein SSL-Zertifikat absichert, birgt das ebenfalls das Risiko, dass wichtige Daten auf ihrem unverschlüsselten Weg durch das Internet in die Hände Dritter gelangen.

Im Idealfall erstellt der Webhoster auch Backups. Einen 100-prozentigen Schutz kann Ihnen niemand garantieren, deshalb sind Datensicherung von Vorteil, falls der Ernstfall eintritt. Wichtig ist, dass dabei nicht nur die Dateien, sondern auch die MySQL-Datenbanken gesichert werden. Dann lässt sich die gesamte Installation wieder schnell rekonstruieren.

Wenn der Webhoster keine automatischen Backups anbietet, gibt es dafür auch zahlreiche Plugins, die Sie nutzen können.

2. Bei der Installation …

Achten Sie bei der Installation darauf, dass die Adresszeile im Browser mit https:// statt http:// beginnt. Andernfalls werden in den nächsten Schritten auch die sichersten Passwörter zum Risiko, wenn sie unverschlüsselt übertragen werden.

WordPress schlägt bei der Installation den Tabellenpräfix »wp_« vor. Wenn man diesen Präfix ändert, ist die Installation im Falle eine Kompromittierung weniger anfällig für SQL Injections, also Manipulationen der Datenbank.

Genauso einfach und ratsam ist es, bei der Installation einen Benutzernamen zu wählen, der von »admin« und ähnlichen Namen. abweicht. Die meisten Angriffe geschehen völlig automatisiert. Sie wehren einen Teil dieser Angriffe bereits ab, wenn Sie von den gebräuchlichen Varianten abweichen und beispielsweise Ihren eigenen Namen eintragen — natürlich in Verbindung mit einem einmaligen, sicherem Passwort.

Nach der Installation kann die readme.html und/oder liesmich.html im Hauptverzeichnis getrost gelöscht werden. Sie scheinen zwar sehr unspektakulär, aber könnten Aufschluss über die von Ihnen eingesetzte Version geben.

3. Halten Sie Ihre Installation aktuell

Selbst IT’ler ruhen sich mit Mottos wie »Never change a running system« manchmal auf ihren Systemen aus. Solch ein Leitsatz bringt aber schnell eine Gefahr mit sich, wenn damit anstehende Updates verdrängt werden. WordPress bietet die Möglichkeit zur automatischen Installation von Updates, sowohl von der WordPress-Installation selbst als auch von Plugins. Wer auf Backups wie in Punkt 1 beschrieben zurückgreifen kann, ist damit gut beraten.

4. Halten Sie die Plugins und Themes übersichtlich

Die Menge an verfügbaren Plugins und Themes ist unüberschaubar geworden. Allein aus Gründen der Performance sollte die Zahl der aktiven Plugins so niedrig wie möglich gehalten werden, da sie bei jedem Seitenaufruf initiiert werden. Und grundsätzlich gilt auch: je mehr Plugins und Themes installiert sind, desto größer wird die theoretische Angriffsfläche. Vermeiden Sie Plugins, die nicht mehr aktualisiert werden und lesen Sie sich die Rezensionen und Bewertungen durch. Kein Garant, aber die Zahl aktiver Installationen kann bei solchen Abwägungen einbezogen werden. Informieren Sie sich zur Kompatibilität. Plugins oder Themes, die Sie nicht nutzen, können Sie löschen.

Gefährlich wird es, wenn man die Kosten für kommerzielle Themes oder Plugins sparen will und sie stattdessen aus dubiosen Quellen bezieht. Nicht selten wird dabei Code eingeschleust, der nicht zum Original gehört und eine Hintertür in Ihre Installation öffnet.

5. Doppelt hält besser

Ein gutes Rad sichert man auch mit einem zweiten Schloss! Warum nicht auch Ihre Website? Schützen Sie mit der Datei »wp-login.php« das Backend mit einer zusätzlichen Passwortabfrage. Dafür müssen Sie eine .htpasswd-Datei anlegen und die .htaccess-Datei beispielsweise hiermit ergänzen:

<Files wp-login.php>
AuthType Basic
AuthUserFile /var/www/wordpress/.htpasswd
Require valid-user
</Files>

Der genaue Pfad muss angepasst werden.

Anders kann man das Login auch mit einem zweiten Faktor schützen. Damit liegt das Login-Formular zwar frei, aber trotzdem reicht die richtige Kombition von Username und Passwort nicht aus. Das Plugin »Two-Factor« sendet zum Beispiel einen Code per E-Mail zu, den man eingeben muss, um das Login abzuschließen. Möglich ist auch der Einsatz von zeitbasierten Einmalpasswörtern mit entsprechenden Generatoren (TOTP).

Eine zusätzliche Absicherung bieten Plugins wie »Limit Login Attempts«, welche mit einer Limitierung der Zugriffsversuche vor sogenannten Bruteforce-Angriffen schützen.

Auf einem funktionierenden Webserver eigentlich nicht notwendig, aber sinnvoll kann auch die zusätzliche Absicherung der Datei »wp-config.php« sein. Sie beinhaltet den Zugang zur Datenbank und ist deshalb auch ein begehrtes Objekt. Wir können auch einen Schritt weiter gehen und im gleichen Atemzug den Zugriff die Datei »xmlrpc.php« verhindern. Die Idee dieser XMLRPC-Schnittstelle ist älter als WordPress selbst und gilt inzwischen als technisch überholt. Sie ermöglicht die Kommunikation zwischen WordPress mit anderen System, ist aber ohne Weiteres nicht notwendig.

<FilesMatch "wp-config\.php|xmlrpc\.php">
Order allow, deny
Deny from all
</FilesMatch>

6. Noch mehr .htaccess

Hier besteht noch mehr Optimierungspotenzial. Erstellen Sie im Ordner wp-content/uploads beispielsweise eine .htaccess-Datei mit diesem Inhalt:

<FilesMatch "\.(php|php\.)$">
Order allow, deny
Deny from all
</FilesMatch>

Damit verhindern Sie das Ausführen serverseitiger Skripte, die in Ihrem Upload-Ordner — wo eigentlich Bilder und Videos liegen sollten — sowieso nichts zu suchen haben.

Fazit

Sie haben jetzt einige wichtige Schritte übernommen, um Ihre WordPress-Website zusätzlich zu schützen. Wichtig ist, dass man sich darauf nicht ausruht, regelmäßige Backups anlegt (anlegen lässt) und die Installation auf regelmäßige Aktualisierungen prüft. Als Agentur übernehme ich diese Maßnahmen auch gerne für Sie.