Útočníci zneužili chytré smlouvy Etherea k ukrytí malwaru NPM, zjistil ReversingLabs.

Poslední aktualizace: 09/05/2025
  • Dva npm balíčky, „colortoolsv2“ a „mimelib2“, směrovaly C2 prostřednictvím chytré smlouvy Ethereum, aby se vyhnuly detekci.
  • Falešné repozitáře obchodních boů na GitHubu nafoukly důvěryhodnost pomocí připravených commitů a účtů před přidáním škodlivé závislosti.
  • Stejný on-chain kontrakt (0x1f171a1b07c108eae05a5bccbe86922d66227e2b) poskytoval URL adresy druhé fáze.
  • IoC zahrnují specifické verze balíčků a SHA1 hash; týmy by měly v instalačních skriptech monitorovat neočekávaná volání blockchainu.

Chytré smlouvy Etherea skrývají malware NPM

Společnost ReversingLabs odhalila dva npm balíčky , které nenápadně směrovaly instalační logiku přes chytrou smlouvu Etherea a proměnily tak veřejný blockchain v skrytý adresář pro infrastrukturu velení a řízení (C2). Balíčky „colortoolsv2“ a „mimelib2“ se vydávaly za jednoduché utility a zároveň umožňovaly načtení dat druhé fáze.

Outsourcingem adresy C2 na on-chain kontrakt operátoři obalili svůj provoz něčím, co vypadá jako běžná blockchainová aktivita, což komplikuje statickou a reputační detekci . Kontrakt na adrese 0x1f171a1b07c108eae05a5bccbe86922d66227e2b zpřístupnil funkce čtení, které vracely URL, kterou instalační programy později kontaktovaly.

Chytré smlouvy Etherea a npm
Související článek:
Škodlivé npm balíčky používaly chytré smlouvy Etherea k zakrytí odkazů na datové úložiště.

Z npm loaderu na on-chain C2

Jak fungoval řetězec chytrých smluv npm-to-Ethereum

Uvnitř „colortoolsv2“ tenký zavaděč index.js vyvolal externí příkaz, jehož umístění nebylo lokálně pevně zakódováno. Místo toho se dotazoval na chytrou smlouvu Ethereum pro koncový bod, který by nasměroval hostitele k systému command-and-control.

Veřejné průzkumníky jako Etherscan ukazují, že smlouva odhaluje jednoduché funkce pro čtení, které vracejí URL adresu, a efektivně tak využívají řetězec jako odolný ukazatel na infrastrukturu útočníka. Protože poslední krok je odvozen z volání blockchainu, obránci nevidí statickou doménu zabudovanou do balíčku npm.

Po svém objevení byl „colortoolsv2“ 7. července zablokován na npm . Krátce poté provozovatelé publikovali „mimelib2“, který podle analýzy znovu použil téměř identickou logiku a stejnou chytrou smlouvu k realizaci druhé fáze.

Po spuštění zavaděč načetl komponentu druhé fáze , jejíž hash publikovali výzkumníci (SHA1: 021d0eef8f457eb2a9f9fb2260dd2e39ff009a21). Tato indirekční metoda umožnila útočníkům libovolně střídat cíle úpravou dat v řetězci namísto přebalování kódu.

Hra na důvěryhodnost GitHubu za účelem maskování škodlivých závislostí

Repozitáře GitHubu připravené ke skrytí malwaru NPM

ReversingLabs také vystopoval síť falešných projektů na GitHubu, které se prezentovaly jako boti pro obchodování s kryptoměnami , s tisíci commity, několika správci, hvězdičkami a watchery. Repozitáře jako „solana-trading-bot-v2“ vypadaly živě, ale velká část aktivity byla automatizovaná.

Mnoho commitů produkovalo triviální soubory (například opakované úpravy LICENCE), zatímco shluky lookalikely editací účtů vytvořené kolem 10. července neobsahovaly téměř žádný skutečný obsah – některé soubory README obsahovaly pouze text „Ahoj“. Uživatelská jména včetně „slunfuedrac“, „cnaovalles“ a „pasttimerles“ se objevovala často, což zesilovalo signály legitimity.

Rozdíly v kódu ukázaly, že škodlivá závislost byla přidána do kódu obchodního bota (například v souboru bot.ts a importech v souboru src/index.ts ), nejprve prostřednictvím „colortoolsv2“ a později prostřednictvím „mimelib2“. Tato asociace se pro běžného recenzenta uprostřed hlučné historie commitů stala mnohem méně zřejmou.

Propojením npm a GitHubu aktéři rozmazali tradiční signály důvěry , čímž skryté závislosti promíchali do projektu, který se jevil jako aktivní, dobře udržovaný a komunitou schválený.

IoC, rozsah a na co by si měli obránci dávat pozor

Klíčové ukazatele spojené se schématem smluv npm a Ethereum

Společnost ReversingLabs zveřejnila následující indikátory kompromitace (IoC) související s touto kampaní:

  • npm balíčky: colortoolsv2 1.0.0 (SHA1 678c20775ff86b014ae8d9869ce5c41ee06b6215), 1.0.1 (1bb7b23f45ed80bce33a6b6e6bc4f99750d5a34b), 1.0.2 (db86351f938a55756061e9b1f4469ff2699e9e27)
  • npm balíček: mimelib2 1.0.0 (bda31e9022f5994385c26bd8a451acf0cd0b36da), 1.0.1 (c5488b605cf3e9e9ef35da407ea848cf0326fdea)
  • Druhá fáze: SHA1 021d0eef8f457eb2a9f9fb2260dd2e39ff009a21
  • Chytrá smlouva: 0x1f171a1b07c108eae05a5bccbe86922d66227e2b

Tento přístup odráží dřívější zneužívání důvěryhodného hostingu, jako jsou Gisty nebo cloudová úložiště, ale on-chain zvrat podkopává statické blokové seznamy a jednoduché kontroly zdrojů. Umístění C2 lze ve smlouvě změnit bez zásahu do balíčku a blockchainový provoz může být v prostředích sousedících s kryptoměnami chybně interpretován jako rutinní.

Mezi praktické kroky patří kontrola původu závislostí nad rámec hvězdiček a commitů, monitorování neočekávaných volání RPC blockchainu během fází instalace/sestavení, ověřování všech URL adres vyřešených za běhu a připínání známých a funkčních verzí pomocí kontrol integrity. Bezpečnostní týmy by měly také vyhledávat repozitáře, jejichž aktivita je uměle nafukována triviálními, automatizovanými commity.

Případová studie ukazuje, jak lze chytré smlouvy Etherea znovu využít jako odolné ukazatele pro distribuci malwaru v ekosystému npm, zatímco fázovaná aktivita na GitHubu skrývá škodlivé závislosti na očích; povědomí o těchto překrýváních mezi open source a on-chain infrastrukturou je nyní nezbytné pro obranu vývojářů a podniků.

Související příspěvky: