EXPLORINEER
ko

Hacker News

PyPI의 침해된 LiteLLM 1.107.0, 자격 증명 탈취기와 백도어 설치

보안처음 오른 때 점수 582댓글 190


LiteLLM 1.107.0 패키지가 PyPI에서 해킹되어, 비밀번호와 키를 훔치는 악성코드와 원격 제어 뒷문이 들어 있습니다. 이 버전을 설치하면 Python을 쓰는 모든 프로그램에서 악성코드가 자동으로 실행됩니다.

무슨 일이 있었나요?

LiteLLM은 여러 AI 모델을 한 곳에서 쓸 수 있게 해 주는 Python 도구입니다. 공식 배포판 1.107.0에 악성 파일 3개가 몰래 들어갔습니다. 이 파일들은 컴퓨터에서 Python이 시작될 때마다 자동으로 실행됩니다. 실제 코드 저장소(GitHub)에는 이 악성 코드가 없었습니다. PyPI에서는 이 버전을 이미 지웠지만, 그 전에 설치한 사람은 위험할 수 있습니다.

꼭 알아야 할 숫자와 사실

  • 악성 버전: LiteLLM 1.107.0 (Linux, macOS, Windows용 파일 7개 모두 감염)
  • PyPI에서 삭제된 시각: 2026년 10월 21일 13:23 UTC
  • Docker 이미지 감염 시간: 11:46~14:20 UTC (v1.107.0, latest 등)
  • 안전한 버전: 1.106.2, 1.107.0rc1, 1.107.0rc2

악성코드는 어떻게 동작하나요?

첫 번째 파일 cook.pth는 cook.py를 불러오고, cook.py는 비밀번호, SSH 키, 클라우드 인증 정보, 클라우드 배포 비밀 값, 브라우저 비밀번호, AI 도구 토큰 같은 정보를 훔칩니다. 훔친 정보는 암호화되어 외부 서버로 보내집니다. 두 번째 파일 sitecustomize.py는 몰래 돌아가는 프로그램(데몬)을 실행합니다. 이 프로그램은 한 시간마다 훔치기를 반복하고, 외부 서버에서 받은 코드를 실행합니다. 즉, 공격자가 원격으로 명령을 내릴 수 있습니다.

공격자는 어떻게 들어왔나요?

공격자는 개발자 3명의 GitHub 인증 정보를 얻었습니다. 이 정보는 인터넷에 노출된 내부 LiteLLM 서버의 로그에서 나왔다고 봅니다. 공격자는 이를 이용해 보호 설정을 우회하고, 공식 배포 과정이 가짜 저장소(Berri-AI/litellm)를 가리키도록 바꿨습니다. 그리고 다른 개발자의 인증 정보로 승인 단계까지 통과했습니다. 그 결과 공식 배포 과정이 악성 파일을 만들고, 서명하고, 배포해 버렸습니다.

왜 중요한가요?

LiteLLM은 AI 서비스를 쓰는 많은 회사와 개발자가 쓰는 도구입니다. 그래서 비밀 키 하나가 털리면 여러 서비스가 함께 위험해질 수 있습니다. 이 공격은 프로그램을 직접 불러오지 않은 사람의 컴퓨터도 감염시킬 수 있어서 특히 무섭습니다. 만약 1.107.0을 설치했다면, 버전을 낮추고 비밀번호와 키를 모두 바꾸는 것이 좋습니다.

용어 풀이

LiteLLM
여러 AI 모델을 같은 방식으로 쓸 수 있게 해 주는 오픈소스 Python 도구입니다.
PyPI
Python 프로그램과 라이브러리를 내려받는 공식 저장소입니다.
Docker
프로그램을 상자(컨테이너)처럼 묶어 어디서든 똑같이 실행하게 해 주는 도구입니다.