Duizenden downloaden kwaadaardige npm-bibliotheken die zich voordoen als legitieme tools

Er is waargenomen dat bedreigingsactoren kwaadaardige typosquats van legitieme npm-pakketten zoals typescript-eslint en @types/node uploaden, wat duizenden downloads in het pakketregister heeft opgeleverd.

De vervalste versies, genaamd @typescript_eslinter/eslint en types-node, zijn ontworpen om respectievelijk een trojan te downloaden en payloads uit de tweede fase op te halen.

“Hoewel typosquatting-aanvallen nauwelijks nieuw zijn, is de moeite die snode actoren aan deze twee bibliotheken besteden om ze als legitiem voor te stellen opmerkelijk”, zei Ax Sharma van Sonatype in een woensdag gepubliceerde analyse.

“Bovendien zijn de hoge downloadaantallen voor pakketten als ’types-node’ tekenen die erop wijzen dat zowel sommige ontwikkelaars mogelijk in deze typosquats vallen, als dat bedreigingsactoren deze aantallen kunstmatig opdrijven om de betrouwbaarheid van hun kwaadaardige componenten te vergroten.”

De npm-lijst voor @typescript_eslinter/eslint, zo bleek uit de analyse van Sonatype, verwijst naar een nep GitHub-repository die is opgezet door een account met de naam “typescript-eslinter”, dat op 29 november 2024 is aangemaakt. Bij dit pakket zit een bestand met de naam “mooier.bat.”

Een ander pakket dat aan hetzelfde npm/GitHub-account is gekoppeld, heet @typescript_eslinter/prettier. Het imiteert een bekende codeformattertool met dezelfde naam, maar is in werkelijkheid geconfigureerd om de nep-bibliotheek @typescript_eslinter/eslint te installeren.

De kwaadaardige bibliotheek bevat code om “prettier.bat” in een tijdelijke map te plaatsen en toe te voegen aan de Windows Opstartmap, zodat deze automatisch wordt uitgevoerd telkens wanneer de machine opnieuw wordt opgestart.

“Het “prettier.bat”-bestand is echter verre van een ‘batch’-bestand, het is eigenlijk een Windows-uitvoerbaar bestand (.exe) dat eerder werd gemarkeerd als een trojan en dropper op VirusTotal’, zei Sharma.

Aan de andere kant bevat het tweede pakket, types-node, de mogelijkheid om contact op te nemen met een Pastebin-URL en scripts op te halen die verantwoordelijk zijn voor het uitvoeren van een kwaadaardig uitvoerbaar bestand met de bedrieglijke naam ‘npm.exe’.

“De zaak benadrukt een dringende behoefte aan verbeterde veiligheidsmaatregelen in de toeleveringsketen en een grotere waakzaamheid bij het monitoren van externe softwareregisterontwikkelaars”, aldus Sharma.

De ontwikkeling komt op het moment dat ReversingLabs verschillende kwaadaardige extensies identificeerde die aanvankelijk werden gedetecteerd in de Visual Studio Code (VSCode) Marketplace in oktober 2024, een maand daarna verscheen er een extra pakket in het npm-register. Het pakket trok in totaal 399 downloads.

Hieronder vindt u de lijst met frauduleuze VSCode-extensies, die nu uit de winkel zijn verwijderd:

  • EVM.Blockchain-Toolkit
  • VoiceMod.VoiceMod
  • ZoomVideoCommunicatie.Zoom
  • ZoomINC.Zoom-werkplek
  • Ethereum.SolidityOndersteuning
  • ZoomWerkruimte.Zoom
  • ethereumorg.Solidity-Taal-voor-Ethereum
  • VitalikButerin.Solidity-Ethereum
  • SolidityFoundation.Solidity-Ethereum
  • EthereumFoundation.Solidity-Taal-voor-Ethereum
  • SOLIDITEIT. Soliditeit-Taal
  • GavinWood.SolidityTaal
  • EthereumFoundation.Solidity-for-Ethereum-Taal

“De campagne begon met het targeten van de cryptogemeenschap, maar eind oktober waren de gepubliceerde extensies grotendeels een imitatie van de Zoom-applicatie”, aldus ReversingLabs-onderzoeker Lucija Valentić. “En elke gepubliceerde kwaadaardige extensie was geavanceerder dan de vorige.”

Het is gebleken dat alle extensies en het npm-pakket versluierde JavaScript-code bevatten, die fungeert als downloader voor een tweede fase van de payload van een externe server. De exacte aard van de lading is momenteel niet bekend.

De bevindingen benadrukken nogmaals de noodzaak om voorzichtig te zijn als het gaat om het downloaden van tools en bibliotheken van open-sourcesystemen en om te voorkomen dat kwaadaardige code als afhankelijkheid van een groter project wordt geïntroduceerd.

“De mogelijkheid om plug-ins te installeren en de functionaliteit van IDE’s uit te breiden maakt ze zeer aantrekkelijke doelwitten voor kwaadwillende actoren”, aldus Valentić. “VSCode-extensies worden vaak over het hoofd gezien als een veiligheidsrisico bij installatie in een IDE, maar het compromitteren van een IDE kan een startpunt zijn voor verdere compromittering van de ontwikkelingscyclus in de onderneming.”

Thijs Van der Does