패키지 쿨다운(Cooldown) 도입, 공급망 공격 방어에 효과 있을까?

by DD
3개월 전
조회수 4

공급망 공격(Supply Chain Attack) 방어를 위해 패키지 매니저에 쿨다운(Cooldown) 기능 도입 논의가 활발함

JavaScript 생태계를 중심으로 쿨다운 기능이 빠르게 채택되고 있으며, 다양한 구현 방식 존재

쿨다운 도입이 악의적인 행위자에게 유리하게 작용할 수 있다는 반론도 제기됨

절대적/상대적 시간 표현 방식, CI/CD 환경에서의 시간대 문제 등 기술적 난제 존재

다양한 패키지 매니저의 쿨다운(Cooldown) 구현 현황

최근 1년 동안 패키지 매니저(Package Manager)에서 쿨다운 기능 도입이 빠르게 진행되고 있다. 특히 JavaScript 생태계에서 pnpm, Yarn, Bun 등이 쿨다운 기능을 지원하며, Python의 uv, npm, Deno 등도 쿨다운 기능을 추가했다. 쿨다운은 공급망 공격(Supply Chain Attack)을 방어하기 위한 핵심 기능으로, 패키지 배포 후 일정 기간 동안 설치를 지연시켜 악성 패키지 배포를 탐지할 시간을 확보한다.

쿨다운(Cooldown)의 기술적 구현 방식 및 문제점

쿨다운 기능은 절대적/상대적 시간 표현 방식을 지원하며, transitive dependencies(전이 의존성)를 포함하는지 여부에 따라 구현 방식이 달라진다. 절대적 시간(Absolute Timestamp)은 특정 시점을 기준으로 의존성을 고정하여 재현성을 보장하지만, 상대적 시간(Relative Duration)은 7일과 같이 유동적인 기간을 설정하여 최신 패키지를 제외하는 보안 기능을 제공한다. 또한, CI/CD 환경에서의 시간대 차이로 인한 문제와 ISO 8601 형식의 시간 표현에 대한 논의도 존재한다.

쿨다운(Cooldown) 도입에 대한 커뮤니티의 상반된 시각

커뮤니티에서는 쿨다운 도입이 공급망 공격(Supply Chain Attack) 방어에 도움이 될 수 있다는 긍정적인 의견과, 악의적인 행위자에게 오히려 유리하게 작용할 수 있다는 우려가 공존한다. 악성 패키지(Malicious Package) 배포 후 쿨다운 기간 동안 더 정교한 공격을 준비할 수 있다는 반론도 제기된다. 또한, 쿨다운 기간을 공개하는 것이 공격자에게 정보를 제공하는 꼴이 될 수 있다는 지적도 있다.

시스템 패키지 매니저와 언어별 패키지 매니저의 차이점

시스템 패키지 매니저(System Package Manager)는 배포 전에 수동 검토(Manual Review)를 거치므로 쿨다운 기능이 필요하지 않다. 반면, 언어별 패키지 매니저(Language Package Manager)는 배포와 동시에 설치가 가능하여 쿨다운을 통해 보안 취약점을 보완하려는 시도가 이루어진다. Debian과 같은 시스템은 여러 단계의 검토 과정을 거쳐 보안을 강화한다.

Package Managers Need to Cool Down