
С 9 ноября CodeScoring относит версию 13.3.0 JavaScript-библиотеки @ethersphere/bee-js для распределённого хранилища Swarm к вредоносным. При установке зависимости её код загружал вредонос, который пытался похитить ключи криптокошельков.
Заражённый пакет вышел через штатный процесс публикации проекта. Под учётной записью выпуска bee-worker в официальный репозиторий внесли прямой коммит, а затем создали релиз, запустивший существующий workflow GitHub Actions. По данным Socket, сведения о сборке в npm указывали на официальный репозиторий и штатный процесс выпуска проекта. Вредонос к этому моменту уже находился в исходниках.
Злоумышленники изменили пакет, чтобы вредоносный скрипт запускался автоматически при установке библиотеки. Если выполнение таких скриптов было разрешено, то вредонос запускался ещё до использования библиотеки в приложении.
В комментариях к коду злоумышленники описали обращение к своему серверу как отправку аналитики. На деле скрипт получал оттуда JavaScript и сразу запускал его с правами пользователя, который устанавливал пакет.
Полезная нагрузка искала в данных приложения Swarm Desktop зашифрованный ключ кошелька и файл конфигурации. Если в конфигурации был пароль от ключа, то кража двух файлов позволяла получить управление кошельком. Вредонос также пытался закрепиться в системе, чтобы сохранить доступ после завершения установки.
На Linux и macOS атака продолжалась установкой бэкдора для удалённого выполнения команд. Адрес командного сервера он читал из смарт-контракта Ethereum. Оператор мог сменить этот адрес одной транзакцией, не выпуская новую сборку вредоноса. Важно учитывать, что заражённая версия могла прийти и транзитивно. Диапазоны зависимостей нескольких инструментов Swarm допускали версию 13.3.0, поэтому проверять нужно фактически разрешённую версию в lock-файле. Одного поиска прямой зависимости в манифесте недостаточно.
Командам, использующим bee-js, стоит проверить lock-файлы, кэши пакетов и журналы установки в CI на версию 13.3.0, включая транзитивные зависимости. Если bee-js данной версии устанавливался с разрешёнными скриптами или запускался Swarm Desktop версии 0.56.2, то нужно исследовать машину или CI-раннер. Для CI-раннера это касается токенов публикации пакетов и доступа к исходникам.
Блокирующие политики CodeScoring с условием «Зависимость опасна» останавливают загрузку этого и других известных вредоносных пакетов в модуле CodeScoring.OSA и сборку проекта в модуле CodeScoring.SCA.
Источник: habr.com