Социальные сети и репозитории кода стали новым фронтом для изощрённых кибератак, нацеленных на инвесторов в криптовалюты. Независимый исследователь угроз выявил и проанализировал крупную, технически сложную кампанию по распространению вредоносного ПО, получившую название Contagious Trader. Анализ тактик, методов и процедур (TTPs) позволяет с высокой степенью уверенности связать эту активность с северокорейской хакерской группировкой Lazarus. Кампания представляет собой эволюцию известных операций, демонстрируя адаптацию злоумышленников к новым методам социальной инженерии и эксплуатации доверия в экосистеме разработки.
Описание
В центре кампании находятся многочисленные репозитории на GitHub, маскирующиеся под проекты автоматических торговых ботов для популярных криптоплатформ, таких как Polymarket, Solana, Raydium и других. Эти проекты, часто имеющие искусственно накрученные звёзды и форки, рекламируются в социальных сетях и блогах, предлагая пользователям заманчивую прибыль от арбитража или копирования сделок. Однако их реальная цель - кража приватных ключей, файлов конфигурации и установка бэкдоров на системы жертв. Согласно исследованию, активность отслеживалась с февраля по март 2026 года и отличается разнообразием векторов внедрения, что говорит о высокой степени организации и ресурсообеспеченности операторов.
Технический анализ выявил несколько ключевых механизмов заражения. Во-первых, прямое хищение данных через HTTP-эндпоинты: в код ботов встраиваются функции "валидации", которые в закодированном виде отправляют приватный ключ пользователя на контролируемые злоумышленниками серверы. Во-вторых, используется прямой доступ к базам данных, например MongoDB, куда также сливается конфиденциальная информация. Наиболее изощрённым и масштабным вектором стало заражение через пакеты в реестре npm. Вредоносные зависимости с названиями, созвучными популярным библиотекам (например, "pino-pretty-log", "chalk-logger-prettier"), добавляются в файлы "package.json" проектов.
Функционал этих пакетов выходит далеко за рамки простого шпионажа. После установки они сканируют файловую систему жертвы в поиске критически важных файлов (".env", ".bash_history"), определяют внешний IP-адрес и пачками выгрущают данные на серверы управления. Кроме того, на Linux-системах вредонос автоматически добавляет в файл "authorized_keys" SSH-ключ оператора, открывая постоянный бэкдор, и настраивает межсетевой экран для разрешения подключений на 22-й порт. Это обеспечивает долгосрочное закрепление в системе (persistence) и возможность дальнейшего продвижения.
Атрибуция кампании к северокорейскому происхождению основана на серии перекрывающихся тактик, ранее наблюдавшихся в операциях группировки FAMOUS CHOLLIMA, входящей в Lazarus Group. Критически важным доказательством стал анализ цепочки поставки вредоносных npm-пакетов. Исследователь обнаружил, что для их публикации злоумышленники использовали временные почтовые ящики, созданные через сервис emailnator.com, а подключения к npm осуществлялись через выходные узлы VPN-сервиса Astrill. Эта специфическая комбинация инфраструктуры и методов сокрытия в точности повторяет паттерны, задокументированные в предыдущей кампании FAMOUS CHOLLIMA под названием Contagious Interview, которая была нацелена на разработчиков через поддельные предложения о работе.
Более того, тематика названий пакетов также совпадает. В Contagious Trader активно используются пакеты, имитирующие библиотеки для работы с большими числами, что было отличительной чертой одного из вредоносных семейств, атрибутированных ReversingLabs той же группировке. Также наблюдается использование инфраструктуры Vercel для размещения панелей управления и серверов сбора данных - ещё одна характерная черта. Хотя целевая аудитория сменилась с разработчиков на широкий круг криптотрейдеров, конечная цель остаётся прежней: хищение средств в криптовалюте для финансирования режима.
Последствия этой кампании значительны. Потеря приватных ключей от криптокошельков ведёт к немедленному и необратимому выводу средств. Установленный SSH-бэкдор предоставляет злоумышленникам полный контроль над системой, что может быть использовано для атак на другие ресурсы в сети или для скрытого майнинга. Широкое использование публичных платформ, таких как GitHub и npm, усложняет задачу защиты, поскольку доверие к этим экосистемам изначально высоко. Проблема усугубляется масштабом: идентифицированы десятки репозиториев и npm-пакетов, и исследователь полагает, что это лишь верхушка айсберга.
Таким образом, кампания Contagious Trader демонстрирует опасную тенденцию: государственные хакерские группировки, такие как Lazarus, не только совершенствуют технические средства, но и гибко меняют методы социальной инженерии, эксплуатируя актуальные финансовые тренды. Для специалистов по безопасности это сигнал к усилению контроля за цепочками поставок ПО, особенно при использовании сторонних зависимостей в проектах, связанных с криптовалютами или критической инфраструктурой. Для рядовых пользователей и инвесторов - жёсткое напоминание о принципе "не доверяй, проверяй": привлекательные обещания сверхдоходов в сети почти всегда имеют скрытую, злонамеренную цену.
Индикаторы компрометации
IPv4
- 154.38.188.168
- 23.137.105.114
- 45.8.22.144
- 65.109.25.6
Domains
- api.bpkythuat.com
- api.fivefingerz.dev
- api.mywalletsss.store
- api.soladify.fun
- aster.iejv3bg.mongodb.net
- chalk-logger.vercel.app
- changelog.rest
- clob-polymarket.com
- cloudflareguard.vercel.app
- cloudflareinsights.vercel.app
- cluster0.1ufrx5i.mongodb.net
- eslint-helper.vercel.app
- hsdf22-tracing-ethers.vercel.app
- logger.clob.health
- polblxpnl.space
- polymarket-cli-testing.vercel.app
- polymarket-clob.com
- sha256-validate-rpc.vercel.app
- www.blxrbn.com
Package (version)
- logger-beauty (v1.0.2)
- big-numerate (v5.0.3)
- lint-builders (v1.0.0)
- linter-entry (v1.0.0)
- es-lint-entry (v1.0.0)
- npm-doc-deploy (v1.0.2)
- bignum-ts-v2 (v5.0.3)
- npm-doc-deploy (v1.0.1)
- big-numerator (v5.0.3)
- changelog-logger-utilities (v1.0.0)
- pretty-ts-logger (v1.0.5)
- jonas-prettier-logger (v2.0.1)
- pretty-loggers (v0.1.4)
- pretty-loggers (v0.1.3)
- chalk-logger-prettier (v1.0.3)
- big-numben (v5.0.3)
- es-lint-builder (v1.0.1)
- big-numben (v5.0.2)
- es-lint-builder (v1.0.0)
- pino-utils (v1.4.0)
- pino-utils (v1.3.6)
- chalk-logger-prettier (v1.0.2)
- ts-bign (v1.2.8)
- levex-refa (v1.0.0)
- pino-logger-utils (v1.0.1)
- big-nunber (v5.0.2)
- lint-builder (v1.0.0)
- tracing-str (v2.0.3)
- ts-lint-builder (v1.0.9)
- pino-pretty-log (v1.0.0)
- bignum-ts (v8.0.8)
- ts-lint-builder (v1.0.8)
- npm-builders (v1.0.8)
- @mgcrae/pino-pretty-logger (v1.0.5)
- pretty-fancy (v1.0.3)
- pretty-fancy (v1.0.2)
- npm-doc-builder (v1.0.5)
- npm-doc-builder (v1.0.4)
- npm-doc-builder (v1.0.3)
- ts-big-number (v8.0.7)
- npm-doc-builder (v1.0.2)
- pretty-fancy (v1.0.1)
- pretty-fancy (v1.0.0)
- pretty-pino-logger (v2.0.2)
- decode-sdks (v1.0.3)
- decode-sdks (v1.0.2)
- @jacobtan/decode-sdk (v1.0.0)
- polymarket-validator (v1.0.2)
- ts-big-number (v8.0.5)
- npm-doc-builder (v1.0.0)
- polymarket-validator (v1.0.1)
- bn-eslint.js (v8.0.5)
- npm-eslint-helper (v1.0.1)