アルテム・ゴルビン:Pythonのバイナリホイールとサプライ... ノート

アルテム・ゴルビン:Pythonのバイナリホイールとサプライチェーン攻撃

Pythonは、遅い言語であるにもかかわらず、高速なパッケージで知られています。 最も高速なPythonパッケージは、C、C++、またはRustのようなコンパイル言語で書かれており、 Pythonは接着剤としてのみ機能します。Pythonユーザーは通常それに気づきさえしません。なぜなら、PyPI(Pythonのパッケージインデックス)は プリコンパイルされたバイナリを提供しているからです。 それらはホイールと呼ばれ、pip installを実行すると、ソース配布よりも優先されます。 例えば、私のパッケージの各リリースは最大90種類の異なるホイールを出荷します。 Pythonのバージョン、プラットフォーム、アーキテクチャの組み合わせごとに 個別のバイナリホイールが必要です。通常の配布にはソースコードのみが含まれています。Pythonホイールなしでは、配布ははるかに困難になります。ホイールが利用できない場合、 ユーザーはパッケージをインストールする際にコードをコンパイルする必要があります。 それには正しいコンパイラとシステム依存関係が必要です。PyPI上の悪意のあるパッケージをかなりの時間分析してきたので、これはホイールについて考えさせられました。[......]