LiteLLM 패키지, 공급망 공격으로 인한 보안 사고 발생

by DD
2개월 전
조회수 14

LiteLLM 1.82.8 버전의 PyPI 패키지가 공급망 공격에 노출되어, 악성 코드가 포함된 .pth 파일이 실행됨

공격자는 환경 변수, SSH 키, 클라우드 자격 증명 등 민감 정보 탈취를 시도했으며, 데이터는 암호화되어 외부 서버로 전송됨

개발 환경의 안전성에 대한 우려가 제기되었으며, 샌드박스 환경 구축 및 종속성 검증의 중요성이 강조됨

LiteLLM 개발자는 Trivy 취약점을 통해 공격이 시작되었음을 언급하며, 패키지 격리 및 자격 증명 로테이션을 권고함

공격 메커니즘 및 악성 행위 분석

공격은 파이썬 인터프리터 시작 시 자동으로 실행되는 .pth 파일(Python Path Configuration)을 통해 이루어졌다. 해당 파일은 이중 base64 인코딩된 페이로드를 포함하며, 디코딩 후 시스템 정보, 환경 변수, SSH 키, 클라우드 자격 증명 등 다양한 민감 정보를 수집한다. 수집된 데이터는 AES-256으로 암호화되고, 공격자의 RSA 공개키로 암호화된 AES 세션 키와 함께 tpcp.tar.gz 아카이브로 묶여 외부 서버로 전송된다.

영향 범위 및 피해 규모

LiteLLM 1.82.8 버전을 pip를 통해 설치한 모든 시스템이 공격에 노출되었으며, 로컬 개발 환경, CI/CD 파이프라인, 도커 컨테이너, 프로덕션 서버 등 광범위한 환경에 걸쳐 피해가 발생할 수 있다. 특히, 데이터 미저장 정책(Zero-Retention Policy)을 따르는 환경에서도 자격 증명이 유출될 수 있어, 데이터 격리 아키텍처(Data Isolation Architecture)를 갖추지 않은 시스템은 더욱 취약하다. 1.82.7 버전 또한 공격에 노출된 것으로 확인되었다.

대응 방안 및 권고 사항

피해를 예방하기 위해, LiteLLM 1.82.8 버전을 즉시 제거하고, 해당 버전을 사용한 시스템의 모든 자격 증명을 로테이션해야 한다. 또한, PyPI 게시 자격 증명 및 CI/CD 파이프라인의 보안 감사가 필요하다. 정적 분석 도구(Static Analysis Tool)를 활용하여 새로운 종속성을 검증하고, 개발 환경을 샌드박스(Sandbox)로 구축하여 잠재적 위협을 격리하는 것이 중요하다. Trivy 취약점을 통해 공격이 시작되었으므로, CI/CD 파이프라인의 보안 강화가 시급하다.

개발 환경 안전성에 대한 논의

커뮤니티에서는 종속성 관리의 어려움과 개발 환경의 안전성에 대한 우려가 제기되었다. 개발 컨테이너(Dev Container)의 한계와 샌드박스 환경의 필요성이 강조되었으며, VM 격리(VM Isolation), 컨테이너 프리미티브, 허용 목록(Allow List), 이그레스 필터(Egress Filter), seccomp, gvisor 등 다양한 기술을 활용한 안전한 개발 환경 구축의 중요성이 부각되었다. 또한, AI 환각(Hallucination)으로 인한 코드 삽입 가능성에 대한 경고도 있었다.

공급망 공격의 배후 및 연관성

이번 공격은 최근 발생한 TeamPCP의 활동과 연관되어 있으며, Trivy 취약점을 악용한 것으로 추정된다. 공격자는 탈취한 자격 증명을 활용하여 공격을 빠르게 진행하는 것으로 보인다. 또한, LiteLLM을 사용하는 DSPy, CrewAI와 같은 라이브러리에도 영향을 미칠 수 있어, 종속성 관리에 대한 주의가 필요하다. 수익 배분 구조(Revenue Share Model)와 관련된 오해를 방지하기 위해, 정확한 정보 전달이 중요하다.

LiteLLM Python package compromised by supply-chain attack