Skip to content

pnpm minimumReleaseAge로 패키지 보안 강화하기

Published:

최근 npm 생태계에서 인기 패키지들이 악성 공격을 받는 사례들이 증가하고 있습니다. pnpm v10.16.0에서는 이러한 보안 위험을 줄이기 위해 minimumReleaseAge 설정을 도입했습니다.

minimumReleaseAge란?

minimumReleaseAge는 새로 배포된 패키지 버전이 설치되기 전에 반드시 대기해야 하는 시간을 설정하는 보안 옵션입니다. 대부분의 악성 패키지는 배포 후 짧은 시간 내에 발견되어 제거되기 때문에, 이 옵션을 통해 보안을 크게 향상시킬 수 있습니다.

기본 설정

설정 방법

pnpm-workspace.yaml 파일에 다음과 같이 설정할 수 있습니다:

# 1일(1440분) 이상 된 패키지만 설치
minimumReleaseAge: 1440

이 설정을 추가하면 pnpm은 패키지 배포 후 최소 1일이 지난 버전만 설치하게 됩니다.

예외 설정

특정 패키지는 항상 최신 버전을 바로 설치하고 싶다면 minimumReleaseAgeExclude를 사용할 수 있습니다:

minimumReleaseAge: 1440
minimumReleaseAgeExclude:
  - webpack
  - react

위 설정은 webpack과 react 패키지는 지연 없이 바로 설치하도록 합니다.

패턴 지원 (v10.17.0+)

v10.17.0부터는 minimumReleaseAgeExclude에서 와일드카드 패턴을 지원합니다. 특정 스코프의 모든 패키지를 예외 처리할 수 있습니다:

minimumReleaseAge: 1440
minimumReleaseAgeExclude:
  - "@eslint/*"

위 설정은 @eslint 스코프의 모든 패키지를 예외 처리합니다.

참고 문서