Безопасность · 12 ноября 2026 г.

Также опубликовано на ไทย, Italiano, Türkçe, Português (Brasil)

Злоумышленники скомпрометировали инструменты Ethersphere для кражи ключей кошельков

man walking on stairs
Proxyclick Visitor Management System / Unsplash

Злоумышленники использовали собственную систему автоматизации выпусков проекта Ethersphere для публикации вредоносных версий двух инструментов сети децентрализованного хранилища Swarm: bee-js версии 13.3.0 и Swarm Desktop версии 0.56.2.

Оба вредоносных выпуска загружают и запускают код, предназначенный для кражи ключа кошелька, который Swarm Desktop хранит для своего узла, а также сохраненного пароля, который его разблокирует. Код также разработан для установки черного входа на машины с Windows, macOS и Linux.

Пакет bee-js представляет собой библиотеку JavaScript, лежащую в основе Swarm Desktop и инструмента командной строки swarm-cli. Swarm Desktop запускает узел Swarm на компьютере пользователя и сохраняет там приватные ключи узла.

Оба вредоносных выпуска были удалены, а разработчики проекта выпустили чистое обновление Swarm Desktop в этот день. Ни один из этих шагов не удаляет уже установленный черный вход и не защищает уже отправленный ключ. На момент написания о краже средств не сообщалось.

Swarm Desktop версии 0.56.2 появился на GitHub примерно в 00:36 по UTC в этот день и был удален примерно через 8,5 часов. Встроенный обновитель приложения мог предложить его компьютерам Windows x64 и Mac с процессором Apple Silicon в течение примерно 10 минут, согласно анализу инцидента компании Socket, занимающейся безопасностью цепочки поставок. Mac с процессором Intel никогда не предлагалось, а установки Linux не обновляются автоматически.

Выпуск bee-js версии 13.3.0 был последней версией на npm примерно 75 минут, с 00:09 до 01:25 по UTC в этот день. Его код запускается как скрипт postinstall, который npm автоматически выполняет при установке, если скрипты установки не отключены. Проекту не требовалось импортировать библиотеку для запуска кода.

Собственные пакеты swarm-cli и bee-dashboard проекта, а также исходный код Swarm Desktop принимали диапазоны версий, которые включали 13.3.0. Свежая установка в этом окне могла загрузить вредоносную версию.

Ни один из отчетов не дал подсчета зараженных машин. Приблизительная оценка компании состоит в том, что bee-js версия 13.3.0 была загружена примерно 10 раз, включая сканеры безопасности и зеркала. Количество загрузок Swarm Desktop версии 0.56.2 достигло 65 к 08:27 по UTC, включая исследователей.

Разработчики Ethersphere удалили версию 0.56.2 и заменили ее в этот день чистым выпуском версии 0.56.3. В изменении, которое подготовило новый выпуск, один из них написал, что версия 0.56.2 была опубликована злоумышленником с использованием украденных учетных данных непрерывной интеграции и была удалена.

Версия 0.56.3 представляет собой тот же код, что и предыдущая версия 0.56.1, подписанный вновь выданным сертификатом Developer ID, согласно примечанию об инциденте этого разработчика. В примечании говорится, что автоматический обновитель приложения переместит установки версии 0.56.2 на него, хотя пакеты Linux все еще необходимо заменить вручную. Сравнение исходного кода двух версий не выявило изменений, выходящих за рамки номера версии и примечаний к выпуску.

Когда проверили npm в этот день, версия 13.2.0 снова была последней версией bee-js, а версия 13.3.0 больше не могла быть загружена из реестра.

Советы по безопасности рекомендуют считать любой компьютер, на котором установлена или работает этот пакет, полностью скомпрометированным. Аналогичный совет дается для любого компьютера, на котором была установлена Swarm Desktop версия 0.56.2.

Оба выпуска содержат одинаковый загрузчик. Это несколько строк кода, которые загружают дополнительный код с сервера api.frameworkmetrics[.]xyz и запускают его с правами пользователя. В bee-js загрузчик является скриптом postinstall, а в Swarm Desktop он запускается каждый раз при запуске приложения.

Загруженный код ищет два файла в папке данных Swarm Desktop: config.yaml и data-dir/keys/swarm.key. Если оба присутствуют, он отправляет их на сервер злоумышленников.

Файл ключа представляет собой зашифрованное хранилище ключей Ethereum, но Swarm Desktop хранит его пароль в открытом виде в config.yaml. Имея оба файла, злоумышленники могут получить токены xDAI и xBZZ кошелька узла, средства чековой книжки и ставку.

Загруженный код также устанавливает черный вход. На Linux и macOS это удаленная оболочка Go под названием evjawbreaker, сохраненная в скрытой папке ~/.solidity. Она работает в фоновом режиме как пользовательский сервис на Linux и как LaunchAgent на macOS.

Оболочка читает адрес своего сервера управления из смарт-контракта Ethereum, поэтому злоумышленники могут изменять этот адрес в любое время. Они обновили его за 29 минут до добавления вредоносного кода bee-js.

На Windows загруженный код устанавливает подлинный клиент удаленного доступа ScreenConnect, подписанный его создателем ConnectWise. Клиент работает как системный сервис и подключается к ретранслятору злоумышленников.

Если пользователь является администратором, код получает права администратора известным способом обхода приглашения контроля учетных записей пользователей. Если нет, он снова показывает приглашение каждый раз, когда пользователь его отменяет. Имея эти права, он добавляет исключение Microsoft Defender и устанавливает клиент без уведомления.

Оба выпуска поступили из учетной записи bee-worker, которую Ethersphere использует для автоматизации своих выпусков. Ни одно из изменений не было подписано и не было отправлено как запрос на слияние.

Для bee-js злоумышленники опубликовали выпуск GitHub для новой версии, который запустил рабочий процесс публикации npm проекта. Этот рабочий процесс не требовал одобрения и опубликовал пакет на npm за 73 секунды.

Поскольку реальный рабочий процесс проекта его создал, пакет содержал действительное происхождение, запись, которая связывает пакет npm с репозиторием и рабочим процессом, который его создал. Происхождение показывает, где был создан пакет, а не проверял ли кто-нибудь код внутри него.

Для Swarm Desktop злоумышленники вручную запустили рабочий процесс сборки, который имел сертификаты подписи Apple и Windows проекта и не требовал одобрения. Приложение macOS было подписано идентификатором разработчика проекта и нотариально заверено Apple, поэтому macOS отображал только обычное приглашение при первом запуске.