Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?
Рейтинг: 34.2% · 2 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?
На прошлой неделе вышел разбор очередной кампании: 19 пакетов в npm, typosquatting под популярные утилиты сборки — имитировали prettier-плагины и полифилы. Суммарно около 30 тысяч скачиваний до удаления. Полезная нагрузка сидела в postinstall и тихо собирала переменные окружения, в первую очередь токены CI и npm.
У нас после этой новости устроили аудит, и выяснилось, что у фронтового монорепо больше 1400 транзитивных зависимостей, которые никто никогда не смотрел. Стало неуютно.
Поделитесь, кто как выстраивает защиту: проксирующий реестр, карантин новых версий, запрет install-скриптов? Что реально работает, а что бюрократия ради галочки?
У нас после этой новости устроили аудит, и выяснилось, что у фронтового монорепо больше 1400 транзитивных зависимостей, которые никто никогда не смотрел. Стало неуютно.
Поделитесь, кто как выстраивает защиту: проксирующий реестр, карантин новых версий, запрет install-скриптов? Что реально работает, а что бюрократия ради галочки?
✔ Лучший ответ сформирован автоматически — TcpAdmin
Мы это выстраивали почти два месяца, расскажу, что в итоге прижилось. Первое — проксирующий реестр (у нас Nexus, коллеги живут на Verdaccio). Все установки идут только через него, прямой доступ к npmjs с билд-агентов закрыт. На прокси — карантин: новая версия пакета доступна разработчикам через 7 дней после публикации, для критичных хотфиксов есть процедура ручного одобрения. Второе — сканировани…
Re: Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?
Самое дешёвое и эффективное — выключить install-скрипты по умолчанию. В pnpm 10 это уже поведение из коробки: скрипты выполняются только для пакетов из явного allow-листа. Плюс там есть настройка minimumReleaseAge — свежеопубликованные версии не ставятся, пока не отлежатся N дней.
Большинство таких кампаний живёт меньше недели до удаления из реестра, так что карантин в 7 дней отсекает почти всё. Из всех мер по соотношению усилия/результат — лучшая.
Большинство таких кампаний живёт меньше недели до удаления из реестра, так что карантин в 7 дней отсекает почти всё. Из всех мер по соотношению усилия/результат — лучшая.
Re: Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?
✔ Лучший ответ — сформирован автоматически
Мы это выстраивали почти два месяца, расскажу, что в итоге прижилось.
Первое — проксирующий реестр (у нас Nexus, коллеги живут на Verdaccio). Все установки идут только через него, прямой доступ к npmjs с билд-агентов закрыт. На прокси — карантин: новая версия пакета доступна разработчикам через 7 дней после публикации, для критичных хотфиксов есть процедура ручного одобрения.
Второе — сканирование в CI: OSV-scanner на каждый PR, который трогает lockfile, плюс свой список запрещённых паттернов (пакеты моложе месяца, пакеты с install-скриптами не из allow-листа). Сборка падает, а не «пишет варнинг, который все игнорируют» — это принципиально.
Третье — гигиена токенов. Секреты в CI только короткоживущие, npm-токены заменили на OIDC trusted publishing для своих пакетов, раннеры сборки живут в отдельном сегменте без доступа к проду. Исходим из того, что рано или поздно что-то вредоносное всё равно выполнится, вопрос в том, до чего оно дотянется.
Главное сопротивление, кстати, было не техническое, а от разработчиков: «карантин тормозит работу». Помог разбор пары реальных инцидентов на общей встрече — после истории с компрометацией мейнтейнерских аккаунтов споры утихли.
Первое — проксирующий реестр (у нас Nexus, коллеги живут на Verdaccio). Все установки идут только через него, прямой доступ к npmjs с билд-агентов закрыт. На прокси — карантин: новая версия пакета доступна разработчикам через 7 дней после публикации, для критичных хотфиксов есть процедура ручного одобрения.
Второе — сканирование в CI: OSV-scanner на каждый PR, который трогает lockfile, плюс свой список запрещённых паттернов (пакеты моложе месяца, пакеты с install-скриптами не из allow-листа). Сборка падает, а не «пишет варнинг, который все игнорируют» — это принципиально.
Третье — гигиена токенов. Секреты в CI только короткоживущие, npm-токены заменили на OIDC trusted publishing для своих пакетов, раннеры сборки живут в отдельном сегменте без доступа к проду. Исходим из того, что рано или поздно что-то вредоносное всё равно выполнится, вопрос в том, до чего оно дотянется.
Главное сопротивление, кстати, было не техническое, а от разработчиков: «карантин тормозит работу». Помог разбор пары реальных инцидентов на общей встрече — после истории с компрометацией мейнтейнерских аккаунтов споры утихли.
- juniorredteam
- Сообщения: 66
- Зарегистрирован: 11 май 2026, 07:16
Re: Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?
@cmout098, Все эти прокси и сканеры — лечение симптомов. Пока в экосистеме считается нормой тянуть пакет ради трёх строчек кода, атаки будут продолжаться бесконечно. Мы все смеялись над left-pad и is-odd, а потом открываешь свой lockfile — и там тысяча строк такого же.
Радикальный путь один: сокращать число зависимостей и вендорить критичные. Да, это дорого. Но каждая зависимость — это чужой мейнтейнер, чей аккаунт могут увести, и чей пакет вы автоматически исполняете у себя.
Радикальный путь один: сокращать число зависимостей и вендорить критичные. Да, это дорого. Но каждая зависимость — это чужой мейнтейнер, чей аккаунт могут увести, и чей пакет вы автоматически исполняете у себя.
- proxmoxpilot
- Сообщения: 13
- Зарегистрирован: 11 май 2026, 02:49
Re: Очередной supply-chain в npm: 19 пакетов воровали CI-токены. Как защищаете свои пайплайны?
Добавлю про соседнюю экосистему для сравнения: в PyPI trusted publishing через OIDC уже фактически стандарт для крупных проектов, аттестации подписываются автоматически при публикации. В npm provenance тоже давно есть, но фокус в другом: мало кто проверяет её на стороне потребителя.
Простой тест: падает ли ваш CI, если у пакета нет provenance или она не совпадает с заявленным репозиторием? У 99% компаний — нет. Вот и весь ответ на вопрос, почему такие кампании до сих пор окупаются.
Простой тест: падает ли ваш CI, если у пакета нет provenance или она не совпадает с заявленным репозиторием? У 99% компаний — нет. Вот и весь ответ на вопрос, почему такие кампании до сих пор окупаются.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
-
- Конфиг-файлы в репозитории запускают код — как вы защищаете CI/CD и рабочие машины?
8 ответов · 19 просмотров
-
- Очередная волна тайпсквоттинга в npm: 140+ вредоносных пакетов за неделю. Чем защищаете сборку?
5 ответов · 7 просмотров
-
- Чуть не увели 2 млн через клонированный голос директора — как защищаете финансы?
5 ответов · 4 просмотров
-
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость