Бэкдор в зависимости к event-stream, популярной библиотеке для Node.js

26 ноября 2018 года

Пользователи библиотеки event-stream, около 2 миллионов копий которой еженедельно загружается из репозитория NPM и которая используется во многих крупных проектах, выявили вредоносный код в одной из зависимостей. Проблема выявлена в пакете flatmap-stream, в котором под видом тестового набора данных (test/data.js) в одной из переменных передавался вредоносный код, предназначенный для кражи криптовалюты и проведения целевой атаки на связанные с криптовалютой сервисы.

Вредоносный код использовался для кражи закрытых ключей от криптокошельков Copay. Во вредоносном коде также выполнялись манипуляции с файлами, используемыми в библиотеке bitcore-wallet-client. Не исключено, что атака может охватывать и другие связанные с криптовалютой приложения на Node.js, которые так или иначе связаны зависимостями с event-stream и производными библиотеками. Библиотека event-stream используется как зависимость в почти четырёх тысячах npm-пакетов, среди которых ps-tree и npm-run-all c 1.4 млн и 400 тыс. еженедельных загрузок.

В начале сентября автор библиотеки отстранился от дел и передал доступ к репозиторию event-stream и право публикации в NPM новому мэйнтейнеру right9ctrl, который являлся человеком со стороны, ранее не участвовал в разработке и общался с автором event-stream только по email. 9 сентября новый мэйнтейнер добавил пакет flatmap-stream в зависимости к event-stream. Примерно в то же время был сформирован выпуск flatmap-stream 0.1.1, в который был добавлен вредоносный код. 16 сентября, после выхода релиза event-stream 3.3.6, пакет flatmap-stream был удалён новым мэйнтейнером из зависимостей к event-stream, а релиз 3.3.6 был отозван из NPM. Судя по действиям нового мэйнтейнера event-stream, он и является организатором атаки.

Вредоносный код подменял функцию Credentials.getKeys, используемую для получения расшифрованных ключей в мобильном и настольном клиентском ПО Copay. В случае наличия в кошельке более 100 BTC или 1e3 BCH связанные с кошельками ключи и используемые для их расшифровки пароли отправлялись на подконтрольные атакующим серверы copayapi.host и 111.90.151.134. Пользователи могут оценить подверженность своих систем атаке запустив команду "npm ls event-stream flatmap-stream" - cистема скомпрометирована, если в выводе упомянута библиотека "flatmap-stream@0.1.1".

Разработчикам приложений рекомендуется зафиксифровать в зависимостях версию event-stream 3.3.4. Создатели Copay подтвердили (Архивная копия от 6 августа 2019 на Wayback Machine) подверженность атаке выпусков приложений Copay (5.0.2-5.1.0) и BitPay, а также сформировали обновление клиентского ПО 5.2.2, в котором убрана привязка к библиотеке event-stream. Вредоносная версия пакета flatmap-stream в настоящее время уже удалена из репозитория NPM.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Бэкдор в зависимости к event-stream, популярной библиотеке для Node.js», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.