WordPress vor Cyberattacken und unerwünschten Zugriffen schützen

WordPress wurde in jüngster Zeit häufig Ziel von Cyberattacken. Dieser Artikel zeigt, wie man eine WordPress-Installation vor Angriffen schützt.

WordPress gehört heute zu den beliebtesten Web-Publishing-Plattformen. Leider wurde WordPress in jüngster Zeit auch Ziel einer Reihe von Cyberattacken, die Schwachstellen in der kostenlosen Open-Source-Plattform ausnutzten. 

Dieser Artikel zeigt, wie man eine WordPress Installation, die sich auf einer virtuellen Maschine (VM) in einer Infrastructure as a Service (IaaS) befindet, wirkungsvoll vor Attacken schützt. Bei WordPress ist es am besten, eine Reihe von definierten Sicherheitsmaßnahmen einzurichten, um die Plattform vor Hackern zu schützen.

Ermitteln der WordPress-Version

Der erste Schritt bei der Analyse von Sicherheitsrisiken ist die Ermittlung der eingesetzten Version von WordPress. Das Programm wpscan findet die installierte Version heraus, indem es nach der Datei /readme.html sucht, die in jeder WordPress-Installation vorhanden ist. Die Datei enthält Informationen, die ein Angreifer nutzen kann, um bestehende Schwachstellen zu ermitteln und auf diese Weise die WordPress-Website attackieren.

Daher sollten Nutzer die installierte WordPress-Version nicht offenbaren. Dies gelingt, indem sie die Datei readme.html entfernen und das All in One WP Security Plugin installieren. Dadurch lässt sich die WordPress-Version auch in anderen Dateien verbergen.

Nutzer der WordPress-Site spezifizieren

Das Programm wpscan spezifiziert auch die Benutzer der Wordpress-Website. Diese Daten lassen sich nutzen, um mit einer Brute-Force-Attacke das Passwort eines Benutzers herauszufinden und sich unter dem Namen des entsprechenden Benutzers Zugang zu Wordpress zu verschaffen. 

Gelingt ihm der Zugriff auf das Administrations-Interface, kann ein Angreifer mit dem Nutzernamen und dem über Brute Force ermittelten Passwort die Website verändern und potenziell bösartigen Code hinzufügen. Diese Methode ist die Grundlage für die so genannte Watering Hole-Attacken, bei denen eine Website infiziert wird, die ein bestimmter Nutzer häufig ansurft.

Um zu verhindern, dass ein Angreifer die Benutzer der WordPress-Site ermittelt, aktivieren Sie in der .htaccess-Datei die weiter unten folgenden Befehle. Dadurch werden bestimmte Teile des URI (Uniform Resource Identifier) umgeschrieben, damit die Informationen über die Nutzer verborgen bleiben. Damit diese Befehle funktionieren, müssen sie auch das mod_rewrite-Modul für Apache aktivieren. Hier der Befehl:

[plain]

RewriteCond %{REQUEST_URI} ^/$

RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)

RewriteRule ^(.*)$ http://192.168.1.1/ [L,R=301]

[/plain]

Plug-Ins von WordPress ermitteln

Mit dem Tool wpscan lassen sich darüber hinaus auch die Plug-Ins ermitteln, die auf der WordPress-Website installiert sind. Ein Angreifer kann mit Hilfe dieser Informationen eine Schwachstelle in einer nicht gepatchten Version eines Plug-ins finden und dadurch unberechtigt auf die WordPress-Website zugreifen oder möglicherweise sogar die vollständige Kontrolle über die Website erhalten.

Zum Schutz vor der Ermittlung der Plug-Ins müssen Sie die Dateien finden und löschen, die Informationen zu der Version der Plug-Ins offen legen. Dazu gehören die Dateien readme.html, readme.txt und changelog.txt. Jedes Plug-In enthält in seinem Verzeichnis / var/www/wp-content/plugins/<plugin_name>/  mindestens eine dieser Dateien. 

Durch das Löschen der genannten Dateien ist wpscan nicht mehr in der Lage, die genaue Version der installierten Plug-Ins zu bestimmen. Dies ist ein Schritt in die richtige Richtung, garantiert aber keine Sicherheit. Denn eine Sicherheitslücke in einem  nicht gepatchten Plug-In kann die WordPress-Website immer noch gefährden. Daher ist es unerlässlich, in WordPress alle Plug-Ins immer auf dem neuesten Stand zu halten und stetig zu aktualisieren.

Sicherheitslücken in WordPress vermeiden

Betreiber einer Website sollten auch beim WordPress-Framework darauf achten, stets die neueste Version zu installieren, da diese Kern-Dateien ebenfalls Sicherheitslücken aufweisen können. Ist das Framework aktuell, werden diese Schwachstellen effektiv gepatcht und das Risiko minimiert, dass Angreifer die Website unterwandern.

Ein Beispiel ist die WordPress-Schwachstelle CVE-2013-0235, die in den WordPress-Versionen vor 3.5.1 enthalten ist. Die Sicherheitslücke betrifft die standardmäßig aktivierte XML-RPC-Schnittstelle. Ein Angreifer kann hier über die Pingback-Funktionalität seine Aktivitäten verstecken. Beim Pingback wird der Nutzer benachrichtigt, sobald jemand seine Dokumente oder Seiten verlinkt. Darüber kann man nachverfolgen, wer auf die eigenen Seiten verweist oder Teile davon zitiert.

Daher gilt: zum Schutz vor Sicherheitslücken sollten Sie immer die neueste Version von WordPress installieren. Umfassenderen Schutz bietet das Plug-In All In One WP Security & Firewall.

Die XML-RPC-Schnittstelle

Die Datei xmlrpc.php bietet über die API Zugriff auf die WordPress-Website, erfordert aber eine Authentifizierung, um die meisten der Befehle ausführen zu können. Ein Angreifer kann die XML-RPC API verwenden, um das Kennwort des Benutzers per Brute-Force-Methode herauszufinden. Dadurch kann sich der Hacker über das Admin-Webinterface anmelden und die volle Kontrolle über die Website gewinnen.

Sie schützen die Website vor einer gefährlichen xmlrpc.php Datei, indem Sie – mit Ausnahme von vertrauenswürdigen Seiten – allen anderen IP-Adressen den Zugriff auf die Funktionen der XML-RPC API verweigern. Dies erfolgt im Rahmen der Konfiguration des Apache Webservers über die Datei .htaccess

Mit dem Befehl Order Deny,Allow; Deny from all; Allow from 1.2.3.4 erreichen Sie, dass nur die IP-Adresse 1.2.3.4 auf die Datei xmlrpc.php zugreifen kann. Alternativ können Sie die xmlrpc.php Datei auch löschen. Stellen Sie aber zuvor sicher, dass Sie diese Funktionalität nicht mehr benötigen.

Darüber hinaus müssen Sie den X-Pingback HTTP-Header deaktivieren, der als Teil von HTTP-Antworten die Existenz der XML-RPC API anzeigt. Sie deaktivieren den HTTP-Antwort-Header, indem Sie den Header über das Apache-Modul mod_headers in der .htaccess-Datei ausschalten.

Schutz vor Clickjacking

Unter Clickjacking versteht man das ungewollte Anklicken eines Links oder Buttons, der unsichtbar als iFrame über einem scheinbar harmlosen Link oder Button liegt. Der Anwender glaubt, etwas auf der angezeigten Seite anzuklicken, klickt jedoch auf Elemente der Seite im unsichtbaren iFrame. Auf diese Weise löst der User eine vom Hacker definierte, beliebige Aktion aus.

Zum Schutz vor einem Clickjacking-Angriff müssen Sie in jeder Antwort an den Client zusätzliche HTTP-Header einsetzen. Dazu verwenden Sie im mod_headers Modul folgende HTTP-Header:

  • „X-Frame-Optionen: SAMEORIGIN“ verhindert, dass die Website auf einer anderen Domain Teil einer anderen Website wird, indem sie Elemente wie <iframe> einsetzt.
  • „X-XSS-Protection: 1“ ermöglicht XSS Schutz im Browser selbst, speziell im Webbrowser Chrome von Google.
  • „X-Content-Type-Options: nosniff“ verhindert das Spoofing von Inhalten in Webbrowsern wie Internet Explorer und Chrome. Beim Spoofing wird dem Besucher einer Website in betrügerischer Absicht eine falsche Identität vorgespiegelt beziehungsweise die tatsächliche Adresse der Seite verschleiert.

Administrations-Interface absichern

In der Regel kann jede Person über das Internet auf die Weboberfläche für die Administration von WordPress zugreifen. Man sollte diese Schnittstelle aber trotzdem vor Anmeldeversuchen unbefugter Personen schützen. Ist dies nicht der Fall, kann ein Angreifer mit Hilfe der Brute-Force-Methode das Passwort eines ermittelten Nutzers ermitteln und sich über das Web-Interface anmelden, um die Website zu verwalten.

Zum Schutz sollten Sie den Zugriff nur vertrauenswürdigen IP-Adressen erlauben und allen anderen IP-Adressen den Zugang verweigern. Dies erfolgt im Rahmen der Konfiguration des Apache Webservers über die Datei .htaccess. Mit dem Befehl Order Deny,Allow; Deny from all; Allow from 1.2.3.4 erreichen Sie, dass nur die IP-Adresse 1.2.3.4 auf die Datei xmlrpc.php zugreifen kann. 

Zum weiteren Schutz der Admin-Schnittstelle setzen Sie den Befehl AuthUserFile /var/.htpasswd; AuthType Basic; Require valid-user ein, der bei der Authentifizierung eine zusätzliche Ebene einführt.

Fazit

Grundsätzlich gilt: Der Schutz einer WordPress-Installation ist nicht zu unterschätzen und kann sich zu einer komplexen Aufgabe entwickeln. Aber glücklicherweise gibt es eine Reihe von Sicherheitsmaßnahmen für die Absicherung einer Website. Security ist keine einmalige Aktion, sondern als dynamischer und kontinuierlicher Prozess zu sehen.

Sie sollten sich genügend Zeit nehmen, um Webseiten auf Basis von WordPress richtig zu schützen, da sie ständig von Bots aus dem Internet angegriffen werden. Die Angriffstechniken entwickeln sich permanent weiter; was heute noch als sicher gilt, kann morgen schon geknackt sein. Legen Sie daher besonderes Augenmerk auf die Sicherheit Ihrer WordPress-Website.

Folgen Sie SearchSecurity.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im März 2015 aktualisiert

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close