Lottie Player npm-Paket kompromittiert: Diebstahl von Krypto-Wallets
31. Oktober 2024
0 Min. LesezeitAm 31. Oktober 2024 kam es bei einem beliebten npm-Paket erneut zu einer Paketkompromittierung und einem Kryptowährungsdiebstahl.
Das Wichtigste zur Kompromittierung des Lottie Player npm-Pakets
Die beliebte npm-Bibliothek @lottiefiles/lottie-player enthielt schädlichen Code, der Nutzer dazu auffordert, ihre Krypto-Wallets zu verbinden.
Der schädliche Code wurde den npm-Versionen 2.0.5, 2.0.6 und 2.0.7 hinzugefügt, nachdem ein Token für ein npm-Registry-Konto, das zum Veröffentlichen von npm-Paketen verwendet wurde, kompromittiert worden war. Diese Versionen wurden von npm entfernt. Anschließend wurde Version 2.0.8 mit dem sicheren Code aus dem GitHub-Code-Repository des Projekts veröffentlicht, inhaltlich identisch mit Version 2.0.4.
Sichere und anfällige Versionsbereiche des Lottie Player npm-Pakets
Je nachdem, wie schnell Sie reagieren können, lässt sich das Problem durch ein Upgrade oder ein Downgrade beheben. Damit können Sie die drei bekannten schädlichen Versionen beseitigen:
Bekanntermaßen sicher:
@lottiefiles/lottie-player <= 2.0.4Bekanntermaßen anfällig:
@lottiefiles/lottie-player@2.0.5, @lottiefiles/lottie-player@2.0.6, and @lottiefiles/lottie-player@2.0.7Bekanntermaßen sicher:
@lottiefiles/lottie-player@2.0.8
So finden Sie mit Snyk heraus, ob Sie betroffen sind
Möglicherweise haben Sie ein Tool zur Automatisierung von Abhängigkeiten verwendet, um Ihren Abhängigkeitsbaum zu verwalten, und dabei ein Upgrade auf eine der schädlichen Versionen durchgeführt, die in der npm-Registry veröffentlicht wurden. Oder Sie haben in CI- oder Entwicklungsumgebungen ohne Prüfung auf die neuesten Versionen aktualisiert und diese Änderungen übernommen.
Mit Snyk können Sie auf verschiedene Weise feststellen, ob Sie die schädlichen Versionen installiert haben.
Snyk-Benutzeroberfläche für Abhängigkeitsberichte
Rufen Sie für Ihre Gruppe oder Organisation den Menüpunkt „Dependencies“ auf, wenden Sie beliebige Filter an, um die Suche einzugrenzen, und öffnen Sie anschließend das Suchfeld „Dependencies“. Geben Sie dort „lottiefiles“ ein, um eine Freitextsuche durchzuführen.
Das folgende Beispiel zeigt, dass keine Ergebnisse gefunden werden. Die durchsuchten Projekte verwenden diese Abhängigkeit also nicht:

Wenn ich den Suchtext auf „lottie“ ändere, finde ich andere Abhängigkeiten, deren Name diesen Text enthält:

Nach der Auswahl kann ich überprüfen, in welchen Projekten sie verwendet werden, welche Sicherheitslücken sie betreffen, ob es Lizenzprobleme gibt und welche weiteren Informationen zur Supply-Chain-Sicherheit vorliegen:

Snyk CLI
Wenn Sie die Snyk CLI in Ihren Entwicklungs-Workflows oder CI-Build-Prozessen verwenden, zeigt Ihnen ein Snyk-Scan Informationen zu anfälligen Paketen an, zum Beispiel:
Was ist bei @lottiefiles/lottie-player passiert?
Wie bei dem Angriff, bei dem im Juni 2024 die Polyfill-Bibliothek kompromittiert und Nutzer über ein CDN angegriffen wurden – dessen Ursprung bis in den Januar desselben Jahres zurückverfolgt wurde –, zielte auch dieser Vorfall darauf ab, Kryptowährungen über den Zugriff auf Krypto-Wallets zu stehlen.
Nutzer berichteten im lottie-player-Code-Repository, dass beim Laden der Bibliothek über ein CDN, etwa von https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js oder https://cdn.jsdelivr.net/npm/@lottiefiles/lottie-player@2.0.5/dist/lottie-player.min.js, ein Anmeldebildschirm für eine Krypto-Wallet angezeigt wurde, wie in diesem GitHub-Issue zu sehen:

Viele Nutzer, die die Abhängigkeit @lottiefiles/lottie-player über CDNs von Drittanbietern nutzten, ohne die Abhängigkeitsversion festzuschreiben, erhielten automatisch die kompromittierte Version als neueste Version. Durch die Veröffentlichung einer neuen Version mit bekanntermaßen sicherem Quellcode – im Grunde eine Rückkehr zu Version 2.0.4 – haben diese Nutzer vermutlich automatisch auch das Update erhalten.
Dennoch scheint das Ausmaß beträchtlich zu sein, angesichts der Anzahl abhängiger Projekte, die die lottie-player-Komponente verwenden, und der Downloads der bereits kompromittierten Versionen:
73 npm-Pakete sind von diesem Paket abhängig
Die bekanntermaßen sichere Version 2.0.4 wurde in den letzten 7 Tagen 36.762-mal heruntergeladen
Das kürzlich veröffentlichte Update 2.0.8 wurde in den letzten 12 Stunden etwa 890-mal heruntergeladen
Wie lassen sich Supply-Chain-Sicherheitsrisiken durch CDNs mindern?
Um zukünftige Sicherheitsvorfälle wie die Kompromittierung der lottie-player-Webkomponente oder die schädliche Polyfill-Abhängigkeit zu verhindern, sollten Sie einige bewährte Sicherheitsmaßnahmen ergreifen:
Setzen Sie eine Content Security Policy ein, um zu verhindern, dass unerwünschte und nicht vertrauenswürdige Quellen Skripte, Bild-Tags und andere Objekte in Ihre Webanwendung einschleusen.
Fixieren Sie Ihre Abhängigkeiten immer auf eine bestimmte Version – unabhängig davon, ob Sie sie über CDN-Ressourcen im Netzwerk oder einen Paketmanager beziehen.
Befolgen Sie die Empfehlungen zur Risikominderung des offiziellen Lottie Player-Teams in seinem Kommentar hier und in anderen offiziellen Kanälen.
Anwendungen überprüfen
Wenn Sie Ihre Anwendungen und Projekte testen möchten, aber noch kein Snyk-Kunde sind, können Sie sich für eine kostenlose Testversion registrieren und die oben beschriebenen Tests durchführen. Mit der Testversion können Sie Open-Source-Abhängigkeiten und Container-Images über die CLI oder Ihr SCM scannen, um festzustellen, ob Sie eine der anfälligen Versionen von lottie-player verwenden und möglicherweise weitere Sicherheitslücken in Ihren Projekten aufzudecken.
Sichern Sie Ihren Code während der Entwicklung
Snyk scannt Ihren Code auf Qualitäts- und Sicherheitsprobleme und gibt Ihnen direkt in Ihrer IDE Empfehlungen zur Behebung.
