Официальные пакеты для работы с протоколом dYdX v4 в экосистемах npm и PyPI были использованы злоумышленниками как канал доставки вредоносного кода. Атака была нацелена на разработчиков и пользователей, интегрирующихся с dYdX, и сочетала в себе кражу seed-фраз криптокошельков и установку полноценного RAT-трояна для удалённого управления системами.
Что именно было скомпрометировано: уязвимость цепочки поставок ПО
По данным компании Socket, атака затронула два ключевых клиента для протокола dYdX v4: npm-пакет @dydxprotocol/v4-client-js и Python-пакет dydx-v4-client в PyPI. Эти библиотеки используются для подписания транзакций, выставления ордеров и управления криптокошельками, то есть находятся в критическом доверенном контуре инфраструктуры пользователей.
Вредоносные версии выглядели как легитимные обновления и были опубликованы через официальные аккаунты dYdX, что указывает на компрометацию учётных записей разработчиков, а не на баг в самих реестрах пакетов. Под атакой оказались следующие версии:
npm (@dydxprotocol/v4-client-js): 3.4.1, 1.22.1, 1.15.2, 1.0.31
PyPI (dydx-v4-client): 1.1.5post1
С учётом того, что суммарный объём торгов dYdX превышает 1,5 трлн долларов, а среднесуточный объём оценивается в 200–540 млн долларов, подобная компрометация библиотек для взаимодействия с протоколом представляет собой значимый инцидент в контексте безопасности криптовалютной индустрии.
JavaScript-пейлоад: кража seed-фраз и фингерпринтинг устройств
В экосистеме npm вредоносный код был интегрирован в ключевые файлы registry.ts и registry.js, которые вызываются при штатном использовании клиента. Модифицированная логика перехватывала и отправляла операторам атаки seed-фразы криптокошельков вместе с цифровым отпечатком устройства (fingerprint).
Экcфильтрация данных осуществлялась на домен dydx.priceoracle[.]site, замаскированный под официальный адрес dYdX через технику тайпосквоттинга (похожее написание на настоящий домен dydx.xyz). Привязка seed-фраз к конкретному устройству позволяет злоумышленникам:
• отслеживать жертв при повторных компрометациях;
• выстраивать прицельные атаки на наиболее ценные аккаунты;
• сопоставлять украденные данные с активностью в сети.
Python-пейлоад: встроенный RAT-троян и скрытый удалённый доступ
Модифицированный пакет dydx-v4-client в PyPI содержал более продвинутый функционал. Помимо кражи seed-фраз, был внедрён RAT (Remote Access Trojan), который активируется сразу после импорта библиотеки и работает как фоновый демон-поток.
Каждые 10 секунд троян устанавливает соединение с тем же управляющим доменом dydx.priceoracle[.]site, получает от сервера произвольный Python-код и исполняет его в изолированном подпроцессе без видимого вывода. Для авторизации используется жёстко закодированный токен:
490CD9DAD3FAE1F59521C27A96B32F5D677DD41BF1F706A0BF85E69CA6EBFE75
В среде Windows задействуется флаг CREATE_NO_WINDOW, что позволяет выполнять процесс без появления консольного окна и существенно усложняет визуальное обнаружение активности трояна.
Какие риски создаёт RAT в инфраструктуре разработчиков
Получив такой доступ, злоумышленники фактически располагают удалённой консолью в контуре разработчика или оператора. Потенциальные действия включают:
• выполнение произвольного Python-кода с правами пользователя;
• кражу SSH-ключей, API-токенов, конфигураций CI/CD;
• выкачивание исходного кода и внутренних инструментов;
• установку дополнительных бэкдоров и малвари;
• модификацию критичных данных и репозиториев;
• дальнейшее продвижение по сети (lateral movement).
Признаки целенаправленной и хорошо подготовленной атаки
Эксперты отмечают, что внедрение кода выполнено с глубоким пониманием архитектуры пакетов: использованы файлы registry.ts / registry.js в npm и account.py в PyPI — то есть те компоненты, которые гарантированно выполняются при типичном сценарии использования библиотек.
Вредонос в PyPI-версии был дополнительно обфусцирован, причём код прошёл несколько итераций запутывания. Socket подчёркивает, что злоумышленник поддерживал единый набор точек эксфильтрации, токены и логику фингерпринтинга устройств, но при этом адаптировал векторы атаки под особенности каждой экосистемы (JavaScript и Python).
28 января 2026 года, после уведомления со стороны Socket, команда dYdX публично подтвердила инцидент. Было заявлено, что вредонос затронул только версии, опубликованные в npm и PyPI; исходный код и версии пакетов в репозитории dydxprotocol на GitHub считаются чистыми.
Повторяющийся сценарий: dYdX как долгосрочная цель атакующих
Случившееся вписывается в более широкий контекст атак на инфраструктуру dYdX. В 2022 году был скомпрометирован npm-аккаунт сотрудника биржи, что привело к публикации вредоносных версий нескольких пакетов с функционалом кражи данных. В 2024 году сайт dYdX v3 подвергся DNS hijacking: пользователей перенаправляли на фишинговый ресурс, где убеждали подписывать транзакции, приводящие к опустошению кошельков.
Совокупность этих инцидентов показывает устойчивую модель целевой активности против активов dYdX, в которой злоумышленники используют доверенные каналы дистрибуции — DNS, реестры пакетов, официальные аккаунты разработчиков — для обхода традиционных мер защиты.
Инцидент с npm и PyPI-пакетами dYdX наглядно демонстрирует, что защита криптовалютных активов невозможна без системного контроля цепочки поставок ПО. Разработчикам и командам безопасности стоит внедрять в процессы: строгую защиту учётных записей (FIDO2, аппаратные ключи), автоматическую проверку зависимостей (SCA, анализ аномалий в новых версиях пакетов), воспроизводимые сборки и локальные зеркала доверенных библиотек. Пользователям криптовалют рекомендуется минимизировать хранение крупных сумм на кошельках, чьи seed-фразы когда-либо вводились или обрабатывались в средах разработки, и регулярно ревизовать свои рабочие инструменты. Чем раньше такой подход станет нормой, тем сложнее будет реализовать похожие supply chain-атаки в будущем.