Хакеры взломали bee-js и Swarm Desktop от Ethersphere для доставки вредоносного ПО, крадущего кошельки

безопасность Ethersphere Swarm уязвимость бэкдор кража данных thehackernews.com

Атака на Ethersphere: злоумышленники использовали автоматизацию релизов для распространения вредоносных версий bee-js и Swarm Desktop. Цель — кража ключей кошелька и установка бэкдора. Уязвимы пользователи, использующие устаревшие версии. Приняты меры по устранению угрозы.

Злоумышленники использовали собственную систему автоматизации релизов проекта 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, компании по безопасности цепочек поставок. Компьютеры Intel Mac никогда не получали его, а установки 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 «был опубликован злоумышленником с использованием украденных учетных данных CI и был отозван».
Версия 0.56.3 — это тот же код, что и предыдущая версия 0.56.1, подписанный вновь выданным сертификатом Developer ID, согласно заметке сопровождающего об инциденте. В заметке говорится, что автоматический обновлятор приложения переведет установки 0.56.2 на нее, хотя пакеты для Linux по-прежнему придется заменять вручную. Сравнение исходного кода двух версий, проведенное The Hacker News, не выявило изменений, кроме номера версии и заметок к релизу.
Когда The Hacker News проверили npm сегодня, 13.2.0 снова стала последней версией bee-js, а 13.3.0 больше не могла быть загружена из реестра.
В рекомендации GitHub по bee-js 13.3.0 говорится: «Любой компьютер, на котором этот пакет установлен или запущен, следует считать полностью скомпрометированным». SafeDep, компания по безопасности цепочек поставок программного обеспечения, дает аналогичный совет для любого компьютера, на котором был установлен Swarm Desktop 0.56.2.
Если вы используете bee-js в проекте или задании CI:
Обновите bee-js до версии 13.3.1 или новее.
Если вы используете Swarm Desktop:
Обновите до версии 0.56.3 или новее.
На любой машине, где запускался код:
Удалите и переустановите Swarm Desktop или bee-js. Если вы не уверены, что сможете безопасно удалить вредоносный код, рассмотрите возможность полной переустановки операционной системы.
Оба релиза содержат один и тот же загрузчик, как обнаружила SafeDep в своем техническом анализе. Это несколько строк кода, которые загружают больше кода с api.frameworkmetrics[.]xyz и запускают его с разрешениями пользователя. В bee-js загрузчик является postinstall-скриптом, а в Swarm Desktop он запускается каждый раз при запуске приложения.
Загруженный код ищет два файла в папке данных Swarm Desktop: config.yaml и data-dir/keys/swarm.key. Если оба файла присутствуют, он отправляет их на сервер злоумышленников.
Файл ключа представляет собой зашифрованный keystore 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 использует для автоматизации своих релизов. Ни одно из изменений не было подписано и не было отправлено в виде pull-запроса.
Для bee-js злоумышленники опубликовали релиз GitHub для новой версии, что запустило рабочий процесс публикации npm проекта. Этот рабочий процесс не требовал одобрения и опубликовал пакет в npm за 73 секунды, по данным Socket.
Поскольку проект использовал реальный рабочий процесс сборки, пакет имел действительное происхождение (provenance) — запись, связывающую пакет npm с репозиторием и рабочим процессом, который его собрал. Происхождение показывает, где был собран пакет, а не то, был ли кто-либо просмотрен его код.
Для Swarm Desktop злоумышленники вручную запустили рабочий процесс сборки, который имел сертификаты подписи Apple и Windows проекта и не требовал одобрения. Приложение macOS было подписано идентификатором разработчика проекта и нотаризовано Apple, поэтому macOS отображала только обычный запрос при первом запуске, обнаружила компания.
С тех пор сопровождающие настроили задания подписи приложения так, чтобы они ожидали одобрения от команды DevOps проекта и запускались только из основной ветки.
Как злоумышленники получили доступ, на момент написания статьи оставалось неясным. В заметке сопровождающего об инциденте винят кражу учетных данных и секретов CI.
Анализ компании указывает на использование двух учетных записей GitHub: bee-worker и учетной записи давнего сопровождающего. Ни один из отчетов не объяснил, как были украдены учетные данные.
Плагины используют общий контракт Ethereum, ретранслятор ScreenConnect и имена файлов с поддельными расширениями для разработчиков Solidity, которые появились на рынке Open VSX в сентябре. Исследователи из Pluto Security описали эти расширения в своем анализе EtherDuck от 1 октября.
Pluto связывает их «с высокой степенью уверенности» с группой, стоящей за оригинальным расширением SleepyDuck, которое считывало адрес своего сервера из другого контракта Ethereum в 2025 году. Socket утверждает, что та же группа стоит за релизами bee-js и Swarm Desktop.
Защитники могут искать в журналах и на машинах следующее.

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

В тренде:

Похожие новости: