블로그: 2025년 PyPI: 연간 리뷰
Source: Hacker News
Tags
2025년이 마무리됨에 따라, 파이썬 패키지 인덱스(Python Package Index)의 또 다른 바쁜 한 해를 되돌아볼 시간입니다. 올해 우리는 다음에 집중했습니다:
- 중요한 보안 강화 제공
- 조직을 위한 강력한 새로운 기능 출시
- 매일 PyPI에 의존하는 수백만 개발자를 위한 전반적인 사용자 경험 개선
- 여러 보안 사고에 투명하게 대응
숫자로 보는 현황
- 3.9 million 새로운 파일이 게시됨
- 130,000 새로운 프로젝트가 생성됨
- 1.92 exabytes 총 데이터 전송량
- 2.56 trillion 총 요청 처리 건수
- 81,000 초당 평균 요청 수
이 수치들은 파이썬 커뮤니티의 지속적인 성장과 활력을 보여줍니다.
보안은 언제나 최우선
보안은 우리의 최우선 과제이며, 2025년에 우리는 PyPI를 그 어느 때보다 안전하게 만드는 여러 기능을 출시했습니다.
피싱 저항성을 위한 향상된 2단계 인증(2FA)
우리는 **TOTP 기반 로그인에 대한 이메일 검증**을 시작으로 2FA 구현을 개선했습니다. 이는 피싱에 취약한 2FA 방식(TOTP 등)을 사용할 때 신뢰할 수 있는 장치에서 로그인을 확인하도록 요구함으로써 추가적인 보호 계층을 제공합니다.
이러한 변경을 적용한 이후 확인된 결과:
- **52 %**의 활성 사용자가 피싱에 취약하지 않은 2FA를 사용 중
- **45 000+**개의 고유 검증 로그인
신뢰할 수 있는 퍼블리싱 및 증명(Attestations)
**신뢰할 수 있는 퍼블리싱**은 우리의 보안 전략의 핵심 요소입니다. 올해 우리는 GitLab Self‑Managed 인스턴스 지원을 확대하여 유지 관리자가 장기 API 토큰 없이도 릴리스를 자동화할 수 있게 했습니다. 또한 조직을 위한 맞춤형 OIDC 발급자를 추가해 기업이 퍼블리싱 파이프라인을 더 많이 제어할 수 있게 했습니다.
신뢰할 수 있는 퍼블리싱 채택 현황은 다음과 같습니다:
- 50 000+ 프로젝트가 현재 신뢰할 수 있는 퍼블리싱을 사용 중
- 지난 1년 동안 PyPI에 업로드된 모든 파일 중 **20 %+**가 신뢰할 수 있는 퍼블리셔를 통해 수행됨
우리는 또한 증명(Attestations) 작업에 매진해 왔으며, 이는 퍼블리셔가 자신의 소프트웨어에 대해 검증 가능한 주장을 할 수 있게 하는 기능입니다. 증명은 이제 모든 신뢰할 수 있는 퍼블리싱 제공자가 지원하며, 커뮤니티는 이를 활용해 소프트웨어 공급망을 강화하고 있습니다.
- 지난 1년 동안 PyPI에 업로드된 모든 파일 중 **17 %**에 증명이 포함됨
사전 예방 보안 조치
사용자에게 직접 제공되는 기능 외에도 레지스트리를 공격으로부터 보호하기 위해 여러 사전 예방 조치를 구현했습니다:
- 피싱 방지: PyPI는 이제 신뢰할 수 없는 도메인을 감지하고 사용자에게 경고합니다 – 자세한 내용은 블로그 게시물을 참고하세요.
- ZIP 파일 보안 강화: 업로드 파이프라인이 악성 ZIP 파일과 관련된 공격을 방지하도록 강화되었습니다 – 자세한 내용은 여기를 읽어보세요.
- 오타 스쿼팅 감지: 프로젝트 생성 시 PyPI가 자동으로 잠재적인 오타 스쿼팅 시도를 감지하고 표시합니다.
- 도메인 부활 방지: 만료된 도메인을 주기적으로 확인하여 도메인 부활 공격을 방지합니다 – 자세한 내용은 공지사항을 확인하세요.
- 스팸 방지: 특정 악용 도메인에서의 등록을 금지하는 등 스팸 캠페인에 대응했습니다 – 자세한 내용은 게시물을 참고하세요.
투명성 및 사고 대응
올해 우리는 PyPI에 영향을 미치는 보안 사고에 대해 투명하고 시기적절한 정보를 제공하는 데 집중했습니다. 다음과 같은 여러 사건에 대한 상세 사고 보고서를 발표했습니다:
- 조직 팀에서 권한이 지속되는 경우 – 보고서 읽기
- PyPI 사용자를 대상으로 한 광범위한 피싱 공격 – 보고서 읽기
- GitHub Actions 워크플로를 통한 토큰 유출 캠페인 – 보고서 읽기
- npm 생태계에 대한 “Shai‑Hulud” 공격의 잠재적 영향 – 보고서 읽기
우리는 투명성이 커뮤니티와의 신뢰를 구축하고 유지하는 핵심이라고 믿으며, 필요에 따라 이러한 보고서를 계속 제공할 것입니다.
안전 및 지원 요청
올해, 우리 안전 & 지원 팀과 관리자들은 사용자 요청을 처리하고 악성코드와 싸우며 생태계를 건강하게 유지하기 위해 열심히 노력했습니다. 지원 문의 처리와 악성코드 대응 개선에서 큰 진전을 이루었다는 것을 자랑스럽게 보고합니다.
악성코드 대응
- 2,000개 이상의 악성코드 보고를 처리했습니다 – 이는 우리 커뮤니티의 경계심과 관리자들의 헌신을 보여줍니다.
- 목표: PyPI에서 악성코드를 제거하는 데 걸리는 시간을 줄이는 것. 최근 성과:
- **66 %**의 보고가 4시간 이내에 처리되었습니다.
- **92 %**가 24시간 이내에 처리되었습니다.
- 복잡한 경우는 소수만이 최대 4일이 걸렸습니다.
지원 요청
- 2,221개의 개별 계정 복구 요청을 해결했습니다.
- 500개 이상의 프로젝트 이름 보유 요청(PEP 541)을 처리했습니다.
- 평균 최초 검토 시간: 1주일 미만.
- 이는 이전 9개월 적체에 비해 크게 개선된 것으로, 현재는 12월 기준으로 최신 상태입니다.
조직 성장
이전 몇 년 동안 가장 큰 발표 중 하나는 PyPI에서 조직의 일반 제공이었습니다. 조직은 기업과 커뮤니티 프로젝트에 패키지, 팀, 청구를 중앙에서 관리할 수 있는 장소를 제공합니다.
최근 채택 현황
- 7,742개의 조직이 PyPI에 생성되었습니다
- 9,059개의 프로젝트가 현재 조직에 의해 관리되고 있습니다
새로운 기능
우리는 조직에 다음과 같은 기능을 추가하기 위해 열심히 작업해 왔습니다:
- 팀 관리
- 프로젝트 이전
- 포괄적인 관리자 인터페이스
조직이 이러한 기능을 활용해 PyPI를 보다 효과적으로 사용하게 될 날을 기대합니다.
모두를 위한 더 나은 PyPI
우리는 PyPI에서 유지 관리자의 전반적인 경험을 향상시키기 위해 여러 개선 사항을 도입했습니다.
- 프로젝트 수명 주기 관리 – 이제 프로젝트를 아카이브하여 더 이상 적극적으로 유지 관리되지 않음을 표시할 수 있습니다. 이는 PEP 792에서 제안된 프로젝트‑상태 마커를 표준화하려는 더 큰 노력의 일부입니다.
- 새로운 서비스 약관 – 새로운 서비스 약관은 우리의 정책을 공식화하고 조직과 같은 새로운 기능을 가능하게 합니다.
2026년을 바라보며
우리는 2025년에 이룬 진전에 자부심을 느끼지만, 항상 할 일이 더 있다는 것을 알고 있습니다. 2026년에는 전체 파이썬 커뮤니티를 위해 PyPI의 보안, 안정성, 그리고 사용성을 지속적으로 개선하는 데 집중할 것입니다.
Acknowledgements
PyPI의 규모와 신뢰성을 가능하게 해 주시는 스폰서 여러분께 깊은 감사를 드리며, 핵심 인프라 기부자 Fastly에게 특별히 감사의 인사를 전합니다.
Individual contributors
올해 큰 기여를 해 주신 다음 분들께 특별히 감사드립니다:
- William Woodruff
- Facundo Tuesca
- Seth Michael Larson
신뢰할 수 있는 퍼블리싱, 인증, 프로젝트 보관, zip‑파일 완화 및 기타 보안 기능에 대한 여러분의 작업은 매우 귀중했습니다.
The community
우리 커뮤니티가 기여한 수많은 시간 없이는 PyPI가 오늘날의 모습을 가질 수 없었습니다. 다음과 같은 활동을 해 주신 모든 분들께 감사드립니다:
- 코드 제출
- 이슈 개설
- 피드백 제공
- 문서 개선
여러분의 노력 덕분에 PyPI가 계속 성장하고 있습니다.
멋진 2026이 되길 바랍니다!
— Dustin Ingram, PyPI 팀을 대신하여