Einfache Tipps gegen WordPress-Piraten…

…oder wie Sie als WordPress-Nutzer auch vor dem Schaden schon klug sein können.

Wer WordPress für seinen Blog oder seine statische Webpage einsetzt, hat sich für ein weit verbreitetes, leistungsfähiges und anwenderfreundliches Tool entschieden. Und gerade diese Eigenschaften, die WordPress so beliebt machen, sorgen auch dafür, dass die Wahrscheinlichkeit für einen Angriff auf eine Website unter WordPress relativ gross ist.

Zeitgenossen, die Schlechtes im Schilde führen, suchen sich für Angriffe gerne weit verbreitete Systeme aus. Denn dort kann man am ehesten einen Effekt erzielen.

Ausserdem sorgt die einfache Installation in fünf Minuten mit Standardeinstellungen dafür, dass das Angriffsziel in weiten Teilen gut bekannt ist. Standardnamen für den Admin mit Vollzugriff, bekannte Datenbank-Bezeichner und ein paar typische Konfigurations-Nachlässigkeiten machen es destruktiven Internetbewohnern leichter, Schaden anzurichten.

Natürlich ist nicht jeder Blog und jede Homepage dauernd Ziel von Angreifern und man kann auch ohne weitere Vorkehrungen vielleicht viele Jahre glücklich bloggen. Trotzdem ist doch für viele Menschen ihr Internetauftritt ein wichtiger Bestandteil ihrer professionellen Aussendarstellung und Kommunikation. Und ein Defacement oder sonstige Manipulation kann hohen Image-Schaden verursachen und viel Zeit kosten.

Dieser Artikel erklärt, wie Sie mit ein paar einfachen Massnahmen die Sicherheit Ihres Blogs oder Ihrer Webpage unter WordPress 3.0x erhöhen können, ohne diese(n) dabei aus Versehen stillzulegen.

1. Degradieren Sie wpadmin

Um Ihren Blog zu entern, brauchen Angreifer zwei Informationen: eine Admin-ID und das zugehörige Passwort. Wenn Sie die Standardeinstellung bestehen lassen, ist eine davon schon bekannt. Legen Sie sich einen weiteren User mit Admin-Zugriff an, testen Sie, ob dieser funktioniert und stufen Sie den weltweit bekannten wpadmin zum Subscriber runter (oder löschen Sie die ID gleich ganz).

2. Wählen Sie ein sicheres Passwort

So langweilig wie es klingt: Wählen Sie für Ihre IDs sichere Passwörter. WordPress hilft dabei, in dem es bei der Passwortauswahl mit dem ‘Strength Indicator’ die Sicherheit Ihres gerade gewählten Passworts anzeigt. (Allerdings schätzt der Indikator auch ein Kennwort, das der ‘User-ID plus einer Ziffer’ gleicht, als stark ein, was es natürlich nicht ist.)

3. Limitieren Sie die Zahl der möglichen Anmeldeversuche

WordPress bietet bislang keine Möglichkeit, die Anzahl der Login-Versuche zu begrenzen. Damit ist Ihr Blog mittels automatisiertem Wörterbuch-Attacke leicht angreifbar. Aber auch das ausgiebige Rumprobieren wird weder unterbunden noch bemerkt.

Abhilfe schafft hier das Plugin ‘Limit Login Attempts’. Hiermit können Sie z.B. festlegen, dass nach 5 Fehlversuchen erstmal für 10 Minuten keine Anmeldeversuche möglich sind. Ausserdem zeigt das Plugin Lockouts an oder sendet Ihnen eine E-Mail. Dadurch kriegen Sie mit, wenn jemand den Schlüssel zum Haupteingang sucht.

Stellen Sie die Lockout-Zeiten nicht zu hoch ein! 10 Minuten reichen wohl in den meisten Fällen. Denn damit kann man Sie auch wunderbar von Ihrem eigenen Blog aussperren.

4. Die Secret-Keys – Salzen Sie ggf. nach!

Wer beim Installieren “vergessen” hat, die Secret-Keys zu erzeugen und in seine wp-config.php einzutragen, kann das noch nachholen. Suchen Sie in der Datei nach “Authentication Unique Keys and Salts”, erzeugen Sie die Einträge durch Aufruf des dort angegeben https-Links und fügen Sie diese  in der Konfigurationsdatei an der entsprechenden Stelle ein, falls dort bisher nur acht mal steht “put your unique phrase here”.

Dadurch hat WordPress die Möglichkeit, verschiedene Verschlüsselungs-Vorgänge durch die Zugabe von Zufallsdaten zu verbessern. Das entschlüsseln von Zugangsinformationen, z.B. gespeichert in Cookies, wird dadurch erschwert.

Beachten Sie, dass ein Fehler in der Konfigurationsdatei zum Stillstand Ihres Blogs führen kann. Machen Sie sich deshalb vor allen Änderungen eine Kopie der Datei, die Sie im Fehlerfall wieder aktivieren, um den Fehler in Ruhe suchen zu können.

5. Das ändern des Datenbank-Prefix, eine zweischneidige Sache

Empfehlenswert ist, das Standard-Datenbank-Prefix ‘wp_’ durch ein anderes – schwer zu erratendes – zu ersetzen, um mögliche Angriffe gegen die hinter WordPress liegenden SQL-Datenbank zu erschweren.

Diesen Tipp sollten Sie beim Neu-Anlegen einer WordPress-Instanz auch beachten! Hierzu ist in der Konfigurationsdatei wp-config.php der Parameter

$table_prefix  = 'wp_';

entsprechend abzuändern, z.B. in dem Sie aus ‘wp_’ ein ‘wp6x8_’ machen.

Achtung bei bestehenden Installationen!

Bei einer bestehenden WordPress-Installation sollten Sie allerdings bedenken, dass Sie Ihrer Webpage im laufenden Betrieb die Datenbank unterm Backend wegziehen und Sie bei Problemen erstmal kein funktionierendes WordPress mehr haben.

Das Plugin ‘WP Security Scan’ bietet das Umbenennen des Datenbank-Prefixes an. Leider prüft es nicht, ob die Konfigurationsdatei beschreibbar ist, bevor es die Datenbank-Tabellen umbenennt. Den Hinweis “wp-config must be set to writable before running this script.”, hat der Autor dieses Artikels erst gesehen, als es schon zu spät war. Beim Aufruf des Blogs erschien nur noch die Begrüssung zur initialen WordPress-Installation.

Nach manuellem Umbenennen des table_prefix in der Konfigurationsdatei war zumindest schonmal der Blog wieder sichtbar. Allerdings waren nun alle Admin-Accounts gesperrt. Spätestens jetzt werden sicher die meisten nervös.

Abhilfe schafft hier das manuelle Umbenennen des Präfixes innerhalb der Datenbanktabellen an verschiedenen Stellen. Wenn Ihr altes Präfix ‘wp_’ lautete und das neue ‘wpneu_’, sehen die entsprechenden Kommandos so aus:

UPDATE wpneu_options SET option_name = REPLACE(option_name,'wp_','wpneu_');
UPDATE wpneu_usermeta SET meta_key = REPLACE(meta_key,'wp_','wpneu_');

Diese kann man z.B. auf der Kommandozeile mit dem Tool mysql ausführen:

mysql -u root -p
mysql> use databasename;

wobei databasename der ist, den Sie in der o.g. Konfigurationsdatei definiert haben. Sonst hilft auch die Auflistung mit

mysql> show databases;

auf die Sprünge.

Wer sich solche Reparaturmassnahmen nicht zutraut, sollte vom Umbenennen des Datenbank-Prefix eines laufenden Blogs lieber absehen.

Fazit

Mit den dargestellten Massnahmen kann jeder die Sicherheit seiner WordPress-Installation schon ein gutes Stück erhöhen. Er sollte aber bei einem bestehenden Blog im Voraus wissen, wo die Fallstricke liegen können, damit es nicht doch ein langer Abend wird.

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

2 Comments »

 
 

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


− one = one