Злоумышленники атаковали клиентские библиотеки dYdX, чтобы похитить ключи от криптокошельков

information security

Команда по исследованию угроз компании Socket обнаружила целенаправленную цепочку поставок, скомпрометировавшую пакеты протокола децентрализованной биржи dYdX в реестрах npm и PyPI. Атака затронула разработчиков, использующих библиотеки "@dydxprotocol/v4-client-js" для JavaScript и "dydx-v4-client" для Python, которые предназначены для взаимодействия с протоколом dYdX версии 4. Эти инструменты широко применяются в торговых ботах, системах алгоритмического трейдинга и других приложениях DeFi для управления кошельками, подписания транзакций и размещения ордеров.

Описание

Злоумышленники внедрили вредоносный код непосредственно в ядро пакетов, скомпрометировав несколько версий одновременно в обеих экосистемах. В случае npm-пакета вредоносная функция "createRegistry()" в файлах "registry.ts" и "registry.js" похищала сид-фразы (мнемонические фразы для восстановления кошелька) и отпечаток устройства, отправляя их на контролируемый злоумышленниками домен. Питоновская версия содержала аналогичный механизм кражи учетных данных, а также дополнительную нагрузку (payload) в виде трояна удаленного доступа (Remote Access Trojan, RAT), способного выполнять произвольный код на зараженной системе.

Детали компрометации и вредоносная нагрузка

Атака затронула конкретные версии пакетов. В npm это версии 3.4.1, 1.22.1, 1.15.2 и 1.0.31 пакета "@dydxprotocol/v4-client-js". В PyPI под удар попала версия 1.1.5post1 пакета "dydx-v4-client". Вредоносный код был встроен в ключевые файлы пакетов, такие как "registry.ts", "registry.js" и "account.py", что обеспечивало его выполнение при обычном использовании библиотеки разработчиками.

Механизм кражи учетных данных в обеих экосистемах работал схожим образом. При передаче сид-фразы в скомпрометированные функции данные вместе с детальным отпечатком устройства тайно отправлялись на сервер "dydx[.]priceoracle[.]site". Этот домен, зарегистрированный 9 января 2026 года, использовал метод тайпсквоттинга, имитируя легитимные сервисы dYdX и ценовых оракулов. Отпечаток устройства собирал информацию о MAC-адресе, имени хоста, операционной системе и других идентификаторах, позволяя злоумышленнику отслеживать жертв.

Питоновский пакет представлял повышенную опасность из-за встроенного трояна удаленного доступа. Вредоносная нагрузка была тщательно обфусцирована с помощью 100 итераций преобразований, включавших реверс строки, декодирование Base64 и распаковку zlib. После деобфускации код трояна запускался в фоновом потоке при импорте пакета. Этот RAT периодически связывался с командным сервером, получал инструкции в виде питоновского кода и выполнял их в скрытом процессе, что предоставляло злоумышленникам практически полный контроль над системой жертвы.

Контекст и масштаб угрозы

dYdX является одной из крупнейших децентрализованных бирж деривативов с совокупным объемом торгов за все время, превышающим 1.5 триллиона долларов. Библиотеки, ставшие целью атаки, критически важны для множества сервисов, автоматизирующих торговлю. Приложения, которые используют эти пакеты в контексте, связанном с хранением приватных ключей или сид-фраз, например торговые боты или бэкенд-сервисы, становились высокоценными целями.

Данный инцидент не является изолированным. Ранее инфраструктура, связанная с dYdX, уже подвергалась атакам. В сентябре 2022 года была скомпрометирована цепочка поставок через npm после взлома учетной записи сопровождающего. В июле 2024 года произошла атака с перехватом DNS на веб-сайт dYdX v3. Однако текущая атака представляет собой эскалацию, поскольку напрямую затрагивает клиентские библиотеки, которые разработчики встраивают в свои приложения, а не только веб-интерфейс для конечных пользователей.

Обнаружение и реакция

Искусственный интеллект сканера Socket выявил подозрительное поведение в пакетах 27 января 2026 года, вскоре после их публикации. На следующий день компания уведомила команду dYdX о компрометации. В тот же день dYdX публично подтвердила инцидент через свой официальный аккаунт в X (ранее Twitter), предупредив пользователей о вредоносных пакетах. Статус домена "priceoracle[.]site" вскоре сменился на "client hold", что, вероятно, указывает на его блокировку после сообщений о злоупотреблении.

Рекомендации по безопасности

Этот инцидент высвечивает уязвимость цепочек поставок в экосистемах с открытым исходным кодом, особенно в высокорискованной области криптовалют. Атака демонстрирует, что компрометация учетной записи разработчика позволяет злоумышленникам внедрять вредоносный код в доверенные пакеты, обходя стандартные проверки. Для противодействия подобным угрозам командам рекомендуется применять многоуровневую стратегию защиты. Критически важно внедрить автоматическое сканирование зависимостей на этапах разработки и сборки, мониторинг сетевой активности приложений и строгое следование принципу наименьших привилегий для всех систем, работающих с конфиденциальными данными. Кроме того, необходимо всегда проверять подлинность доменов и пакетов, особенно при работе с финансовыми инструментами.

Индикаторы компрометации

URLs

  • https://dydx.priceoracle.site
  • https://dydx.priceoracle.site/py
  • https://dydx.priceoracle.site/v4/price

Malicious Packages

  • npm: @dydxprotocol/v4-client (v1.0.31, v1.15.2, v1.22.1, v3.4.1)
  • PyPI: dydx-v4-client (v1.1.5post1)

Hardcoded Credentials

  • API key: dydx1gh6fj28w37rykqu6szgp9q0rzejslmj0umk55c
  • RAT authorization token: 490CD9DAD3FAE1F59521C27A96B32F5D677DD41BF1F706A0BF85E69CA6EBFE75
Комментарии: 0