공격 상세 내용
2026년 10월 21일, LiteLLM 1.107.0 버전이 공급망 침해를 당해 Python 패키지 저장소(PyPI)와 공식 컨테이너 채널을 통해 악성 패키지가 배포되었습니다. 이번 공격에서 가장 우려되는 점은 애플리케이션 내에서 LiteLLM 라이브러리를 명시적으로 호출하지 않아도 악성코드가 작동하며, 감염된 패키지가 포함된 환경에서 Python 인터프리터가 시작되는 순간 자동으로 활성화된다는 것입니다.
작동 메커니즘 및 위협
공격자는 Python 시작 파일(예: cook.pth 및 sitecustomize.py)을 악용하여 백그라운드에서 악성 코드를 실행했습니다. 이 코드는 다음과 같은 민감한 자격 증명을 수집합니다.
- AI 모델 제공업체의 API 키(API Keys)
- 클라우드 자격 증명 및 개발 환경(CI/CD)의 액세스 토큰
- 브라우저 데이터 및 쿠키
- SSH 및 GPG 키
수집된 데이터는 AES-256-CBC 알고리즘으로 암호화되어 공격자가 제어하는 서버로 전송됩니다. 또한 감염된 버전에는 유닉스(Unix) 시스템용 맞춤형 "로더(Loader)"가 포함되어 있어 추가 Python 코드를 원격으로 가져와 실행할 수 있으며, 이를 통해 공격자는 새로운 패키지를 배포하지 않고도 도구를 유연하게 업데이트할 수 있습니다.
이 뉴스가 중요한 이유
이번 침해 사고는 LiteLLM이 애플리케이션과 AI 모델 간의 게이트웨이 역할을 하므로 인프라에 대한 광범위한 액세스 권한을 가지고 있기 때문에 심각한 위험을 초래합니다. 또한 Python이 시작될 때 활성화되기 때문에, LiteLLM 기능을 직접 사용하지 않더라도 개발자 워크스테이션, CI/CD 파이프라인, 컨테이너 모두가 위험에 노출됩니다.
대응 및 복구 조치
마이크로소프트는 패키지를 단순히 삭제하는 것만으로는 환경을 정화하기에 충분하지 않다고 강조합니다. 조직은 다음 조치를 취해야 합니다.
- 격리 및 조사: 악성 코드 활성화를 방지하기 위해 의심스러운 환경 내에서 python 또는 pip를 실행하지 말고 외부 검사 도구를 사용합니다.
- 심층 정화: Python 라이브러리 경로에서 cook.pth, cook.py, sitecustomize.py 파일이 제거되었는지 확인합니다.
- 자격 증명 교체(Rotation): 감염된 환경에서 노출되었던 모든 자격 증명이 침해된 것으로 간주하고, API 키, 액세스 토큰, 비밀번호를 즉시 교체합니다.
- 보안 강화: 해시로 고정된 락 파일(Lock files)을 사용하고, 가변 태그(Mutable tags) 대신 컨테이너 다이제스트(Digests)를 신뢰합니다.