AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

LiteLLM PyPI 감염 사건, AI 개발 공급망 공격이 작동하는 방식

LiteLLM은 OpenAI, Claude, Gemini 등 수십 개의 LLM API를 하나의 인터페이스로 통합해주는 라이브러리입니다. AI 개발자라면 한 번쯤 써봤거나 의존성 어딘가에 숨어있을 법한 도구죠. 그런데 3월 24일, 이 패키지가 PyPI에서 악성코드와 함께 배포됐습니다. 아이러니하게도 공격의 시작점은 보안 취약점을 스캔하는 도구, Trivy였습니다.

사진 출처: Datadog Security Labs

Datadog Security Labs가 이번 사건의 전체 경위를 추적한 분석 보고서를 발표했습니다. litellm 1.82.7과 1.82.8 두 버전이 악성코드와 함께 배포됐으며, 이는 단독 사건이 아니라 ‘TeamPCP’라는 이름의 조직적 공급망 공격 캠페인의 마지막 단계였습니다.

출처: LiteLLM compromised on PyPI: Tracing the March 2026 TeamPCP supply chain campaign – Datadog Security Labs

단 46분, 47,000번의 다운로드

PyPI가 두 버전을 격리하기까지 걸린 시간은 46분이었습니다. 그 사이 악성 버전은 46,996번 다운로드됐습니다. 문제는 직접 LiteLLM을 설치한 사람만이 아니라는 점입니다.

LiteLLM은 월 9,500만 건이 다운로드될 만큼 AI 개발 생태계에서 핵심 인프라로 쓰입니다. CrewAI, Browser-Use, DSPy, Mem0, Instructor, Guardrails, Agno, Camel-AI 등 주요 AI 프레임워크와 도구들이 LiteLLM을 직접 의존합니다. PyPI에서 LiteLLM을 의존하는 패키지는 2,337개이며, 이 중 88%는 공격 당시 버전 제한이 없어 악성 버전에 노출될 수 있었습니다.

즉, 공격 시간대에 CrewAI나 Browser-Use처럼 자주 쓰이는 도구를 pip install로 업그레이드했다면, 본인도 모르게 악성 LiteLLM을 받았을 수 있습니다.

설치만 해도 실행되는 악성코드

두 버전 중 1.82.8이 특히 위험했습니다. 이 버전에는 litellm_init.pth라는 파일이 포함돼 있는데, Python의 .pth 파일은 인터프리터가 시작될 때 자동으로 실행됩니다. import litellm을 하지 않아도, 심지어 pip install 명령 자체를 실행하는 순간에도 악성코드가 동작합니다.

사건을 처음 발견한 것도 이 메커니즘 덕분이었습니다. AI 검색 도구 Futuresearch의 엔지니어가 Cursor에서 MCP 플러그인을 실행하다 갑자기 기계가 다운됐는데, .pth 파일이 Python 프로세스를 시작할 때마다 자식 프로세스를 생성하고 그 자식이 또 .pth를 트리거해 프로세스가 폭발적으로 늘어나는 버그였습니다. 악성코드 자체의 실수가 오히려 탐지의 실마리가 된 셈입니다.

1.82.7은 proxy_server.py에 악성 코드가 삽입되어 LiteLLM 프록시를 실제로 사용할 때만 실행됐습니다. 발동 조건은 더 제한적이지만, CI/CD 파이프라인처럼 자동으로 최신 의존성을 가져오는 환경에서는 두 버전 모두 위험합니다.

악성코드가 하는 일

실행된 악성코드는 다음 순서로 작동합니다.

  1. SSH 키, AWS/Azure/GCP 자격증명, Kubernetes 설정, Docker 설정, CI/CD 시크릿, 쉘 히스토리, 암호화폐 지갑 파일까지 수집
  2. AES-256으로 데이터를 암호화한 후 RSA-4096으로 세션 키를 암호화
  3. models.litellm[.]cloud로 전송
  4. ~/.config/sysmon/sysmon.service로 시스템에 영구 백도어 설치
  5. Kubernetes 서비스 계정 토큰이 있으면 node-setup-* 이름의 권한 있는 파드를 생성해 클러스터 전체로 확산

5일 만에 네 곳을 뚫은 연쇄 공격

이번 사건이 단독 해킹이 아닌 이유는 공격의 구조에 있습니다. TeamPCP 캠페인은 3월 19일 Trivy(오픈소스 보안 스캐너)를 시작으로 npm 패키지 생태계, Checkmarx의 GitHub Actions를 거쳐 5일 만에 LiteLLM까지 도달했습니다. 단계마다 탈취한 자격증명으로 다음 단계를 공격하는 방식이었고, LiteLLM 개발팀이 CI에서 Trivy를 사용하고 있었다는 점이 결정적 연결고리가 됐습니다. 보안을 강화하려고 도입한 도구가 공격의 통로가 된 셈입니다.

AI 개발 스택의 연결망이 위협 표면이 된다

이번 사건은 LiteLLM 하나의 문제가 아닙니다. 현대 AI 개발 스택은 수십 개의 라이브러리가 서로를 의존하면서 구성됩니다. 그 연결망 중 어느 하나를 뚫으면 그것을 의존하는 모든 도구와 사용자에게 영향이 전파됩니다. 공격자가 LiteLLM을 노린 것도 그 이유일 겁니다. 클라우드 자격증명과 API 키가 가장 많이 집중되는 지점이기 때문입니다.

Datadog 보고서는 이 외에도 버전별 상세 기술 분석, IOC(침해지표) 목록, Kubernetes 탐지 쿼리 등을 상세히 다룹니다. 공격 시간대(UTC 10:39~11:25)에 해당 도구들을 업데이트한 환경이 있다면 원문의 대응 가이드를 직접 확인하시길 권합니다.

참고자료:


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다