- 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.

ReversingLabs ir atzīmējis divas npm pakotnes , 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” tika pasniegtas kā vienkāršas utilītprogrammas, vienlaikus nodrošinot otrās pakāpes vērtuma izgūšanu.
Nododot C2 adresi ķēdes līgumam, operatori ietvēra savu datplūsmu, kas izskatās pēc parastas blokķēdes darbības, kas sarežģī statisku un uz reputāciju balstītu noteikšanu . Līgums ar adresi 0x1f171a1b07c108eae05a5bccbe86922d66227e2b atklāja lasīšanas funkcijas, kas atgrieza URL, ar kuru vēlāk sazinājās instalētāji.
No npm ielādētāja līdz ķēdē integrētam C2

'colortoolsv2' iekšienē plāns index.js ielādētājs izsauca ārēju komandu, kuras atrašanās vieta nebija lokāli iekodēta. Tā vietā tas 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 npm platformā 7. jūlijā . 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, liecina analīze.
Pēc izpildes ielādētājs izņēma otrās pakāpes komponentu , 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 ķēdē esošos datus, nevis pārpakojot kodu.
GitHub uzticamības spēle, lai maskētu ļaunprātīgas atkarības

ReversingLabs arī izsekoja viltus GitHub projektu tīklu, kas tika pasniegts kā kriptovalūtu tirdzniecības roboti 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) ģenerēja triviālus failus (piemēram, atkārtotus LICENSE labojumus), savukārt ap 10. jūliju izveidoto līdzīgo kontu klasteros gandrīz nebija īsta satura — dažos README failos bija tikai uzraksts “Sveiki”. Bieži parādījās lietotājvārdi, tostarp “slunfuedrac”, “cnaovalles” un “pasttimerles”, pastiprinot leģitimitātes signālus.
Koda atšķirības parādīja, ka ļaunprātīgā atkarība tiek pievienota trading-bot kodam (piemēram, bot.ts un importēšanā 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 aizmigloja tradicionālos uzticības signālus , 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

ReversingLabs publicēja šādus ar šo kampaņu saistītus kompromitēšanas rādītājus (IoC) :
- 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, Gist vai mākoņkrātuves, ļaunprātīgu izmantošanu, taču šī ķēdes pavērsiena 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 prakse kriptovalūtu blakus esošajās vidēs.
Praktiskie soļi ietver atkarību izcelsmes pārskatīšanu ārpus zvaigznēm un izmaiņu veikšanas, negaidītu blokķēdes RPC izsaukumu uzraudzību instalēšanas/veidošanas fāzēs, visu izpildlaikā atrisināto URL validēšanu un zināmu labu versiju piespraušanu ar integritātes pārbaudēm. Drošības komandām vajadzētu arī meklēt repozitorijus, kuru aktivitāti mākslīgi palielina triviālas, automatizētas izmaiņas.
Šis gadījums parāda, kā Ethereum viedos līgumus var pārveidot par noturīgiem rādītājiem ļaunprogrammatūras izplatīšanai npm ekosistēmā, savukārt iestudēta GitHub darbība slēpj ļaunprātīgas atkarības acīmredzamā veidā; 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.