Авторите на заплахи все по-често превръщат публичните блокчейн мрежи в слой за командване и управление (C2) за зловреден софтуер във веригата за доставки на софтуер, което им помага да ротират инфраструктурата си, без да променят злонамерения код, който вече се изпълнява в системите на разработчиците.
Методът дава на киберпрестъпниците устойчив начин да насочват инфектираните пакети към нови сървъри за кражба на данни, докато прави традиционните списъци за блокиране на домейни по-малко ефективни. Рискът е особено сериозен за организации, ориентирани към облачните технологии.
Компрометираните отворени пакети с отворен код могат да се изпълняват в компютрите на разработчиците и в CI/CD конвейерите, където могат да получат достъп до временни токени за облачна самоличност, тайни за внедряване (deployment secrets), ключове за сервизни акаунти, идентификационни данни за GitHub и други високостойностни данни.
Неотдавнашно разследване на npm червея ChainDrop показа как компрометираните доверени пътища за публикуване могат да превърнат обикновените актуализации на зависимости и настройки на проекти в маршрут за кражба на идентификационни данни.
Анализатори от Unit 42 идентифицираха зловредния софтуер ChainDrop като саморазпространяващ се npm червей, който е инфектирал над 400 пакета.
Изследователите установиха, че той е събирал облачни идентификационни данни, npm и GitHub токени, SSH ключове, Kubernetes токени, Terraform файлове за състоянието (state files), Vault токени и тайни, съхранявани в средите на разработчиците.
Той също така е търсил в паметта на процесите на GitHub Actions runner за краткотрайни OpenID Connect (OIDC) токени и тайни на runner-а.
Хакерите използват Web3 и блокчейн C2
При нормална операция със зловреден софтуер, атакуващите кодират твърдо (hardcode) домейн или IP адрес в зловредния код. Това създава ясна цел за защитниците: екипите по сигурност могат да блокират адреса, регистраторите могат да прекратят домейна, а платформите за пакети могат да сканират кода за него.
Блокчейн C2 променя този модел. Вместо да съдържа фиксиран C2 адрес, зловредният код прави заявка към интелигентен договор (smart contract) или блокчейн транзакция и извлича текущата дестинация по време на изпълнение (runtime).

ChainDrop използва този подход чрез Ethereum смарт договор. От Unit 42 заявиха, че червеят е изпращал заявки към договора, за да получи адреса, използван за кражба на данни, след което е преместил своя C2 от npm-cache[.]com към awqhnjewqjkl[.]icu чрез една-единствена Ethereum транзакция.
Промяната не е изисквала от атакуващите да публикуват отново пакетите или да изпращат нова версия на зловредния код към жертвите. Тази техника обикновено се нарича EtherHiding.
Това не означава, че самият блокчейн е злонамерен; вместо това киберпрестъпниците злоупотребяват с неговия публичен и децентрализиран дизайн като указател с адреси, хранилище за злонамерен код или услуга за мъртва точка (dead-drop).
Предишен доклад за разпространение на зловреден софтуер чрез EtherHiding описа как интелигентните договори могат да връщат кодиран JavaScript зловреден код и да позволяват на операторите да променят доставяното съдържание, без да модифицират компрометирания уебсайт.
ChainDrop се насочва към работните процеси за разработка
Инфекцията с ChainDrop започва с променен npm пакет, съдържащ команда preinstall. Тази команда стартира setup.mjs, който изтегля легитимната среда за изпълнение Bun JavaScript, ако тя липсва, и я използва за стартиране на обфускиран зловреден код. Bun не е бил компрометиран; авторите на заплахата просто са използвали легитимната среда за изпълнение, за да изпълнят своя код.
След като се активира, зловредният софтуер проверява локални файлове, променливи на средата и облачни услуги за метаданни за идентификационни данни. Той също така проверява стартираните процеси за компилация (build processes) – важен детайл, тъй като CI/CD системите често използват временни идентификационни данни, които не остават на диска.
Тези токени все пак могат да дадат на атакуващите директен път към облачни API, среди за внедряване или системи за изходен код, докато са валидни.
ChainDrop също така установи персистентност (постоянно присъствие) чрез инструменти за разработчици. Той записа задача във VS Code, която може да се изпълнява при отваряне на папка, и добави hook за Claude Code SessionStart.
Това означава, че разработчик би могъл да задейства зловредния софтуер просто чрез отваряне на проект или стартиране на сесия за кодиране с изкуствен интелект. Същият риск се появява и при излагането на конфигурациите на инструментите за разработка, докладвано около по-широката кампания ChainDrop, където доверени локални проектни файлове са се превърнали в път за изпълнение.

Втора кампания, проследявана под името PolinRider, показва, че този модел излиза извън рамките на npm. Изследователите свързаха кампанията с активност, свързана със Северна Корея, и откриха злонамерени зареждащи модули (loaders) в npm, Packagist, Go модули и разширения за Chrome.
Зареждащите модули са използвали блокчейн и публични RPC услуги, свързани с TRON, Aptos и BNB Smart Chain, за да получат криптиран последващ зловреден код.
Кампанията е скрила своя кодвъв файлове, които са изглеждали нормални за много разработчици, включително vite.config.js, фалшиви .woff2 шрифтови файлове и .vscode/tasks.json.
Този подход е от значение, тъй като много инструменти за сканиране на зависимости се фокусират върху манифестите на пакетите и lock-файловете, а не върху настройките на редактора, автоматизацията на работното пространство или конфигурацията на хранилището.
Предишната кампания със скрит JavaScript зареждащ модул също показа как PolinRider използва такива файлове за доставяне на DEV#POPPER и OmniStealer зловреден код.
За защитниците блокчейн трафикът от build runners и крайни точки на разработчици трябва да се tretira като съществен сигнал, когато организацията няма бизнес нужда от Web3.
Екипите трябва да прегледат скриптовете за жизнения цикъл на пакетите, да инспектират конфигурационните файлове на хранилищата, да изолират CI runners, да ограничат изходящите връзки от системите за компилация и да ротират всички идентификационни данни, достъпни от засегнат хост.
Индикатори за компрометиране (IoCs):-
| Тип IoC | Индикатор | Контекст на откриване |
|---|---|---|
| Ethereum смарт договор | 0xE1f2395ee43e45A1556EC6438a88c31B83493103 | Договор за разрешаване на ChainDrop C2, запитван чрез Ethereum RPC услуги |
| Ethereum транзакция | 0xc55920f1bd0531b6738153068a666c080ddded47e6256f1fd980d51c0b507c91 | Транзакция, използвана за ротация на C2 домейна на ChainDrop |
| Ethereum портфейл | 0x55F9780ef31cD | Портфейл, докладван като внедрил договора за C2 resolver |
| C2 домейн | npm-cache[.]com | Предишна активна крайна точка за извличане на данни на ChainDrop |
| C2 домейн | pypi-get[.]com | Домейн, съхранен в оригиналния списък на договора за resolver |
| C2 домейн | js-mirror[.]com | Домейн, съхранен в оригиналния списък на договора за resolver |
| C2 домейн | awqhnjewqjkl[.]icu | Ротиран C2 домейн на ChainDrop, наблюдаван след Ethereum транзакцията |
| Файлов артефакт | .claude/math_init.js | Обфускиран JavaScript зловреден код на ChainDrop |
| Файлов артефакт | .claude/settings.json | Конфигурация за персистентност чрез Claude Code SessionStart |
| Файлов артефакт | .claude/setup.mjs | Копие на капкомер (dropper), използвано във веригата за персистентност |
| Файлов артефакт | .vscode/setup.mjs | Копие на капкомер (dropper), свързано с персистентност във VS Code |
| Файлов артефакт | .vscode/tasks.json | Задача във VS Code, конфигурирана да се изпълнява при отваряне на папка с проект |
| Файлов артефакт | .github/workflows/codeql_analysis.yml | Злонамерен шаблон за работен процес, използван за сериализиране на тайни от GitHub |
| Стрингов маркер | thebeautifulmarchoftime | Резервен маркер в GitHub историята на комитите за C2 резолюция |
| Стрингов маркер | IfYouBlockThisAPIKeyItWillCrashTheLiveProductionServersOfAllThirdPartyClients | Маркер, използван в съобщенията при комит, съдържащи откраднати токени |
Забележка: IP адресите и домейните са умишлено обезвредени (напр. [.]), за да се предотврати случайно разрешаване или хипервръзки. Възстановете ги само в рамките на контролирани платформи за анализ на заплахи като MISP, VirusTotal или вашата SIEM система.