Inhalt
Viele Nutzer des allseits beliebten CMS „WordPress“ werden es schon bemerkt haben, aktuell versuchen kriminelle Hacker wieder verstärkt, sich mit Brute Force Angriffen Zugriff auf unzählige WordPress betriebene Seiten zu verschaffen. Meistens bemerkt man das durch Plugins wie das Limit Login Attempts, das diese fehlgeschlagenen Angriffe protokolliert und dem Admin eine Nachricht über die Sperrungen schickt. Nun ist die Brute Force Methode (Angriffe auf die Login Seite mit Passwort Tools) nicht das einzige Einfallstor, zudem gibt es reichlich viele Seiten und Hinweise, wie man sich dagegen schützen kann.
Bekannte Schwachstellen im Quellcode finden
Die meisten Angriffe auf WordPress werden auch nicht auf die Login Seite durchgeführt, sondern eher auf Plugins, also kleine Zusatzprogramme, die den Funktionsumfang deutlich erweitern. Und diese Plugins stellen ein viel größeres Sicherheitsrisiko dar, vor allem wenn sie veraltet oder schlecht programmiert sind, was die Hacker dazu animiert, Schwachstellen und Sicherheitslücken in den aktiven Plugins zu nutzen. Dazu bedienen sie sich spezieller Tools, die im Quellcode der WordPress Seiten nach aktiven Plugins suchen, und das speziell nach denen, deren Sicherheitslücken sie kennen und nutzen können. Diese Plugins sind bei einer Standard Installation immer im selben Verzeichnis auf dem Webserver zu finden (deineseite.tld/wp-content/plugins/), und genau das macht es den Hackern besonders leicht. Sie müssen sich nur ein Tool schreiben, mit dem hunderttausende Websites automatisch nach bestimmten Plugins und deren Spuren im Quellcode durchsucht werden können und diese dann angreifen, um sich Zugriff auf den Server, die Website oder die SQL Datenbank zu verschaffen.
Minify Plugins beschleunigen und verwischen die Spuren im Quellcode
Nun ist mir bei einem Sicherheits Scan (kannst du hier erledigen) meiner eigenen Seiten eine Kleinigkeit aufgefallen, die die Angriffsfläche deutlich verkleinern kann, indem die Spuren von Plugins im Quellcode verwischt werden und das mit den sogenannten Minifying Plugins. Das sind kleine Tools, die in erster Linie die Ladegeschwindigkeit einer Seite deutlich beschleunigen können, indem sie die Javascript und Stylesheet Dateien der unzähligen Plugins zu einem einzigen String zusammenfassen und damit weniger HTTP Requests (Anfragen an den Webserver) erzeugen. Ich nutze auf allen meinen Seiten etwa das „Cachify“ Plugin und das „Better WordPress Minify“. Vergleicht man nun den Quellcode, sieht man, dass bei aktivem WordPress Minifying alle Plugin Dateien zu einem einzigen kryptischen String zusammengefasst sind, und die Namen der einzelnen Plugins nicht mehr im Quellcode zu lesen sind. Damit wird den Hackern die Möglichkeit genommen, automatisch nach verwundbaren Tools zu suchen. Nimmt man dann noch das Cachify Plugin von Sergej Müller dazu, dass Leerzeichen und Kommentare im Quellcode entfernt, wie im dritten Screenshot zu sehen, gibt es praktisch kaum noch Hinweise auf aktive Plugins mehr im Quellcode der Seite.
- Ohne Minify wie in diesem Screenshot zu sehen, sind alle Pluginpfade und Wordpress Versionsnummern und Plugin Kommentare zu sehen
- Mit dem Minifying werden alle Pluginpfade zu einem einzigen kryptischen String zusammengefasst und sind nicht einfach zu identifizieren.
- Kommt dann noch Cachify dazu, werden auch auf Plugins verweisende Kommentare und Leerstellen aus dem Quellcode entfernt.
So kann ich also zwei Fliegen mit einer Klappe schlagen, die Seiten werden schneller im Webbrowser gerendert, was den Nutzern und Lesern Freude bereitet und andererseits macht man es den Hackern schwerer, die WordPress Installation nach verwundbaren Tools und Angriffsflächen zu durchsuchen.
Damit es hier keine Missverständnisse gibt, das Nutzen von Minifying in WordPress allein, reicht nicht aus, 100% Sicherheit gibt es per Definition niemals und natürlich bleiben auch nach meinem Hinweis noch Spuren im Quellcode zu lesen, aber eben deutlich weniger als ohne, und es wird schwieriger gemacht. Letztlich ändert das aber nichts an dem Wettlauf zwischen Anwendern und Hackern und das bleibt wohl eine Konstante. Hast du noch Anmerkungen oder Ideen? Dann hast du hier die Möglichkeit, deinen Kommentar zu schreiben!
Update vom 06.09.2014 um 18:38 Uhr:
Heute ist ein dringendes Update notwendig, denn mein Beitrag trifft genau ins Schwarze. So ist derzeit noch eine Sicherheitslücke im Revolution Slider Plugin offen, die es ermöglicht, die Datenbankzugangsdaten einfach per Webbrowser runterzuladen. Eine genaue Beschreibung der Lücke ist hier zu finden: http://blog.sucuri.net/2014/09/slider-revolution-plugin-critical-vulnerability-being-exploited.html
Nun bin ich kein Hacker, habe aber einfach mal aus reiner Neugier die Google Suche bemüht und analog der hier beschriebenen Methode nach genau diesem Plugin im Quellcode gesucht, das Ergebnis ist erschreckend! Google gibt 13.400 Ergebnisse aus und ich habe mal einige Stichproben durchgeführt. Jetzt wird es noch erschreckender, denn bei einem Großteil meiner Stichproben ist die Lücke nach wie vor offen, weil das Update für das Slider Revolution Plugin nicht eingespielt wurde und damit der Download der wp-config.php einfach möglich ist. Ihr könnt euch sicher vorstellen, was kriminelle Hacker mit den Infos alles anstellen können, denn es dürfte einfach sein, die komplette Kontrolle über den Server zu übernehmen.
Daher hier nochmal der dringende Hinweis an die Leser, haltet eure WordPress Plugins immer auf dem aktuellen Stand und nutzt wie ich oben beschrieben habe Minifying. Damit werden die Lücken nicht geschlossen, aber sie sind nicht so leicht durch eine einfache Suche im Quellcode zu finden. Ich habe selbstverständlich alle „Opfer“ meiner Stichprobe via E-Mail informiert und hoffe, dass meine Hinweise angenommen und verbreitet werden.
Remo meint
Das ist ein interessanter Hinweis, die Namen der Erweiterungen („plugins“) zu verbergen.
Noch mindestens genauso-wichtig ist es, auch den Administrator-Namen der WP-Seite zu verbergen.