반응형

최근 공급망 공격이 핫하다. 사용자의 프로그램을 타켓 삼는 것보다 중간 라이브러리를 타켓 삼는 데 성공한다면 해당 라이브러리를 사용하는 불특정 다수 모두가 타겟이 되기 때문이다. 물론 대형 패키지일수록 파급력이 크지만 그만큼 감시하는 눈이 많아 들키기도 쉽다. 최근 벌어진 공급망 공격들도 모두 수 시간 이내로 진압이 되었다.

하지만 그 수 시간 사이에 재수 없게 내가 걸릴 수도 있다. (특히 나는 주기적으로 패키지 업데이트를 실행한다..) 내가 직접 설치하지 않더라도 다른 패키지가 공격당한 패키지를 의존하는 바람에 쥐도 새도 모르게 당할 수 있다. 이를 방어하는 방법은 의외로 매우 단순하다. 배포된 지 얼마 되지 않은 패키지는 거르는 것. 여러 패키지 매니저가 관련 설정을 지원한다.

해당 설정을 정리해 둔다. 나는 기준을 3일로 잡았다. 패키지 매니저마다 시간 단위가 다름에 유의할 것

npm

# 전역
npm config set min-release-age=3
# 프로젝트
npm config set min-release-age=3 --location=project

단위는 일이다.

pnpm

# 전역
pnpm config set minimumReleaseAge 4320
# 프로젝트
pnpm config set minimumReleaseAge 4320 --location=project

단위는 분이다.

yarn

# 전역
yarn config set npmMinimalAgeGate 3d -H
# 프로젝트
yarn config set npmMinimalAgeGate 3d

bun

[install]
minimumReleaseAge = 259200

단위는 초이고, 따로 설정하는 명령어는 없다. 프로젝트별로 루트에 bunfig.toml 파일을 만들거나 전역으로 설정하고 싶다면 홈 디렉토리에 .bunfig.toml 파일을 만들면 된다.

deno

{
  "minimumDependencyAge": "4320"
}

단위는 분이고, 따로 설정하는 명령어는 없다. 프로젝트별로 루트에 deno.json 파일을 만들면 된다.

반응형

+ Recent posts