Злонамерени npm пакети скриха маршрути за полезен товар в интелигентните договори на Ethereum

Последна актуализация: 09/04/2025
Автор: C SourceTrail
  • Два npm пакета, colortoolsv2 и mimelib2, отправиха заявки към смарт договорите на Ethereum, за да извлекат C2 URL адреси за зловреден софтуер от втори етап.
  • Атакуващите проведоха поетапна кампания, използвайки фалшиви хранилища на търговски ботове на GitHub, за да привлекат разработчици.
  • Техниката се смесва с легитимен блокчейн трафик, което усложнява откриването и премахването.
  • ReversingLabs сподели IoC, включително хешове на пакети и адрес на договор, използван за обслужване на URL адреси.

Умни договори за Етериум (npm)

Изследователи са разкрили подробно схема на веригата за доставки в регистъра на npm, при която две JavaScript библиотеки са консултирали интелигентни договори на Ethereum , за да открият места за изтегляне на последващ зловреден софтуер. Тактиката, наблюдавана през юли 2025 г. и сега премахната от npm, показва как публичните блокчейни могат да бъдат злоупотребени като слой за индиректно управление, за да се скрие инфраструктурата за командване и контрол (C2) .

Вместо да вгражда фиксирани URL адреси, злонамереният код ги е изтеглял по време на изпълнение от договор в Ethereum, правейки активността да изглежда като обикновени заявки във веригата. Тази промяна към използване на децентрализирана „адресна книга“ за доставка на полезен товар илюстрира как злонамерените лица се адаптират, за да избегнат конвенционалното сканиране и опростените списъци с блокирани адреси.

Какво беше качено в npm

Според ReversingLabs, пакетите с имена colortoolsv2 и mimelib2 са публикувани през юли 2025 г. и по-късно са премахнати. Всеки от тях е действал като малък зареждащ механизъм: след като пакетът е бил инсталиран или импортиран , той е изпълнявал код, който се е свързвал с договор на Ethereum, е чел стойност и след това е извличал компонент от следващия етап от върнатия URL адрес.

Въпреки че npm библиотеките не прикриваха дълбоко поведението на зареждащите програми, достоверността беше създадена другаде: свързаните GitHub проекти възприеха познати модели на именуване и активност, за да изглеждат легитимни, което улеснява разработчиците да приемат зависимостта с един поглед.

Как работеше преходът към интелигентни договори

Местоположението на полезния товар не беше твърдо кодирано. Вместо това, зареждащата програма отправя заявка към договор на адрес 0x1f171a1b07c108eae05a5bccbe86922d66227e2b , използвайки функции за четене, които връщат низ, интерпретиран като URL адрес за втория етап. Чрез хостване на показалеца във веригата, атакуващите получават устойчивост: той е публичен, може да се задават заявки и да се актуализира, без да се налага да се пускат нови npm версии или да се поддържа един-единствен сървър, склонен към сваляне.

Тъй като търсенията в блокчейн наподобяват безобидни крипто инструменти и анализи, тези заявки могат да се слеят с нормалните работни процеси на разработчиците. Подходът наподобява по-ранни идеи като EtherHiding, но тук той е свързан директно с изпълнението на npm пакети , превръщайки рутинната инсталация в път за поетапна доставка.

По-широк тласък на GitHub за първоначално приемане

NPM пакетите бяха цитирани в мрежа от GitHub хранилища, позиционирани като инструменти за търговия с криптовалути. Примерите включват solana-trading-bot-v2 , ethereum-mev-bot-v2 , arbitrage-bot и hyperliquid-trading-bot . Активността около тези хранилища – звезди, форкове, наблюдатели и чести комити – беше проектирана да проектира легитимност и инерция.

ReversingLabs свързва това усилване с клъстер от типа „дистрибуция като услуга“, известен като Stargazers Ghost Network , където координираните акаунти завишават сигналите за популярност и вмъкват злонамерени зависимости в проекти. Свързаният GitHub акаунт за едно водещо хранилище по-късно беше премахнат, но историята на коммитовете показа как злонамерените импортирания са били вмъкнати в кода с течение на времето.

Хронология и ротация на пакетите

Colortoolsv2 се появи първи и беше блокиран в npm около 7 юли 2025 г. Скоро след това участниците преминаха към почти идентичен заместител, наречен mimelib2 , запазвайки същото търсене в смарт договор за URL адреса от втория етап. Тази бърза смяна подчертава познат модел при инциденти във веригата за доставки: след като един артефакт бъде маркиран, подобен пакет бързо изпълнява неговата роля.

Индикатори за компрометиране (IoCs)

ReversingLabs отчете следните показатели, които съответстват на кампанията. Организациите могат да ги използват, за да стимулират усилията за откриване и преследване :

  • npm пакети и версии:
    • colortoolsv2 1.0.0 (SHA1 678c20775ff86b014ae8d9869ce5c41ee06b6215)
    • colortoolsv2 1.0.1 (SHA1 1bb7b23f45ed80bce33a6b6e6bc4f99750d5a34b)
    • colortoolsv2 1.0.2 (SHA1 db86351f938a55756061e9b1f4469ff2699e9e27)
    • mimelib2 1.0.0 (SHA1 bda31e9022f5994385c26bd8a451acf0cd0b36da)
    • mimelib2 1.0.1 (SHA1 c5488b605cf3e9e9ef35da407ea848cf0326fdea)
  • Файл от втори етап: SHA1 021d0eef8f457eb2a9f9fb2260dd2e39ff009a21
  • Ethereum contract: 0x1f171a1b07c108eae05a5bccbe86922d66227e2b

Защо този метод усложнява защитата

Чрез аутсорсинг на решението „къде да се продължи“ към интелигентен договор , нападателите отделят логиката на зловредния софтуер от една крайна точка. Ако даден URL адрес е блокиран, стойността на договора може да бъде актуализирана и същият npm пакет ще разреши ново местоположение без промяна. Тази динамика подкопава статичните индикатори и повишава летвата за премахване на зловредни програми.

Освен това, много среди за разработчици вече взаимодействат с крайни точки на web3, така че EVM извикванията може да не са по своята същност подозрителни. Границата между легитимния блокчейн трафик и злонамерения маяк се размива, което е предизвикателство както за мрежовия мониторинг, така и за стратегиите за откриване на крайни точки.

Практически стъпки за npm и web3 разработчици

Екипите трябва да комбинират проверка на кода, поддръжката и мрежата, преди да въведат зависимост. Освен броя на изтеглянията и звездите, проверете историята на поддръжката , възрастта на хранилището, качеството на коммитовете, честотата на издаване и дали пакетът неочаквано се свързва с договори във веригата или непознати хостове.

  • Проверете куките за монтаж и след монтаж, както и точките за вход за мрежови повиквания или изпълнение на дъщерен процес.
  • Блокиране или предупреждение за неочаквани EVM RPC заявки от CI/CD или конвейери за изграждане; изходно ниво към какво трябва да осъществява достъп вашите инструменти и отричай останалото.
  • Закачете версии, използвайте заключващи файлове и копирайте проверените пакети във вътрешен регистър, за да намалите излагането на размяна на пакети.
  • Приемете удостоверявания на артефакти и проверка на подписи (напр. произход на SLSA), така че да се гарантира целостта на зависимостите. проверено при изграждането.
  • Непрекъснато сканиране на графики на зависимости за новоразкрити IoC и аномалии промени от страна на поддържащия.

За хранилища, засегнати от кампанията, прегледайте последните коммити за въвеждането на colortoolsv2 или mimelib2, ключове за превъртане и токени, използвани по време на компрометирани компилации, и помислете за повторно създаване на образи на системи, които са изпълнявали засегнатите пакети, за да премахнете всички артефакти от втори етап.

Епизодът подчертава как познатата платформа – npm – може да се използва заедно с Ethereum, за да се маскира следата между зависимостта и нейния хост на полезния товар. С данни във веригата, служещи като устойчив указател, защитниците са принудени да съпоставят поведението на пакетите, сигналите на GitHub и четенията на блокчейн, за да уловят това, което прости статични проверки пропускат.

Подобни публикации: