Artem Golubin:Python 的二进制包与供应链攻击
尽管 Python 是一种慢速语言,但其包却以快速著称。最快的 Python 包是用编译型语言(如 C、C++ 或 Rust)编写的,而 Python 仅作为胶水语言使用。Python 用户通常甚至察觉不到这一点,因为 PyPI(Python 的包索引)提供了预编译的二进制文件。它们被称为 wheel,当你运行 pip install 时,它会优先选择 wheel 而非源分发版。例如,我每个版本的包都会提供多达 90 种不同的 wheel。你需要为每种 Python 版本、平台和架构的组合提供单独的二进制 wheel。常规的分发版仅包含源代码。如果没有 Python wheel,分发将会困难得多。当 wheel 不可用时,用户在安装包时必须编译代码。这需要正确的编译器和系统依赖项。由于我花了相当长的时间分析 PyPI 上的恶意包,这让我开始思考 wheel……