Es gab einen Lieferketten-Angriff gegen das JavaScript-Framework Polyfill, und der neue chinesische Besitzer hat begonnen, Malware über das Content Delivery Network dieser Domain auszuliefern. Google hat zwar begonnen, ADs zu blockieren, wenn Webseiten Polyfill verwenden. Sicherheitsforscher gehen aber davon aus, dass mehr als 100.000 Webseiten gefährdet sind.
Anzeige
Was ist Polyfill?
Bei polyfill.js handelt es sich um eine beliebte Open-Source-Bibliothek zur Unterstützung älterer Browser. Der JavaScript-Code soll in älteren Browsern neuere, von diesen nicht unterstützte Funktionen mittels eines Workarounds nachrüsten. Beispielsweise sind Features von HTML5 und CSS in älteren Browsern nicht verfügbar.
Polyfill-JavaScript-Code bzw. Polyfill-Skripte im Allgemeinen lassen sich direkt in das HTML-Dokument eines Webprojekts einbetten. Dabei integrieren sie sich nahtlos in den bestehenden Quellcode und werden bei korrekter Programmierung nur dann ausgeführt, wenn der zugreifende Browser das jeweilige Webfeature tatsächlich nicht unterstützt. IONOS hat hier eine umfangreichere Beschreibung zu Polyfill erstellt.
Nennenswerte Nutzer sind JSTOR, Intuit und das Weltwirtschaftsforum. Polyfill wird auch in verschiedenen Webpaketen wie Magento (eCommerce-Shop) oder WordPress (CMS) eingesetzt. Hier ist aber ein genauer Blick erforderlich, was genau eingesetzt wird.
Lieferkettenangriff, was ist passiert?
Es gibt eine Domain poliyfill.io, die den Polyfill-JS-Code über ein Content-Delivery-Network ausliefert. Im Februar 2024 ging diese Domain und das GitHub-Konto an einen chinesischen Eigentümer und jetzt liefert dieser über cdn.poliyfill.io Malware aus. Die betreffende Information ist mir bereits vor Tagen untergekommen (Urlaubs-bedingt habe ich es nicht thematisiert).
Die Leute von Sansec haben den Sachverhalt im Artikel Polyfill supply chain attack hits 100K+ sites dokumentiert. Der Polyfill-Code wird dynamisch auf der Grundlage der HTTP-Header generiert, so dass verschiedene Angriffsmethoden denkbar sind. Die Leute von Sansec haben eine bestimmte Malware entschlüsselt und dokumentiert, die mobile Nutzer über eine gefälschte Google-Analytics-Domain (www.googie-anaiytics.com) auf eine Sportwettseite umleitet. Der Code verfügt über einen speziellen Schutz gegen Reverse Engineering und wird nur auf bestimmten mobilen Geräten zu bestimmten Zeiten aktiviert. Er wird auch nicht aktiviert, wenn er einen Admin-Benutzer erkennt. Außerdem verzögert er die Ausführung, wenn ein Webanalysedienst gefunden wird, vermutlich um nicht in den Statistiken zu landen.
Google hat bereits am 25. Juni 2024 damit begonnen, Google Ads für eCommerce-Seiten zu blockieren, die polyfill.io verwenden. Und die Sansec-Webseite ist inzwischen Ziel von DDoS-Angriffen um deren Infrastruktur und den Artikel aus dem Internet zu bekommen. Im Tweet wird erwähnt, dass diese Seite in Magento-Modulen eingebettet wird und so über 110.000 Webseiten betroffen seien. Sansec hat die Details der ausgelieferten Malware in seinem Artikel dokumentiert. Hinweise auf dieses Verhalten wurden schnell aus dem Github-Repository entfernt (Archiv hier).
Die Kollegen von Bleeping Computer haben den Sachverhalt hier zeitnah dokumentiert. Die Domain polyfill.io wurde vom Registrar Namecheap abgeschaltet, nachdem Forscher den Malware-Befall aufgedeckt hatten. Zudem hat Clouflare damit begonnen, die Polyfill-Codebestandteile aus ausgelieferten Webseiten zu entfernen. Bleeping-Computer hat dies in diesem Beitrag aufgegriffen und einige Informationen dazu zusammengetragen.
Anzeige
Laut diesem Bleeping Computer-Beitrag haben die Besitzer der Domain Polyfill.io den JavaScript-CDN-Dienst auf einer neuen Domain wieder gestartet (siehe dieser Tweet). Weiterhin behaupten sie, der Polyfill-Dienst sei "böswillig verleumdet" worden und es habe "Medienmeldungen gegeben, die Polyfill verleumden" (siehe auch diesen Tweet). Der Dienst als solcher dürfte aber verbrannt sein und es gibt die Empfehlung, diesen Dienst aus Webprojekten auszubauen.
Polyfill ist nicht polyfill.io
Ich habe mal kurz im Quellcode des Blogs nachgesehen – auch in WordPress wird Polyfill verwendet – und in diesem Artikel beschreibt jemand diesen Einsatz als unverantwortlich. Denn viele Experten sind der Meinung, dass Polyfill längst nicht mehr benötigt wird und eigentlich entfernt gehört. Dem kann ich mich anschließen, aber ob eine Seite durch den Polyfill-Lieferkettenangriff gefährdet ist, hängt davon ab, ob cdn.polyfill.io eingebettet wurde. heise hat es in diesem Artikel thematisiert, die Seiten, die sich auf diese Domain stützen, binden den Code des chinesischen Anbieters ein. Es gibt aber von Fastly und Cloudflare Alternativen zum oben genannten Dienst.
Denn nur diese (inzwischen abgeschaltete) Domain bzw. das CDN ist unter chinesischer Kontrolle und liefert(e) sporadisch Malware aus. Das Open-Source-Projekt selbst ist nicht betroffen.
In WordPress werden die Polyfill-Routinen aber direkt als .js-Dateien aus diesem Open Source-Projekt eingebunden (siehe folgenden Codeauszug sowie den Screenshot), haben also mit obigem CDN nichts zu tun.
<script type="text/javascript" src="https://www.borncity.com/blog/wp-includes/js/dist/vendor/wp-polyfill-inert.min.js?ver=3.1.2" id="wp-polyfill-inert-js"></script>...<script type="text/javascript" src="https://www.borncity.com/blog/wp-includes/js/dist/vendor/wp-polyfill.min.js?ver=3.15.0" id="wp-polyfill-js"></script>
Daher gibt es diesbezüglich imho auch keine Gefährdung von WordPress-Seiten. Ich bin aber gespannt, ob der Vorfall dazu führt, dass der Polyfill-JS-Code künftig in WordPress ausgebaut wird.
Cookies blockieren entzieht uns die Finanzierung: Cookie-Einstellungen
Dieser Beitrag wurde unter Sicherheit abgelegt und mit Sicherheit verschlagwortet. Setze ein Lesezeichen auf den Permalink.