피드로 돌아가기
One npm Account Publishes 964 Million Downloads Per Week. None Have Provenance.
Dev.toDev.to
Security

주당 9.6억 회 다운로드 패키지의 Provenance 부재로 인한 공급망 보안 리스크

One npm Account Publishes 964 Million Downloads Per Week. None Have Provenance.

Pico2026년 6월 18일2intermediate

Context

단일 npm 계정이 postcss, nanoid 등 핵심 패키지 7종을 통합 관리하며 주당 9.6억 회의 설치 규모를 기록함. Long-lived token 기반의 인증 구조로 인해 계정 탈취 시 전체 생태계로 공격이 전이되는 거대한 Blast Radius 발생.

Technical Solution

  • GitHub Actions OIDC 기반의 npm provenance 도입을 통한 신원 증명 체계 구축
  • 고정된 Secret Token 제거를 통해 유출 경로를 원천 차단하는 Zero-secret 아키텍처 구현
  • 특정 커밋과 리포지토리를 연결하는 SLSA provenance attestation 적용으로 코드 무결성 검증
  • Environment gates 및 SHA-pinned actions 설정을 통한 배포 파이프라인의 신뢰성 강화
  • npm publish 단계에 provenance: true 옵션을 추가하여 단순 설정만으로 인증 경로를 전환하는 구조적 개선

Impact

  • 단일 계정 제어 패키지 7종의 주당 총 다운로드 964,000,000회에 달하는 공격 표면(Attack Surface) 위험 노출 확인
  • 과거 유사 사례인 fast-xml-parser(주당 88M 다운로드)의 경우 1주일 이내에 SLSA 인증 체계 구축 완료

Key Takeaway

신뢰할 수 없는 개별 환경의 Token 관리보다 인프라 수준의 IdP(Identity Provider)를 통한 일시적 인증 체계 구축이 공급망 보안의 핵심임.


- 프로젝트 내 주당 10M 다운로드 이상의 단일 발행자 의존성 집중도 분석 - CI/CD 파이프라인 내 Long-lived token 제거 및 OIDC 기반 인증 전환 검토 - npm publish 설정에 provenance: true 적용 여부 확인 - 외부 Action 사용 시 SHA 핀닝을 통한 버전 고정 적용

원문 읽기