Екосистема npm переживає масштабну кампанію спаму: самореплікований черв’як IndonesianFoods генерує нові пакети з інтервалом у 7–10 секунд. За оцінками Sonatype, опубліковано вже понад 100 000 релізів із псевдовипадковими назвами, часто пов’язаними з індонезійськими стравами. Хоча у вмісті самих пакетів поки не виявлено шкідливих пейлоадів, масштаб і рівень автоматизації створюють суттєвий ризик для ланцюгів постачання програмного забезпечення.
Масштаб і темп спам-атаки в npm: перевантаження інструментів безпеки
Кампанію серед перших помітив дослідник Пол Маккарті, який запустив публічний трекер пов’язаних акаунтів і лічильник пакетів. Аналітики Sonatype повідомляють про ранні спроби ще з 10 вересня 2025 року (пакет fajar-donat9-breki), однак тоді механіка самореплікації не дала значного поширення. Нинішня хвиля безпрецедентна: Amazon Inspector, маркуючи такі пакети через OSV advisory, генерує масові алерти, а база Sonatype зафіксувала 72 000 нових бюлетенів за добу, що підсилює «втому від попереджень» і знижує якість виявлення реальних інцидентів.
Як працює IndonesianFoods: проста самореплікація з великим ефектом
Код черв’яка зосереджено в одному JS-файлі всередині кожного пакета (auto.js або publishScript.js). Він не активується автоматично й не використовує postinstall-хуки: для запуску потрібен ручний виклик node auto.js. Далі скрипт за циклом прибирає прапорець “private”: true з package.json, генерує нову назву і версію (щоб обійти фільтри дублікатів), після чого виконує npm publish. Результат — лавиноподібне «забруднення» реєстру, зростання навантаження на інфраструктуру та зниження релевантності пошуку, що підвищує ризик випадкового включення сумнівних залежностей у збірки.
Мотиви зловмисників: монетизація через TEA Protocol
За даними Endor Labs, у частини пакетів виявлено файли tea.yaml з обліковими даними та криптогаманцями. Це вказує на спробу зловживати TEA Protocol — блокчейн-платформою, яка нараховує токени за внесок в open source. Логіка пряма: чим більше пакетів і їхній impact score, тим вищі потенційні виплати. Дослідники припускають, що зловмисники створювали тисячі взаємопов’язаних пакетів для «фармінгу» токенів: приблизно з 2023 року сформовано ≈43 тис. пакетів, у 2024 додано монетизацію через TEA, а у 2025 впроваджено самореплікацію, що перетворило IndonesianFoods на черв’яка.
Ризики для ланцюгів постачання ПЗ: «гаряча підміна» і шум як прикриття
Попри відсутність задокументованих бекдорів чи крадіжки даних у поточній хвилі, зберігається ризик «гарячої підміни» пейлоада: достатньо непомітного оновлення або «супутньої» залежності, аби ввести шкідливу функціональність, поки контролі перевантажені спамом. Тренд підтверджують недавні інциденти з черв’яками GlassWorm (OpenVSX, Visual Studio Code Marketplace) і Shai-Hulud (сотні пакетів у npm). Масові, технологічно прості кампанії створюють зручне тло для точкових і більш витончених атак на екосистеми open source.
Практичні кроки зниження ризику
Для команд розробки
– Фіксуйте версії та використовуйте lock-файли; дозвольте оновлення лише через керований allowlist.
– Впровадьте приватний проксі-реєстр (Verdaccio, Artifactory) з карантином для нових/неперевірених пакетів.
– Увімкніть 2FA в npm і атестації походження (provenance, де доступно).
– Виконуйте збірки з –ignore-scripts у CI та блокуйте довільні lifecycle-хуки.
– Застосовуйте SCA-інструменти (Sonatype, Endor Labs, osv-scanner) і моніторинг аномалій у залежностях/публікаціях.
– Контролюйте діапазони версій (caret/tilde), мінімізуйте пошук по всьому реєстру.
Для власників реєстрів та маркетплейсів
– Обмежуйте швидкість публікацій, застосовуйте поведінкову аналітику та автоматичний карантин для серійних підписок.
– Посилюйте верифікацію мейнтейнерів і дедуплікацію шаблонного коду.
– Координуйте нотифікації (OSV, сканери), щоб зменшити «втому від алертів» без втрати видимості інцидентів.
IndonesianFoods показує, як «шумова» активність підточує довіру до найбільшого реєстру JavaScript-пакетів і відкриває вікно можливостей для справжніх атак. Командам варто негайно переглянути політики роботи із залежностями, запровадити карантин нових пакунків, посилити атестації походження та інвестувати в виявлення аномалій. Чим раніше ці заходи будуть застосовані, тим менше шансів, що наступна хвиля спам-пакетів переросте у реальну компрометацію вашого ланцюга постачання.