Dependency Confusion이란?
많은 조직이 내부 전용 패키지(예: @company/utils)를 쓴다. 이 이름을 공격자가 공개 npm에 먼저 등록하고 더 높은 버전을 올리면 빌드 시 그쪽이 설치된다.
2021년 사태
Alex Birsan이 PoC로 Apple·Microsoft·PayPal 등 35개 기업 내부 시스템에 코드 실행 성공. 포상금 13만 달러+.
방어
- Scope 예약 —
@company/*를 공개 npm에 선점 - 프라이빗 레지스트리 전용 scope 설정
- 내부·외부 패키지 화이트리스트 분리
.npmrc의 scope별 registry 매핑