Шкідливе програмне забезпечення Shai-Hulud: хакерська атака на npm пакети Keyv
Останнім часом спільнота розробників JavaScript потрясла серйозна загроза безпеці. Команда Aikido Security виявила атаку на ланцюг поставок npm, у результаті якої шкідливе програмне забезпечення Shai-Hulud заражає пакети Keyv та краде облікові дані користувачів. Зловмисники проникли в обліковий запис GitHub підтримувача бібліотеки Keyv jaredwray, що дозволило їм завантажити шкідливий код у головну гілку та випустити інфіковані релізи через GitHub Actions. Це забезпечило легітимний походження для поширення небезпечних версій npm, які активуються ще до завершення встановлення пакету.
Атака досягла значного масштабу
Aikido Security ідентифікувала атаку на низку пакетів, серед яких Keyv, cacheable, cache-manager, cacheable-request, flat-cache та file-entry-cache. Sujsіль паніку створює значний обсяг завантажень: flat-cache зафіксував 565 мільйонів завантажень на місяць, file-entry-cache – 557 мільйонів, а Keyv – приблизно 127 мільйонів завантажень на тиждень. Загалом, ця ситуація викликала серйозну загрозу для ланцюгу поставок бібліотек JavaScript.
Пробірне ПЗ у платформах JavaScript
Кожен уражений пакет отримав два нових файли: setup.mjs та Math_Symbol.js. Хакери інтегрували шкідливий сценарій preinstall у файл package.json, виконуючи команду при запуску npm install. Наслідком було не лише запуск шкідливого ПЗ, але й завантаження JavaScript-рутину Bun для виконання прихованого коду Math_Symbol.js розміром 728 КБ.
Ціль – облікові дані
Math_Symbol.js направлений на викрадення облікових даних з локальних та хмарних середовищ. Програма аналізує файли аутентифікації npm, шукає значення authToken та відправляє викрадені дані в публічний репозиторій GitHub під промовистим іменем: “Shai-Hulud: Here We Go Again”. Пакети з корпоративними налаштуваннями npm, такі як @deliveroo/reevent, @or-sdk/invitations або @picsart/ai-sdk також опинилися під загрозою.
Ця загроза підкреслює важливість уважного контролю за встановленням залежностей у розробницьких середовищах та безпеки своїх облікових записів. Навіть підписані релізи GitHub можуть нести небезпечну загрозу, якщо обліковий запис підтримувача скомпрометовано. Залишається відкритим питання, наскільки швидко спільнота виведе з обігу ці небезпечні версії та запобіжить майбутнім атакам такого характеру.



