Sie haben wahrscheinlich schon von einem großen Angriff auf die Software-Lieferkette gehört, der viele Websites mit dem Open Source-Service polyfill.io bedroht. Dieser artikel enthält einige Hintergrundinformationen zu dem Problem sowie aktualisierte Maßnahmen, die Sie ergreifen können, um den Schutz Ihrer Benutzer sicherzustellen. Obwohl die Services von Edgio von diesem Angriff nicht betroffen sind, steht unser Sicherheitsteam allen Kunden zur Seite, die befürchten, dass sie polyfill.io in ihrer Website oder Anwendung verwendet haben könnten.
Hintergrund zu polyfill.io
Um den jüngsten Angriff auf die Lieferkette von polyfill.io zu verstehen, sollten wir zunächst den Begriff „Polyfil“ definieren. Polyfill bezieht sich auf Code, der älteren Browsern, die keine nativen Unterstützung für neuere Webfunktionen bieten, moderne Funktionen hinzufügt. Sie ermöglicht Entwicklern die Bereitstellung einer konsistenten Benutzererfahrung über verschiedene Browser hinweg, insbesondere solche, die langsamer die neuesten Webstandards übernehmen. Im Falle des Angriffs polyfill.io haben Entwickler polyfill verwendet, um JavaScript-Funktionen hinzuzufügen, die von älteren Browsern nicht unterstützt werden.
Polyfill.io ist ein weit verbreiteter Dienst, der den Browser des Endbenutzers automatisch erkennt und die erforderlichen Polyfills bereitstellt, um die Kompatibilität mit modernen Webtechnologien zu gewährleisten. Durch die Einbettung von Skripten aus cdn.polyfill.io (dem Open-Source-CDN von polyfill.io) konnten Entwickler Polyfills nahtlos bereitstellen, ohne dass die manuelle Verwaltung lästig sein muss, was die Aufrechterhaltung der Browser-Kompatibilität vereinfacht.
Anfang dieses Jahres wurde polyfill.io jedoch von Funnull, einem relativ unbekannten und angeblich chinesischen Unternehmen, übernommen. Es scheint, dass die Übernahme strategisch den Beginn eines erheblichen Angriffs auf die Lieferkette markiert hat. Ende Juni 2024 warnte das Sicherheitsunternehmen Sansec, dass der Dienst dazu genutzt wurde, schädlichen Code in Tausende von Websites einzuschleusen, Benutzer auf betrügerische Websites umzuleiten und sie potenziellen Datendiebstahl und unbefugten Aktionen auszusetzen.
Wer ist von dem Polyfill.io-Angriff betroffen?
Die Auswirkungen dieses Angriffs auf die Lieferkette sind enorm und betreffen weltweit über 100.000 Websites. Jede Website, die Skripte aus cdn.polyfill.io einbettet, ist gefährdet. Das von Funnull eingeführte bösartige Skript leitete Benutzer zu betrügerischen Websites um, ermöglichte Datendiebstahl und erlaubte möglicherweise Remotecodeausführung. Dieser Angriff gefährdete auch mobile Benutzer und zielte speziell auf Geräte zu bestimmten Zeiten ab, wodurch die Erkennung durch Sicherheitstools und Analysen verhindert wurde.
Der Angriff auf die Lieferkette: Was Sie wissen müssen
Es gibt zwar viele schändliche Möglichkeiten, die Angreifer ergreifen könnten, nachdem sie Skripte von Drittanbietern kompromittiert haben, doch sind die häufigsten:
- Weiterleitung zu schädlichen Websites: Websites, die kompromittierte Skripte verwenden, können Benutzer unwissentlich auf betrügerische Websites umleiten, wie gefälschte Google Analytics- oder Sportwetten-Websites. Diese schädlichen Umleitungen gefährden das Vertrauen der Benutzer und können zu Phishing-Angriffen führen.
- Datendiebstahl und Codeausführung: Das modifizierte Skript kann vertrauliche Daten von Benutzern stehlen und unautorisierte Codeausführung ausführen. Dies stellt ein ernstes Risiko für die Integrität der Website und den Datenschutz der Benutzer dar. Nicht autorisierte Skripte können vertrauliche Benutzerdaten, wie persönliche Daten, Kreditkartendetails und Anmeldeinformationen, auf externe Server exfiltrieren.
- Cross-Site Scripting (XSS): Schädliche Skripte können im Kontext des Browsers des Benutzers ausgeführt werden. Dies führt zu Sitzungsentführungen, Malware-Verteilung und Datenextraktion.
- Site Defacement: Angreifer können das Erscheinungsbild oder den Inhalt einer Webseite ändern, was zu Markenschäden und Vertrauensverlust der Benutzer führen kann.
- Leistungseinbußen: Böswillige oder nicht autorisierte Skripte können zu erheblichen Problemen bei der Anwendungsleistung führen, Websites verlangsamen und die Benutzererfahrung beeinträchtigen.
Was können Sie tun, um Ihre Website und Ihre Benutzer zu schützen?
Angesichts dieses Angriffs und der starken Abhängigkeit von Bibliotheken von Drittanbietern in modernen Apps müssen Entwickler und Site-Administratoren sofort Maßnahmen ergreifen, um ihre Websites und Benutzer zu schützen. Hier ist unsere neueste Anleitung:
- Identifizieren von Websites mit Polyfill.io: Der erste Schritt zum Schutz Ihrer Website und Ihrer Benutzer vor diesem Angriff besteht darin, zu wissen, ob Ihr Code auf polyfill.io verweist.
Wenn Sie über eine SAST-Lösung (Static Application Security Testing) verfügen, können Sie eine Abfrage ausführen, um nach Verweisen auf polyfill.io zu suchen (die Syntax kann variieren, aber die folgende Regex gibt Ihnen die Idee):
Ergebnis = find_Strings().FindByRegex(@\„https?://(cdn.polyfill.io)\“);
Darüber hinaus können Tools zur statischen Codeanalyse (SCA), die sich auf die Identifizierung und Verwaltung von Open Source-Komponenten und deren Schwachstellen konzentrieren, hilfreich sein. SCA-Tools verwalten Datenbanken mit bekannten Sicherheitslücken, die mit Bibliotheken und Frameworks verbunden sind. Durch Scannen Ihrer Codebasis können SCA-Tools Abhängigkeiten (einschließlich polyfill.io) mit bekannten Sicherheitsproblemen kennzeichnen.
Wenn Sie nicht über SAST oder SCA verfügen, empfehlen wir Ihnen, diese Schritte von ZAP zu befolgen, einem aktiv betreuten GitHub Top 1000-Projekt, das sich mit Sicherheitstests befasst.
docker Run -t zaproxy/zap-stable zap.sh -cmd -addoninstall pscanrulesBeta -zapit https://www.example.com/
Der einzeilige Befehl, der von der Skripterkennung Polyfill.io von ZAP verwendet wird, um nach Skripten zu suchen, die von der Domäne polyfill.io bereitgestellt werden (erfordert Docker); für einen robusteren Scan führen Sie einen ZAP-Baseline-Scan aus.
- Implementierung von clientseitigem Schutz: Clientseitiger Schutz schützt vor Angriffen in der Lieferkette, indem Skripte und API-Aufrufe von Drittanbietern in Echtzeit überwacht und gesteuert werden. Dadurch wird das Laden von schädlichem Code verhindert und nicht autorisierte Interaktionen mit schädlichen Hosts blockiert.
Die Client-Side Protection-Lösung von Edgio ermöglicht es Teams, ein positives Sicherheitsmodell zu implementieren, indem nur definierte Skripte von Drittanbietern in Client-Browsern ausgeführt werden können.
Beispiel für eine clientseitige Schutzrichtlinie. Ein positives Sicherheitsmodell kann angewendet werden, indem angegeben wird, welche Skriptquellen in der Zulässigkeitsliste aufgerufen werden können.
- Polyfill.io-Skripte entfernen: Entfernen Sie alle Verweise auf cdn.polyfill.io aus Ihrem Code. Ersetzen Sie sie durch alternative, vertrauenswürdige Quellen für Polyfills oder stellen Sie die Verwendung von Polyfills ganz ein, da moderne Browser sie selten benötigen.
Die Edge-Funktionen von Edgio können auch verwendet werden, um polyfill-Verweise, die von Ihrer Website erstellt wurden, dynamisch in eine beliebige sichere URL umzuschreiben (verfügbar in unserem GitHub-Repo hier). Diese zusätzliche Sicherheitsebene kann als einfach und einfach zu implementierende „virtuelle Patches“ angesehen werden, die Ihren Entwicklerteams wertvolle Sicherheit und Zeit verschafft, um die Verweise auf die kompromittierte Bibliothek zu entfernen und zu ersetzen.
- Achten Sie auf Kompromisse: Überprüfen Sie Ihre Website regelmäßig auf Anzeichen für eine Gefährdung, z. B. unbefugte Weiterleitungen oder Datenextraktion. Implementieren Sie Tools zur Sicherheitsüberwachung, um ungewöhnliche Aktivitäten zu erkennen und sich mit Sicherheitshinweisen und Updates in Bezug auf die von Ihnen verwendeten Bibliotheken und Services auf dem Laufenden zu halten.
- Wechseln Sie zu Trusted Services: Wenn Ihr Anwendungsfall Polyfills erfordert, suchen Sie nach alternativen Services von Unternehmen mit nachweislicher Erfahrung. Sie wissen jedoch, was sie über Garantien im Leben sagen. Daher ist es wichtig, die oben genannten Kontrollen und Best Practices zu nutzen, um Risiken zu senken. Schließlich werden Entwickler das verwenden, was ihrer Meinung nach funktioniert – polyfill.io war ein ziemlich beliebter Service – und nicht alle verfügen über einen sicheren Codierungshintergrund.
Schlussfolgerung
Der Angriff auf die Lieferkette von Polyfill.io erinnert stark an die Schwachstellen, die Softwarekomponenten von Drittanbietern aufweisen. Wir bei Edgio betonen, wie wichtig es ist, Ihre Webanwendungen durch robuste mehrschichtige Sicherheit zu schützen. Unser WAAP-Dienst (Web Application and API Protection), der einen clientseitigen Schutz zum Erkennen und Blockieren schädlicher Skripte auf clientseitigen Browsern umfasst, gewährleistet kontinuierlichen Schutz vor Angriffen in der Lieferkette und anderen sich entwickelnden Bedrohungen.
Darüber hinaus bietet unsere neue Lösung für das Angriffsoberflächenmanagement (ASM) umfassende Transparenz über Ihre gesamte webbasierte Fläche. So können Sie Schwachstellen proaktiv identifizieren und mindern und potenzielle Exploits verhindern, bevor sie von Angreifern genutzt werden können.
Und schließlich unterstützen die Managed Security Services von Edgio die Implementierung oder Verwaltung der Sicherheit Ihrer Webanwendungen. Mit 24/7 Sicherheitsvorgängen, einem dedizierten Threat Intelligence Team und zugewiesenen Sicherheitsarchitekten können Sie sicher sein, dass Ihre Webressourcen kontinuierlich überwacht und vor den neuesten Bedrohungen geschützt werden. So können sich Ihre Teams auf Innovationen konzentrieren, während wir Ihre Sicherheitsanforderungen erfüllen.
Wenn Sie Fragen haben oder Unterstützung beim Schutz Ihrer Websites vor Angriffen in der Lieferkette benötigen, wenden Sie sich bitte an die Sicherheitsexperten von Edgio.