
데브옵스
소프트웨어 공급망 공격, pnpm으로 1차 방어선 구축하기
두줄요약
Axios 사례로 npm lifecycle script 기반 공급망 공격 흐름을 분석했습니다. pnpm 11 설정과 패키지 매니저 통합으로 설치 시점 방어선을 구축했습니다.
문제 상황
- Axios 간접 의존성에 주입된 악성 패키지와
postinstall스크립트를 통한 설치 시점 자격증명 탈취 위험 - 패키지 매니저 혼용으로 저장소별 공급망 보안 정책의 일관된 적용 곤란
구조와 흐름
- 탈취된 npm 계정으로 악성 의존성 배포 후
npm install과정에서 드로퍼 자동 실행 - 드로퍼의 환경 탐지,
.env·AWS·SSH 자격증명 수집, C2 전송, 패키지 메타데이터 위장 흐름 - pnpm 11의 배포 지연, 빌드 스크립트 차단, 비표준 간접 의존성 차단, 신뢰 수준 하락 차단
해결 방법
- 모든 Node.js 백엔드 저장소의 패키지 매니저를 pnpm으로 통합
minimumReleaseAge,minimumReleaseAgeStrict로 신규 배포 버전의 Cool-Down 적용strictDepBuilds와 최소화한allowBuilds화이트리스트로 lifecycle scripts 실행 통제
주의할 점
dangerouslyAllowAllBuilds: true설정으로 빌드 스크립트를 일괄 허용하지 않는 원칙- pnpm 메이저 버전의 단계적 업데이트와 단계별 설치·테스트 검증
- 설치 시점 방어만으로 import·런타임 시점의 악성 코드 대응 불가

