Brett Cannon: PyPI で再現可能なビルドを実... ノート

Brett Cannon: PyPI で再現可能なビルドを実現するために欠けているものは何か

著者は、Pythonパッケージングにおける再現可能なビルドのための明確な方法の欠如を強調しています。再現可能なビルドは、サプライチェーンセキュリティにとって極めて重要であり、第三者が配布物の内容がソースコードと一致することを確認できるようにします。このプロセスは、ビルド中の改ざんを検出し、侵害されたツールの使用を特定することができます。純粋なPythonホイールであっても、ビルドバックエンドが侵害されている場合は脆弱です。再現可能なビルドを実現するには、ソースコードの場所とビルドプロセスで使用されるソフトウェアという2つの重要な情報が必要です。現在、ソースコードの場所はsdistsやホイールに明示的に記録されていませんが、インストーラーが記録する場合もあります。配布メタデータにソースの場所情報を含めるメカニズムが提案されています。ビルドソフトウェアの記録のために、ホイールはSBOM(Software Bill of Materials)を利用できますが、sdistsには同様の構造化された形式がないため、新しいsdistバージョンの必要性が生じます。著者は、ビルドバックエンドが実行環境を記録し、pipメンテナーが配布物の作成者に負担をかけずにこの情報を記録するのを支援できると提案しています。再現性を可視化し、有益にするために、信頼できる検証者が独立して配布物を再現し、PyPIに成功を報告するというアイデアが提案されています。これにより、ユーザーは検証済みの配布物を特定し、より安全なサプライチェーンの恩恵を受けることができます。この機能は、ユーザーを落胆させないように、必須要件ではなく、オプションの特典として提示されるべきです。