NuGet.org намерена сократить срок действия новых API-ключей до 30 дней начиная с 17 августа 2026 года. По словам Microsoft, этот шаг направлен на снижение рисков кражи учётных данных и повышение безопасности цепочки поставок программных пакетов. Платформа также отменит возможность создавать новые ключи сроком на 365 дней, а срок действия всех ключей, созданных до 17 августа, истечёт 1 ноября 2026 года.
Microsoft просит всех, кто публикует пакеты на NuGet.org, пересмотреть текущие механизмы публикации до начала применения изменения, особенно с учётом того, что API-ключ фактически используется как пароль, разрешающий публикацию пакетов. Если долгосрочный ключ хранится в секрете внутри репозитория, копируется между несколькими системами или включён в настройки сборки, его раскрытие может предоставить злоумышленнику длительный период для публикации несанкционированных версий.
План сокращения срока действия ключей
План состоит из двух чётких этапов:
- 17 августа 2026 года: максимальный срок действия новых ключей будет ограничен 30 днями, а возможность выбрать срок 365 дней будет отключена.
- 1 ноября 2026 года: истечёт срок действия всех ключей, созданных до 17 августа 2026 года.
Microsoft поясняет, что сокращение срока действия само по себе не делает API-ключи безопасными, но уменьшает период, в течение которого можно использовать утерянный или раскрытый ключ. Компания сослалась на инцидент взлома пакета NX console с использованием украденных учётных данных: был опубликован вредоносный пакет NX Console, который, согласно команде NX, активировали 6000 раз за 36 минут до его удаления.
Рекомендация перейти на Trusted Publishing
Microsoft рекомендует использовать Trusted Publishing — механизм публикации, запущенный в сентябре 2025 года, который позволяет рабочему процессу CI/CD проходить аутентификацию в NuGet.org через OpenID Connect (OIDC). Рабочий процесс предоставляет подписанный и краткоживущий токен идентификации, NuGet.org проверяет его согласно политике, заданной владельцем пакета, а затем выпускает временный API-ключ только для операции публикации.
В отличие от получения долгосрочного ключа из хранилища секретов, этот механизм не требует хранить долгосрочный секрет публикации в репозитории или системе CI/CD, а также создаёт краткоживущие учётные данные и автоматически прекращает их действие. Политика включает проверку личности рабочей нагрузки, связанной с репозиторием и рабочим процессом, с возможностью добавить необязательную среду. Механизм также не требует пользовательских секретов или их ручной ротации и ограничивает последствия раскрытия учётных данных.
Действия, необходимые издателям пакетов
Издателям следует учесть все операции публикации в NuGet.org, определить ключи, созданные до 17 августа 2026 года, а также обновить автоматизацию для безопасной работы с ключами с более коротким сроком действия и их ротации. Рекомендации также включают использование минимально необходимой области действия для пакетов и разрешений, запрет на размещение API-ключа в репозитории с исходным кодом или журналах, немедленное удаление любого утерянного или раскрытого ключа и проверку того, что уведомления об истечении срока действия поступают в контролируемую учётную запись.
Microsoft призывает пользователей GitHub Actions и GitLab начать переход на Trusted Publishing. Пользователям других сред публикации следует убедиться, что их рабочие процессы могут использовать ключи, срок действия которых истекает через 30 дней, и подготовиться к истечению срока действия старых ключей 1 ноября. Публикация через интерфейс NuGet.org по-прежнему доступна для ручных сценариев. Компания также заявила, что будет сообщать сообществу об обновлениях при добавлении поддержки других сред CI/CD, отметив, что срок действия API-ключей в будущем может быть сокращен ещё сильнее.