Piwik - Beliebte Web analytics Software kompromittiert

Gestern Abend entdeckte ich mit als erster, dass die aktuelle Version von Piwik kompromittiert wurde. Piwik ist eine sowohl bei unseren Kunden als auch bei uns beliebte Web Analyse Software - eine sehr gute Alternative zu Google Analytics.

Gestern versuche ich eine Piwik-Installation auf Version 1.9.2. upzudaten und bemerkte, dass nach dem Update die Oberfläche komplett kaputt war. Auf der Suche nach der Ursache fand ich sehr obskuren PHP-Quellcode im Seitenquelltext, der nicht geparsed worden war weil er aufgrund meiner Serverkonfiguration (Short-Tags aus) nicht ausgeführt wurde. Weil dies nun sehr zeitgleich mit meinem Update stattfand, ging ich der Sache auf den Grund:

In der /core/Loader.php fand ich dann am Ende der Datei zusätzlichen Code, der es Angreifern ermöglicht, beliebigen PHP-Code auf dem System auszuführen. Ebenfalls wird über stark obfuszierten Code die URL der Piwik-Installation an einen anderen Server übermittelt - wohl um eine funktionierende URL zu haben, unter der die Angriffe ausgeführt werden können. Der zusätzliche Code hat sich beim näheren Betrachten und "entschlüsseln" (er war Base64-encodiert und offenbar auch gzipt) als ausgewachsene Backdoor herausgestellt.

Technischer Hintergrund

Er sammelt den angefragten HTTP-Host (aus $_SERVER['HTTP_HOST']) und die angefragte Request-URI. Diese Informationen werden als POST-Daten an den Server hxxp:// prostoivse.com/x.php gesendet. Beantwortet der die Anfrage positiv, wird im selben Verzeichnis eine Datei mit dem Namen "lic.log" angelegt, in der sich dann das Wort "piwik" befindet. Solange diese Datei existiert, werden keine Anfragen mehr an den besagten Server geschickt - vermutlich um die Last auf dem System so gering wie möglich zu halten:

Zusätzlich stellt diese Datei jedoch noch eine Backdoor bereit, mit der sich beliebiger PHP-Code aus der Ferne ausführen lässt: Wenn die (bekannte) URL vom Angreifer aufgerufen wird und die GET-Parameter "s" und "g" gesetzt sind, wird der in $_GET['g'] enthaltene Code durch preg_replace() mit dem /e-Modifikator ausgeführt.

Konstruiert man einen Regulären Ausdruck und beendet ihn mit "/e" wird erst der reguläre Ausdruck angewendet und das Ergebnis dann als PHP-Code ausgeführt - so ähnlich wie die Funktion eval() es auch macht.

Das kann man nutzen, um sich z.B. den Inhalt von htpasswd-Dateien anzuzeigen, aber natürlich auch um z.B. mit file_put_contents() eine eigene PHP-Datei irgendwo innerhalb des Webspaces (Schreibrechte vorausgesetzt) abzulegen und darin dann natürlich auch komplexeren Code auszuführen.

Offizielle Hinweise

Informiert hatte ich die Piwik-Entwickler Montag Abend gegen 20:10 Uhr - sowie einige Online-Portale durch Foreneinträge. Mittlerweile hat z.B. Golem auch darüber berichtet "Backdoor in Piwik" - sogar mit Namensnennung :)

Auf der Piwik-Website gibt es zwischenzeitlich auch einen "offiziellen Security Report" in welchem der Vorfall genauer beschrieben ist. Der Piwik-Webserver wurde laut der Mitteilung durch eine Sicherheitslücke in einem Wordpress-Plugin kompromittiert. Dabei haben die Angreifer das ZIP-Archiv mit der aktuellen Piwik-Version geändert - wodurch die kompromittierte Version für einige Stunden vom 26.11.2012 von ca. 16:43 bis Mitternacht zum download stand.

Empfehlung

Tätig werden brauchen Sie nur, wenn Sie Montag Abend im besagtem Zeitfenster die Piwik-Version runtergeladen und verwendet haben.

Das Beispiel zeigt ansonsten aber mal wieder, dass auch Software wie Wordpress, Joomla & Co sowie eingesetzte Plugins regelmäßig aktualisiert werden müssen. Dem lesenswerten Blog-Artikel "Sicherheit durch Updates" vom Björn ist dabei nichts zuzufügen.

Darüber hinaus ist Piwik eine wirklich sehr zu empfehlende Analyse-Software - aus meiner Sicht die derzeit beste Alternative zu Google Analytics.

Diesen Artikel...


... auf weiteren sozialen Netzwerken posten:

Tags

Ein Tag ist ein Schlagwort, welches zu einem Produkt oder einer Seite passt. >> MEHR , um selber Tags hinzuzügen und Ihr persönliches Schlagwort-Register aufzubauen.

Noch kein Konto bei portunity.de? Jetzt kostenlos registrieren!

Trackbacks

Links von externen Seiten auf diesen Artikel: Trackback-URL

Kommentare

Leider sind zu diesem Artikel noch keine Kommentare vorhanden.
Seien Sie der/die Erste und schreiben Sie uns Ihren Kommentar zu diesem Artikel.
Kommentar schreiben Kommentar via Facebook

Über den Autor

Maximilian Grobecker
Portunity GmbH
Ich bin Techniker und Entwickler bei Portunity Hosting und Access und somit immer da, wo irgendetwas technisches nicht funktioniert und zum Funktionieren gebracht werden soll. Böse Zungen behaupten, ich sei bereits vor Einsetzen des Problems vor Ort gewesen...

Meine Interessensgebiete sind daher auch eng mit Netzwerken, Telefonie und "irgendwas mit Computer" verknüpft, wenn ich nicht gerade hobbymäßig Videos drehe (NICHTS versautes!).

29.10.2020
11.02.2015
09.06.2011
LocalSuite
LocalSuite: Sammlung von Tools für Ihr lokales Unternehmen - Schwerpunkte sind die Digitalisierung von Prozessabläufen und die Module für cleveres Online-Marketing.
Konferenzen.eu
Jetzt eine Telefonkonferenz starten? Schnell, keine Anmeldung erforderlich, kostenlos, normale Festnetznummer und sofort einsatzbereit: www.konferenzen.eu
MusikAnsagen.de
Individuelle musikalische Ansagen für Anrufbeantworter, Warteschleifen, Sprachmenüs und sonstige Telefonie-Anwendungen.
faxnummer.de
Mit dem kostenlosen Faxnummern - Service von Portunity erhalten Sie eine echte Ortnetz-Rufnummer und können sich so Ihre Faxe bequem per eMail zustellen lassen.
BankdatenCheck.de
Mit dem Webservice von BankdatenCheck.de können aus eigenen Applikationen aus dem Shop- und eCommerce-Umfeld Eingaben von Bankdaten auf Plausibilität überprüft werden.