Экосистема NPM столкнулась с серьезной угрозой безопасности: злоумышленники успешно скомпрометировали 17 популярных пакетов проекта GlueStack @react-native-aria, внедрив в них троян удаленного доступа (RAT). Атака затронула пакеты с совокупным количеством загрузок более миллиона раз, что делает ее одной из крупнейших компрометаций цепочки поставок в 2025 году.
Масштаб и механизм атаки
Специалисты компании Aikido Security первыми обнаружили подозрительную активность, выявив обфусцированный вредоносный код в файле lib/index.js затронутых пакетов. Учитывая, что скомпрометированные пакеты еженедельно загружают около 1,02 миллиона разработчиков, потенциальные последствия атаки могут быть катастрофическими для глобального сообщества JavaScript-разработчиков.
Атака началась 6 июня 2025 года с публикации зараженной версии пакета @react-native-aria/focus. В течение короткого времени злоумышленники смогли скомпрометировать 17 из 20 пакетов экосистемы GlueStack @react-native-aria, демонстрируя высокий уровень координации и планирования.
Технические особенности вредоносного кода
Анализ показал, что киберпреступники использовали изощренные методы маскировки. Вредоносный код добавлялся в последнюю строку исходных файлов с добавлением множества пробелов, что затрудняло его обнаружение при поверхностном просмотре на сайте NPM. Высокий уровень обфускации дополнительно усложнял выявление угрозы автоматизированными системами безопасности.
Исследователи отметили поразительное сходство с троянами, обнаруженными в предыдущих атаках на цепочку поставок NPM, что указывает на работу организованной группы киберпреступников с устоявшимися методологиями.
Функциональность трояна удаленного доступа
Внедренная малварь демонстрирует широкий спектр возможностей для удаленного управления зараженными системами. После активации троян устанавливает соединение с командным сервером злоумышленников и получает инструкции для выполнения различных операций на скомпрометированных машинах.
Особую опасность представляет способность трояна модифицировать переменную среды PATH, добавляя фальшивый путь (%LOCALAPPDATA%\Programs\Python\Python3127) в начало списка. Это позволяет вредоносному ПО перехватывать вызовы Python и pip, выполняя собственные вредоносные бинарные файлы вместо легитимных инструментов.
Реакция сообщества и меры противодействия
Попытки экспертов Aikido Security связаться с разработчиками GlueStack через создание issues в GitHub-репозиториях проекта первоначально не увенчались успехом. Это подчеркивает критическую важность оперативного реагирования на сообщения о безопасности в экосистеме открытого исходного кода.
После уведомления администрации NPM и освещения инцидента в СМИ команда GlueStack предприняла экстренные меры: отозвала скомпрометированный токен доступа и пометила зараженные версии пакетов как устаревшие. Однако полное удаление проблемных версий оказалось невозможным из-за существующих зависимостей в других проектах.
Связь с предыдущими атаками
Эксперты по кибербезопасности связывают данный инцидент с той же группой злоумышленников, которая ранее скомпрометировала четыре других NPM-пакета: biatec-avm-gas-station, cputil-node, lfwfinance/sdk и lfwfinance/sdk-dev. Это указывает на систематическую кампанию по компрометации популярных JavaScript-библиотек.
Данный инцидент подчеркивает критическую важность комплексного подхода к безопасности цепочки поставок программного обеспечения. Разработчикам необходимо регулярно аудировать используемые зависимости, применять инструменты автоматического мониторинга безопасности и поддерживать актуальные версии пакетов только из проверенных источников. Организациям следует внедрить многоуровневые системы защиты и процедуры быстрого реагирования на подобные угрозы.