Технологии30.07.2026, 02:012 мин чтенияNEWS

GitHub и npm внедрили комплекс мер против атак на цепочки поставок

Новые функции включают защиту аккаунтов, безопасные CI/CD и задержку обновлений Dependabot

Иллюстрация к статье о мерах безопасности GitHub и npm против supply chain атак
КРАТКО

Что нужно знать

  • Высокоприоритетные аккаунты npm блокируются на 72 часа при смене email или 2FA recovery.
  • actions/checkout по умолчанию не checkout'ит код из форков в опасных триггерах.
  • Кэш Actions в ненадёжных триггерах работает только на чтение.
  • Staged publishing требует дополнительного утверждения и 2FA для публикации.
  • npm v12 отключает install-скрипты по умолчанию.
  • Dependabot version updates ждут 3 дня перед открытием PR.
  • Добавлена поддержка CircleCI для trusted publishing.
  • Enterprise-администраторы могут самостоятельно отзывать все учётные данные пользователя.
ИсточникGitHub Blog ↗

GitHub и npm объявили о внедрении комплекса мер, направленных на disruption supply chain attacks. Обновления затронули защиту аккаунтов, CI/CD-пайплайны, механизмы публикации пакетов и систему обновлений Dependabot. Информация опубликована в блоге GitHub.

Защита аккаунтов и CI/CD

С июня 2026 года высокоприоритетные аккаунты npm при смене email или использовании кода восстановления 2FA переводятся в read-only режим на 72 часа. Это даёт мейнтейнерам время на восстановление контроля до того, как аккаунт может быть использован для атаки.

В GitHub Actions изменено поведение actions/checkout по умолчанию: теперь в триггерах, работающих с форками, не происходит checkout непроверенного кода без явного согласия пользователя. Также появилась возможность на уровне enterprise, организации или репозитория ограничивать, кто и какие триггеры может запускать.

Для ненадёжных триггеров (например, pull_request_target) кэш Actions теперь работает в режиме read-only, что предотвращает отравление кэша и эскалацию привилегий.

Безопасная публикация и установка пакетов

С апреля 2026 года npm trusted publishing поддерживает CircleCI, позволяя авторизовать публикации без долгоживущих учётных данных. В мае 2026 года введён staged publishing: пакеты публикуются только после дополнительного утверждения и 2FA-аутентификации.

В npm v12 (июнь 2026) install-скрипты отключены по умолчанию — их можно включить только для конкретных пакетов. Также заблокирована установка зависимостей через git и удалённые URL.

Замедление распространения вредоносных пакетов

С июля 2026 года Dependabot version updates ждут три дня после выхода релиза, прежде чем открыть pull request. Это даёт время на обнаружение вредоносного пакета. Security updates по-прежнему открываются немедленно.

Инструменты для реагирования на инциденты

В июне 2026 года появилась возможность самообслуживания для отзыва всех учётных данных пользователя в enterprise. В марте 2026 года расширена поддержка API отзыва учётных данных: теперь можно отзывать OAuth и App токены.

Что это значит

Внедрённые меры закрывают несколько типовых векторов атак на цепочки поставок: кражу учётных данных, отравление кэша CI/CD, быструю публикацию вредоносных пакетов и автоматическое распространение через Dependabot. Однако атаки продолжают эволюционировать, и GitHub обещает дальнейшие улучшения.

ВОПРОСЫ И ОТВЕТЫ

Коротко о главном

Что такое staged publishing в npm?

Это опциональная функция, при которой пакеты публикуются только после дополнительного утверждения и 2FA-аутентификации, даже если у CI/CD есть учётные данные.

Как работает задержка Dependabot?

Version updates ждут три дня после выхода релиза, прежде чем открыть pull request. Security updates открываются немедленно.

Какие изменения в npm v12?

Install-скрипты отключены по умолчанию, их можно включить для конкретных пакетов. Также заблокирована установка зависимостей через git и удалённые URL.

Как подготовлен материал

Черновик был создан с помощью AI по указанному первоисточнику и опубликован в формате ITBlogs. Факты следует сверять с оригинальной публикацией.

С
АВТОР

Сергей

Администратор проекта

DISCUSSION

Комментарии · 0

Войдите, чтобы участвовать в обсуждении.