В середине апреля 2026 года сообщество разработчиков искусственного интеллекта столкнулось с серьёзной угрозой. Злоумышленники скомпрометировали учётные данные сопровождающих открытой платформы Xinference, после чего загрузили в официальный репозиторий PyPI три версии пакета со встроенным трояном. Атака затронула тысячи пользователей, которые развёртывают на базе Xinference большие языковые модели, системы распознавания речи и мультимодальные решения. Инцидент в очередной раз продемонстрировал, что безопасность цепочек поставок становится критической для всей экосистемы искусственного интеллекта.
Описание
Суть атаки и затронутые версии
Xinference (Xorbits Inference) - это открытая распределённая платформа для запуска и управления моделями ИИ. Она широко применяется в исследовательских лабораториях, стартапах и крупных компаниях для развёртывания приватных моделей. По данным репозитория PyPI, суммарное количество загрузок Xinference превысило 680 тысяч. Уязвимыми оказались версии 2.6.0, 2.6.1 и 2.6.2, выпущенные 22 апреля 2026 года по пекинскому времени. Безопасными остаются сборки не старше 2.5.0 включительно.
Атакующие получили доступ к учётным данным сопровождающего проекта на платформе PyPI. Используя их, они опубликовали вредоносные обновления всего через девять дней после выхода официальной версии 2.5.0. Пользователи, установившие заражённые пакеты, при импорте библиотеки автоматически запускали скрытый код. Вредоносная логика была зашифрована многослойной кодировкой Base64 и встроена в файл "__init__.py". При загрузке модуля интерпретатор Python раскодировал полезную нагрузку и выполнял её прямо в памяти, без записи на диск.
Как работал троян
После срабатывания триггера на заражённой системе запускалась двухэтапная процедура. На первом этапе создавалась временная директория, в которую записывался код второй стадии. Затем этот код исполнялся в отдельном дочернем процессе Python. Результаты его работы собирались в архив "love.tar.gz" и отправлялись на сервер управления злоумышленников "https://whereisitat.lucyatemysuperbox.space" с помощью команды "curl", причём в HTTP-заголовок добавлялся специальный маркер "X-QT-SR: 14". После отправки вредоносная часть зачищала все следы: подавляла вывод ошибок, удаляла временные файлы.
Специалисты в своём отчёте подробно описали второй этап. Скрипт собирал с заражённого хоста практически все возможные учётные данные: имя пользователя, сетевые интерфейсы, переменные окружения, приватные SSH-ключи, конфигурационные файлы ".env", ".npmrc", ".pypirc", настройки облачных провайдеров AWS, Azure, Google Cloud, Kubernetes, Docker. Особое внимание уделялось криптовалютным кошелькам - извлекались файлы, связанные с популярными блокчейн-клиентами. Также воровались токены доступа к Slack, Discord, Git-сервисам, пароли баз данных, сертификаты SSL, конфигурации Terraform, Helm и WireGuard.
Кроме того, злоумышленники реализовали специфичную для AWS эксплуатацию. Троян обращался к метаданным облачных экземпляров по адресам "169.254.169[.]254" и "169.254.170[.]2", получал токены IMDSv2 и временные ключи доступа IAM. С их помощью он пытался обратиться к сервисам Secrets Manager и Systems Manager, чтобы вытащить ещё больше секретов, хранящихся в облаке.
Реакция сообщества и версии атаки
Первые подозрительные сообщения о необычном поведении пакета появились в тот же день, 22 апреля, на GitHub-репозитории Xinference. Пользователи заметили аномальные исходящие соединения и запросы к неизвестному домену. Сопровождающие проекта оперативно подтвердили проблему и удалили вредоносные версии из PyPI. Однако к тому моменту их успели скачать тысячи разработчиков.
Любопытная деталь: в коде вредоносной полезной нагрузки был найден комментарий "# hacked by teampcp". Такая же подпись ранее фигурировала в инцидентах, приписываемых группировке TeamPCP. Однако через свои социальные каналы TeamPCP категорически отрицала причастность к атаке на Xinference и заявила, что кто-то намеренно использует их имя для отвода глаз. Пока нет однозначных данных, кто на самом деле стоит за этой операцией, но сам факт подделки маркеров усложняет расследование.
Последствия и масштаб угрозы
Xinference используется не только энтузиастами, но и в коммерческой среде - для развёртывания приватных больших языковых моделей, чат-ботов, систем анализа данных. Компрометация таких систем означает, что злоумышленники могли получить доступ к внутренним корпоративным данным, облачным инфраструктурам, криптовалютным активам. Учитывая, что атака собирает не только пароли, но и ключи доступа к AWS, Azure и GCP, последствия могут выходить далеко за пределы одного сервера - возможна эскалация привилегий во всём облачном окружении компании.
Специалисты по безопасности из NSFOCUS CERT, также выпустившие предупреждение, подчёркивают, что отравление цепочек поставок становится одним из самых опасных векторов для AI-экосистемы. Открытые библиотеки и фреймворки стремительно набирают популярность, но их безопасность часто отстаёт от темпов развития. Проекты сопровождаются небольшими командами, которые не всегда могут уделять должное внимание защите учётных данных на платформах распространения пакетов.
Выводы и действия для пострадавших
Для пользователей, которые могли установить одну из заражённых версий, первая рекомендация - немедленно понизить версию до безопасной 2.5.0 или более ранней, очистить кеш pip, удалить остатки вредоносного кода из каталогов site-packages и проверить наличие подозрительных записей в списках установленных пакетов. Кроме того, необходимо изучить логи входа на серверы на предмет необычных обращений к метаданным облачных провайдеров или к домену "whereisitat.lucyatemysuperbox.space". Вручную можно добавить этот домен в файл hosts, направив его на локальный адрес, чтобы заблокировать дальнейшую связь.
Однако гораздо важнее превентивные меры. Разработчикам и администраторам стоит задуматься о внедрении приватных зеркал PyPI с проверкой цифровых подписей, об обязательном включении двухфакторной аутентификации для аккаунтов на платформах распространения пакетов, а также о регулярной ротации ключей доступа к облачным сервисам. Этот инцидент - не первый и не последний в череде атак на AI-инфраструктуру. Безопасность цепочек поставок из опциональной задачи превращается в обязательное условие для любого, кто работает с открытым кодом.
Индикаторы компрометации
IPv4
- 169.254.169.254
- 169.254.170.2
MD5
- 3ee893ae46530b92e0d26435fb979d82
- 484067fd6232f7cdd7b664b33857fc2c
- 971670c10eff28339a085ca50a600e35
- 9b3257e45b27a6bbe4e240e41a3a306f
- c6ce4e25f7fe3e3bb1eea2e9052483bf
- e291734d46c313a23d676681499f8846
SHA256
- 077d49fa708f498969d7cdffe701eb64675baaa4968ded9bd97a4936dd56c21c
- e1e007ce4eab7774785617179d1c01a9381ae83abfd431aae8dba6f82d3ac127