Екосистема NPM зіткнулася з однією з найсерйозніших загроз безпеки 2025 року. Кіберзлочинці успішно інфікували 17 популярних пакетів проєкту GlueStack @react-native-aria, впровадивши в них троян віддаленого доступу (RAT). Атака вплинула на пакети з загальною кількістю завантажень понад мільйон разів, що робить її критичною для глобальної спільноти JavaScript-розробників.
Деталі компрометації та масштаб загрози
Фахівці компанії Aikido Security першими виявили підозрілу активність, знайшовши обфускований шкідливий код у файлі lib/index.js уражених пакетів. Враховуючи, що скомпрометовані пакети щотижня завантажують близько 1,02 мільйона розробників, потенційні наслідки атаки можуть бути катастрофічними.
Атака розпочалася 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-бібліотек.
Цей інцидент підкреслює критичну важливість комплексного підходу до безпеки ланцюга постачання програмного забезпечення. Розробникам необхідно регулярно аудитувати використовувані залежності, застосовувати інструменти автоматичного моніторингу безпеки та підтримувати актуальні версії пакетів тільки з перевірених джерел. Організаціям слід впровадити багаторівневі системи захисту та процедури швидкого реагування на подібні загрози для мінімізації потенційних збитків.