10 npm-pakketten betrapt op het stelen van ontwikkelaarsreferenties op Windows, macOS en Linux

Cybersecurity-onderzoekers hebben een reeks van tien kwaadaardige npm-pakketten ontdekt die zijn ontworpen om een ​​informatiedief te leveren dat zich richt op Windows-, Linux- en macOS-systemen.

“De malware maakt gebruik van vier verduisteringslagen om zijn lading te verbergen, geeft een nep-CAPTCHA weer om legitiem te lijken, neemt vingerafdrukken van slachtoffers op IP-adres en downloadt een 24 MB PyInstaller-verpakte informatiedief die inloggegevens verzamelt van systeemsleutelhangers, browsers en authenticatiediensten in Windows, Linux en macOS”, aldus Socket-beveiligingsonderzoeker Kush Pandya.

De npm-pakketten werden op 4 juli 2025 naar het register geüpload en verzamelden gezamenlijk meer dan 9.900 downloads –

  • deezcord.js
  • dezcord.js
  • dizcordjs
  • etherdjs
  • ethesjs
  • ethets
  • knooppuntjs
  • reageer-router-dom.js
  • typescriptjs
  • zustand.js

De meerfasige diefstal van inloggegevens manifesteerde zich in de vorm van verschillende typosquatted-pakketten die populaire npm-bibliotheken nabootsen, zoals TypeScript, discord.js, ethers.js, nodemon, react-router-dom en zustand.

Eenmaal geïnstalleerd, geeft de malware een valse CAPTCHA-prompt weer en geeft authentiek ogende uitvoer weer die legitieme pakketinstallaties nabootst om de indruk te wekken dat het installatieproces volgens de verwachte lijnen verloopt. Op de achtergrond vangt het pakket echter het IP-adres van het slachtoffer op, stuurt dit naar een externe server (“195.133.79(.)43”) en gaat vervolgens verder met het verwijderen van de belangrijkste malware.

In elk pakket wordt de kwaadaardige functionaliteit automatisch geactiveerd tijdens de installatie door middel van een postinstall hook, waarbij een script met de naam “install.js” wordt gestart dat het besturingssysteem van het slachtoffer detecteert en een versluierde payload (“app.js”) lanceert in een nieuw opdrachtprompt (Windows), GNOME Terminal of x-terminal-emulator (Linux) of Terminal (macOS) venster.

“Door een nieuw terminalvenster te openen, draait de malware onafhankelijk van het npm-installatieproces”, aldus Pandya. “Ontwikkelaars die tijdens de installatie naar hun terminal kijken, zien kortstondig een nieuw venster verschijnen, dat de malware onmiddellijk opruimt om argwaan te voorkomen.”

Het JavaScript in “app.js” is verborgen door vier verduisteringslagen – zoals XOR-codering met een dynamisch gegenereerde sleutel, URL-codering van de payload-string en het gebruik van hexadecimale en octale rekenkunde om de programmastroom te verdoezelen – die zijn ontworpen om analyse te weerstaan.

Het einddoel van de aanval is het ophalen en uitvoeren van een uitgebreide informatiedief (“data_extracter”) van dezelfde server die is uitgerust om de machine van de ontwikkelaar grondig te scannen op geheimen, authenticatietokens, inloggegevens en sessiecookies van webbrowsers, configuratiebestanden en SSH-sleutels.

Het stealer-binaire bestand bevat ook platformspecifieke implementaties om inloggegevens uit de systeemsleutelhanger te extraheren met behulp van de sleutelhanger-npm-bibliotheek. De verzamelde informatie wordt gecomprimeerd in een ZIP-archief en geëxfiltreerd naar de server.

“Systeemsleutelhangers slaan inloggegevens op voor kritieke diensten, waaronder e-mailclients (Outlook, Thunderbird), synchronisatietools voor cloudopslag (Dropbox, Google Drive, OneDrive), VPN-verbindingen (Cisco AnyConnect, OpenVPN), wachtwoordbeheerders, SSH-wachtzinnen, databaseverbindingsreeksen en andere applicaties die integreren met de inloggegevensopslag van het besturingssysteem”, aldus Socket.

“Door zich rechtstreeks op de sleutelhanger te richten, omzeilt de malware de beveiliging op applicatieniveau en verzamelt hij opgeslagen inloggegevens in hun gedecodeerde vorm. Deze inloggegevens bieden directe toegang tot zakelijke e-mail, bestandsopslag, interne netwerken en productiedatabases.”

Thijs Van der Does