Der Ledger-Angriff: Hardware-Krypto-Wallets leerräumen

Der Ledger-Angriff: Hardware-Krypto-Wallets leerräumen

In diesem Beitrag wird der Angriff auf Ledger als Beispiel analysiert, wie ein Spear-Phishing zu einem Software-Supply-Chain-Angriff (SSC) auf das Software-Connect-Kit-Tool führte, das von den Hardware-Wallets des Unternehmens verwendet wurde, wodurch der Akteur Geld im Wert von mindestens 600,000 US-Dollar abschöpfen konnte. 

Dieser Angriff erfolgte am Ende eines Jahres, das von Vorfällen in der Lieferkette geprägt war. In diesem Beitrag analysieren wir den Angriff, seine Auswirkungen, wie er gehandhabt wurde und welche Lehren daraus gezogen werden konnten.

Ledger und seine Hardware-Wallet-Nutzer sind offensichtliche Ziele für Cyberkriminelle. Wallet-Drainer griffen Ledger-Nutzer durch Phishing-Versuche auf den Frontends der Krypto-Apps an, und die Kriminellen müssen die Benutzerkoordinaten kennen, um die Phishing-Kampagnen durchzuführen. Ledger hatte eine Datenschutzverletzung bis Juli 2023 sowie als Teil der Datendiebstahl im September 2020 auf ihrem E-Commerce Shopify, ein Vorfall mit großen Auswirkungen. Der Beitrag „Update: Maßnahmen zum Schutz Ihrer Daten und zur strafrechtlichen Verfolgung von Spammern“ zeigt, wie tief diese Verstöße gingen.

Ledger muss die Sicherheit ernst nehmen (sie ist ein wesentlicher Teil ihres Geschäfts) und verfügt über ein internes Forschungslabor (Don Jon) Handhabung Gerätesicherheitszertifizierungherunter, eine Bug Bounty Programms, Sicherheitsbulletinsund Bedrohungsmodellierung. So weit, ist es gut …

So wurde der Angriff durchgeführt

Ledger entdeckte einen Exploit unter Verwendung von Ledgers DApp-Verbindungskit am Donnerstag, den 14. Dezember 2023. Dieser Exploit injizierte Schadcode in Ethereum-basierte dezentrale Anwendungen (DApps), die Ledger Connect Kit verwendeten, und verleitete Benutzer dazu, Transaktionen zu unterzeichnen, die ihre Wallets leerfegten. 

Der Exploit wurde schnell entdeckt und kurz darauf wurde eine Lösung implementiert. In der Zwischenzeit fielen einige Benutzer dem Angriff zum Opfer und unterzeichneten Transaktionen, die ihr Portemonnaie leerten.

Der Angriff begann, als ein ehemaliger Ledger-Mitarbeiter Opfer eines Phishing-Angriffs wurde, der über das Sitzungstoken Zugriff auf sein NPM-Konto erhielt. Die Angreifer veröffentlichten bösartige Versionen des  @ledgerhq/connect-kit (1.1.5, 1.1.6 und 1.1.7, inzwischen veraltet). Die Angreifer könnten beliebigen Code mit denselben Berechtigungen wie die Wallet-App ausführen: Angreifer können die Gelder der Benutzer sofort und ohne Interaktion abschöpfen, zahlreiche Phishing-Links verteilen, um Benutzer zu täuschen, oder die Panik der Benutzer ausnutzen, indem sie sie dazu bringen, Vermögenswerte an eine neue Adresse zu überweisen, was zu einem Vermögensverlust durch das Herunterladen einer gefälschten Wallet führen kann.

Wallet-Frontends (dApps) verwenden typischerweise Connect-Kit-Loader Paket von Ledger, um das Connect Kit zur Laufzeit von einem JavaScript-CDN (jsDelivr) zu laden. Leider ist die URL https://cdn.jsdelivr.net/npm/@ledgerhq/connect-kit@1 hat die genaue Version nicht festgelegt (damals 1.1.4), sodass die bösartigen Versionen beim Hochladen vom CDN bereitgestellt (und zwischengespeichert) wurden. Außerdem wurde keine Prüfsumme verwendet, um sicherzustellen, dass die vom CDN heruntergeladene Ressource tatsächlich die erwartete war (was beim Verteilen von Code von einem CDN verwendet werden sollte). Dieses auf Prüfsummen basierende Schema heißt Subressourcenintegrität Das Nachhaltigkeitsrating der SRI-Gruppe lautet Sustainable Investing.

Der eingeschleuste Code manipulierte wahrscheinlich Transaktionsdaten und verleitete Benutzer dazu, manipulierte Zahlungen zu bestätigen. Ein Benutzer, der beispielsweise eine Token-Zahlung genehmigte, um die Funktionalität einer App zu aktivieren, könnte stattdessen eine Genehmigung für eine Zahlung an die Adresse des Hackers erhalten haben. Unabhängig davon, wie sicher die Hardware-Wallet ist, wurden Gelder abgezogen. 

Entdeckung und Untersuchung

Verschiedene Benutzer begannen, Nachrichten in X (alias Twitter) zu posten, dass das Zapper-Frontend „gekapert“ wurde. Der Verdienst gebührt Mathew Lilley, dem CTO des Kryptohändlers Sushi, der zuerst in einem Twitter Post dass ein „häufig verwendeter Web3-Connector“ kompromittiert wurde. Später wies er darauf hin, LedgerHQ/Verbindungskit als die kompromittierte Bibliothek und gab eine erste, etwas unverblümte Einschätzung ab:

Benutzer 0xViva hat im GitHub-Projekt-Repo ein Ticket eröffnet: [DRINGEND] Dieses Repository verwendet eine bösartige Version des npm-Pakets @ledgerhq/connect-kit, 1.1.7.

Am 15. Dezember 2023 veröffentlichte das Blockchain-Sicherheitsunternehmen SlowMost eine Analysebeitrag mit vollständigen Angaben zu den bösartigen Versionen. 

Die Ledger-Hardware-Wallet wurde nicht kompromittiert, nur das Ledger Connect Kit. Da jedoch viele Anwendungen diese Bibliothek verwenden, wie etwa SushiSwap, Zapper, MetalSwap, Harvest Finance, Revoke.cash usw., war der Umfang der Auswirkungen erheblich. Laut bittrace.io, einige Opfer versuchten aus Panik, Vermögenswerte an eine neue Adresse zu übertragen, luden dabei aber eine gefälschte Wallet-App herunter! 

Am selben Tag schrieb Jameson Lopp twitterte zu den Mängeln, die den Erfolg des Angriffs ermöglichten:

Wie der Vorfall gehandhabt wurde

Der CEO von Ledger, Pascal Gauthier, veröffentlichte am selben Tag des Angriffs eine Offenlegungsschreiben weitere Einzelheiten zu dem Vorfall zu nennen, was auf jeden Fall gut ist: Den Kopf wie ein Vogel Strauß in den Sand zu stecken, ist die schlechteste Art, mit einem Cybersicherheitsvorfall umzugehen. 

Der Aufbau des Briefes ist interessant: Er räumte prompt ein, dass es böswillige Versionen der Bibliothek gebe, die Geld abschöpfen, was gut ist (die Realität zu leugnen ist Unsinn):

„Heute haben wir einen Exploit beim Ledger Connect Kit erlebt, einer Javascript-Bibliothek, die eine Schaltfläche implementiert, mit der Benutzer ihr Ledger-Gerät mit DApps von Drittanbietern (mit Wallets verbundene Websites) verbinden können.

Dieser Exploit war das Ergebnis eines Phishing-Angriffs, bei dem ein ehemaliger Mitarbeiter Opfer eines Phishing-Angriffs wurde, der es einem Angreifer ermöglichte, eine schädliche Datei auf Ledgers NPMJS (einen Paketmanager für von Apps gemeinsam genutzten Javascript-Code) hochzuladen.

Gemeinsam mit unserem Partner WalletConnect haben wir schnell an der Beseitigung des Schwachpunkts gearbeitet und das NPMJS aktualisiert, um den Schadcode innerhalb von 40 Minuten nach Entdeckung zu entfernen und zu deaktivieren. Dies ist ein gutes Beispiel dafür, wie die Branche schnell zusammenarbeitet, um Sicherheitsherausforderungen zu bewältigen.“ 

Wie bitte? Einem ehemaligen Mitarbeiter mit Publikationsrechten wurden die Zugangsdaten auf NPM nicht entzogen?

Anschließend zählte der CEO die vorhandenen Sicherheitskontrollen auf, deutete aber an, dass beim NPM-Zugriff eine Schwäche vorliege:

„Jetzt möchte ich darauf eingehen, warum dies passiert ist, wie wir unsere Sicherheitspraktiken verbessern werden, um dieses spezifische Risiko in Zukunft zu mindern, und der Branche unsere Empfehlung mitteilen, damit wir gemeinsam stärker sein können.

Die standard Bei Ledger ist es üblich, dass niemand Code ohne Überprüfung durch mehrere Parteien bereitstellen kann. Wir verfügen über strenge Zugriffskontrollen, interne Überprüfungen und Code-Mehrfachsignaturen für die meisten Bereiche unserer Entwicklung. Dies gilt für 99 % unserer internen Systeme. Jedem Mitarbeiter, der das Unternehmen verlässt, wird der Zugriff auf alle Ledger-Systeme entzogen.

Dies war ein bedauerlicher Einzelfall. Es ist eine Erinnerung daran, dass Sicherheit nicht statisch ist und Ledger seine Sicherheitssysteme und -prozesse kontinuierlich verbessern muss. In diesem Bereich wird Ledger stärkere Sicherheitskontrollen implementieren und unseren Build verbinden pipeline die strenge software supply chain security zum NPM-Vertriebskanal."

Nun, es schien, dass das NPM-Konto mit Berechtigungen zum Veröffentlichen neuer Versionen der Bibliothek weniger strengen Sicherheitskontrollen unterlag als andere Teile der Software-Infrastruktur. Einzelfall aufgrund von Pech?

Das Ende des Briefes ist ein standard Abschnitt über die Zusammenarbeit mit den Behörden, „Unter-Kontrolle-Erklärung“ und Entschuldigungen:

„Ledger hat mit den Behörden Kontakt aufgenommen und tut alles, was wir können, um im Verlauf dieser Untersuchung zu helfen. Ledger wird betroffene Benutzer dabei unterstützen, diesen Übeltäter zu finden, ihn vor Gericht zu bringen, die Gelder aufzuspüren und mit den Strafverfolgungsbehörden zusammenzuarbeiten, um gestohlene Vermögenswerte vom Hacker zurückzuerhalten. Wir bedauern zutiefst die Ereignisse, die sich heute für die betroffenen Personen abgespielt haben. 

Die Situation ist nun unter Kontrolle und die Bedrohung ist vorüber. Wir verstehen die Panik, die dies in der Gemeinschaft und im weiteren Ökosystem ausgelöst hat.“

Dem Brief ist eine Zeitleiste beigefügt, die den Benutzern sehr dabei hilft, zu verstehen, wie der Vorfall entdeckt wurde, welche spezifischen Eindämmungs- und Abhilfemaßnahmen ergriffen wurden und wie der Schaden für betroffene Benutzer behoben bzw. kompensiert wird. Dies ist der münzspezifischste Teil:

„Heute Morgen MEZ wurde ein ehemaliger Ledger-Mitarbeiter Opfer eines Phishing-Angriffs, der Zugriff auf sein NPMJS-Konto erlangte. Der Angreifer veröffentlichte eine bösartige Version des Ledger Connect Kit (betroffen sind die Versionen 1.1.5, 1.1.6 und 1.1.7). Der bösartige Code nutzte ein betrügerisches WalletConnect-Projekt, um Gelder auf eine Hacker-Wallet umzuleiten. Die Technologie- und Sicherheitsteams von Ledger wurden alarmiert und innerhalb von 40 Minuten nach Bekanntwerden des Vorfalls wurde ein Fix bereitgestellt. Die bösartige Datei war etwa 5 Stunden lang aktiv, wir gehen jedoch davon aus, dass das Zeitfenster, in dem Gelder abgezogen wurden, auf weniger als zwei Stunden begrenzt war.. Ledger hat sich mit WalletConnect abgestimmt, die das Schurkenprojekt schnell deaktiviert haben. Die echte und verifizierte Ledger Connect Kit-Version 1.1.8 verbreitet sich jetzt und kann sicher verwendet werden.

Für Entwickler, die den Ledger Connect Kit-Code entwickeln und damit interagieren: Das Connect-Kit-Entwicklungsteam des NPM-Projekts ist jetzt schreibgeschützt und kann das NPM-Paket aus Sicherheitsgründen nicht direkt pushen. Wir haben die Geheimnisse intern rotiert, um sie auf Ledgers GitHub zu veröffentlichen. Entwickler, bitte überprüfen Sie noch einmal, ob Sie die neueste Version 1.1.8 verwenden.

Ledger, zusammen mit Wallet Connect und unsere Partner haben die Wallet-Adresse des Betrügers gemeldet. Die Adresse ist nun sichtbar auf Chainalyse. Tether hat die USDT des Übeltäters eingefroren.“

Demnach wurde die Eindämmung schnell durchgeführt, da das betrügerische WalletConnect-Projekt zur Umleitung von Geldern umgehend deaktiviert wurde. Aber trotzdem wurden einige Wallets geleert.

Nachwirkungen: So reagierte die Branche

Einige Benutzer drückten ihre Wut über Ledger aus, weil es diesem Unternehmen nicht gelungen war, den Kompromiss zu verhindern, während andere vor den Gefahren warnten, die mit der Nutzung von Bibliotheken Dritter verbunden sind.

Die Cybersicherheitsbranche hat eine Nische im Bereich Cybercoin. Wallet-Draining-Kampagnen sind bekannt, bei denen hauptsächlich Phishing-Sites verwendet werden, um Endbenutzer zu täuschen. Das übliche SaaS-Geschäft (Scam-as-a-Service) hat spezialisierte Akteure für das Wallet-Draining, wie den Betrugsanbieter Inferno-Entwässerer welche angekündigte Einstellung des Betriebs im November 2023. Dies scheint ohnehin eine falsche Flagge zu sein, wenn man die jüngsten Aktivitäten in Dunes @Betrugsniffer. Das Schema, dem sie folgen, wurde in diesem Beitrag der Gruppe IB erklärt:

Arbeitsablauf von Inferno Drainer. Quelle: Goodbye Inferno Drainer? (…), von Group-IB.
Der Ledger-Angriff: Hardware-Krypto-Wallets leerräumen

Einige Analysten gaben Hinweise darauf, was den Angriff nicht möglich machte. Dies Kommentar von Benutzer brianddk im Ticket im Repository des Projekts gibt uns Einblicke in die Grundursache: 

Der Ledger-Angriff: Hardware-Krypto-Wallets leerräumen

A Kommentar eines anderen Benutzers, HenryQW, wies auf den zweiten Punkt hin, der die Verbreitung der bösartigen Versionen über CDN ermöglichte:

Es ist noch zu früh für langfristige Initiativen, um Krypto-Wallet-Frontends robuster gegen Phishing-Angriffe zu machen. Es sieht so aus, als ob die Einhaltung eines standard ähnlich wie das PA-DSS für Softwareanbieter von Zahlungsanwendungen könnte in der Kryptoindustrie begrüßt werden.

Und nun: Lehren gezogen!

Es ist erstaunlich, wie eine Hardware-Wallet, der Inbegriff der Krypto-Sicherheit, wurde einfach durch die Granularisierung des Zugriffs auf NPM-Anmeldeinformationen verletzt eines „ehemaligen Mitarbeiters“ von Ledger (wahrscheinlich Benutzername/Passwort ohne 2FA-Schutz oder ein Zugriffstoken). Dieser Vorfall ist eine eindringliche Erinnerung daran, dass Sie Ihre Software-Infrastruktur in einer kritischen Lage mit der gleichen Sorgfalt schützen müssen wie Ihre Software- oder Hardwareprodukte.

Die meisten Angriffe auf die Software-Lieferkette beginnen mit der Kompromittierung eines internen Kontos (oft für einen Entwickler oder DevOps-Ingenieur). Die Angreifer bewegen sich dann seitlich, um in interne Systeme der Software-Infrastruktur einzudringen, wie zum Beispiel CI/CD System oder Bereitstellungstools oder es gelingt ihnen, schädliche Logik in Quellcode-Repositories einzufügen, die erkannt werden könnte, wenn Änderungen ordnungsgemäß mit Branch-Schutz und Code-Reviews behandelt werden. Angreifer müssen jedoch nicht so tief vordringen, wenn das Ziel eine beliebte, in einem öffentlichen Register veröffentlichte Bibliothek ist, insbesondere wenn sie Zugriff auf die Veröffentlichungs- (Schreib-)Anmeldeinformationen erhalten. Und genau das geschah bei diesem Angriff. 

2FA-Authentifizierung, insbesondere durch die Verwendung robuster Elemente wie Sicherheitsschlüssel, begrenzt das Risiko bei interaktiven Operationen. Für CI/CD pipelines, Zugriffstoken mit eingeschränktem Zugriff, gespeichert als CI/CD Geheimnis ist der übliche Weg (und der Zugriffstoken sollte nicht durchsickern). Leider scheint der Mitarbeiter kein robustes 2FA-Set zu haben. NPM ermöglicht Organisationen zur Durchsetzung von 2FA (aber das ist optional, nicht die Standardeinstellung), was Ledger wahrscheinlich haben sollte. Und vergessen Sie nicht, entsprechende Widerruf der Anmeldeinformationen Verfahren für ehemalige Mitarbeiter, insbesondere wenn sie Zugriff auf so wichtige Ressourcen wie den NPM-Bereich der Organisation haben.

Versionsfixierung für Abhängigkeiten mit überprüften Versionssprüngen ist eine Vorgehensweise, die die Verbreitung bösartiger Abhängigkeiten eindämmt. Im Zusammenhang mit dem Ledger-Vorfall waren die Versionen der Bibliothek, die die Connect-Kit-Loader vom CDN genommen haben, hätte fixiert werden sollen, und „vertraue nicht, was das CDN wirft“. Mit einem Prüfsummenüberprüfung zB sollte beim Abrufen von einem CDN zum dynamischen Laden von Code über SRI (oder sogar ein digitales Signaturschema, das auch die Quelle authentifiziert) verwendet werden.  

Der Rest ist eine Geschichte.

Bei den eher konventionellen Phishing-Kampagnen, die sich an Wallet-Nutzer richten, stellt sich die Frage: Was bringt Benutzer dazu, in die Fallen der Kriminellen zu tappen und Transaktionen zu bestätigen, die sie nie durchführen wollten? Die Phishing-Sites in diesem Bereich sind gut gestaltet und überzeugend, sie imitieren beliebte Krypto-Marken und bieten außerdem kostenlose Token an. Prägen von NFTs und andere Belohnungen. Zu verhindern, dass Benutzer in solche Fallen tappen, ist ein Problem, für das es eine Lösung gibt.

Und nicht zu vergessen das verwandte Kryptohacking Angriffe, eine allgemeinere Bedrohung, bei der die Angreifer Cloud-Infrastrukturen übernehmen, um Miner für Kryptowährungen zu betreiben, oft für Privacy Coins wie Monero XMR und Zcash, mit versteckten Transaktionshistorien. Cryptojacking ist relevant, weil es JEDE Organisation betreffen kann, und obwohl der Gewinn für den Angreifer gering sein könnte, könnten die Kosten für das Opfer hoch sein (Sysdig erwähnt in Dieser Bericht dass für jeden vom Angreifer abgebauten Dollar Kosten in Höhe von 53 Dollar für die Opferorganisation entstehen).

Referenzen

Entdecken Sie die Funktionen von Xygeni!
Sehen Sie sich unsere Video-Demo an
SCA-Tools-Software-Zusammensetzungs-Analyse-Tools
Priorisieren, beheben und sichern Sie Ihre Softwarerisiken
7-Tage kostenlose Testversion
Keine Kreditkarte erforderlich

Sichern Sie Ihre Softwareentwicklung und -bereitstellung

mit der Xygeni-Produktsuite