Спецпроекты

Безопасность

Вредоносный код втихаря загрузили в десяток репозиториев для JavaScript

Инфостилер, занесенный в скомпрометированные репозитории, крадет переменные сред. Как минимум часть проектов связана с криптовалютами, что может объяснить интерес злоумышленников.

Крипто в прицеле

Сразу десять репозиториев npm оказались заражены вредоносным кодом с очевидной целью атаковать использующих их разработчиков. Среди затронутых репозиториев - весьма популярный пакет country-currency-map.

Онлайн-репозитории npm — это общедоступная коллекция пакетов с открытым исходным кодом для Node.js, фронтенд-приложений и сообщества JavaScript в целом.

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

Его удалось обнаружить исследователю по имени Али Эль-Шаканкири (Ali ElShakankiry), сотруднику компании Sonatype. Вредоносные элементы содержатся в обфусцированных скриптах /scripts/launch.js and /scripts/diagnostic-report.js, которые запускаются сразу после установки пакета.

Сразу 10 репозиториев NPM "снабдили" вредоносным кодом для атак на разработчиков

Эти скрипты осуществляют вывод переменных сред на пользовательском устройстве на удаленный адрес (eoi2ectd5a5tn1h.m.pipedream(.)net); эти переменные часто содержат ключи API, реквизиты доступа к базам данных и облачным ресурсам, а также ключи шифрования. Все это затем может использоваться в кибератаках.

«Часть репозиториев связана с криптовалютами, что вполне объясняет причину интереса злоумышленников к ним», - считает Александр Зонов, эксперт по информационной безопасности компании SEQ. «Атака на разработчика в теории открывает доступ ко всем проектам, в которые он был когда-либо вовлечен».

Исследователи Sonatype выяснили, что злоумышленники целенаправленно подгружали вредонос в репозитории, которые прежде ни в чем компрометирующем замечены не были.

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

Кого зацепило

На данный момент скомпрометированы следующие репозитории npm: country-currency-map версия 2.1.8, @keepkey/device-protocol версия 7.13.3, bnb-javascript-sdk-nobroadcast версия 2.16.16, @bithighlander/bitcoin-cash-js-lib версия 5.2.2, eslint-config-travix версия 6.3.1, babel-preset-travix версия 1.2.1, @travix/ui-themes версия 1.1.5, @veniceswap/uikit версия 0.65.34, @crosswise-finance1/sdk-v2 версия 0.1.21, @veniceswap/eslint-config-pancake версия 1.6.2.

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

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

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

Роман Георгиев

Короткая ссылка