pip v26.1, 악성코드 방어 위한 '상대적 쿨다운' 도입!
pip v26.1에서 상대적 종속성 쿨다운(Relative Dependency Cooldowns) 기능이 추가되어 패키지 설치 시 보안을 강화함
`uploaded-prior-to` 옵션을 통해 PyPI에 업로드된 지 일정 기간 지난 패키지만 설치 가능
악성코드 탐지 및 제거 시간을 고려하여 안전한 패키지 설치(Safe Package Installation)를 지원함
취약점 패치(Vulnerability Patch)를 우선시하는 종속성 관리 전략과 함께 사용 권장
상대적 종속성 쿨다운(Relative Dependency Cooldowns)의 작동 원리
pip v26.1에 도입된 상대적 종속성 쿨다운 기능은 PyPI에 업로드된 패키지의 릴리스 시점을 기준으로 일정 기간이 지난 패키지만 설치하도록 설정한다. 이는 악성코드가 PyPI에 업로드된 후 탐지 및 제거되기까지의 시간을 고려한 것으로, `~/.config/pip/pip.conf` 파일 또는 CLI 옵션을 통해 설정할 수 있다. 특히, `PND` 형식을 사용하여 며칠(N) 단위로 쿨다운 기간을 지정할 수 있다.
보안 강화 및 공급망 공격 방어
이 기능은 PyPI와 같은 공용 인덱스에서 발생하는 공급망 공격(Supply Chain Attacks)으로부터 사용자를 보호하는 데 기여한다. 대부분의 악성코드는 업로드 후 몇 시간 내에 탐지 및 제거되므로, 쿨다운 기간을 설정하면 악성 패키지 설치 위험을 줄일 수 있다. 데이터 미저장 정책(Zero-Retention Policy)을 통해 보안을 강화하는 것과 유사한 맥락으로 이해할 수 있다.
종속성 관리 전략의 중요성
상대적 종속성 쿨다운은 취약점(Vulnerability)을 해결하는 패키지 릴리스를 우선시하는 종속성 관리 전략과 함께 사용해야 한다. 쿨다운 기간 동안 서비스가 취약한 상태로 유지되지 않도록, 취약점 패치(Vulnerability Patch)를 신속하게 적용하고, 종속성을 주기적으로 검토하는 것이 중요하다. 이는 보안과 안정성을 모두 확보하기 위한 필수적인 접근 방식이다.
설정 방법 및 사용 팁
상대적 종속성 쿨다운은 `~/.config/pip/pip.conf` 파일에 `uploaded-prior-to = P7D`와 같이 설정하거나, CLI 옵션 `--uploaded-prior-to=P7D`를 사용하여 적용할 수 있다. 이 설정을 통해 pip install 명령을 실행할 때마다 옵션을 지정할 필요 없이, 일관된 보안 정책을 유지할 수 있다. 또한, Andrew Nesbitt의 종속성 쿨다운 관련 연구를 참고하여 더 자세한 정보를 얻을 수 있다.