Was ist passiert?
Die Sicherheitsfirma Coinspect hat eine kritische Schwachstelle in der JavaScript-Bibliothek CryptoJS identifiziert. Die Funktion CryptoJS.lib.WordArray.random() generiert schwache Zufallszahlen, die zur Kompromittierung von fünf Krypto-Wallet-Apps führten. Dadurch konnten Angreifer Recovery-Phrasen vorhersagen und mindestens 5,7 Millionen US-Dollar in zwei Angriffsreihen seit Ende Mai stehlen.
Hintergrund & Bedeutung
Die betroffene Funktion wurde vor 12 Jahren in CryptoJS eingeführt und wird von Entwicklern verwendet, um kryptographische Schlüssel und Recovery-Phrasen zu generieren. Das Problem: Die Implementierung nutzt eine unzureichende Entropie-Quelle. Recovery-Phrasen sind das Rückgrat der Wallet-Sicherheit – schwache Generierungsmechanismen ermöglichen es Angreifern, diese Phrasen durch Brute-Force-Attacken zu knacken.
Diese Schwachstelle verdeutlicht ein fundamentales Problem: Viele JavaScript-Projekte setzen auf veraltete oder unsichere Cryptography-Funktionen, ohne diese regelmäßig zu überprüfen.
Empfehlungen für IT-Teams
- Audit durchführen: Überprüfen Sie sofort alle Anwendungen auf CryptoJS-Nutzung
- Migration planen: Wechseln Sie zu modernen Bibliotheken wie TweetNaCl.js oder libsodium.js
- Sichere RNG nutzen: Verwenden Sie
crypto.getRandomValues()für kryptographische Operationen - Abhängigkeiten aktualisieren: Implementieren Sie regelmäßige Security-Updates
- Code-Review: Führen Sie Security-Reviews bei kryptographischen Funktionen durch
Fazit
Diese Incident zeigt, dass auch weit verbreitete Bibliotheken sicherheitskritische Fehler enthalten können. Regelmäßige Sicherheitsaudits und die Migration zu modernen, wartbaren Lösungen sind essentiell für die Wallet-Sicherheit.
Quelle: Original Artikel