Написать пост

В библиотеке event-stream для Node.js найден бэкдор

Аватар Андрей Галадей

Бэкдор в пакете flatmap-stream библиотеки event-stream позволял красть криптовалюту из кошельков Copay. Внедрил бэкдор новый мэйнтейнер библиотеки.

Обложка поста В библиотеке event-stream для Node.js найден бэкдор

В библиотеке event-stream пользователи обнаружили вредоносный код для кражи криптовалюты. Бэкдор был внедрён в пакет flatmap-stream, замаскированный под набор тестовых данных. Ответственность лежит на новом мэйнтейнере event-stream с псевдонимом right9ctrl, который ранее не участвовал в разработке. Автор библиотеки передал ему все права, когда отстранился от дел. Заражённый пакет flatmap-stream уже удалили из репозитория NPM.

Характер уязвимости

Код предназначен для кражи закрытых ключей от криптокошельков Copay. Библиотека event-stream применяется почти в четырёх тысячах npm-пакетов, которые загружаются сотни тысяч раз в неделю. Не исключено, что вредоносный код затрагивал и другие зависимости и приложения, так как манипулировал файлами библиотеки bitcore-wallet-client.

Вредоносный код подменяет функцию Credentials.getKeys, которая применяется для получения расшифрованных ключей в мобильном и настольном клиентах Copay. Если в кошельке было свыше 100 BTC или 1e3 BCH, ключи и пароли передавались на серверы copayapi.host и 111.90.151.134, которыми «рулили» хакеры.

Предполагается, что впервые код появился во flatmap-stream 0.1.1 примерно 9 сентября 2018 года. Уже 16 сентября, после выхода стабильной версии event-stream 3.3.6, пакет flatmap-stream удалили из зависимостей, а сам релиз 3.3.6 отозвали из NPM.

Защита от бэкдора

Подтверждено, что Copay версий 5.0.2 — 5.1.0 и BitPay скомпрометированы. Для защиты рекомендуется обновить клиентские модули. Разработчикам рекомендовано зафиксировать версию event-stream 3.3.4 в зависимостях. Самостоятельно проверить наличие уязвимости можно, запустив команду npm ls event-stream flatmap-stream. Если в выводе упоминается библиотека flatmap-stream@0.1.1, то система потенциально уязвима.

Атаки, использующие внедрение вредоносного кода в пакеты NPM, отнюдь не редкость. В августе 2018 года исследователи из Германии обнаружили 25 уязвимостей в модулях Node.js, открывающих веб-приложения и серверы для ReDoS-атак.

Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий2К показов