Op 22 april 2024 dook een kwaadaardige versie van Bitwarden’s command-line interface (CLI) op in de npm-registry onder de officiële pakketnaam @bitwarden/[email protected]. Gedurende 93 minuten ontvingen ontwikkelaars die de tool via npm installeerden een backdoorged exemplaar in plaats van de legitieme versie. Bitwarden detecteerde de compromittering snel, verwijderde de malafide pakket en gaf aan dat er geen bewijs was dat aanvallers toegang hadden tot gebruikerskluizen of productiesystemen.

Onderzoekers van beveiligingsbedrijf JFrog analyseerden de schadelijke payload en ontdekten dat de malware niet gericht was op Bitwarden-kluizen, maar op gevoelige inloggegevens voor andere systemen. Het doelwit waren onder meer GitHub-tokens, npm-tokens, SSH-sleutels, AWS-, GCP- en Azure-referenties, GitHub Actions-secrets en configuratiebestanden voor AI-tools. Deze gegevens bepalen hoe teams hun infrastructuur bouwen, implementeren en beheren.

Waarom deze gegevens zo waardevol zijn

De volgende tabel toont de verschillende soorten gestolen gegevens, waar ze meestal worden opgeslagen en waarom ze operationeel zo belangrijk zijn:

Soort gegevensLocatieBelang
GitHub-tokensOntwikkelaarslaptops, lokale configuratie, CI-omgevingenToegang tot repositories, misbruik van workflows, listing van secrets en laterale beweging via automatisering
npm-tokensLokale configuratie, release-omgevingenMogelijkheid om malafide pakketten te publiceren of releaseprocessen te wijzigen
SSH-sleutelsOntwikkelaarsmachines, build-hostsToegang tot servers, interne repositories en infrastructuur
Shell-geschiedenisLokale machinesOnthult gekopieerde secrets, commando’s, interne hostnamen en workflow-details
AWS-referentiesLokale configuratiebestanden, omgevingsvariabelen, CI-secretsExpositie van cloudworkloads, opslag en implementatiesystemen
GCP-referentiesLokale configuratiebestanden, omgevingsvariabelen, CI-secretsExpositie van cloudprojecten, services en automatiseringspijplijnen
Azure-referentiesLokale configuratiebestanden, omgevingsvariabelen, CI-secretsExpositie van cloudinfrastructuur, identiteitssystemen en implementatiepaden
GitHub Actions-secretsCI/CD-omgevingenToegang tot automatisering, build-outputs, implementaties en downstream-secrets
AI-tools/configuratiebestandenProjectmappen, lokale ontwikkelomgevingenExpositie van API-sleutels, interne endpoints, modelsettings en gerelateerde referenties

Hoe de malware werkte

JFrog’s analyse toont aan dat de malafide pakket zowel de preinstall-hook als de bw-binaire ingangspunt had herschreven. Deze wijzigingen zorgden ervoor dat bij installatie en uitvoering een loader werd gestart die de Bun-runtime ophaalde en een geobfusceerd payload activeerde. Een organisatie kon de besmette CLI draaien zonder dat er wachtwoorden werden aangeraakt, terwijl de malware stelselmatig de referenties voor CI-pijplijnen, cloudaccounts en implementatieautomatisering verzamelde.

Beveiligingsbedrijf Socket meldt dat de aanval mogelijk gebruikmaakte van een gecompromitteerde GitHub Action in Bitwarden’s CI/CD-pijplijn. Dit past in een patroon dat onderzoekers van Checkmarx al enige tijd volgen. Bitwarden bevestigde dat het incident verband houdt met een bredere supply-chaincampagne die door Checkmarx wordt onderzocht.

Het vertrouwensprobleem bij npm

De npm-registry heeft een vertrouwd publicatiemodel ontwikkeld om dit soort risico’s te beperken. Door langdurige npm-publish-tokens te vervangen door OIDC-gebaseerde CI/CD-authenticatie, wordt één van de kwetsbaarheden in de toeleveringsketen weggenomen. Toch blijft de vraag hoe ontwikkelaars veilig gebruik kunnen maken van populaire tools zonder onbedoeld hun infrastructuur te compromitteren.