Разработчики Python-библиотеки LiteLLM, насчитывающей 95 млн загрузок в месяц и 3.5 млн за последние сутки, сообщили о компрометации проекта. Атакующие смогли перехватить учётные данные сопровождающего и опубликовать в PyPI два вредоносных выпуска - 1.82.7 и 1.82.8, содержащих код для кражи ключей и паролей с систем пользователей. В настоящее время вредоносные версии удалены из PyPI, а проект временно заморожен до окончания разбирательства.
Токен доступа к учётной записи LiteLLM в PyPI попал в руки атакующих из-за использования в системе непрерывной интеграции сканера безопасности зависимостей trivvy. До этого в конце февраля атакующие смогли получить доступ к инфраструктуре проекта Trivy, воспользовавшись уязвимостью в обработчике pull_request_target, запускаемом в системе непрерывной интеграции Trivy. После компрометации атакующие опубликовали вредоносные выпуски Trivy 0.69-0.69, подменили GitHub Action обработчик trivy-action и разместили модифицированный Docker-образ с Trivy.
24 марта в 11:30 (MSK) перехваченные учётные данные сопровождающего LiteLLM (krrishdholakia) были использованы для прямой публикации вредоносных релизов LiteLLM 1.82.7 и 1.82.8 в PyPI в обход официального GitHub CI/CD. Репозиторий проекта на GitHub не пострадал - вредоносная активность наблюдалась только в PyPI. В выпуске LiteLLM 1.82.7 вредоносный код был встроен в файл litellm/proxy/proxy_server.py и активировался при импорте litellm.proxy. В выпуске 1.82.8 в состав был включён файл site-packages/litellm_init.pth, а в файл proxy_server.py был добавлен обработчик, упакованный в формате base64 и активируемый при любом запуске.
Добавленный вредоносный код осуществлял сканирование и отправку конфиденциальных данных. Отправлялись найденные в системе ключи SSH и SSL/TLS, содержимое переменных окружения, учётные данные к AWS, GCP, Azure и K8s, ключи от криптокошельков, пароли к СУБД, история операций в командном интерпретаторе, файлы конфигурации от Git, CI/CD, пакетных менеджеров и Docker. Обнаруженные данные шифровались с использованием алгоритмов AES-256-CBC + RSA-4096 и отправлялись HTTP POST-запросом на сайт "https://models.litellm.cloud/" (домен litellm.cloud был зарегистрирован за несколько часов до публикации вредоносных релизов).
Пользователям LiteLLM рекомендовано убедиться в отсутствии в каталоге site-packages файла litellm_init.pth, обновить все ключи и учётные данные в случае установки версии 1.82.7 или 1.82.8, закрепить конкретные версии LiteLLM в параметрах загрузки зависимостей и сверить используемые выпуски LiteLLM с кодом релизов на GitHub.
Источник: https://www.opennet.ru/opennews/art.shtml?num=65065





