Как GitHub защищает npm: trusted publishing и новые проверки

Разбираем, как новые механизмы публикации пакетов делают npm безопаснее для всех — от авторов библиотек до разработчиков приложений.

Разработка

6 мин

Сентябрьская атака на npm показала: экосистема JavaScript уязвима. Злоумышленники всё чаще нацеливаются на популярные пакеты, ведь через них можно «пробраться» в тысячи проектов. GitHub, как владелец npm, не стал ждать следующего кризиса и представил новые механизмы защиты.

Самые заметные из них — trusted publishing и расширенные проверки при публикации пакетов.

Что такое trusted publishing?

Trusted publishing — это новая модель публикации пакетов в npm, которая устраняет необходимость хранить и использовать секретные токены. Вместо них теперь можно публиковать пакеты напрямую, доверяя GitHub Actions или другому CI/CD-провайдеру.

  • Нет токенов — нечему утекать.

  • Привязка публикации к репозиторию, а значит к конкретному коду.

  • Простая настройка: GitHub подтверждает авторство и «подписывает» пакет.

Новые проверки при публикации

  • Проверка владельца пакета — публикация возможна только подтверждёнными участниками.

  • Верификация исходного кода — связь между исходниками и пакетом становится прозрачнее.

  • Логирование и аудит — теперь легче отследить, кто именно запустил публикацию и какой код был в основе.

Почему это важно каждому?

Может показаться, что изменения касаются только мейнтейнеров больших библиотек, но это не так.

  • Для разработчиков приложений: меньше шансов получить заражённый пакет.

  • Для авторов библиотек: не нужно хранить токены, которые могут украсть.

  • Для компаний: прозрачный процесс аудита и больше уверенности в безопасности цепочки поставок.

Сравнение старого и нового процесса публикации npm

Этап

Раньше (до trusted publishing)

Теперь (с trusted publishing)

Аутентификация

Секретные токены npm, хранение вручную или в CI.

Токены не нужны: GitHub Actions подтверждает авторство.

Безопасность

Высокий риск утечки токена.

Нет токенов — нечему утекать, публикация привязана к коду.

Прозрачность

Сложно связать релиз с кодом.

Автоматическая верификация: пакет связан с исходниками.

Аудит

Проверки вручную.

Подробные логи публикации.

Настройка

Ручное создание и хранение токенов.

Одноразовая настройка trusted publishing.

Схема процесса публикации с trusted publishing

flowchart TD
    A[Разработчик пушит код в GitHub] --> B[Запуск GitHub Actions workflow]
    B --> C[Сборка и тесты проекта]
    C --> D[GitHub подтверждает авторство и репозиторий]
    D --> E[Trusted Publishing: передача данных в npm]
    E --> F[npm получает пакет]
    F --> G[Верификация пакета и исходников]
    G --> H[Успешная публикация в npm Registry]
  

Что делать разработчикам прямо сейчас

  1. Проверьте репозиторий на GitHub и доступ к настройкам.

  2. Включите GitHub Actions, если ещё не используете CI/CD.

  3. Настройте trusted publishing в npm: свяжите пакет с репозиторием.

  4. Удалите старые токены, чтобы снизить риск утечек.

  5. Обновите документацию, указав, что публикация идёт через trusted publishing.

GitHub делает правильный шаг: уязвимости экосистемы нельзя решить только «ручной дисциплиной» разработчиков. Нужна автоматическая и встроенная защита. Trusted publishing и новые проверки — это не просто удобство, а фундаментальный сдвиг в сторону безопасной и доверенной экосистемы.

Кодик помогает новичкам и опытным разработчикам разбираться в современных инструментах и работать безопаснее.
Подписывайтесь на наш блог и Telegram-канал, чтобы быть в курсе новых технологий.

Комментарии