패키지 관리자 보안 사고 CVE-2024-YIKES 발생

원제: Incident Report: CVE-2024-YIKES

왜 중요한가

오픈소스 패키지 생태계의 복잡한 의존성 체인을 통한 공급망 공격의 심각성을 보여주는 사례

JavaScript 생태계에서 시작된 공급망 공격이 Rust 압축 라이브러리를 거쳐 Python 빌드 도구로 확산되어 약 400만 개발자에게 악성코드를 배포했다. 73시간 지속된 이 보안 사고는 우연히 암호화폐 마이닝 웜에 의해 해결되었다.

이번 사고는 left-justify 패키지(주당 8억 4천7백만 다운로드) 관리자의 개인정보 도난으로 시작되었다. 공격자는 피싱 사이트를 통해 npm 자격증명을 탈취한 후 악성 postinstall 스크립트를 포함한 패키지를 배포했다. 이 스크립트는 개발자들의 .npmrc, .pypirc 등 주요 자격증명 파일을 외부 서버로 유출시켰다. 유출된 자격증명을 통해 공격자는 Rust 압축 라이브러리 vulpine-lz4에 악성 빌드 스크립트를 삽입했다. 이 라이브러리는 GitHub에서 12개 스타만 받았지만 cargo의 의존성으로 사용되고 있었다. 악성코드는 최종적으로 PyPI 패키지 60%가 사용하는 Python 빌드 도구 snekpack으로 확산되어 전 세계 개발자 머신에 SSH 키를 추가하고 백도어를 설치했다. 보안 연구원들이 문제를 제기했지만 관리자들의 부재로 신속한 대응이 이루어지지 않았다.

출처

nesbitt.io — 원문 읽기 →