Operation TrackMe – Über 50 Onlineshops mit teils kritischen Schwachstellen

Im April gab es einen kleinen Rundgang durch die Netzwelt, der zu einer Welle von Sicherheitsmeldungen führte. Bereits vor einigen Monaten ist mir eine allgemeine Problematik aufgefallen, die mit dem Einsatz von Webanalyse-Software zusammenhängt und zu teilweise, sehr kritischen Schwachstellen führt. Durch die unpraktische Integration der Analysefunktionen und der Ausgabe von bestimmten Parametern im Quellcode, sowie auch – in manchen Fällen – deren Verarbeitung mit Datenbankanbindung, war es in einer großen Anzahl – teils sehr bekannter – Onlineshops möglich, Schadcode einzuschleusen und Zugriff auf Datenbanken zu erhalten.
Schon vor über einem Jahr habe ich „babywalz“ über eine XSS-Problematik informiert, die zum Einschleusen von Schadcode und zum Ausspähen der Kunden/Besucher dienen konnte, sofern sich ein Angreifer an dieser Schwachstelle bedient hätte. Leider hat es über ein Jahr gedauert, bis man die Sicherheitsproblematik beseitigt hatte. Zunächst wollte man auf meinen Sicherheitshinweis gar nicht reagieren. Erst als ich über Twitter den öffentlichen Kontakt gesucht und die Schwachstelle öffentlich demonstriert hatte, reagierte man und beseitigte die Problemstelle. Durch die Schwachstelle bei babywalz und auch bei einem anderen Anbieter, bin ich auf ein scheinbar sehr gängiges Problem gestoßen, welches bei vielen Onlineshops zu Schwachstellen führt. Aus diesem Grund gab es einen kleinen „Rundgang“ um möglichst viele betroffene Betreiber über die Sicherheitsprobleme zu informieren.
Am häufigsten konnte ich diese Problematik bei Nutzern der Webanalyse-Software „econda“ feststellen, wobei hier weniger „econda“ das Problem ist, sondern vielmehr die Integraion der Webanalyse in die laufenden Shops/Portale. Für die Auswertung der Suchanfragen innerhalb der Shops, werden Plugins und eigene Entwicklungen verwendet, die über Javascript den Suchbegriff und ggf. weitere Informationen an das Analysesystem weiterleiten. Die zur Analyse bereitgestellten Informationen werden nach der Suchanfrage des Benutzers, im Quellcode ausgegeben und anschließend verarbeitet. Leider haben fast alle Onlineshops hier das gleiche Problem verursacht und bei der Ausgabe der Parameter im Quelltext, schlichtweg das Filtern der Eingaben vergessen. Jeder aus der Branche weiß, dass gerade Suchfunktionen sehr beliebt und anfällig für XSS und auch SQL Injection sind. Die Suchfunktionen selbst waren aber nicht das Problem, sondern zum teil auch noch vorbildlich abgesichert. Die „Lücke“ im System war lediglich die Anbindung an das Webanalyse-System.
Bei einfachen Tests auf Schwachstellen – wie es zum Beispiel mit gängigen Tools möglich wäre – würde diese Schwachstelle nicht gleich oder gar nicht auffallen, da die typischen Requests nicht ausreichend sind, um eine Manipulation der Ausgabe zu erreichen. Man kennt ja die typischen „Test-Strings“, mit denen man auf mögliche Cross-Site-Scripting Probleme trifft. Teilweise war das Ausnutzen der Schwachstellen aber recht „tricky“, da man zunächst die vorhandenen Filter umgehen musste, um dann aus dem Javascript auszubrechen und eigenen Code einzuschleusen. Bei einigen Shops war es aber ohne große Mühe möglich, die Ausgabe zu manipulieren und eigenen Code auszuführen. Dazu wurde der Javascript-Schnipsel einfach sauber geschlossen – also entsprechende Werte eingetragen – und anschließend das externe Script geladen. Zur Demonstration der Problematik hat man sich – wie immer – an einer externen Website, an „Nyan Cat“ und auch an einer Runde ACDC bedient.
Das folgende Video zeigt die Möglichkeit, externe Quellen in die jeweilige Seitenausgabe einzuschleusen. Im Video wurden nur ein paar der betroffenen Shops aufgeführt:
Zwar ist alleine die XSS-Schwäche schon ein Problem genug, jedoch gab es auch mehrere Onlineshops, die durch die fehlerhafte Einbindung der Plugins und eigene, zusätzliche Funktionen in Zusammenarbeit mit der Datenbank, sogar für SQL Injection Schwachstellen sorgten. Es war möglich – und wurde nach Absprache mit den Betreibern getestet – durch das Manipulieren der Parameter, auf höhere Ebenen der Datenbank vorzudringen und diese auszulesen. Aufgrund der erheblichen Gefahr dieser Sicherheitslücken, werde ich auf diese Fälle nicht im Detail eingehen. Praktisch war der Rundgang ohnehin, denn unabhängig von der Webanalyse-Problematik wurden auch andere Problemstellen aufgedeckt, wie zum Beispiel die XSS-Schwachstelle bei Lexmark (Demo), welche bisher leider ohne jegliche Rückmeldung/Reaktion der Betreiber vorhanden blieb.
Die Entwickler der Webanalyse-Software „econda“ wurden ebenfalls über die Problematik auf Systemen ihrer Kunden informiert. Man hat sehr schnell reagiert und möchte in Zukunft auch selbst ein wenig mehr auf derartige Möglichkeiten von Sicherheitsproblemen hinweisen. Wie bereits erwähnt ist „econda“ selbst nicht das Problem – die Schwachstelle liegt nicht direkt in der Webanalyse – sondern eher die Integration durch die Betreiber selbst bzw. zusätzliche Plugins von Drittanbietern.
Was mich persönlich freut ist, dass die meisten der betroffenen Betreiber – welche von mir umgehend informiert wurden – sehr schnell reagiert und die Sicherheitsprobleme beseitigt haben. Auch die Herrschaften bei „econda“ haben ein Lob verdient, da man sich mit dem Thema auseinandergesetzt hat, obwohl die eigenen Dienste bzw. die eigene Software nicht das eigentliche Problem darstellt. Dies zeigt mir, dass es sich um vernünftige Unternehmen handelt, die sich auch allgemein Gedanken um den Schutz ihrer Kunden machen. Daumen hoch!
Schwachstellen wurden unter anderem auch gemeldet an folgende, bekannte Größen:
bader.de, ruv-bkk.de, proidee.de, cairo.de, the-british-shop.de, baldur-garten.de, moebel-eins.de, sport-schuster.de, light11.de, baby-markt.de, sportxshop.de, kupplung.de, lindy.de, mvhs.de, baywa.de, lexmark.com, druckhelden.de, medicaria.de, gravis.de, moebel-sensation.de, parts2go.de, warehouse-one.de, tennis-peters.de, centercourt.de, allpax.de, bluna.de, trotec.de, …
Wer zur Sicherheit selbst überprüfen möchte, ob seine Website oder sein Onlineshop von dieser Problematik betroffen ist, der sollte lediglich nachsehen, ob Benutzereingaben (Suchbegriffe,…) im Quellcode gesondert ausgegeben und der Webanalyse zur Verfügung gestellt werden. Wenn hierbei diverse Sonderzeichen nicht umgewandelt/herausgefiltert werden, sollte man dies schleunigst nachholen.