GitHub и PyPI вводят «выдержку по времени» против атак на цепочку поставок

· Безопасность
Dependabot теперь по умолчанию выжидает три дня перед обновлением зависимостей, а PyPI запрещает добавлять файлы в релизы старше двух недель. Обе меры призваны сузить окно, в котором вредоносный код успевает попасть в проекты.

cover.svg

GitHub и репозиторий пакетов Python PyPI внедрили механизмы, основанные на временной задержке, чтобы затруднить атаки на цепочку поставок и ограничить их последствия. Ключевая идея проста: если между публикацией пакета и его автоматическим внедрением проходит некоторое время, у защитников появляется шанс заметить и обезвредить вредонос до того, как он разойдётся по проектам.

Меры появились не на пустом месте. За минувший год оба экосистемы пережили череду громких инцидентов — атаки на пакеты chalk и debug, операцию «s1ngularity», кампанию Shai-Hulud и историю с GhostAction. В прошлом месяце GitHub уже анонсировал изменения в безопасности npm, и нынешние нововведения продолжают тот же курс на ужесточение.

Пауза в Dependabot

Dependabot — сервис GitHub, который отслеживает выход новых версий пакетов и сам открывает pull request с предложением обновиться. Теперь по умолчанию он выжидает 72 часа, прежде чем предложить свежую версию. Смысл в том, что вредоносные npm-пакеты нередко выявляются защитными инструментами уже через минуты после публикации, но быстрое обнаружение само по себе не спасает: пакет ещё нужно удалить из репозитория, а пока этого не произошло, разработчики продолжают его тянуть к себе.

Три дня в GitHub называют компромиссом между осторожностью и желанием не отставать от обновлений. Значение настраиваемое: через параметр cooldown задержку можно сократить или увеличить. При этом в компании честно оговариваются, что от долгосрочной компрометации пауза не защищает, и советуют дополнительно использовать lockfile для фиксации версий, токены с ограниченными правами и отключение лишних установочных скриптов в CI.

PyPI закрывает старые релизы

PyPI пошёл другим путём и теперь запрещает добавлять новые файлы в релиз, если с момента его публикации прошло больше 14 дней. Так площадка страхуется от сценария, при котором злоумышленник, завладевший токеном публикации или рабочим процессом, «отравляет» старый, уже завоевавший доверие релиз, подсовывая в него вредоносные файлы. По статистике PyPI, легально дополнять релиз спустя две недели после публикации требуется лишь ничтожной доле проектов.

Любопытно, что подтверждённых атак именно этого типа на PyPI пока не зафиксировано — площадка действует на опережение, перекрывая опасную возможность прежде, чем ею кто-то воспользуется.


Источник: Bleeping Computer

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.