In diesem Artikel werde ich euch aufgrund aktueller Ereignisse einige sehr nützliche Tipps geben, wie man sich vor Hackerangriffen schützen kann. Und ohne allzu langes Vorgeplänker geht es los:

Die .htaccess

Wenn man eine dynamische Seite (wenn man eine statische Seite hat – Stichwort: .html – kann eigentlich kaum etwas passieren oder zumindest nicht, was man selber verhindern bzw. beeinflussen könnte) betreibt – was beim Benutzen von WordPress zum Fall wird – hat der Surfer die Möglichkeit, auf die Seite zu wirken. Nun muss man aber probieren, möglichst das schlechte Treiben des Surfers zu unterbinden.

Dies geht zum Teil mittels der .htaccess. Die .htaccess ist eine Datei, die Text enthält. Auf dem eigenen Windows Computer kann man sie aber so nicht erstellen, da Windows den Punkt nicht als erstes Zeichen einer Datei zulässt. Wer sich gerne näher mit der .htaccess auseinandersetzen möchte, kann sich den Wikipedia-Artikel dazu durchlesen.

Zuerst erstellt man also eine Textdatei “htaccess.txt” (die Dateierweiterung wird nur angezeigt, wenn man die entsprechende Einstellung in den Ansichtsoptionen gewählt hat). Jetzt wird die Textdatei geöffnet und Folgendes eingetragen:

RewriteEngine On
RewriteCond %{QUERY_STRING}   (.*)=http(.*)
RewriteRule ^(.*)  - [F]

Wer Permalinks in seiner WordPress-Installation aktiviert hat wird wahrscheinlich bereits die .htaccess auf seinem Server haben. Dann sollte man sich die .htaccess runterladen, umbenennen und die oberen Zeilen dort eintragen. Da dort dann auch bereits RewriteEngine On stehen müsste, fügt man nur die letzten beiden Zeilen ein. Diese Zeilen bewirken Folgendes (Zitat aus der Supportmail meines Hosters, danke an René B.):

Die ersten 3 Zeilen verhindern, dass schadhafte Dateien wie beispielsweise PHP-Filemanager von fremden URLs über http://… per Parameterübergabe in der URL eingebunden werden können.

Außerdem könnten folgende Zeilen noch von Vorteil sein:

php_flag magic_quotes_gpc on
php_flag register_globals off

Die 4. Zeile Schaltet den PHP-Flag magic_quotes_gpc der PHP.ini an, welcher im Wert off unter Umständen die Ausführung von in Formularfeldern eingegebenen PHP- oder SQL-Code zur Folge haben könnte. Ist der Flag hingegen angeschalten, wird allen eingegebenen Hochkommas (‘) oder Anführungszeichen (“) ein Backslash ()vorangestellt, was die Ausführung von eingegebenen Code erschwehren oder sogar verhindern kann.

Die 5. Zeile setzt den PHP-Flag register_globals auf off. Die in einem Script verwendeten Variablen sind so besser von den übergebenen Benutzervariablen isoliert. Die “Injizierung” Ihrer Variablen mit schadhaften Werten wird mit dem Wert “php_flag register_globals off” somit bedeutend erschwert.

Allerdings bringt der Ausdruck php_flag register_globals off mit WordPress einige Schwierigkeiten mit sich. Diese Einstellung erschwert nämlich ebenfalls das Eingeben von Variablen für den Admin – sprich: Beim Erstellen von Artikeln kommt die Fehlermeldung You don’t have permission to access /wp-admin/page.php on this server. Einen möglichen Lösungsansatz dafür gibt es hier (nicht getestet und ich kann auch nicht sagen, welche Wirkung die Einstellungen dort haben).

Und schließlich:

php_flag display_errors off
php_value error_reporting off

Die letzten beiden Zeilen schalten das Error-Reporting und die Error-Anzeige aus. Bei eventuell auftretenden PHP-Fehlern werden dem User meist interne Pfadangaben und Scriptinterna ausgegeben, die das Debugging für Entwickler zwar erleichtern, einen möglichen Hackerangriff jedoch ebenfalls, das der Hacker somit wichtige Accountdetails in Erfahrung bringen kann, wie beispielsweise den Pfad zum Webhome und den Accountnamen (/www/htdocs/LOGIN) sowie wichtige andere Parameter und Variablennamen in Scripten.

Einen weiteren Tipp für die WordPress-Sicherheit mittels der .htaccess gibt Reiffix. Dort wird gezeigt, wie man einen weiteren Passwortschutz zur Administrationsoberfläche schafft.

Schließlich lädt man die “htaccess.txt” noch in den Rootordner seiner WordPress-Installation und benennt sie in “.htaccess” um. Fertig!

WordPress Sicherheit

Man sollte erst einmal dafür sorgen, dass die eigene WordPress-Installation immer aktuell ist. Runterladen sollte man immer von der offiziellen Seite WordPress.org oder für die deutsche Edition (die aber auch auf wordpress.org vorhanden ist) von WordPress-Deutschland.org.

WordPress selbst ist weiterhin relativ sicher. Trotzdem gibt es zahlreiche Menschen, die versuchen, Lücken in WordPress zu finden oder in dessen Plugins (je beliebter eine Software ist, desto mehr Hacker probieren in ihr Sicherheitslücken zu finden). Deswegen kann man einmal auf eine nicht so bekannte Software umsteigen oder hält – wie bereits erwähnt – sein WordPress stets aktuell.

Sicherheitslücken werden häufig aber erst durch Produkte von Drittanbietern geöffnet. So bergen Plugins ein recht hohes Sicherheitsrisiko, wie ich erst vor kurzem am eigenen Leib erfahren durfte.

Wieder kann ich nur empfehlen, auch die Plugins aktuell zu halten. In meinem Fall gab es aber kein Update für das Plugin, es hing an Lightbox 2.

Wie erkennt man, dass man gehackt wurde?

Erst einmal sollte man ab und an das Besucherverhalten analysieren. Wenn es ungewöhnliches Besucherverhalten gibt (also wenn ein Besucher z.B. unglaublich viele Hits generiert hat, steigt das Verhältnis Klicks / Besucher dramatisch), sollte man sich auch mal die Seiten ansehen, die der Besucher aufgerufen hat.

Bei mir war es schnell einleuchtend, dass Schadcode injiziert wurde, der Hacker bzw. sein Bot hat einfach Schadcode in die Adressleiste gegeben. Eine URL (von tausenden), die er aufgerufen hat, sah dann ungefähr so aus:

/function%20(iterator,%20context)%20%7B%20%20%20%20iterator%20=%20iterator.bind(context);%20%20%20%20var%20results%20=%20[];%20%20%20%20this.each(function%20(value,%20index)%20{if%20(!iterator(value,%20index))%20{results.push(value);}});%20%20%20%20return

Das Zeichen %20 ist übrigens ein Leerzeichen. Von daher ging es bei mir noch relativ fix. Weiterhin könnte man auch die Logs seiner Seite ansehen (ist auf dem Webspace zu finden, zumindest bei guten Hostern).

Welche Seiten hat der Besucher am öftesten angesteuert? Wenn der Surfer mehrere dutzend Male die Kontaktseite besucht hat, kann man davon ausgehen, dass er es auf das Kontaktformular abgesehen hat und darüber Schaden anrichten wollte. Wenn man eine Suchmaschine auf der Seite hat, funktioniert das aber nicht sonderlich gut, aber man könnte trotzdem dann davon ausgehen, dass dem Hacker unter Umständen ein Schwachpunkt im Plugin des Kontaktformulars bekannt sein könnte.

Ab und an den Quellcode der eigenen Seite durchsuchen. Wenn der Hacker die Seite übernehmen möchte und ihm dies gelingt, wird man dies schnell genug ohne eigene Kontrollen bemerken (Passwort geht nicht, der Blog begrüßt dich mit “Hacked by 1337 =.=5cr1p7k1dd13=.=“), aber wenn dies nicht der Fall sein sollte, sondern er es viel eher auf die Besucher oder andere niedere Ziele abgesehen hat, wird er bestimmt irgendeinen Code in die Seite einschleusen, der vom Besucher ausgeführt wird (Werbung, Download von Viren, etc.). Dies macht sich vor allem durch verlängerte Ladezeiten bemerkbar und durch veränderten Quellcode. Dieser lässt sich aber nicht immer vollständig mit der normalen Quellcodeanzeige eines Browsers darstellen. Hier empfiehlt sich das Firefox Plugin Firebug, welches wirklich alles anzeigt.

Was kann man noch tun?

Man sollte darauf achten, dass man ab und an sein Passwort ändert und auch mal nicht davor zurückschreckt, einen Passwort Generator zu benutzen.

Außerdem sollte man ab und an ein komplettes FTP-Backup vollziehen (ich weiß, vielen wird dies am wenigsten gefallen) und außerdem ein MySQL-Datenbank-Backup. Dies geht mit diesem Plugin aber relativ schnell und einfach von Hand.

Habt ihr noch weitere Tipps, wie man sich vor Hackerangriffen schützen kann? Im Kommentarbereich ist genug Platz dafür! smile Wie man sich gegen Hacker schützen kann