Heute gibt es mal wieder eine Runde von diesem Bloggerzeugs. Und besonders schlimm: Es geht noch nicht mal um coole allerneueste Features der letzten WordPress Version, sondern um so schreckliches Zeug wie „Updates“ und „Sicherheit“. Meh!

Hach, es hätte…

ja so schön sein können – endlich Sommer, die Hängematte hängt wieder im Garten, die Sonne brutzelt, es ist Sonntag, und eigentlich wollte ich doch den ganzen Tag nur faul rumhängen und ein bisschen lesen. Vielleicht hätte ich es besser mit einem Buch versucht statt im Zentralorgan der deutschen IT-Landschaft (der c’t) zu blättern, denn dummerglücklicherweise stolperte ich dabei über einen Artikel über WPScan, eine Testsuite für WordPress Installationen.

Im Gegensatz zu anderen Tools wie z.B. Googles Pagespeed oder Pingdom, bei denen es darum geht, die Geschwindigkeit und Größe der eigenen Seite zu optimieren (und über die ich eigentlich wirklich schon seit Ewigkeiten mal schreiben will), ist WPScan ein sog. „Vulnerability Scanner“ und damit ein Security Audit Tool.

Ein bitte was?

Security Audit Tools werden verwendet, um die eigene Website (also z.B. auch unser Blog) auf Schwachstellen abzuklopfen, die es einem bösen Menschen erlauben würden, böse Dinge auf unserer Website zu treiben: dem Leser falsche Informationen zu liefern, unter unserem Namen komplett andere Inhalte anzuzeigen oder nervige Popups einzustreuen, oder uns gar um unsere Millionen (hüstl) zu bringen die wir normalerweise durch Affiliate Links verdienen (Stichwort: Cookie Dropping). Im schlimmsten Fall kann es sogar möglich sein, durch eine fehlerhafte und unsichere Installation die Kontrolle über die eigene Seite oder womöglich den ganzen Server zu verlieren.
Alles jedenfalls gute Gründe, doch gelegentlich mal zu schauen, ob man denn wirklich alle Maßnahmen ergriffen hat, um die eigene Seite (so gut es geht) abzusichern. Wie damals schon im Artikel zu unseren Maßnahmen gegen das Klonen geschrieben: Es ist ein Katz- und Maus-Spiel, und dummerweise sind wir die Mäuse. D.h., sich gegen einen wirklich massiven Angriff zu wehren, das wird sehr schwer – und ich würde für mich auch nicht in Anspruch nehmen, dass ich tatsächlich versiert genug in dem Thema „drin bin“, um wirklich jedes Risiko auszuschließen. Aber, das bedeutet ja noch lange nicht, dass man nicht zumindest das tun sollte, was man (so einfach!) tun kann.

Erst die Erkenntnis…

Bevor man damit beginnt seine Seite abzusichern, muss man natürlich erstmal mitbekommen, dass man überhaupt ein Problem hat.
Hier mal bitte einen Blick werfen: Kennt ihr den auch?

Nein nein, ihr braucht nicht wirklich zu schauen. Wenn ihr halbwegs normale WordPress-User seid, dann sieht das bei euch so aus. Zumindest bei ganz, ganz vielen von euch. Ich weiß das. :)

… dann die Analyse…

Gut, dann sind die Plugins eben nicht taufrisch. Na und?
Ich persönlich habe bisher immer mit einem halbwegs schlechten Gewissen draufgeschaut, mich dann aber damit getröstet, dass das „ja bestimmt nur neue Funktionen sind die wir eh nicht brauchen“ und mir geschworen „Das mache ich einfach nächste Woche. Bestimmt!“.
Jaja.
Zugegeben, das Bild da oben zeigt eine WordPress-Installation die a) wirklich alt ist und b) auch nicht mehr in der wirklichen Welt läuft. Aber … naja, vielleicht schaut ihr ja doch mal bei Euch selber nach. Wer da wirklich keine veralteten Plugins oder eine veraltete WordPress Version vorfindet, der bekommt einen (virtuellen) Keks von mir!
Denn: Der wirklich wichtige Grund, seine Plugins und WordPress selbst aktuell zu halten, das sind nicht etwa neue Funktionen oder höhere Geschwindigkeit oder Stabilität – das Hauptargument ist die Sicherheit, und um das zu zeigen kommen Tools wie WPScan zum Einsatz.
WPScan versucht trickreich möglichst viele Informationen über eure WordPress-Installation herauszufinden, klopft eure Seite auf bekannte Schwachstellen ab und versucht (wenn ihr das wollt) sogar die Seite zu „hacken“, d.h. euer WordPress-Passwort zu knacken.
Die Vorgehensweise ist in etwa die: Eure Seite wird abgerufen und über trickreiche Heuristiken wird herausgefunden, welche WordPress Version zum Einsatz kommt, welches Theme ihr vermutlich verwendet und welche Plugins bei euch in welcher Version installiert sind. Anschließend wird in einer Datenbank geschaut, welche Schwachstellen die jeweiligen Plugins haben. Idealerweise wird auch gleich mit ausgegeben, in welcher Version das Problem behoben wurde. Außerdem werden noch einige allgemeine Fehler abgeklopft, wie z.b. das versehentliche Ausliefern von Backup-Dateien.

An dieser Stelle zeige ich mal nur einen (schmalen) Ausschnitt dessen, was WPScan über unsere Testseite herausfindet:

_______________________________________________________________
        __          _______   _____                  
        \ \        / /  __ \ / ____|                 
         \ \  /\  / /| |__) | (___   ___  __ _ _ __ ®
          \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \ 
           \  /\  /  | |     ____) | (__| (_| | | | |
            \/  \/   |_|    |_____/ \___|\__,_|_| |_|

        WordPress Security Scanner by the WPScan Team 
                       Version 2.9.2
          Sponsored by Sucuri - https://sucuri.net
   @_WPScan_, @ethicalhack3r, @erwan_lr, pvdl, @_FireFart_
_______________________________________________________________

[i] Updating the Database ...
[i] Update completed.
[+] URL: http://your-site-name.here/
[+] Started: Thu Jun 22 20:33:13 2017
[+] robots.txt available under: 'http://your-site-name.here/robots.txt'
[!] The WordPress 'http://your-site-name.here/readme.html' file exists exposing a version number
[+] Interesting header: SERVER: Apache/2.4.18 (Ubuntu)
[+] Interesting header: X-MOD-PAGESPEED: 1.11.33.5-0
[+] XML-RPC Interface available under: http://your-site-name.here/xmlrpc.php

[+] WordPress version 4.3.1 (Released on 2015-09-15) identified from advanced fingerprinting, meta generator, rss generator, rdf generator, atom generator, links opml
[!] 34 vulnerabilities identified from the version number

[!] Title: WordPress 3.7-4.4 - Authenticated Cross-Site Scripting (XSS)
Reference: https://wpvulndb.com/vulnerabilities/8358
Reference: https://wordpress.org/news/2016/01/wordpress-4-4-1-security-and-maintenance-release/
Reference: https://github.com/WordPress/WordPress/commit/7ab65139c6838910426567849c7abed723932b87
Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-1564
[i] Fixed in: 4.4.1

Zeilen, die mit einem [+] beginnen sind ok. Zeilen mit einem [i] sind Informationen. Zeilen mit einem [!] stellen ein Problem dar.
Exemplarisch will ich mal ein paar Zeilen kommentieren:
In Zeile 20 steht, dass wir die Default-Wordpress Datei (die auch die Versionsnummer enthält) mit ausliefern. D.h., wer http://your-site-name.here/readme.html aufruft, weiß schonmal gleich, dass Du WordPress verwendest (was ok ist) und in welcher Versionsnummer (was niemanden etwas angeht).
Aus der Versionsnummer ergeben sich dann die Angriffspunkte. Hier ist z.B. in Zeile 28 einer der Punkte aufgeführt und in den Zeilen 29-32 stehen auch gleich noch praktische Links auf Erklärungen, wie ein böser Hacker die Lücke ausnutzen könnte. Die genaue Funktionsweise muss man nicht verstehen (tue ich auch meistens nicht), aber ich glaube den Leuten einfach mal, dass es sich wirklich um ein Problem handelt.
In Zeile 33 steht dann übrigens auch gleich die Lösung des Problems: Der Fehler wurde mit der WordPress Version 4.4.1 behoben.
In Wirklichkeit ist die Analyse-Datei natürlich noch viel länger (Zeile 26: Es wurden 34(!) mögliche Einfallstore gefunden) und zu den einzelnen Plugins gibt es auch noch Informationen über Schwachstellen. Aber eigentlich interessiert uns das gar nicht, es soll an dieser Stelle nur eins zeigen:

Fast jede WordPress Installation ist angreifbar.

Die Größe der Lücke mag mal größer, mal kleiner sein, aber sie ist (fast immer wieder) vorhanden.
Außer diesen Informationen über die vorhandenen Lücken gibt uns WPScan auch noch Hinweise auf andere Sicherheitsprobleme. Es soll zum Beispiel Blogs geben, deren komplettes wp-content Verzeichnis auflistbar ist. Ja, dieses Verzeichnis in dem alle eure Bilder liegen. Es soll auch schonmal einen Server gegeben haben, der eine vorhandene Backup-Datei der wp-config.php ausgeliefert hat. Ja, diese Datei in der unter anderem auch das Datenbank-Passwort drinsteht.

Panik! Schrecklich! Wir werden alle sterben!

Naja, so schlimm ist es nun auch wieder nicht. (Gut, wir werden tatsächlich irgendwann mal alle sterben, aber nicht deswegen…)
Eigentlich soll das ganze nur dazu dienen jedem klarzumachen, wie wichtig es ist, sowohl die WordPress-Installation selbst wie auch die installierten Plugins stets aktuell zu halten.
Um es mal zu verdeutlichen: Erinnert sich jemand an die Panama-Papers? Dieses große Datenleak wegen dem u.a. der isländische Ministerpräsident zurücktreten musste? Tschja, eines der Einfallstore dafür war wohl ein Fehler im Revolution Slider Plugin – ein ziemlich verbreitetes Plugin.

Und was soll ich tun?

Ok, ich gehe mal davon aus das auf eurer Website nicht 2,6 TB an Informationen über illegale Briefkastenfirmen lagern (und wenn doch: dann möge euer Server gerne gehackt werden und ihr Nachts bei Regen auf der Autobahn eine Reifenpanne haben!), aber trotzdem… wenn die ganze Arbeit nur darin besteht, regelmäßig die WordPress Installation selbst sowie die Plugins aktuell zu halten – das ist ja eigentlich nicht sooo schwierig.
Denn das ist tatsächlich fast alles was ihr tun müsst: Updaten!
Für WordPress selbst existiert sogar ein Auto-Update Mechanismus, der zumindet WordPress selbst „sauber“ hält – allerdings nur bis zum nächsten Haupt-Release.

Wir hier bei Blickgewinkelt gönnen uns übrigens den Luxus eines (kleinen) Zweitservers, auf den wir das Blog in unregelmässigen Abständen spiegeln, und dort werden dann auch alle Updates erstmal getestet. Das ist eh ganz praktisch, weil man auf diesem Zweitserver auch mal ein bisschen rumexperimentieren kann ohne dabei Gefahr zu laufen, das eigentliche Blog in’s Nirwana zu schießen… denn es soll ja auch gelegentlich mal plugins geben, die nach einem Update nicht mehr oder anders funktionieren.

… öhm… ich bin bei Blogger.com

Ok, da bin ich raus. Keine Ahnung, wer da für die Updates zuständig ist :)

Ich bin bei wordpress.com!

… oder verwende einen anderen WordPress Hoster: Auch hier musst du dich wohl nicht um die Updates kümmern, das übernimmt vermutlich dein Hoster für dich. Nachteil: Vermutlich ist dann auch deine Auswahl an plugins eingeschränkt. Allerdings bin ich (wir hosten selbst auf eigenem Server) da wirklich kein Experte. Jedenfalls: Wenn du in das admin-Panel von WordPress kommst und selber plugins installieren kannst, dann musst du sie vermutlich auch selber updaten. Nachschauen kostet nix!

Service! Kostenlos!

Wer es nicht glauben mag, wie verwundbar die eigene Seite ist, kann WPScan auf einem eigenen Rechner installieren und damit selbst zum „Hacker“ werden. Außerdem gibt es (wie oben beschrieben) ja zusätzlich noch mehr Informationen von WPScan. Allerdings braucht man dafür seinen eigenen (Linux) Rechner und ein bisschen Basteltrieb.
Aber weil ich das ja bei uns nun schonmal getan habe, würde ich das auch als Service für euch erledigen – in dem Fall bitte mal eine Nachricht unten in die Kommentare, ich schicke euch das Ergebnis dann zu. Aber Achtung, nur mal so sicherheitshalber:

  1. Bitte nur nachfragen, wenn es sich wirklich um *euren* Server handelt. Ihr müsst das ggf. durch Upload irgendeiner Bild-Datei nachweisen!
  2. Was auch immer passiert: Ich bin für evtl. auftretende Probleme nicht verantwortlich
  3. Den Passwort-Hacking Versuch mache ich nicht. Ich will eure Passwörter nicht.
  4. Was auch immer passiert: Ich bin für evtl. auftretende Probleme nicht verantwortlich.
  5. Sollten das aus irgendeinem Grund zu viele nachfragen, oder ich keine Lust mehr haben, dann lass ich es wieder bleiben.
  6. Was auch immer passiert: Ich bin für evtl. auftretende Probleme nicht verantwortlich.

Soviel für dieses Mal. Irgendwann muss ich das mit dem Backup auf den Zweitserver nochmal beschreiben, denke ich…

/hauke