Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?

Рейтинг: 34.2% · 2 голосов
Этичный хакинг и тестирование на проникновение: OWASP Top 10, анализ уязвимостей, bug bounty, разбор CVE, защита веб-приложений и сетей.
Ответить
Аватара пользователя
cmout098
Сообщения: 15
Зарегистрирован: 11 май 2026, 00:49

Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?

Сообщение cmout098 »

На прошлой неделе вышел разбор очередной кампании: 19 пакетов в npm, typosquatting под популярные утилиты сборки — имитировали prettier-плагины и полифилы. Суммарно около 30 тысяч скачиваний до удаления. Полезная нагрузка сидела в postinstall и тихо собирала переменные окружения, в первую очередь токены CI и npm.

У нас после этой новости устроили аудит, и выяснилось, что у фронтового монорепо больше 1400 транзитивных зависимостей, которые никто никогда не смотрел. Стало неуютно.

Поделитесь, кто как выстраивает защиту: проксирующий реестр, карантин новых версий, запрет install-скриптов? Что реально работает, а что бюрократия ради галочки?
👍 ❤️2 🔥2 😄 🤔1
✔ Лучший ответ сформирован автоматически — TcpAdmin
Мы это выстраивали почти два месяца, расскажу, что в итоге прижилось. Первое — проксирующий реестр (у нас Nexus, коллеги живут на Verdaccio). Все установки идут только через него, прямой доступ к npmjs с билд-агентов закрыт. На прокси — карантин: новая версия пакета доступна разработчикам через 7 дней после публикации, для критичных хотфиксов есть процедура ручного одобрения. Второе — сканировани…
Перейти к ответу →
Аватара пользователя
peekatwo
Сообщения: 38
Зарегистрирован: 12 май 2026, 03:30

Re: Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?

Сообщение peekatwo »

Самое дешёвое и эффективное — выключить install-скрипты по умолчанию. В pnpm 10 это уже поведение из коробки: скрипты выполняются только для пакетов из явного allow-листа. Плюс там есть настройка minimumReleaseAge — свежеопубликованные версии не ставятся, пока не отлежатся N дней.

Большинство таких кампаний живёт меньше недели до удаления из реестра, так что карантин в 7 дней отсекает почти всё. Из всех мер по соотношению усилия/результат — лучшая.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
TcpAdmin
Сообщения: 15
Зарегистрирован: 17 май 2026, 05:34

Re: Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?

Сообщение TcpAdmin »

✔ Лучший ответ — сформирован автоматически
Мы это выстраивали почти два месяца, расскажу, что в итоге прижилось.

Первое — проксирующий реестр (у нас Nexus, коллеги живут на Verdaccio). Все установки идут только через него, прямой доступ к npmjs с билд-агентов закрыт. На прокси — карантин: новая версия пакета доступна разработчикам через 7 дней после публикации, для критичных хотфиксов есть процедура ручного одобрения.

Второе — сканирование в CI: OSV-scanner на каждый PR, который трогает lockfile, плюс свой список запрещённых паттернов (пакеты моложе месяца, пакеты с install-скриптами не из allow-листа). Сборка падает, а не «пишет варнинг, который все игнорируют» — это принципиально.

Третье — гигиена токенов. Секреты в CI только короткоживущие, npm-токены заменили на OIDC trusted publishing для своих пакетов, раннеры сборки живут в отдельном сегменте без доступа к проду. Исходим из того, что рано или поздно что-то вредоносное всё равно выполнится, вопрос в том, до чего оно дотянется.

Главное сопротивление, кстати, было не техническое, а от разработчиков: «карантин тормозит работу». Помог разбор пары реальных инцидентов на общей встрече — после истории с компрометацией мейнтейнерских аккаунтов споры утихли.
👍1 ❤️ 🔥 😄1 🤔
Аватара пользователя
juniorredteam
Сообщения: 66
Зарегистрирован: 11 май 2026, 07:16

Re: Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?

Сообщение juniorredteam »

@cmout098, Все эти прокси и сканеры — лечение симптомов. Пока в экосистеме считается нормой тянуть пакет ради трёх строчек кода, атаки будут продолжаться бесконечно. Мы все смеялись над left-pad и is-odd, а потом открываешь свой lockfile — и там тысяча строк такого же.

Радикальный путь один: сокращать число зависимостей и вендорить критичные. Да, это дорого. Но каждая зависимость — это чужой мейнтейнер, чей аккаунт могут увести, и чей пакет вы автоматически исполняете у себя.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
proxmoxpilot
Сообщения: 13
Зарегистрирован: 11 май 2026, 02:49

Re: Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?

Сообщение proxmoxpilot »

Добавлю про соседнюю экосистему для сравнения: в PyPI trusted publishing через OIDC уже фактически стандарт для крупных проектов, аттестации подписываются автоматически при публикации. В npm provenance тоже давно есть, но фокус в другом: мало кто проверяет её на стороне потребителя.

Простой тест: падает ли ваш CI, если у пакета нет provenance или она не совпадает с заявленным репозиторием? У 99% компаний — нет. Вот и весь ответ на вопрос, почему такие кампании до сих пор окупаются.
👍1 ❤️ 🔥 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Кибербезопасность и пентест»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость