피드로 돌아가기
Why npm supply chain attacks keep happening and how to harden your installs
Dev.toDev.to
Security

ignore-scripts 설정을 통한 npm Supply Chain 공격 경로 원천 차단

Why npm supply chain attacks keep happening and how to harden your installs

Alan West2026년 5월 17일5intermediate

Context

기본 npm install 설정 시 전이 의존성(Transitive Dependencies)을 통해 임의 코드가 실행되는 보안 취약점 존재. 패키지 유지 관리자의 계정 탈취나 Typosquatting 공격 시 설치 단계에서 즉각적인 페이로드 실행이 가능한 구조적 한계 분석.

Technical Solution

  • .npmrcignore-scripts = true 설정을 통한 preinstall, install, postinstall 스크립트 실행 권한 제거
  • npm ci 명령어를 활용해 package-lock.json 기반의 엄격한 버전 일치 및 Silent Version-drift 방지
  • npm rebuild를 통한 신뢰 가능한 Native Dependency의 선택적 빌드 프로세스 구축
  • Sigstore 기반의 Provenance Attestation 검증을 통한 패키지 빌드 출처 및 무결성 확인
  • Exact Version Pinning을 적용하여 의존성 업데이트로 인한 런타임 예측 불가능성 제거

- 프로젝트 .npmrc 파일에 ignore-scripts=true 설정 적용 - CI/CD 파이프라인 내 npm install 대신 npm ci 사용 - package.json 내 ^, ~ 기호를 제거한 정밀 버전 고정(Pinning) 검토 - PR 리뷰 시 package.json이 아닌 package-lock.json의 변경 내역 분석 - 중요 패키리에 대해 npm view를 이용한 Provenance 확인

원문 읽기