Долгоживущие ключи доступа годами упрощали публикацию программных пакетов, но одновременно давали злоумышленникам слишком много времени на атаку. По данным Microsoft, начиная с 17 августа 2026 года NuGet.org сократит максимальный срок действия новых API-ключей с 365 до 30 дней.
Все ключи, созданные до этой даты, перестанут работать 1 ноября 2026 года. Разработчикам придётся обновить системы автоматической сборки и публикации, иначе после истечения ключей новые версии пакетов не попадут в репозиторий.
API-ключ фактически служит паролем для загрузки пакетов. Разработчики часто хранят такие данные в настройках сборки, секретах репозитория или других системах. При утечке долгоживущий ключ позволяет месяцами публиковать поддельные или вредоносные обновления от имени владельца проекта.
Команда .NET напомнила о недавнем взломе пакета NX Console для NPM. Злоумышленник получил учётные данные и выпустил вредоносную версию, которую активировали 6000 раз за 36 минут до удаления. Сокращённый срок действия не предотвращает кражу ключа, но уменьшает время для его использования.
Вместо постоянных секретов NuGet предлагает Trusted Publishing. Механизм использует OpenID Connect и выдаёт временный ключ только на одну операцию публикации. NuGet.org проверяет репозиторий, сценарий сборки и заданное окружение, после чего автоматически аннулирует доступ.
Разработчикам, которые пока сохранят API-ключи, рекомендуют проверить все процессы публикации, настроить смену ключей каждые 30 дней и ограничить права минимально необходимыми пакетами. Ключи нельзя хранить в исходном коде и журналах, а скомпрометированные данные следует немедленно удалять.