К содержанию
Умно. Полезно. Иногда несерьёзно.
Хакеры заразили LiteLLM программой для кражи ключей
Интернет

Хакеры заразили LiteLLM программой для кражи ключей

Вредонос запускается при старте любого процесса Python на заражённой машине, даже если LiteLLM в нём не используется.

Фото: SafeDep

Неизвестные злоумышленники 21 октября выложили в каталог PyPI заражённую версию 1.107.0 библиотеки LiteLLM. Она крадёт пароли, ключи облачных сервисов и API-ключи ИИ-моделей, а также оставляет на машине бэкдор. LiteLLM служит единым шлюзом к моделям OpenAI, Anthropic, Google Gemini и других компаний, её скачивают около 23 млн раз в неделю.

Заражённая версия появилась в PyPI в 11:39 UTC, и через несколько часов каталог поместил её в карантин. Тот же вредонос был в Docker-образе litellm/litellm:1.107.0, его удалили из Docker Hub и GHCR. Под угрозой и те, кто скачивал образ по меткам latest, main-latest или main-stable. Безопасной исследователи называют версию 1.106.2.

Что ворует вредонос

Пакет добавляет в систему три файла. Один из них запускает вредоносный код при старте любого процесса Python, включая pip, языковые серверы в редакторах кода и задачи CI. Поэтому машина заражается, даже если LiteLLM в конкретном процессе не используется.

По данным SafeDep, программа собирает сохранённые пароли и историю браузеров, SSH- и GPG-ключи, историю командной строки. Она забирает учётные данные AWS, Google Cloud, Azure и Kubernetes, секреты GitLab, Jenkins и Terraform. Отдельно вредонос ищет токены ИИ-инструментов: Claude Code, Cursor, Copilot, Gemini CLI, Codex и Hugging Face. С прокси-серверов LiteLLM он выгружает таблицы с ключами всех подключённых моделей.

Данные шифруются и уходят на домен www.litellm.dev, похожий на настоящий. Кроме того, вредонос ставит фоновый процесс, который раз в час получает с сервера злоумышленников новые команды и выполняет их.

Как это произошло

Версии исследователей расходятся. По данным Wiz, вредоносные файлы попали в сборку через коммиты в репозиторий Berri-AI на GitHub, название которого отличается от настоящего BerriAI одним дефисом. SafeDep считает вероятной причиной взломанный конвейер выпуска или украденные учётные данные PyPI. Разработчик LiteLLM, компания BerriAI, на вопросы The Register не ответила.

«Команды, которые используют 1.107.0, должны прекратить её развёртывание и проверить все среды, где после установки запускался Python, включая прокси-контейнеры и CI-раннеры», — советуют исследователи Socket. Специалисты считают все секреты на таких машинах украденными и рекомендуют их сменить. В марте LiteLLM уже пострадала от похожей атаки, тогда, по оценке CloudSEK, под угрозой оказались больше 2500 организаций.

Источники: SafeDep — технический разбор заражённого пакета, The Register — об атаке и реакции исследователей