ReversingLabs atklāj, ka uzbrucēji ļaunprātīgi izmantoja Ethereum viedos līgumus, lai paslēptu npm ļaunprogrammatūru

Pēdējā atjaunošana: 09/05/2025
  • Divas npm pakotnes, 'colortoolsv2' un 'mimelib2', novirzīja C2 caur Ethereum viedlīgumu, lai izvairītos no atklāšanas.
  • Viltus GitHub tirdzniecības robotu repo palielināja uzticību ar pakāpeniskām izmaiņām un kontiem pirms ļaunprātīgas atkarības pievienošanas.
  • Tas pats ķēdes līgums (0x1f171a1b07c108eae05a5bccbe86922d66227e2b) nodrošināja otrās pakāpes URL.
  • IoC ietver konkrētas pakotņu versijas un SHA1 jaucējkodus; komandām jāuzrauga negaidīti blokķēdes izsaukumi instalēšanas skriptos.

Ethereum viedie līgumi slēpj npm ļaunprogrammatūru

ReversingLabs ir atzīmējis divas npm paketes. kas nemanāmi novirzīja instalēšanas loģiku caur Ethereum viedlīgumu, pārvēršot publisku blokķēdi par slepenu direktoriju komandu un kontroles (C2) infrastruktūrai. Pakotnes “colortoolsv2” un “mimelib2” izlikās kā vienkāršas utilītprogrammas, vienlaikus ļaujot izgūt otrās pakāpes vērtumu.

Nododot C2 adresi ārpakalpojumā ķēdes līgumam, operatori ietvēra savu datplūsmu, kas izskatās pēc parastas blokķēdes darbības, un šī darbība sarežģī statisku un uz reputāciju balstītu noteikšanuLīgums 0x1f171a1b07c108eae05a5bccbe86922d66227e2b atklāja lasīšanas funkcijas, kas atgriež URL, ar kuru vēlāk sazināsies instalētāji.

Ethereum viedie līgumi npm
saistīto rakstu:
Ļaunprātīgas npm pakotnes izmantoja Ethereum viedos līgumus, lai slēptu lietderīgās slodzes saites

No npm ielādētāja līdz ķēdē integrētam C2

Kā darbojās viedā līgumu ķēde no npm uz Ethereum

“colortoolsv2” iekšpusē ir plāns index.js ielādētājs izsauca ārēju komandu, kuras atrašanās vieta nebija lokāli iekodēta. Tā vietā tā vaicāja Ethereum viedajam līgumam par galapunktu, kas novirzītu resursdatoru uz komandu un vadības funkciju.

Publiskie pētnieki, piemēram, Etherscan parāda līgumu atklājot vienkāršas lasīšanas funkcijas, kas atgriež URL, efektīvi izmantojot ķēdi kā elastīgu rādītāju uzbrucēja infrastruktūrai. Tā kā pēdējais lēciens ir atvasināts no blokķēdes izsaukuma, aizstāvji neredz statisku domēnu, kas iebūvēts npm paketē.

Pēc atklāšanas “colortoolsv2” tika bloķēts vietnē npm 7. jūlijāSaskaņā ar analīzi, neilgi pēc tam operatori publicēja “mimelib2”, kas atkārtoti izmantoja gandrīz identisku loģiku un to pašu viedlīgumu, lai nodrošinātu otro posmu.

Pēc izpildes ielādētājs izņēma otrās pakāpes komponents kura jaucējkodu publicēja pētnieki (SHA1: 021d0eef8f457eb2a9f9fb2260dd2e39ff009a21). Šī netiešā metode ļāva uzbrucējiem pēc vēlēšanās mainīt galamērķus, rediģējot datus ķēdē, nevis pārpakojot kodu.

GitHub uzticamības spēle, lai maskētu ļaunprātīgas atkarības

GitHub repozitoriji ir sagatavoti, lai slēptu npm ļaunprogrammatūru

ReversingLabs arī izsekoja viltus GitHub projektu tīklu, kas tika pasniegts kā kriptovalūtu tirdzniecības boti, komplektā ar tūkstošiem izmaiņu, vairākiem uzturētājiem, zvaigznēm un novērotājiem. Repozitoriji, piemēram, 'solana-trading-bot-v2', izskatījās rosīgi, taču liela daļa aktivitātes bija automatizēta juceklis.

Daudzi izmaiņu pieprasījumi (commit) apstrādāja triviālus failus (piemēram, atkārtotus LICENSE labojumus), savukārt klasteri satur ap 10. jūliju izveidoti līdzīgi konti gandrīz nebija īsta satura — dažos README failos bija tikai vārds “Sveiki”. Bieži parādījās lietotājvārdi, tostarp “slunfuedrac”, “cnaovalles” un “pasttimerles”, kas pastiprināja leģitimitātes signālus.

Koda atšķirības parādīja, ka ļaunprātīgā atkarība tiek pievienota tirdzniecības robota kodam (piemēram, bot.ts un importēšana src/index.ts failā), vispirms izmantojot 'colortoolsv2' un vēlāk izmantojot 'mimelib2'. Šī saistība kļuva daudz mazāk acīmredzama ikdienas recenzentam trokšņainās izmaiņu vēstures laikā.

Apvienojot npm un GitHub, dalībnieki neskaidri tradicionālie uzticības signāli, liekot slēptajai atkarībai saplūst ar projektu, kas šķita aktīvs, labi uzturēts un kopienas atbalstīts.

IOC, darbības joma un kas aizstāvjiem būtu jāuzrauga

Galvenie rādītāji, kas saistīti ar npm un Ethereum līgumu shēmu

ReversingLabs publicēja sekojošo kompromisa rādītāji (IoC) saistīts ar šo kampaņu:

  • npm pakotnes: krāsu toolsv2 1.0.0 (SHA1 678c20775ff86b014ae8d9869ce5c41ee06b6215), 1.0.1 (1bb7b23f45ed80bce33a6b6e6bc4f99750d5a34b), 1.0.2 (db86351f938a55756061e9b1f4469ff2699e9e27)
  • npm pakotne: mimelib2 1.0.0 (bda31e9022f5994385c26bd8a451acf0cd0b36da), 1.0.1 (c5488b605cf3e9e9ef35da407ea848cf0326fdea)
  • Otrais posms: SHA1 021d0eef8f457eb2a9f9fb2260dd2e39ff009a21
  • Gudrais līgums: 0x1f171a1b07c108eae05a5bccbe86922d66227e2b

Šī pieeja atspoguļo iepriekšēju uzticamu mitināšanas pakalpojumu, piemēram, Gists vai mākoņkrātuves, ļaunprātīgu izmantošanu, taču ķēdes pagrieziens grauj statiskos bloķēšanas sarakstus un vienkāršas avota pārbaudes. C2 atrašanās vietu līgumā var mainīt, nepieskaroties pakotnei, un blokķēdes datplūsma var tikt nepareizi nolasīta kā ierasta parādība kriptovalūtām blakus esošās vidēs.

Praktiskie soļi ietver atkarību izcelsmes pārskatīšanu ārpus zvaigznēm un izmaiņu ieviešanas (commits). negaidītu blokķēdes RPC izsaukumu uzraudzība instalēšanas/veidošanas fāžu laikā, validējot visus izpildlaika atrisinātos URL un piespraužot zināmas labas versijas ar integritātes pārbaudēm. Drošības komandām jāmeklē arī repozitoriji, kuru aktivitāti mākslīgi palielina triviālas, automatizētas izmaiņas.

Lieta parāda, kā Ethereum viedos līgumus var pārveidot kā noturīgas norādes uz ļaunprogrammatūras izplatīšanu npm ekosistēmā, savukārt iestudēta GitHub darbība slēpj ļaunprātīgas atkarības acīmredzami; izpratne par šīm pārklāšanām starp atvērtā pirmkoda un ķēdes infrastruktūru tagad ir būtiska izstrādātāju un uzņēmumu aizsardzībai.

Related posts: