Реклама

В PyPI-пакет и Docker-образ с LiteLLM подставлено вредоносное ПО

#PyPI-пакет #Docker-образ #LiteLLM #Зафиксирована #PyPI

Зафиксирована публикация в репозитории PyPI вредоносного выпуска библиотеки LiteLLM, насчитывающей 23 млн загрузок в неделю, а также подстановка вредоносного кода в официальный Docker-образ проекта. Это не первый подобный инцидент с LiteLLM - в марте этого года атакующие уже публиковали вредоносные выпуски после перехвата учётных данных сопровождающего. На этот раз атакующие разместили версию LiteLLM 1.107.0, в которую был встроен вредоносный код для организации удалённого выполнения команд, а также поиска и отправки учётных данных, ключей и токенов доступа.

Зафиксирована публикация в репозитории PyPI вредоносного выпуска библиотеки LiteLLM, насчитывающей 23 млн загрузок в неделю, а также подстановка вредоносного кода в официальный Docker-образ проекта. Это не первый подобный инцидент с LiteLLM - в марте этого года атакующие уже публиковали вредоносные выпуски после перехвата учётных данных сопровождающего. На этот раз атакующие разместили версию LiteLLM 1.107.0, в которую был встроен вредоносный код для организации удалённого выполнения команд, а также поиска и отправки учётных данных, ключей и токенов доступа.

Вредоносный код был подставлен на этапе сборочного процесса без компрометации git-репозитория. После установки вредоносный код активируется до импорта LiteLLM через установку файлов cook.pth, cook.py и sitecustomize.py в директорию с библиотеками Python. Данные файлы запускаются при каждом выполнении Python в системе без необходимости совершения пользователем каких-либо действий.

Вначале Python запускает файл cook.pth, в котором имеется только одна строка "import cook" для импорта скрипта cook.py, собирающего учётные данные. Далее импортируется скрипт sitecustomize.py, применяемый для фоновой загрузки внешнего кода (параметры загрузки определяются по ссылке "raw.githubusercontent.com/letters9813/pythonclient-test/main/domain.txt"). Вредоносный код в обоих скриптах сжат через zlib и закодирован методом Base64. Индикатором компрометации может служить появление в системе файлов "/tmp/.pc_once_*" и…

После активации файл cook.py…