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