Атака на ланцюг постачання уразила понад 400 npm пакетів та вкрала креденціали розробників
До світу JavaScript-програмування увійшли нові виклики: понад 400 пакетів npm, що підтримуються різними публікаторами, стали жертвами атаки на ланцюг постачання. Це сталося через уразливі випуски пакетів, які використовуються для крадіжки креденціалів розробників та поширення на інші проекти.
Microsoft Threat Intelligence повідомляє, що злочинні випуски містять варіант черв’яка Mini Shai-Hulud. Приклади постраждалих пакетів включають ті, які тісно пов’язані з популярними екосистемами JavaScript, такими як keyv, flat-cache та cache-manager.
Технічні деталі атаки
Зловмисною програмою доставляється через модифіковані tarball файли npm, автоматично запускаючись через preinstall lifecycle hook. Це дозволяє їй виконуватись ще до завершення встановлення пакетів на комп’ютерах розробників або на системах безперервної інтеграції та доставки.
Багато уразливих випусків з’являлися як звичайні оновлення без відповідних комітів вихідного коду, запитів на злиття або позначок випуску. Це вказує на те, що атакуючі прямо модифікували та публікували архіви пакетів, замість того, щоб компроментувати публічні сховища.
Наслідки та рекомендації
Якщо шкідлива програма запускається на машині розробника, вона відривається від процесу встановлення і продовжує працювати у фоновому режимі. У середовищах CI/CD вона залишається в рамках активного процесу збірки, що забезпечує доступ до секретів робочого процесу, облікових записів виконавців і прав публікації.
Для захисту від таких загроз Microsoft радить перевіряти дерева залежностей та lockfiles на предмет уразливих версій, включаючи пакети, що входять через транзитивні залежності. Рекомендується також відкликати та замінити креденціали, доступні скомпрометованим ідентифікаційним даним, з ненападної системи.
Безпечна публікація та подальші кроки
Організації, які публікують пакети, повинні переглянути автоматизовані процеси випуску і встановити хороші практики. Також важливо перевіряти сфери дії токенів, підтвердження робочих процесів, захищені середовища, походження пакетів і незвичну автоматизовану активність публікації, особливо там, де GitHub Actions або інші CI/CD системи мають дозволи на створення випусків.
У той час, як злодіям вдалося вкрасти креденціали під час цієї атаки, важливо вжити заходів, які запобігатимуть наступним загрозам. Завжди варто тримати актуальними пакети npm, користуючись їхньою функцією min-release-age, щоб запобігти вибору новопублікованих версій, доки не пройде певний час.



