Gefälschtes Bitwarden-CLI auf npm: 93 Minuten lang Schadcode verbreitet

Am 22. April 2024 wurde für 93 Minuten eine manipulierte Version des offiziellen Bitwarden-CLI-Pakets @bitwarden/[email protected] auf der npm-Plattform veröffentlicht. Wer das Paket während dieser Zeit installierte, erhielt stattdessen eine mit Schadcode verseuchte Version des Tools. Bitwarden entdeckte den Vorfall umgehend, entfernte das manipulierte Paket und veröffentlichte eine Stellungnahme.

Laut Bitwarden wurden keine Nutzer-Vaults oder Produktionssysteme kompromittiert. Die Sicherheitsfirma JFrog analysierte den Schadcode und kam zu dem Schluss, dass die Angreifer gezielt nach hochsensiblen Zugangsdaten suchten – nicht nach Bitwarden-Passwörtern.

Welche Daten wurden abgegriffen?

Die Schadsoftware zielte auf folgende Zugangsdaten und sensible Informationen ab:

  • GitHub-Tokens: Ermöglichen Zugriff auf Repositories, Missbrauch von Workflows und laterale Bewegung in Entwicklerumgebungen.
  • npm-Tokens: Können für die Veröffentlichung bösartiger Pakete oder die Manipulation von Release-Prozessen genutzt werden.
  • SSH-Schlüssel: Gewähren Zugriff auf Server, interne Repositories und Infrastruktur.
  • Shell-History: Enthält oft eingegebene Passwörter, interne Hostnamen und Workflow-Details.
  • AWS-, GCP- und Azure-Credentials: Ermöglichen Zugriff auf Cloud-Ressourcen, Speicher und Deployment-Systeme.
  • GitHub Actions Secrets: Geben Zugriff auf Automatisierungsprozesse, Builds und Deployment-Pipelines.
  • AI-Tooling-Konfigurationen: Können API-Schlüssel, interne Endpunkte und Modell-Einstellungen preisgeben.

Diese Daten befinden sich typischerweise auf Entwickler-Laptops, in CI/CD-Umgebungen oder lokalen Konfigurationen – genau dort, wo die Schadsoftware sie auch abgriff.

Wie funktionierte der Angriff?

Die Analyse von JFrog zeigt, dass die manipulierte Version des CLI sowohl den preinstall-Hook als auch den bw-Binary-Eintragspunkt umleitete. Beim Installations- und Ausführungsvorgang lud die Schadsoftware die Bun-Laufzeitumgebung nach und startete einen obfuskierten Payload. Obwohl die Angreifer keine Bitwarden-Passwörter stahlen, sammelten sie systematisch alle Zugangsdaten, die für CI-Pipelines, Cloud-Konten und Deployment-Automatisierung genutzt werden.

Die Sicherheitsfirma Socket vermutet, dass die Angreifer eine kompromittierte GitHub Action in Bitwardens CI/CD-Pipeline ausnutzten. Bitwarden bestätigte, dass der Vorfall mit der aktuellen Checkmarx-Supply-Chain-Kampagne zusammenhängt, bei der bereits mehrere Angriffe auf npm-Pakete dokumentiert wurden.

Warum ist npm ein attraktives Angriffsziel?

npm ist eine zentrale Plattform für die JavaScript-Entwicklercommunity. Viele Unternehmen und Entwickler installieren CLI-Tools wie das Bitwarden-CLI direkt über npm. Die Kombination aus automatisierten Workflows, lokalen Installationen und der offiziellen npm-Verteilung macht solche Pakete zu einem idealen Angriffsziel für Supply-Chain-Angriffe.

Bitwarden selbst empfiehlt npm als einfachste Installationsmethode für das CLI. Mit über 50.000 Unternehmen und 10 Millionen Nutzern ist die Reichweite eines solchen Angriffs enorm. Die Schadsoftware konnte sich so unauffällig auf unzähligen Entwickler-Laptops und in CI/CD-Pipelines ausbreiten.

Sicherheitsmaßnahmen und Empfehlungen

Bitwarden betont, dass keine Nutzerdaten gefährdet waren und der Vorfall schnell behoben wurde. Dennoch wirft der Angriff wichtige Fragen zur Sicherheit von npm-Paketen auf. Experten raten Entwicklern und Unternehmen zu folgenden Maßnahmen:

  • Überprüfung installierter Pakete: Nutzer sollten prüfen, ob sie während des Zeitfensters das manipulierte Paket installiert haben.
  • Verwendung von OIDC-basierten Authentifizierungsmethoden: npm bietet mit OIDC eine sicherere Alternative zu langlebigen Tokens für CI/CD-Pipelines.
  • Regelmäßige Überwachung von Abhängigkeiten: Tools wie Socket oder JFrog können verdächtige Aktivitäten in Paketen erkennen.
  • Einschränkung von Berechtigungen: Entwickler sollten nur die minimal notwendigen Berechtigungen für Tokens und Schlüssel vergeben.
  • Multi-Faktor-Authentifizierung (MFA): Für kritische Konten wie GitHub, npm oder Cloud-Anbieter sollte MFA aktiviert sein.

„Supply-Chain-Angriffe wie dieser zeigen, wie wichtig es ist, die Sicherheit der gesamten Entwicklerumgebung zu betrachten – nicht nur einzelne Tools.“
— Sicherheitsforscher von JFrog

Fazit: npm bleibt ein Risiko für Supply-Chain-Angriffe

Der Vorfall unterstreicht die Verwundbarkeit von npm und anderen Paketmanagern für gezielte Angriffe. Obwohl npm mit OIDC-basierten Authentifizierungsmethoden bereits Schritte zur Verbesserung der Sicherheit unternommen hat, bleibt die Plattform ein attraktives Ziel für Cyberkriminelle. Entwickler und Unternehmen müssen ihre Sicherheitsmaßnahmen kontinuierlich anpassen, um solche Angriffe zu erkennen und zu verhindern.

Bitwarden hat den Vorfall schnell behoben und betont, dass keine Nutzerdaten kompromittiert wurden. Dennoch zeigt der Angriff, wie schnell sich Schadsoftware in scheinbar vertrauenswürdigen Paketen verbreiten kann – und welche verheerenden Folgen dies für die gesamte IT-Infrastruktur haben kann.