
Главный специалист по информационной безопасности SlowMist 23pds сообщил 25 марта, что Python-API-оболочка LiteLLM, которая достигает 97 миллионов загрузок в месяц, подверглась атаке через цепочку поставок на PyPI. Уязвимые версии 1.82.7 и 1.82.8 находились на платформе как минимум два часа. Злоумышленники внедрили многоуровневое вредоносное ПО, которое может похищать такие данные, как информация о криптовалютных кошельках.
LiteLLM выполняет роль единого интерфейса в технологическом стеке ИИ, поддерживая вызовы моделей у ведущих поставщиков, таких как OpenAI, Anthropic, Google и другие. Его архитектура расположена непосредственно между приложением и несколькими поставщиками ИИ, что позволяет ему получать доступ к большому количеству API-ключей, переменных окружения и конфиденциальных данных.
Проникновение в такие промежуточные компоненты позволяет злоумышленникам перехватывать чувствительные учетные данные, не входя напрямую в сторонние сервисы. В настоящее время специалисты оценивают, связана ли эта атака с группами угроз TeamPCP и LAPSUS$, расследование продолжается. Изначально инцидент был опубликован пользователем GitHub, а затем проанализирован внешними исследователями Futuresearch.
Вредоносный код, встроенный в скомпрометированные версии, построен по трехуровневой архитектуре и реализован с помощью обфусцированного Python-кода, закодированного в Base64:
Первый уровень (утечка данных): собирает чувствительные локальные данные, шифрует их с помощью AES-256-CBC, шифрует сессионный ключ встроенным RSA-открытым ключом, упаковывает в tpcp.tar.gz и отправляет на удаленную команду злоумышленников.
Второй уровень (разведка и сбор учетных данных): перечисляет системную информацию, переменные окружения, систематически извлекает SSH-ключи, Git-учетные данные, облачные сертификаты AWS/GCP/Azure, конфигурационные файлы Kubernetes, данные криптовалютных кошельков и настройки CI/CD. В некоторых случаях вредоносное ПО активно использует украденные учетные данные для запросов к AWS API или операций с Kubernetes.
Третий уровень (устойчивость и удаленное управление): записывает файл sysmon.py на диск и настраивает его как системную службу. Каждые 50 минут он опрашивает команду злоумышленников, что позволяет постоянно обновлять функциональность вредоносного ПО на зараженной системе.
Для связи используются домены models.litellm.cloud и checkmarx.zone.
Организации, установившие или использующие уязвимые версии LiteLLM (1.82.7 или 1.82.8), должны считать свои системы скомпрометированными. Поскольку вредоносное ПО обладает возможностями постоянной устойчивости и, возможно, уже внедрило дополнительные компоненты, простое удаление пакета недостаточно.
Рекомендуется немедленно выполнить следующие действия: сменить все возможные уязвимые учетные данные (ключи доступа AWS/GCP/Azure, SSH-ключи, API-ключи); проверить журналы на наличие подозрительных исходящих соединений с доменами models.litellm.cloud или checkmarx.zone; удалить файлы tpcp.tar.gz, /tmp/pglog, /tmp/.pg_state и связанные с sysmon.py службы; при возможности восстановить систему из чистого резервного копирования.
Пострадавшие версии — 1.82.7 и 1.82.8. Вредоносный код встроен в proxy_server.py (для обеих версий) и litellm_init.pth (для версии 1.82.8). Пользователям рекомендуется проверить используемую версию и обновить до последней безопасной версии.
Вредоносное ПО собирает SSH-ключи, облачные сертификаты AWS/GCP/Azure, конфигурационные файлы Kubernetes, токены сервисных аккаунтов, Git-учетные данные, API-ключи из переменных окружения, историю команд Shell, данные криптовалютных кошельков и пароли баз данных. Атака охватывает локальную среду разработки, цепочки CI/CD и облачную инфраструктуру.
Проверьте наличие файлов tpcp.tar.gz, временных файлов /tmp/pglog или /tmp/.pg_state, а также служб, связанных с sysmon.py. Также просмотрите исходящие сетевые соединения на предмет связи с указанными вредоносными доменами.