Ein Gastbeitrag von Kevin Kyburz.

Ich hoffe nur die Wenigsten kennen dieses Szenario: Man ruft seine WordPress-Seite auf und merkt, dass diese gehackt wurde. Damit das so bleibt, möchte ich an dieser Stelle einige Tipps geben, wie man die Sicherheit einer WordPress-Installation ohne grossen Aufwand erhöhen kann.

Wo liegt das Problem?
WordPress wird immer beliebter und dadurch auch für Hacker immer interessanter. Der Unterschied zu einer „normalen“, statischen HTML-Webseite besteht aber darin, dass WordPress sich mit einer Administrations-Oberfläche bedienen lässt, ohne dass man Zugriff auf das Dateisystem des Webhostings hat. WordPress benötigt zudem Zugriff auf eine Datenbank. Hat ein Hacker erst einmal Zugriff auf die Administrations-Oberfläche von WordPress, die Datenbank oder gar das Dateisystem des Webhosting-Accounts, kann das verheerende Folgen haben.

Das Problem ist der Mensch!
„Wähle ein sicheres Passwort!“, haben wir alle schon Hundert Mal gehört. Vor allem aus Bequemlichkeit hören viele nicht darauf, obwohl die folgenden Regeln ziemlich simpel sind:

  • Passwort mit mehr als 8 Zeichen
  • Mindestens ein Grossbuchstabe, eine Zahl und ein Sonderzeichen ( #,£,@ )
  • Keine logische Reihenfolge (12345678)
  • Kein eigenen Namen, Strasse oder Wohnort

Die eleganteste Lösung ist die Nutzung eines Passwortgenerators. Meine Empfehlung ist hier 1Password, welches sowohl für Windows als auch für Mac und das iPhone/iPad erhältlich ist. 1Password ist zwar nicht kostenlos, lohnt sich zum plattformübergreifenden Verwalten und Generieren von Passwörtern aber allemal.

Mensch gegen Maschine
Ein starkes Passwort ist ein guter Anfang, aber noch lange nicht das Ende. Selten werden Webseiten von Menschen direkt gehackt, vielmehr stehen meist sogenannte Bots dahinter, welche ein „Programm“ ablaufen lassen um verschiedene Sicherheitslücken zu finden. Zum Beispiel das Abrufen eines bestimmten Verzeichnisses oder der wp-config.php Datei von WordPress, in welcher Benutzername und Passwort zur Datenbank hinterlegt sind. Wie wir WordPress nun sicherer machen können, versuche ich euch nun Schritt für Schritt zu erklären.

Vorbereitung
Melde dich im Hostpoint Control Panel unter https://admin.hostpoint.ch in deinem Webhosting-Account an und klicke unter „Webseiten“ bei der Domain, auf welcher dein WordPress installiert ist, hinten auf den Link vom Document-Root. So solltest du direkt ins Verzeichnis vom WordPress unter „Explorer“ gelangen.

Immer Up-to-Date sein!
Einer der wichtigsten Tipps ist das Updaten der Plugins, Themes und WordPress selber. Sicherheitslücken entstehen immer mal. Solange die Entwickler vor den Hackern auf diese stossen, ist das kein Problem und können mit einem Update leicht behoben werden.

Das Hauptproblem besteht vielmehr darin, dass nach dem Update einer Version Informationen zur Verfügung stehen die darauf hinweisen welche Sicherheitslücke vorhanden war. Hacker haben damit leichtes Spiel und suchen sich gezielt nicht aktualisierte WordPress-Installationen aus. Zusammen mit den Informationen, welche Sicherheitslücke besteht, ist es für die Angreifer kein Problem mehr, sich entsprechend Zugang zu verschaffen.

Ein gutes Beispiel für einen solchen Hack ist das TimThumb-Script, welches zum Zoomen in Bildern in vielen Themes eingebaut war. Hacker konnten sich dabei durch das Ausnutzen einer solchen Sicherheitslücke Zugang zur Dateistruktur der Blogsoftware verschaffen. Auch mein eigenes Blog wurde damals durch diese Lücke gehackt. Seit der Version 3.7 ist WordPress nun auch selbständig in der Lage, kleine Versionssprünge (z.B. 3.7 -> 3.71) automatisch zu aktualisieren und nimmt damit dem Inhaber einerseits etwas Arbeit ab und sorgt andererseits für etwas mehr Sicherheit.

Login-Versuche begrenzen
Wie erwähnt, werden Webseiten normalerweise nicht von Personen, sondern von einem automatisierten Script angegriffen. Eine Variante, um sich Zugang zur Adminstrations-Oberfläche zu verschaffen, ist die sogenannte Brute-Force-Methode, wobei ein Script automatisch die bekanntesten Benutzernamen und Passwörter durchprobiert. Das Plugin Limit Login Attempts verhindert dies, indem es die Anzahl fehlgeschlagener Anmeldungsversuche limitiert. In den Einstellungen kann festgelegt werden, nach wie vielen Versuchen die IP Adresse des Angreifers gesperrt und nach wie vielen Stunden sie wieder freigegeben wird.

Das 2x2 der WordPress-Sicherheit
shadow

Autorennamen geben Loginnamen preis!
Standardmässig wird in WordPress der Loginname bei den Kommentaren als CSS Klasse ausgegeben. Damit hat ein Angreifer bereits einen interessanten Angriffspunkt gefunden. Mit den folgenden Textzeilen, welche du in die Datei functions.php deines Theme einbaust, verhinderst du dies.

  1. Melde dich, wie oben erwähnt, im Hostpoint Control Panel an und wechsle in das Verzeichnis von WordPress.
  2. Geh im Verzeichnis „wp-content“ > „themes“ in den Ordner des verwendeten Themes (ersichtlich in der WordPress-Administrationsoberfläche unter „Designs“ > „Themes“) und bearbeite über das Bleistift-Symbol die Datei „functions.php“.
  3. Füge folgenden Code nach der ersten Zeile „<?php“ ein:
     
    // Security: Hide Usernames from Classes
    function remove_comment_author_class( $classes ) {
    foreach( $classes as $key => $class ) {
    if(strstr($class, "comment-author-")) {
    unset( $classes[$key] );
    }
    }
    return $classes;
    }
    add_filter( 'comment_class' , 'remove_comment_author_class' );

functions.php
shadow

Doppelte Sicherheit mit .htpasswd beim Login
Einen grossen Schritt in Richtung Sicherheit erreichst Du mit den nachfolgenden Einstellungen. Damit wirst Du beim Aufruf der WordPress-Administrationsseiten in einem Pop-Up nach Benutzername und Passwort gefragt. So gehst Du vor:

  1. Melde dich, wie oben erwähnt, im Hostpoint Control Panel an und wechsle in das Verzeichnis von WordPress.
  2. Klick unterhalb vom Ordner „wp-admin“ auf „Web-Einstellungen“ und aktiviere die Check-Box „Verzeichnis mit Passwort schützen“ im Register „Passwortschutz“. Trag einen Namen bei „Authorisierter Bereich:“ ein, welcher dann bei der Passwortaufforderung angezeigt wird (z.B. authentication required oder Admin-Bereich).
  3. Trag einen Benutzernamen und ein sicheres Passwort ein, welches nicht an einem anderen Ort verwendet wird. Über „Benutzer hinzufügen“ gelangt dieser Benutzer unten in die Liste der aktiven Benutzer und mit „Speichern“ wird das ganze übernommen.

Beim Aufrufen der Administrations-Oberfläche im Browser erscheint nun ein Fenster welches Dich nach Deinem Benutzernamen und dem Passwort fragt das Du vorher erstellt hast.

wp-config.php verstecken
In der wp-config.php sind Benutzername und Passwort für Deine Datenbank im Klartext gespeichert. Erhält ein Hacker darauf Zugriff, hält er alle Daten die er benötigt, um zum Beispiel Deine Datenbank zu manipulieren.

  1. Melde dich, wie oben erwähnt, im Hostpoint Control Panel an und wechsle in das Verzeichnis vom WordPress.
  2. Bearbeite im Verzeichnis von WordPress die Datei namens „.htaccess“ über das Bleistift-Symbol und füge folgenden Code ein:
     

    <FilesMatch "(.htaccess|.htpasswd|wp-config.php|liesmich.html|readme.html)">
    order deny,allow
    deny from all
    </FilesMatch>

Dieser Code verhindert, dass von aussen auf Deine wp-config.php zugegriffen werden kann.

Mein Plugin-Tipp für mehr Sicherheit
Es gibt noch viele weitere Möglichkeiten für den Schutz einer WordPress-Seite. Angefangen beim Überprüfen vom Code in Themes oder Plugins, das Verschieben der WordPress-Ordner in das Hauptverzeichnis des Servers oder das umbenennen der Ordner. Da wir aber nicht alle Entwickler sind, reichen diese Basics hier, um 90 Prozent der Angriffe zu verhindern. Ein Plugin, das ich bezüglich Sicherheit noch empfehlen kann, ist Better WP Security mit diversen Einstellungsmöglichkeiten, wobei ich das Augenmerk zuerst auf die Menüpunkte „User“ und „Prefix“ legen würde.

Ich hoffe, mit diesen Tipps etwas dazu beitragen zu können, euch vor Hackerangriffen zu schützen. Für Fragen nutzt bitte die Kommentarfunktion.

Das 2×2 der WordPress-Sicherheit

Kevin Kyburz

Kevin Kyburz ist Gastblogger bei uns. Seit dem ersten Klick im Internet versuchte er regelmässig auch Inhalt selber ins Internet stellen zu können. Seit 2009 arbeitet er mit WordPress an privaten wie auch geschäftlichen Webseiten. Selber bloggt er seit 2010 auf dem Swiss Kyburz Blog. Neben dem Entwickeln von Plugins und Themes, ist Kevin unter anderem für die Übersetzung von WordPress in die deutsche Sprache zuständig.

3