- Twee npm-pakketten, 'colortoolsv2' en 'mimelib2', routeerden C2 via een Ethereum smart contract om detectie te omzeilen.
- Nep-handelsbot-repositories van GitHub hebben het vertrouwen opgeblazen met gefaseerde commits en accounts voordat de schadelijke afhankelijkheid werd toegevoegd.
- Hetzelfde on-chain contract (0x1f171a1b07c108eae05a5bccbe86922d66227e2b) leverde URL's voor de tweede fase.
- IoC's omvatten specifieke pakketversies en SHA1-hashes. Teams moeten in de gaten houden of er onverwachte blockchain-aanroepen zijn in installatiescripts.
ReversingLabs heeft twee npm-pakketten gemarkeerd die de installatielogica stilletjes via een Ethereum smart contract leidde, waardoor een openbare blockchain veranderde in een geheime directory voor command-and-control (C2)-infrastructuur. De pakketten 'colortoolsv2' en 'mimelib2' deden zich voor als eenvoudige hulpprogramma's en maakten het ophalen van een payload in de tweede fase mogelijk.
Door het C2-adres uit te besteden aan een on-chain contract, verpakten de operators hun verkeer in wat op een gewone blockchainactiviteit leek, een stap die compliceert statische en reputatiegebaseerde detectieHet contract op 0x1f171a1b07c108eae05a5bccbe86922d66227e2b stelde leesfuncties bloot die een URL retourneerden waarmee installateurs later contact konden opnemen.
Van npm-loader naar een on-chain C2

Binnen 'colortoolsv2', een dunne index.js-lader riep een externe opdracht aan waarvan de locatie niet lokaal was vastgelegd. In plaats daarvan werd een Ethereum smart contract voor het eindpunt opgevraagd dat de host naar command-and-control zou leiden.
Publieke ontdekkingsreizigers zoals Etherscan toont het contract Het blootstellen van eenvoudige leesfuncties die een URL retourneren, waardoor de keten effectief wordt gebruikt als een veerkrachtige pointer naar de infrastructuur van aanvallers. Omdat de laatste hop wordt afgeleid van een blockchain-aanroep, zien verdedigers geen statisch domein dat in het npm-pakket is ingebouwd.
Na de ontdekking werd 'colortoolsv2' geblokkeerd op npm op 7 juliKort daarna publiceerden de beheerders 'mimelib2', dat vrijwel identieke logica en hetzelfde slimme contract hergebruikte om de tweede fase uit te voeren, aldus de analyse.
Nadat het was uitgevoerd, haalde de lader een tweede fase component waarvan de hash door onderzoekers werd gepubliceerd (SHA1: 021d0eef8f457eb2a9f9fb2260dd2e39ff009a21). Deze indirecte aanpak stelde aanvallers in staat om naar believen bestemmingen te roteren door on-chain data te bewerken in plaats van code opnieuw te verpakken.
Een GitHub-geloofwaardigheidsstrategie om kwaadaardige afhankelijkheden te maskeren

ReversingLabs heeft ook een web van neppe GitHub-projecten opgespoord die zich als crypto-handelsbots, compleet met duizenden commits, meerdere beheerders, sterren en watchers. Repositories zoals 'solana-trading-bot-v2' zagen er levendig uit, maar veel van de activiteit was geautomatiseerde rommel.
Veel commits hebben betrekking op triviale bestanden (bijvoorbeeld herhaalde LICENSE-bewerkingen), terwijl clusters van lookalike-accounts die rond 10 juli zijn aangemaakt bevatte vrijwel geen echte inhoud – sommige README-bestanden bevatten alleen 'Hallo'. Gebruikersnamen zoals 'slunfuedrac', 'cnaovalles' en 'pasttimerles' verschenen regelmatig, wat de schijn van legitimiteit opdreef.
Codeverschillen lieten zien dat er een kwaadaardige afhankelijkheid werd toegevoegd aan de code van de trading-bot (bijvoorbeeld in bot.ts en imports in src/index.ts), eerst via 'colortoolsv2' en later via 'mimelib2'. Die associatie werd voor een gewone reviewer veel minder duidelijk te midden van de rommelige commitgeschiedenis.
Door npm en GitHub samen te voegen, kunnen de actoren vervaagde traditionele vertrouwenssignalenwaardoor de verborgen afhankelijkheid opgaat in een project dat actief, goed onderhouden en door de community ondersteund lijkt.
IoC's, reikwijdte en waar verdedigers op moeten letten

ReversingLabs publiceerde het volgende indicatoren van compromis (IoC's) gekoppeld aan deze campagne:
- npm-pakketten: kleurenhulpmiddelenv2 1.0.0 (SHA1 678c20775ff86b014ae8d9869ce5c41ee06b6215), 1.0.1 (1bb7b23f45ed80bce33a6b6e6bc4f99750d5a34b), 1.0.2 (db86351f938a55756061e9b1f4469ff2699e9e27)
- npm-pakket: mimelib2 1.0.0 (bda31e9022f5994385c26bd8a451acf0cd0b36da), 1.0.1 (c5488b605cf3e9e9ef35da407ea848cf0326fdea)
- Tweede fase: SHA1 021d0eef8f457eb2a9f9fb2260dd2e39ff009a21
- Slim contract: 0x1f171a1b07c108eae05a5bccbe86922d66227e2b
Deze aanpak doet denken aan eerder misbruik van vertrouwde hosting zoals Gists of cloudopslag, maar de on-chain twist ondermijnt statische blocklists en eenvoudige broncontroles. De C2-locatie kan in het contract worden gewijzigd zonder het pakket aan te raken, en blockchainverkeer kan in crypto-aangrenzende omgevingen verkeerd worden geïnterpreteerd als routine.
Praktische stappen omvatten het beoordelen van de herkomst van afhankelijkheden, verder dan sterren en commits, het monitoren van onverwachte blockchain RPC-aanroepen Tijdens installatie-/bouwfases valideren we alle runtime-resolve URL's en pinnen we bekende, betrouwbare versies met integriteitscontroles. Beveiligingsteams moeten ook op zoek gaan naar repositories waarvan de activiteit kunstmatig wordt opgeblazen door triviale, geautomatiseerde commits.
De zaak laat zien hoe Ethereum smart contracts kunnen opnieuw worden gebruikt als veerkrachtige aanwijzingen voor de verspreiding van malware in het npm-ecosysteem, terwijl geënsceneerde GitHub-activiteiten schadelijke afhankelijkheden in het zicht verbergen; bewustzijn van deze overlappingen tussen open source en on-chain infrastructuur is nu essentieel voor de verdediging van ontwikkelaars en ondernemingen.
