Специалисты компании Sonatype выявили масштабную атаку на популярные npm-пакеты, некоторые из которых существуют в экосистеме JavaScript почти десятилетие. Злоумышленники внедрили вредоносный код в десять пакетов, преимущественно связанных с криптовалютными операциями, для кражи конфиденциальных данных разработчиков.
Механизм атаки и масштаб угрозы
Наибольшую опасность представляет компрометация пакета country-currency-map, который загружается тысячи раз еженедельно. Вредоносный код был внедрен через два обфусцированных скрипта: /scripts/launch.js и /scripts/diagnostic-report.js, автоматически выполняющихся при установке пакета. Эти скрипты осуществляют несанкционированный сбор критически важной информации, включая переменные окружения, ключи API, токены доступа и SSH-ключи, с последующей передачей данных на удаленный сервер злоумышленников.
Анализ вектора компрометации
Исследователи Sonatype пришли к выводу, что наиболее вероятным сценарием атаки является массовый захват учетных записей разработчиков через credential stuffing. Эта техника предполагает использование скомпрометированных в ходе предыдущих утечек комбинаций логинов и паролей. Теорию подтверждает отсутствие следов взлома в GitHub-репозиториях затронутых проектов и одновременность компрометации нескольких пакетов разных разработчиков.
Текущий статус и меры безопасности
Несмотря на введение обязательной двухфакторной аутентификации для популярных проектов npm в 2022 году, большинство скомпрометированных пакетов остаются доступными и содержат вредоносный код. Исключением стал country-currency-map, разработчик которого оперативно отозвал вредоносную версию 2.1.8 и рекомендовал использовать безопасную версию 2.1.7.
Данный инцидент подчеркивает критическую важность регулярного аудита зависимостей и внедрения строгих политик безопасности при работе с открытыми пакетами. Разработчикам настоятельно рекомендуется проверить свои проекты на наличие скомпрометированных версий пакетов и незамедлительно обновить учетные данные при обнаружении признаков компрометации. Также следует использовать современные практики безопасности, включая двухфакторную аутентификацию и регулярную ротацию паролей для защиты от подобных атак в будущем.