Исследователи предупреждают о новой атаке на цепочку поставок. Десять пакетов npm, некоторые из которых существуют почти 10 лет, получили вредоносные обновления для кражи переменных окружения и других конфиденциальных данных из систем разработчиков.

Эта кампания затронула пакеты, связанные с криптовалютами, и наиболее популярный из них — country-currency-map, насчитывал тысячи загрузок в неделю.

На вредоносный код обратили внимание специалисты компании Sonatype. Он содержится в двух сильно обфусцированных скриптах /scripts/launch.js и /scripts/diagnostic-report.js, которые выполняются при установке пакетов.

По данным исследователей, этот JavaScript похищает переменные окружения и конфиденциальные данные (ключи API, токены доступа, ключи SSH) с зараженных устройств и отправляет их на удаленный сервер eoi2ectd5a5tn1h.m.pipedream[.]net.

При этом вредоносный код одинаков во всех скомпрометированных пакетах, и большинство из них не имели никаких проблем в течение многих лет, поэтому, скорее всего, все они были неким образом скомпрометированы одним злоумышленником.

«Мы предполагаем, что причиной компрометации стали старые npm-аккаунты мейнтейнеров, взломанные либо с помощью атак credential stuffing (злоумышленники перебирают имена пользователей и пароли, утекшие в ходе других атак), либо с помощью захвата просроченного домена, — сообщают эксперты Sonatype. — Учитывая одновременность атак на несколько пакетов разных мейнтейнеров, первый сценарий (захват аккаунтов мейнтейнеров) представляется более вероятным, чем хорошо организованные фишинговые атаки».

В пользу этой теории говорит и тот факт, что GitHub-репозитории скомпрометированных проектов не были заражены вредоносным ПО.

Ниже перечислены взломанные пакеты, вредоносные версии и количество загрузок вредоносных версий:

  • country-currency-map: версия 2.1.8, 288 загрузок;
  • @keepkey/device-protocol: версия 7.13.3, 56 загрузок;
  • bnb-javascript-sdk-nobroadcast: версия 2.16.16, 61 загрузка;
  • @bithighlander/bitcoin-cash-js-lib: версия 5.2.2, 61 загрузка;
  • eslint-config-travix: версия 6.3.1, 0 загрузок;
  • babel-preset-travix: версия 1.2.1, 0 загрузок;
  • @travix/ui-themes: версия 1.1.5, 0 загрузок;
  • @veniceswap/uikit: версия 0.65.34, 0 загрузок;
  • @crosswise-finance1/sdk-v2: версия 0.1.21, 0 загрузок;
  • @veniceswap/eslint-config-pancake: версия 1.6.2, 0 загрузок.

Все эти пакеты, кроме country-currency-map, по-прежнему доступны в npm и являются вредоносными. Хотя в 2022 году npm сделала двухфакторную аутентификацию обязательной для популярных проектов, некоторые пострадавшие пакеты не обновлялись много лет, и их сопровождающие могут быть уже неактивны.

Сопровождающий country-currency-map отозвал вредоносную версию (2.1.8) и опубликовал заметку, в которой посоветовал разработчикам использовать безопасную версию 2.1.7.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии