



Ruby введёт «период ожидания» перед установкой новых пакетов
Разработчики RubyGems заявили, что большинство атак на цепочку поставок использует узкий временной промежуток после взлома учётной записи, чтобы опубликовать вредоносный пакет. В связи с этим Bundler 4.0.13 вводит фильтр cooldown для новых пакетов, чтобы ограничить их инсталляции в течение нескольких дней после публикации.
Функция является необязательной и дополняет, а не заменяет существующие средства защиты, такие как обязательная двухфакторная аутентификация и доверенная публикация.
Cooldown считывает временную метку created_at для каждой версии, которую теперь предоставляет индекс v2 на rubygems.org. Версия, источник которой не раскрывает created_at, например, старые серверы гемов, исторические записи до перехода на v2 или частные реестры, всё ещё использующие формат v1, рассматривается как находящаяся за пределами временного окна и остаётся доступной.
Cooldown входит в состав Bundler 4.0.13. Тем, кто использует более раннюю версию, нужно обновить её и зафиксировать в файле блокировки, чтобы всё работало согласованно:
Затем требуется установить небольшое ограничение по времени для исходного кода в Gemfile. Это правильная настройка для большинства команд: она фиксируется вместе с кодом, поэтому каждый разработчик и запуск CI обеспечивают один и тот же временной интервал без дополнительной настройки.
Поскольку Cooldown не установлен по умолчанию, проект без него продолжает разрешать самые новые версии.
Помимо ключевого слова per-source, параметр cooldown применяет одно значение ко всем источникам, в рамках проекта, глобально или через окружение:
Для одноразового запуска нужно ввести --cooldown для install, update, add или outdated:
Если присутствует более одного из этих параметров, они разрешаются в фиксированном порядке
Читать на habr.com