LiteLLM 버전 1.82.7 및 1.82.8에 자격 증명 탈취 악성코드 주입
월간 다운로드 수가 9천7백만 회에 달하는 인기 있는 LiteLLM Python 라이브러리의 두 가지 버전이 공급망 공격으로 침해되어 암호화폐 지갑 및 클라우드 자격 증명 도난 위험에 노출되었습니다. 3월 24일, TeamPCP로 알려진 위협 행위자가 Python Package Index (PyPI)에 악성 버전 1.82.7 및 1.82.8을 게시했습니다. 삽입된 악성코드는 SSH 키, Kubernetes 비밀 및 암호화폐 지갑용 개인 키를 포함하여 침해된 패키지가 설치된 모든 환경에서 민감한 데이터를 수집하도록 설계된 다단계 페이로드입니다.
두 번째 악성 버전인 1.82.8은 .pth 파일을 사용하여 더욱 공격적인 공격 벡터를 도입했습니다. 이 기술은 개발자의 코드에 의해 LiteLLM 라이브러리가 명시적으로 가져올 때까지 기다리지 않고 Python 인터프리터가 시작될 때마다 악성 코드가 자동으로 실행되도록 합니다. 이는 공격의 도달 범위와 감염된 시스템에서 지속될 수 있는 능력을 크게 확장합니다.
Trivy 스캐너를 통한 CI/CD 파이프라인 침해로 공격 가능
LiteLLM의 침해는 직접적인 공격이 아니라 개발 인프라에서 시작된 연쇄적인 실패였습니다. 공격자들은 먼저 LiteLLM의 지속적 통합/지속적 전달(CI/CD) 파이프라인에서 사용되는 오픈소스 취약점 스캐너 Trivy를 전복시켰습니다. 3월 19일과 3월 22일에 악성 Trivy 릴리스를 게시함으로써 TeamPCP는 구성 오류를 악용하여 LiteLLM 프로젝트에 대한 특권 액세스 토큰을 훔쳤습니다.
탈취한 자격 증명을 사용하여 공격자들은 백도어 처리된 LiteLLM 패키지를 PyPI에 직접 게시할 수 있었습니다. 보안 연구원들은 수집된 데이터가 암호화된 아카이브 형태로 공격자 제어 명령 및 제어 도메인인 models.litellm[.]cloud로 전송되고 있음을 발견했습니다. 또한, 새로운 명령 또는 페이로드를 위해 50분마다 별도의 도메인인 checkmarx[.]zone을 폴링하는 영구적인 백도어가 설치되었는데, 이는 장기적인 침투 전략을 나타냅니다.
TeamPCP, 추가 공격을 맹세하며 공급망 위험 고조
LiteLLM 사건은 TeamPCP가 주요 개발자 인프라를 표적으로 삼아 의도적으로 확대하고 있는 캠페인의 일부입니다. 이 그룹은 텔레그램 채널에서 이번 공격에 대한 책임을 공개적으로 인정하며, 인기 있는 도구를 계속 표적으로 삼아 혼란을 영속화할 의사를 밝혔습니다. 이로 인해 이번 사건은 단일 프로젝트 침해에서 오픈소스 소프트웨어 공급망에 대한 시스템적 위협으로 격상됩니다.
오픈소스 공급망이 스스로 붕괴되고 있습니다. Trivy가 침해되고 → LiteLLM이 침해되고 → 수만 개의 환경에서 자격 증명이 공격자의 손에 들어가고 → 이 자격 증명이 다음 침해로 이어집니다. 우리는 악순환에 갇혀 있습니다.
— Google 소유 Wiz의 위협 노출 책임자 Gal Nagli.
하나의 공격에서 도난당한 자격 증명이 다음 공격을 시작하는 데 사용되는 이러한 침해 주기는 상당한 눈덩이 효과를 만듭니다. Web3 공간의 투자자와 개발자들에게 이번 공격은 기본 개발 도구의 보안에 대한 신뢰를 훼손하고 오픈소스 생태계에 의존하는 프로젝트의 운영 위험을 증가시킵니다.