Вредоносные пакеты для Kubernetes превращают серверы в скрытые прокси-узлы для LLM-трафика

information security

Экосистема открытого кода снова оказалась под ударом: исследователи выявили две вредоносные библиотеки в репозиториях npm и PyPI, которые под видом легитимных утилит для управления кластерами Kubernetes доставляют на атакуемые машины полноценный прокси-сервер для больших языковых моделей (LLM). Вместо того чтобы помогать в мониторинге контейнеров, эти пакеты превращают скомпрометированный сервер в транзитный узел теневой сети доступа к ИИ.

Описание

Пакеты kube-health-tools (npm) и kube-node-health (PyPI) на первый взгляд выглядят как безобидные инструменты администратора. Однако их код несёт встроенный скомпилированный бинарный файл, который запускается при импорте или вызове require(). В случае с PyPI это расширение Cython __init___cpython-311-x86_64-linux-gnu.so, а в npm - нативный модуль addon.node. Оба файла скачивают второй компонент атаки из репозитория на GitHub, принадлежащего учётной записи gibunxi4201.

После загрузки исполняемый файл помещается в каталог /tmp/.kh, получает атрибут исполняемости и немедленно стартует. При этом оба дроппера (компоненты для первичного заражения) передают в запускаемый бинарник конфигурационный блок, зашифрованный при помощи XOR. В расшифрованном виде этот блок содержит параметры подключения к серверу управления, учётные данные и набор инструкций для обратных туннелей. Отчёт аналитиков, опубликованный компанией Aikido, детально описывает структуру этой конфигурации.

Сервером управления выступает ресурс sync.geeker.indevs.in, аутентификация на нём осуществляется по жёстко заданной паре логин-пароль. Особый интерес представляют три обратных туннеля, которые открывает вредоносная программа. Порт 4444 сервера злоумышленников соединяется с локальным портом 0 на атакованной машине - это служебный порт LLM-прокси. Порт 4446 ведёт к стандартному SSH-порту (22), что даёт полный удалённый доступ к системе. Порт 4445 нацелен на 8200 порт, где по умолчанию работает HashiCorp Vault - хранилище секретов, чрезвычайно распространённое в инфраструктуре Kubernetes. Для заметания следов дроппер через две секунды после запуска второго компонента удаляет все свои файлы, включая загруженный бинарник из /tmp/.kh и сам каталог пакета из node_modules, оставляя минимальные следы для криминалистического анализа.

Второй компонент представляет собой полнофункциональный троян удалённого доступа, написанный на Go. Он устанавливает постоянное соединение с сервером управления по протоколу WebSocket, поверх которого работает туннелирование Chisel. Эта техника позволяет пробивать сетевые экраны и организовывать прокси для произвольных протоколов. Внутри трояна реализованы четыре ключевые функции: прокси SOCKS5 для маршрутизации любого TCP-трафика, обратная командная оболочка с парольной защитой, полноценный SFTP-сервер для доступа к файловой системе и, самое примечательное, встроенный LLM-прокси с API, совместимым с интерфейсом OpenAI.

Прокси-модуль принимает запросы на конечных точках /v1/chat/completions и /v1/completions, перенаправляя их на цепочку вышестоящих серверов. Список этих серверов включает китайские агрегаторы, такие как shubiaobiao, cloudsway, volengine, а также маршруты к моделям от Alibaba (алибaба) и ByteDance. В теле трояна обнаружено 109 жёстко заданных имён моделей, включая гипотетические версии наподобие gpt-5.4, claude-opus-4.6 и gemini-3.1-pro-preview. Ни один из маршрутов не ведёт напрямую к официальным API OpenAI или Anthropic - трафик идёт через посредников.

Такая архитектура характерна для теневого рынка доступа к ИИ, который активно развивается в Китае из-за региональных блокировок. Китайские разработчики не могут напрямую обращаться к большинству западных языковых моделей, что породило серый рынок перепродажи доступа через так называемые маршрутизаторы. Платформы вроде Xianyu и Taobao заполнены объявлениями о продаже доступа к ChatGPT и Claude по ценам значительно ниже официальных. Злоумышленники, разворачивая подобные прокси на взломанных серверах, не только получают бесплатные вычислительные мощности, но и могут перепродавать доступ или собирать конфиденциальные данные, проходящие через их узлы.

Особую опасность представляет тот факт, что любой трафик, проходящий через такой прокси, виден оператору. Исследования показывают, что часть коммерческих маршрутизаторов активно перехватывает API-ключи, токены GitHub и учётные данные облачных провайдеров, а в отдельных случаях внедряет в ответы вредоносные команды. Хотя в данной конкретной находке признаков подобной инжекции не обнаружено, сам факт размещения прокси-узла в доверенной инфраструктуре создаёт критический риск для компаний, использующих ИИ-инструменты в разработке.

Для специалистов по информационной безопасности эта ситуация служит напоминанием о необходимости тщательно проверять сторонние зависимости, особенно те, что затрагивают инфраструктуру Kubernetes. Использование корпоративных реестров пакетов с предварительной проверкой, а также систем мониторинга целостности программного обеспечения может помочь выявить подобные угрозы на ранней стадии. Ручной аудит новых библиотек, их популярности и истории обновлений остаётся базовой, но эффективной мерой защиты от атак через репозитории открытого кода.

Индикаторы компрометации

Malicious Packages

  • PyPI: kube-node-health
  • npm: kube-health-tools

Domains

  • sync.geeker.indevs.in

URLs

  • github.com/gibunxi4201/kube-node-diag

SHA256

  • 3a3d8f8636fa1db21871005a49ecd7fa59688fa763622fa737ce6b899558b300
  • 5d58ce3119c37f2bd552f4d883a4f4896dfcb8fb04875f844f999497e4ca846d
  • b3405b8456f4e82f192cdff6fdd5b290a58fafda01fbc08174105b922bd7b3cf
  • fb3ae78d09c119ec335c3b99a95c97d9bb6f92fd2c7c9b0d3e875347e2f25bb2

Комментарии: 0