WordPress noch sicherer machen

Das Thema Sicherheit wird von vielen in Bezug auf WordPress unterschätzt. Eine WordPress-Installation ist immer eine beliebte Anlaufstelle für Exploits und XSS Injections. Wer immer die verfügbaren Updates von wordpress.org bzw. wordpress-deutschland.org einspielt (und von keiner anderen Seite!), ist in der Regel auf der sicheren Seite, allerdings ist das auch kein Garant für ein sicheres WordPress.

Um dem ein wenig vorzubeugen, habe ich mich mal auf die Suche nach ein paar Möglichkeiten gemacht, WordPress sicher(er) zu machen.

WordPress Exploit Scanner

Zuallererst sollte man einmal überpruefen, ob vielleicht schon ein Hacker bei der eigenen WordPress-Installation am Werk war. Dabei hilft einem das Plugin WordPress Exploit Scanner von Donncha O Caoimh. Es macht nichts anderes, als die Dateien und die Datenbank-Einträge der WordPress-Installation nach Texten zu durchsuchen, die in der Regel von Hackern und Spammern verwendet werden, wenn diese die Webseite bereits kompromittiert haben.

Findet der Exploit Scanner solche Textpassagen, kann entsprechend gehandelt werden. Gerade ältere und grosse Blogs profitieren von diesem Plugin, da eine manuelle Suche nach solchen Textpassagen praktisch unmöglich ist.

WordPress Suche deaktiveren

Frank Bültge stellt auf seiner Seite bueltge.de eine einfache Anleitung zur Verfügung, wie man die in WordPress eingebaute Suchfunktion deaktivieren kann, wenn sie nicht benötigt wird. Das “Gemeine” an der Suche von WordPress ist naemlich, dass sie auch verwendet werden kann, wenn die Suchbox gar nicht in den Templates oder im eigenen Theme eingebaut ist. Dazu muss man leidglich die WordPress-Installation mit dem Paremeter “?s=” aufrufen, bspw. https://www.wp-magazin.info/?s=sicherheit

Dadurch wird die Suche ausgefuührt. Eine XSS Injection (Cross Site Scripting) benötigt ein Formular-Feld, um eine Seite hacken zu können. Ein solches Formular-Feld findet sich auf der Such-Seite eines jeden out-of-the-box WordPress. Wer nicht alle seine WordPress-Installation auf dem neuesten Sstand halten kann, sollte also die Anpassung von Frank durchführen – natürlich nur wenn auch auf die Suchfunktion verzichtet wird.

Secure WordPress

Und nochmal Frank Bültge, dessen Arbeit für WordPress ich sehr schätze, mit dem Plugin Secure WordPress. Dieses Plugin wurde im Zusammenhang mit dem Entfernen der WordPress-Versionsnummer aus dem Quelltext schon einmal erwähnt. Nebenbei sorgt es aber auch für weitere Sicherheits-Features:

  1. Error Informationen aus dem Login-Bereich entfernen
  2. Erstellt eine virtuelle index.html im Plugin-Verzeichnis, um eventuell das Listen des Inhaltes zu verhindern.
  3. Entfernt Link für Windows Live Writer
  4. Entfernt Link zum Really Simple Discovery Service
  5. Entfernt die Update-Info zur WordPress Version für Nicht-Admins
  6. Entfernt die Update-Info zu Plugin Updates für Nicht-Admins

In diesen Zusammenhang sei auch nochmal der Beitrag aus Frank’s WordPress-Buch erwähnt, der noch weitere Vorschlaege fuer eine sichere WordPress-Installation bereithält.

Bei allem Sicherheits-Eifer sollte übrigens auch nicht vergessen werden, regelmaessig die Datenbank zu sichern.

Fazit

Ich kann mir gut vorstellen, dass viele Leser jetzt denken: Danke, der tausendste Eintrag zum Thema WordPress und Sicherheit (und auf wp-magazin.info sogar schon der zweite), aber wie eingangs erwähnt, kann man nicht oft genug darüber schreiben, zumal ich selbst auch ohne böse Absichten immer wieder WordPress-Blogs entdecke, die nicht aktuell sind und/ oder Sicherheitslücken aufweisen. Gerade wenn einem die eigene Website bzw. das eigene Blog am Herzen liegt, weil man sicherlich viel Arbeit hineingesteckt hat, wäre es doch schade, wenn man nicht ein paar Minuten Zeit findet und die einfachen Mittel zur Verbesserung der Sicherheit durchführt.

Ich freue mich wie immer ueber Kommentare und Meinungen zu diesem Thema und bin gespannt auf weitere Tipps und Links!

14 Antworten auf „WordPress noch sicherer machen“

  1. Ok, da ich als Entwickler eines Sicherheitsplugins doch ein wenig mehr in der Materie stecke, möchte ich paar Punkte loswerden:

    1. Solche Listen wie “Wie mache ich mein WordPress sicher” erscheinen fast jeden Tag und der Inhalt weicht nur in der Satzlänge ab, sprich: Nichts Neues. Mein Vorschlag: Lieber einzelne Lösungen genau unter die Lupe nehmen, testen, vergleichen, analysieren, auf Schwächen und Stärken hinweisen. Bitte mehr Recherche, Tiefe.

    2. Eine Website ohne Suche? Wenn ein Projekt keine Suchfunktion braucht, dann ist es eine winzige, unbedeutende Seite ohne einen nennenswerten Mehrwert, die auch nie gezielt attackiert wird. Da merkt wirklich keiner, ob die Suche abgeschaltet ist. Andernfalls: Lasst die Suche drin, dem Leser zugute.

    3. Sehe ich das richtig, dass der Exploit Scanner nur für die aktuellste WordPress-Version gültig ist? Die MD5-Werte, die das Plugin intern abgleicht, weichen jedoch je nach WP-Version ab. Also nicht für die nicht aktuelle WP-Installation geeignet? Außerdem, wenn man die aktuelle Verbreitung der WordPress-Würmer erforscht und mitverfolgt, dann stellt man schnell fest, dass der Schutz auf dieser Basis absolut wirkungslos ist – vor einem Jahr, vielleicht; aber nicht jetzt. Nur da wären wir wieder beim 1. Punkt…

    Aber natürlich besser als gar nichts, die Empfehlungen. Nur zwischen der “Empfehlung aus Erfahrung” und “Empfehlung gefunden bei Google” liegen Welten. Nicht böse gemeint mein Kommentar, doch wir sollen die Qualität der Beiträge deutlich verbessern, vor allem als WordPresss Magazin 😉

  2. Zitat: »Eine XSS Injection (Cross Site Scripting) benoetigt ein Formular-Feld, um eine Seite kompromittieren zu koennen.«
    Das ist falsch. Formulare sind für Menschen gedacht; XSS-Scripte versuchen einfach, alle möglichen Werte in die Webseite einzuführen; sie interessieren sich nicht für Formulare. Jeder kann einen Request per POST, GET, DELETE etc. mit einer simplen Konsole ausführen.

    Für die meisten der hier angesprochenen »Probleme« reicht eine einfache .htaccess-Datei und ein vernünftig geschriebenes Theme aus. Den Rest erledigen überlegt gesetzte Schreibrechte auf dem Server und ein sauber konfigurierter MySQL-Account, über den man die Datenbank anspricht.

    Mit Plugins erhöht man die Komplexität des Systems, das man schützen möchte – das kann enorm nach hinten losgehen, wenn man den Code nicht selbst geschrieben oder zumindest verstanden hat.

    1. Hi Thomas,

      Danke für deinen Hinweis zum Thema XSS Injection.

      Das mit Plugins und Komplexität stimmt natürlich, andererseits ist nicht jeder in der Lage eine .htaccess-Datei richtig anzupassen und hat von Schreibrechten keine Ahnung. Von daher lieber ein Plugin, was die Sache erleichtert und (mit Sicherheit) eine geringere Hemmschwelle hat.

      Gruss,
      Thomas

  3. Die WP-Suche als Sicherheitslücke weil sie ein Eingabefeld enthält? An dem Punkt bin ich auch sehr stutzig geworden. Diese Sicherheitslücke wurde in Version 1.5 oder 2.0 geschlossen. Ansonsten könnte man auch gleich die Kommentare schließen, da gibt es auch Eingabefelder 😉

    WP sicher zu halten ist leider nicht so einfach wie es oft dargestellt wird. Ein bisschen rumfummeln an der .htaccess, ein paar Schreibrechte setzen und dann noch hier und da ein paar Funktionen deaktivieren wird nicht immer zum Erfolg führen. Gerade wenn man mit einer älteren WP-Version arbeitet.
    Die Angriffspunkte sind dort oft anderer Natur. Leider werden bei älteren Versionen keine Sicherheitslücken mehr geschlossen. Man ist also als WP-Nutzer auf Gedeih und Verderb auf Updates angewiesen.
    Ein Update ist aber wiederum nicht immer die beste Lösung. Entweder funktionieren die lieb gewonnenen Plugins nicht mehr. Oder man hat sich sein WP (u.U. mit eigenen Plugins) mühevoll angepasst. Oder man müsste nun eine ganze Reihe von Leuten auf eine neue Version schulen weil man das Blog im Unternehmen einsetzt. Usw. Usf. Zudem gibt es wohl bei einigen Benutzern mittlerweile eine Update-Müdigkeit. Kaum hat man sich an die neue Version gewöhnt, steht schon die nächste in den Startlöchern.

    Sinnvoller als die tausendste Wiederholung von “Sicherheitsratschlägen” wäre es Sicherheitslücken auch in älteren WP-Versionen zu stopfen.

  4. Muss leider meinen Vorrednern hier recht geben, dass der Artikel ein wenig oberflächlich ist und einiges nicht ganz der Wahrheit entspricht oder nur halb. Ich selber bin der Meinung, dass in Sachen Sicherheit vielleicht beim Ursprung angefangen werden sollte. Das ist aus meiner Sicht die Programmierung von WordPress selber und PHP, welches dem Programmierer es einfach macht, unsauber zu entwickeln. Ein Schritt in die richtige Richtung wäre PHP 5, aber dies wird an der Abwärtskompatibilität scheitern.

  5. Der Kritik von Sergej Müller möchte ich mich mal explizit anschließen. Selten habe ich als Sicherheitslösung für WP etwas so inhaltsloses gelesen.

    Wenigstens dem Standard der Otto-Normal-Beiträge hätte ein solcher Beitrag doch wohl leicht gereichen können. Selbst der übliche Standardtipp, den Account “admin” zu löschen, hättest du aufführen können. Das hilft zwar nicht viel, erweitert den Beitrag aber schon auf den vierten Tipp.

  6. Letzten Monat habe ich 800 Webzugriffe auf das WordPress-Loginformular im meinen Logs gefunden.
    Allerdings war das Formular an der Stelle gar nicht vorhanden….
    Ich habe auch schon viele Aufrufe auf Software gesehen, die ich nicht installiert habe (z.B. phproject)

    Es wird also offenbar einfach systematisch alles ausprobiert. Ideen wie die WordPress-Version zu verschleiern bringen da vermutlich wenig.

    Geholfen hat mir:
    1) Meine Installation war in einem Unterverzeichnis.
    Gezieltere Angriffe lassen sich allerdings davon nicht aufhalten…

    2) Mein Passwort ist etwas länger. 800 Versuche reichen dafür nicht…

    Ein vernünftiges Passwort ist deshalb immer noch der wichtigste Sicherheitstipp.

  7. Beim Passwort sollte man einige Regel beachten.

    1. min 8 Zeichen lang
    2. Groß- und Kleinschreibung verwendt und nicht nur am Anfang groß
    3. Ziffern und Sonderzeichen verwendt
    4. Keine sinnvollen Worte benutzen
    5. etwa alle 90 Tage ein neues Password verwenden

  8. Als weiteren Sicherheitstipp würde ich aufführen, unbedingt den Admin-Bereich über HTTPS verschlüsselt laufen zu lassen.
    Dazu in die wp-config.php die Zeile:

    define(‘FORCE_SSL_ADMIN’, true);

    hinzufügen. Ab jetzt ist der Login- und Admin-bereich SSL-verschlüsselt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert