Криптотрейдеры под прицелом: новая масштабная кампания вредоносного ПО на GitHub и npm атрибутирована Северной Корее

information security

Социальные сети и репозитории кода стали новым фронтом для изощрённых кибератак, нацеленных на инвесторов в криптовалюты. Независимый исследователь угроз выявил и проанализировал крупную, технически сложную кампанию по распространению вредоносного ПО, получившую название 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)
Комментарии: 0