24
19

Die dunkle Seite von WordPress

WordPress gehört mittlerweile zu den beliebtesten Blog-Anwendungen und macht auch als Content Management System (CMS) eine gute Figur. WordPress ist einfach zu installieren und zu bedienen und Dank der unzähligen Plugins fast um jede beliebige Funktion erweiterbar.

Die Zahl der Nutzer ist daher weltweit rasant angestiegen. Was viele Nutzer leider nicht wissen, WordPress hat auch eine dunkle Seite. Denn in der Standardinstallation ist das System teilweise offen wie ein Scheunentor und damit den Angriffen von Hackern beliebig ausgeliefert.

Hacker tummeln sich überall dort, wo viele Anwender zusammenkommen, beispielsweise bei Windows. Aber auch WordPress ist aufgrund der Vielzahl der Nutzer zu einem beliebten Angriffsziel geworden.

Es wird daher Zeit, sich einmal mit der Frage der Sicherheit hinsichtlich WordPress zu beschäftigen. Dazu betrachten wir zunächst die wesentlichen Komponenten einer WordPressinstallation.

Da wäre zunächst der Speicherplatz bei einem Provider, z.B. 1+1. Dieser Webhostingaccount wird in der Regel über einen FTP-Zugang angesprochen und es werden die WordPressdateien dort abgelegt.

Die standardmäßige Dateistruktur einer WordPressinstallation sieht dabei in der Regel so aus:

Dateistruktur FTP

Diese Struktur kennen natürlich auch die Hacker. Sind die Dateirechte auf dem Webserver nicht restriktiv genug vergeben, so sprechen wir von einem echten Sicherheitsloch.

Im schlimmsten Fall wird es dadurch für einen Hacker möglich, vorhandene Dateien so zu verändern, dass beispielsweise beim Aufruf der WordPress-Seite im Browser im Hintergrund schädlicher Code nachgeladen und ausgeführt wird.

Im Idealfall sollte ein WordPress-User direkt nach der eigentlichen Installation eine Kopie des gesamten Dateibaumes auf seinen stationären PC herunterladen. Dadurch ist er in der Lage, verdächtige Dateien auf dem Webserver mit dem Original zu vergleichen und so veränderte Dateien zu entdecken. Da es sich bei nahezu allen WordPressdateien um einfache Textdateien handelt, ist ein solcher Vergleich sehr einfach und kann zum Beispiel mit dem Programm „Total Commander“ durchgeführt werden.

Gut vergleichbar mit dem „Original“ auf dem heimischen PC sind Dateien auch hinsichtlich ihres Datums. Wenn Sie beispielsweise ein WordPress am 10.01.2012 installieren, dann sollten alle Dateien auf dem Webserver dieses Datum tragen. Finden Sie Dateien, die ein anderes Datum tragen und Sie sicher sind, diese nach der ursprünglichen Installation nicht geändert zu haben, dann ist das ein erster Verdachtsmoment für einen unberechtigten Zugriff von Dritten.

Folgende Dateien sind bei Hackern beliebte Angriffsziele:

  • Die Datei index.php im Hauptverzeichnis
  • Die Datei header.php im Verzeichnis wp-content/themes/theme-Name/
  • Die Datei footer.php im Verzeichnis wp-content/themes/theme-Name/
  • Die Datei xmlrpc.php im Hauptverzeichnis

Zum Glück gibt es ein sogar kostenloses Plugin für WordPress, welches einem die manuelle Kontrolle dieser und noch anderer Dateien erspart und eine Veränderung sofort meldet: Es heißt WP Security Audit Log und sollte in keiner WordPress Installation fehlen.

Das Plugin scannt automatisch die vorhandenen Dateien der WordPress Installation und schlägt Alarm, sobald es feststellt, dass eine Datei geändert wurde.

Ich habe das Plugin getestet und in der Datei wp-config.php nur einen einzigen Buchstaben in einen Kommentar hinzugefügt und dann die Datei zurück gespeichert und das Tool laufen lassen. Bingo! Die Manipulation wurde eindeutig entdeckt und die Information in meine Mailbox gesendet.

Hinsichtlich der Rechte der Dateien sollten die “normalen” Rechte der allgemeinen Dateien immer auf chmod 644 und bei Ordnern auf chmod 755 gesetzt sein. Benutzen Sie auf keinen Fall chmod 777 für sensible Dateien, denn ansonsten kann im Prinzip die ganze Welt eine solche Datei verändern.

Welche Dateirechte für welches Verzeichnis benötigt werden, können Sie mit dem ebenfalls kostenlosem Plugin WP Security Scan herausfinden. Nach der Installation sind in der Übersicht alle Rechteinstellungen, die ein Sicherheitsrisiko beinhalten, rot markiert. Sichere Einstellungen sind grün markiert.

Neben diesem FTP-Zugangstor gibt es aber noch ein Sicherheitsrisiko in WordPress. Es handelt sich um die Datenbank, normalerweise eine MYSQL-Datenbank. Alles, was Sie jemals in Ihr WordPress eingeben, wird in dieser Datenbank gespeichert.

Der Zugriff auf diese Datenbank wird in der Datei „wp-config.php“ konfiguriert. In dieser Datei wird unter anderem der Datenbankbenutzer inklusive seinem Passwort gespeichert. Sie ist somit der Schlüssel zur Datenbank. Für Hacker also höchst interessant, diese Datei.

Um hier vollkommen auf Nummer Sicher zu gehen, könnten Sie die Datei wp-config.php zusätzlich per .htaccess schützen.

Den folgenden Code sollten Sie daher in einer Datei .httaccess abspeichern und in dem Hauptverzeichnis Ihrer WordPressinstallation ablegen.

# protect wpconfig.php
<files wp-config.php>
Order deny,allow
deny from all
</files>

Weiterführende Informationen zu dem Thema finden Sie unter folgendem Link: Schütze deine wp-config.php

Um die Wirksamkeit des Schutzes zu kontrollieren, rufen Sie die Datei in Ihrem Webbrowser auf. Also etwa so:

Wo hier webservicekoeln.de steht müssen Sie natürlich Ihre eigene Domain eintragen. Das Ergebnis im Browserfenster sollte auf jeden Fall so oder ähnlich aussehen:

Access forbidden!

 

Hier gibt der Server einen 403-Fehler für die aufgerufene Datei wp-config.php zurück, d.h. der Zugriff auf diese Datei ist verboten.

Damit hätten wir nun die Dateistrukturen und den Zugriff auf die Datenbank abgesichert.

Ein weiteres Einfallstor für „ungebetene Gäste“ besteht in den „Themes“ von WordPress. Es gibt tausende von diesen Themes (Layouts) für WordPress und die Gefahr ist hoch, schnell mal eben ein so toll aussehendes Theme aus unbekannter Quelle runter zu laden und zu aktivieren. Ein perfektes Sicherheitsloch für Hacker.

Wie schützt man sich dagegen? Erstens sollten Sie niemals Themes aus unbekannten Quellen herunterladen, sondern am besten immer nur von offiziellen WordPress-Seiten.

Zweitens sollten Sie das Plugin AntiVirus von Sergej Mueller installieren. Dieses scannt nämlich Ihre Themes bzw. Templates auf bösartigen Code.

Somit wäre auch diese Gefahrenquelle geschlossen.

Nun bleiben noch einige kleinere mögliche Angriffspunkte übrig, die sich fast alle mit einem weiteren Plugin entschärfen lassen. Es heißt Secure WordPress und Sie sollten es ebenso installieren.

Folgende kleine Details berücksichtigt dieses Plugin:

– Entfernt die Error-Informationen auf der Login-Page
– Fügt index.php (falls nicht vorhanden) ins Plugin Verzeichnis hinzu
– Entfernt Hinweise auf die WordPress Version
– Entfernt Sicherheitslöcher die zum Aufdecken von Verzeichnissen helfen
– Sog. Bad Queries werden geblockt
– Entfernt die Anzeige von vorliegenden Updates für Nicht-Admins
– Versteckt die Anzeige der WordPress Version für Nicht-Admins
– und einige andere kleinere Dinge

Nun ist unser Fort Knox fast perfekt und gegen alle möglichen Angriffe gewappnet.

Ein letztes kleineres Sicherheitsrisiko bleibt noch und der Vollständigkeit halber wollen wir dieses nun auch schliessen.

Bei der Installation von WordPress wird standardmäßig ein Admin-Konto angelegt, also ein Benutzer mit vollen Admin-Rechten.

Das muss auch so sein, denn zu Anfang muss das System konfiguriert werden und dazu sind nunmal Admin-Rechte notwendig.

Leider übernehmen die meisten User den von WordPress vorgeschlagenen Benutzernamen „Admin“ und machen es einem Angreifer so erheblich leichter, denn dieser muss nun nur noch das Passwort ermitteln und schon ist er drin.

Gehen Sie am besten wie folgt vor:

Nach der ersten Installation legen Sie einige neue Benutzer an, mit der niedrigsten Rechte-Stufe (Abonennten), damit die kritischen ersten ID’s in der Datenbank belegt sind. Diese Benutzer werden später wieder gelöscht, die zugehörigen ID’s werden nicht mehr neu vergeben.

Danach legen Sie einen neuen Admin mit allen Rechten an. Diesem geben Sie einen unauffälligen Benutzernamen, der nicht auf Administrator-Privilegien schließen lässt und ein sicheres Passwort.

Loggen Sie sich nun aus und mit dem neuen Admin-Account wieder ein und löschen Sie den alten Admin indem Sie in der Benutzerliste auf den Löschen Link unter dem Benutzernamen klicken.

WordPress fragt Sie nun, an welchen Benutzer die Artikel und Links, die vom ursprünglichen Benutzer „Admin“ angelegt wurden, übertragen werden sollen. Wählen Sie den neu angelegten Administrator aus, oder einen anderen Benutzer, der weiterhin existieren wird.

Der letzte Schritt dieser Sicherheitsmaßnahme besteht nun darin, die vorhin angelegten Dummy-Benutzer zu löschen. Das war’s.

Ach ja, zum Schluss noch folgendes, was man nicht oft genug erwähnen kann. Es versteht sich von selbst, dass Sie – wenn Passwörter gefragt sind für FTP-Zugang, WordPress selbst und die Datenbank – nur maximal möglich sichere Passwörter verwenden sollten.

Bitte lesen Sie in Ihrem eigenen Interesse diesen hervorragenden Artikel über Passwörter.

Zuallerletzt noch dieser Hinweis: Bitte installieren Sie regelmäßig alle Updates, die das System und die vorhandenen Plugins betreffen, denn oftmals werden dadurch auch Sicherheitslücken geschlossen. Vor den Updates immer schön Daten sichern!

Wenn Sie alle diese Anweisungen befolgen, dann brauchen Sie sich um die Sicherheit Ihres WordPress-Systems vorerst keine Gedanken mehr zu machen.

 

In 10 Schritten zur perfekten Website