Planet Python на русском
Подписаться
Бретт Кэннон: Чего не хватает для воспроизводимых сборок на PyPI
Автор подчеркивает отсутствие четкого метода для воспроизводимых сборок в упаковке Python. Воспроизводимые сборки имеют решающее значение для безопасности цепочки поставок, позволяя третьим сторонам проверять соответствие содержимого дистрибутива исходному коду. Этот процесс может обнаружить подделку во время сборки и выявить использование скомпрометированных инструментов. Даже чисто питоновские колеса уязвимы, если их бэкенды сборки скомпрометированы.Для достижения воспроизводимых сборок необходимы два ключевых элемента информации: местоположение исходного кода и программное обеспечение, используемое в процессе сборки. В настоящее время местоположение исходного кода явно не записывается в sdists или колесах, хотя установщики иногда записывают его. Предлагается механизм для включения информации о местоположении источника в метаданные дистрибутива.Для записи программного обеспечения сборки колеса могут использовать списки материалов программного обеспечения (SBOM), но sdists не имеют аналогичного структурированного формата, что требует потенциально новой версии sdist. Автор предполагает, что бэкенды сборки могут записывать свою среду выполнения, а сопровождающие pip могут помочь в логировании этой информации, не обременяя производителей дистрибутивов.Чтобы сделать воспроизводимость видимой и полезной, предлагается идея доверенных верификаторов, которые независимо воспроизводят дистрибутивы и сообщают об успехе в PyPI. Это позволит пользователям идентифицировать проверенные дистрибутивы и получить выгоду от более безопасной цепочки поставок. Эта функция должна быть представлена как необязательное преимущество, а не обязательное требование, чтобы не отпугивать пользователей.