아르템 골루빈: 파이썬의 바이너리 휠과 공급망 공격 노트

아르템 골루빈: 파이썬의 바이너리 휠과 공급망 공격

Python은 느린 언어임에도 불구하고 빠른 패키지로 알려져 있습니다. 가장 빠른 Python 패키지는 C, C++, 또는 Rust와 같은 컴파일 언어로 작성되며, Python은 단지 접착제 역할만 합니다.Python 사용자들은 보통 이를 알아차리지 못하는데, PyPI(Python의 패키지 인덱스)가 사전 컴파일된 바이너리를 제공하기 때문입니다. 이것들을 휠(wheels)이라고 부르며, pip install을 실행할 때 소스 배포판보다 이를 선호합니다. 예를 들어, 제 패키지의 각 릴리스는 최대 90개의 다른 휠을 배송합니다. Python 버전, 플랫폼, 아키텍처 조합마다 별도의 바이너리 휠이 필요합니다. 일반 배포판에는 소스 코드만 포함됩니다.Python 휠이 없다면 배포는 훨씬 더 어려워질 것입니다. 휠을 사용할 수 없을 때, 사용자는 패키지를 설치할 때 코드를 컴파일해야 합니다. 이는 올바른 컴파일러와 시스템 종속성을 요구합니다.PyPI에서 악성 패키지를 분석하는 데 상당한 시간을 보냈기 때문에, 이는 휠에 대해 생각하게 만들었습니다.[......]