LiteLLM 1.107.0에 탈취·백도어

2분 LiteLLMPyPI공급망 공격백도어
최근 30일 조회수 — 좋아요 —

핵심 요약

PyPI에 배포된 LiteLLM 1.107.0이 자격증명 탈취와 원격 코드 실행 기능을 포함해 삭제됐다.

LiteLLM 1.107.0에 탈취·백도어 — 기사 주제를 표현한 AI 생성 개념 삽화
AI 생성 개념 삽화 · 실제 사건을 촬영한 사진이 아닙니다.

파이썬 패키지 저장소 PyPI에 배포된 LiteLLM 1.107.0이 자격증명 탈취 도구와 원격 코드 실행 백도어를 포함한 것으로 확인됐다. 악성 코드는 리눅스·macOS·윈도용 휠 일곱 개에 모두 들어갔으며, PyPI는 해당 릴리스를 삭제했다. 감염된 패키지를 설치했다면 LiteLLM을 직접 불러오지 않아도 호스트에서 파이썬 프로세스가 시작될 때마다 악성 코드가 실행될 수 있다.1

설치 과정에서 site-packages에 cook.pth, cook.py, sitecustomize.py 세 파일이 추가된다. cook.pth는 자격증명 탈취 코드인 cook.py를 자동으로 불러온다. 이 코드는 SSH 키, 클라우드 자격증명, CI/CD 비밀값, AI 도구 토큰, 브라우저 비밀번호와 LiteLLM 프록시 데이터베이스에 저장된 대규모언어모델(LLM) 제공업체 키를 수집한다. 수집한 정보는 암호화해 www.litellm[.]dev로 전송한다.

sitecustomize.py는 한 단계 더 나아간다. 백그라운드 데몬을 시작해 매시간 깃허브 파일에서 서버 주소를 읽고, 탈취 코드를 다시 실행한 뒤 해당 서버에서 코드를 내려받아 실행한다. 파이썬이 시작할 때 자동으로 읽는 파일을 이용했기 때문에 피해 범위가 LiteLLM 애플리케이션으로 한정되지 않는다.

SafeDep 분석에 따르면 공개된 BerriAI/LiteLLM 깃허브 소스에는 이 파일들이 없다. PyPI 소스 배포본의 pyproject.toml에는 업스트림에 없는 data = "cook" 한 줄이 추가돼 있었다. 이 설정이 빌드 과정에서 cook/ 폴더를 휠에 넣도록 만들었고, 휠의 RECORD에도 악성 파일 세 개가 정상 구성요소처럼 기록됐다. 빌드 뒤 압축파일을 고친 흔적이 아니라 정규 배포 파이프라인과 같은 방식으로 휠이 만들어졌다는 의미다.

릴리스와 소스 태그도 일치하지 않았다. v1.107.0 태그가 가리키는 커밋에는 버전이 1.108.0으로 적혀 있었지만, 실제 배포본은 이후 메인 브랜치 커밋을 바탕으로 버전을 1.107.0으로 되돌리고 악성 설정을 덧붙였다. 반면 1.106.2, 1.107.0rc1, 1.107.0rc2와 함께 고정된 보조 패키지 두 개는 깨끗한 것으로 조사됐다. 공개 깃허브 액션 실행 기록 539건에서도 해당 릴리스를 빌드하거나 게시한 작업은 발견되지 않아, 누가 어떤 경로로 배포 권한을 악용했는지는 자료만으로 확인되지 않는다.

Footnotes

  1. Hacker News, 「Compromised LiteLLM 1.107.0 on PyPI Installs a Credential Stealer and Backdoor」 ↩

읽기 목록은 이 브라우저에 저장됩니다.

출처

  1. Compromised LiteLLM 1.107.0 on PyPI Installs a Credential Stealer and Backdoor — Hacker News

이 글은 위 출처를 근거로 자동 생성된 뒤 발행됐습니다. 원문을 함께 확인해 주세요. 교차 보도 없이 단독 출처로 작성됐습니다.