Gefälschte Zahlungs-SDKs für Paysafe, Skrill und Neteller stehlen Passwörter und AWS-Schlüssel auf den Plattformen npm und PyPI.
Die IT-Sicherheitsfirma Socket hat eine koordinierte Angriffskampagne in den Open-Source-Registern Node Package Manager (npm) und Python Package Index (PyPI) aufgedeckt. Unbekannte Akteure haben zeitgleich mindestens 17 bösartige Software-Pakete veröffentlicht. Diese Programmierbibliotheken tarnen sich als legitime Software Development Kits (SDKs) für die Zahlungsdienstleister Paysafe, Skrill und Neteller. Die gefälschten Pakete imitieren die erwarteten Programmierschnittstellen (APIs) vollständig, sodass sie bei einer oberflächlichen Code-Prüfung nicht auffallen. Statt jedoch eine Verbindung zu den realen Servern der Zahlungsdienste aufzubauen, senden die Bibliotheken gefälschte Erfolgsmeldungen an die Anwendung zurück, während im Hintergrund ein Datendiebstahl läuft.
Gezielte Spionage in Entwicklungsumgebungen
Das eigentliche Ziel der manipulierten Pakete ist das Ausspionieren von Zugangsdaten und Identifikations-Token in Software-Entwicklungsumgebungen und automatisierten CI/CD-Pipelines. Sobald ein Entwickler oder ein automatisiertes Bausystem eine dieser Bibliotheken aufruft, durchsucht Schadcode die Umgebung nach Passwörtern und API-Schlüsseln. Zu den gestohlenen Informationen gehören API-Schlüssel von Paysafe, Zugangsschlüssel für Amazon Web Services (AWS), GitHub-Token und npm-Veröffentlichungstoken. Die erbeuteten Daten werden anschließend an einen von den Angreifern gemieteten Command-and-Control-Server übertragen, der über die Cloud-Infrastruktur von Amazon Web Services gehostet wird.
Unterschiedliche Mechanismen und Analyse-Schutz
Die Angreifer nutzen je nach Software-Ökosystem unterschiedliche Aktivierungsmethoden. Bei den 13 betroffenen npm-Paketen, die in den Versionen 1.0.0 bis 1.0.3 vorliegen, startet die Spionageroutine erst dann, wenn das SDK aktiv aufgerufen wird und ein gültiger Paysafe-API-Schlüssel in den Umgebungsvariablen hinterlegt ist. Die vier präparierten PyPI-Pakete hingegen aktivieren die Schadroutine unmittelbar bei der Initialisierung des Pakets, ohne dass ein API-Schlüssel vorhanden sein muss. Um automatisierte Sicherheitsanalysen in sogenannten Sandboxes zu blockieren, integrierten die Täter einfache Schutzmechanismen. Die Schadsoftware bricht die Ausführung sofort ab, wenn das infizierte System über weniger als zwei Prozessorkerne verfügt oder der Hostname beziehungsweise der Benutzername auf eine virtuelle Maschine hinweist.
Folgende Paketnamen wurden identifiziert:
- npm/paysafe-checkout
- npm/paysafe-vault
- npm/neteller
- npm/skrill-payments
- npm/paysafe-js
- npm/paysafe-api
- npm/paysafe-node
- npm/paysafe-cards
- npm/paysafe-fraud
- npm/paysafe-kyc
- npm/skrill
- npm/skrill-sdk
- npm/paysafe-payments
- pypi/paysafe-kyc
- pypi/paysafe-payments
- pypi/paysafe-sdk
- pypi/paysafe-api
Unternehmen, die eines dieser Pakete importiert oder ausgeführt haben, müssen sämtliche betroffenen Passwörter und Schlüssel umgehend austauschen. Es wird empfohlen, die Protokolle von Continuous-Integration-Systemen gezielt nach der Kombination aus dem Begriff PAYSAFE_API_KEY und den betroffenen Paketnamen zu durchsuchen und die Registry-Proxys für diese spezifischen Pakete zu sperren.
(red)