Релизы Swarm и bee-js: загрузчик для кражи ключей

Релизы Swarm и bee-js: загрузчик для кражи ключей

9 ноября 2026 года в npm и на GitHub появились вредоносные релизы @ethersphere/bee-js 13.3.0 и Swarm Desktop 0.56.2. Оба несут загрузчик, который скачивает JavaScript и выполняет его с правами Node.js. Риск затрагивает разработчиков, работающих с Swarm и Ethereum-кошельками: Swarm Desktop устанавливает узел Bee вместе с его кошельком. Дальнейшие этапы цепочки забирают пароль узла и ключ кошелька.

Описание

Релизы Swarm и bee-js: загрузчик для кражи ключей

Обе публикации прошли через штатные механизмы Ethersphere. Злоумышленники получили доступ к учетным записям сопровождающего nugaon и служебной личности bee-worker. Релиз bee-js собрал и опубликовал доверенный рабочий процесс с подтверждением происхождения сборки. Собственная система непрерывной интеграции (CI) собрала, подписала и отправила сборку Swarm Desktop на нотаризацию Apple, поэтому проверки не выявили подмены. npm удалил пакет примерно через 75 минут, десктопный релиз оставался доступен значительно дольше.

Общий след ведет к кампании SleepyDuck / EtherDuck. Загрузчики получают адрес управляющего сервера из Ethereum-контракта, который с марта 2026 года обслуживает тот же кошелек. Этот контракт, по данным Socket, ранее использовали вредоносные расширения Solidity в Open VSX. Совпадение инфраструктуры указывает на одного оператора, а не на копирование кода.

В bee-js загрузчик появился в скрипте генерации версии. При установке пакета скрипт обращался к внешнему серверу и исполнял полученный ответ в процессе Node.js. Без специального заголовка сервер отдавал безобидную заглушку. С ним приходил код под конкретную операционную систему. Скрипт сработал и внутри сборочной задачи Ethersphere, у которой было право на токен публикации. Что именно код делал там, кроме вывода строки, не установлено. Установка могла завершиться ошибкой, но запрос к серверу уже уходил.

В Swarm Desktop загрузчик встроили в основной процесс Electron. Он срабатывал при каждом запуске приложения, до проверки единственного экземпляра и окна заставки. Собственная CI-система подписала сборку и отправила ее на нотаризацию Apple. Подпись покрывала вредоносный архив, поэтому системная проверка macOS показывала обычное предупреждение при первом запуске. Автообновление предложило 0.56.2 владельцам Apple Silicon и Windows x64. Intel Mac и Linux автоматически обновление не получали.

На macOS и Linux следующий этап ставил Go-бэкдор. Он закреплялся в системе, читал адрес узла из Ethereum-контракта и открывал удалённую оболочку. Перед подключением бэкдор проверял наличие отладчика и виртуальной машины и завершался при их обнаружении. На Windows цепочка вела к установке легитимного клиента ScreenConnect. При правах локального администратора загрузчик обходил запрос контроля учетных записей и добавлял исключение в Microsoft Defender. Клиент работал как системная служба и принимал подключения без уведомления пользователя.

Происхождение обеих учетных записей остается необъясненным. Попытка собрать секреты из CI 6 ноября не принесла данных: коллекторы не получили тел запросов. Уверенность в этом умеренная. Сколько именно машин установило вредоносные версии, неизвестно: счётчики загрузок включают исследователей и зеркала. На момент публикации анализа исправленного релиза Swarm Desktop не существовало. Удаление релиза не откатывает машины, которые уже обновились. Копии вредоносного пакета еще отдавало одно из зеркал npm, а GitHub хранил исходные архивы по идентификаторам коммитов.

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

Комментарии: 0