Хакеры эксплуатируют уязвимость для кражи ключей доступа к AWS, OpenAI и Anthropic.
Специалисты Sysdig обнаружили необычную схему управления вредоносной сетью, в которой злоумышленники отказались от привычных серверов управления через HTTP и мессенджеры. Вместо них операторы использовали NATS – платформу обмена сообщениями, которую обычно применяют разработчики облачных сервисов и распределённых систем. Новый подход получил название NATS-as-C2.
Атаку связали с эксплуатацией уязвимости CVE-2026-33017 в платформе Langflow. Ошибка позволяет выполнить код на сервере без авторизации и уже попала в каталог активно используемых уязвимостей Агентства по кибербезопасности и защите инфраструктуры США. Во время атаки злоумышленник с IP-адреса 159.89.205.184 загрузил на взломанный сервер Python-компонент и бинарный файл на Go, а затем попытался выйти из контейнера с помощью эксплойтов DirtyPipe и DirtyCreds.
Главной особенностью операции стал сервер NATS по адресу 45.192.109.25:14222. Через него злоумышленники координировали работу заражённых систем. Инфраструктура использовала аутентификацию и списки контроля доступа, поэтому взломанный узел мог отправлять только результаты работы и сигналы активности, но не получал доступа к управляющим командам других узлов. Такой подход заметно усложняет анализ ботнета и снижает риск захвата всей сети через один заражённый сервер.
Вредоносный проект получил название KeyHunter. Основная задача платформы – искать и проверять облачные учётные данные и ключи доступа к сервисам искусственного интеллекта. Загруженный Python-модуль умел искать ключи в публичных онлайн-песочницах для разработчиков вроде CodePen, JSFiddle, StackBlitz и CodeSandbox. Злоумышленники рассчитывали, что разработчики оставляют в тестовых проектах рабочие ключи для OpenAI, Anthropic, Amazon Web Services и других сервисов.
Мы в MAX. Простите.
После обнаружения ключей программа сразу проверяла их работоспособность. Для Amazon Web Services вредонос использовал запрос sts:GetCallerIdentity, чтобы определить владельца ключа и уровень доступа. Для сервисов искусственного интеллекта программа обращалась напрямую к API поставщиков моделей. Таким способом операторы одновременно получали доступ и к облачной инфраструктуре, и к платным системам генеративного искусственного интеллекта.
Журнал активности показал, что перед развёртыванием вредоносного узла злоумышленник почти десять часов собирал учётные данные из различных сервисов. Сначала атакующий сканировал платформы LMDeploy и LiteLLM, а затем переключился на Langflow. После успешной эксплуатации CVE-2026-33017 оператор выгрузил переменные окружения процесса и получил AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY.
Далее злоумышленники начали массово проверять доступ к сервисам Amazon. Среди запросов фигурировали Bedrock, S3, EC2, Lambda, ECS и SageMaker. Особый интерес вызвали модели Amazon Bedrock. Операторы пытались использовать украденные ключи для запуска больших языковых моделей за чужой счёт. Специалисты называют такую схему LLMjacking – фактически злоумышленники получают бесплатный доступ к дорогим вычислениям для искусственного интеллекта.
Анализ Go-бинарника показал, что разработчики KeyHunter вложили заметные усилия в обход защитных механизмов. Вредонос использовал библиотеку uTLS, которая позволяет имитировать сетевые отпечатки Chrome, Firefox, Safari и мобильных браузеров. Такой подход помогает обходить системы обнаружения ботов у Cloudflare и других платформ.
Кроме того, программа поддерживала работу с «безголовыми» браузерами для загрузки динамических страниц и содержала десятки сценариев извлечения данных из разных платформ. Для каждого сервиса злоумышленники подготовили несколько резервных методов, чтобы изменения интерфейса сайтов не ломали работу системы.
Установочный скрипт автоматически добавлял сервис keyhunter-worker в systemd и обеспечивал запуск после перезагрузки сервера. При этом злоумышленники почти не пытались скрывать следы. Специалисты Sysdig считают, что операторы используют дешёвые виртуальные серверы и не тратят время на сложные механизмы сокрытия.
Sysdig рекомендует срочно обновить Langflow до версии с исправлением CVE-2026-33017, заблокировать соединения с адресами 45.192.109.25:14222 и 159.89.205.184:8888, а также заменить все ключи Amazon Web Services, OpenAI, Anthropic и HuggingFace, которые могли храниться в уязвимых экземплярах Langflow.
По мнению специалистов, NATS-as-C2 может стать новым трендом среди операторов ботнетов. NATS предоставляет готовые механизмы авторизации, устойчивые очереди сообщений и удобную систему масштабирования, поэтому злоумышленникам больше не нужно самостоятельно разрабатывать сложную инфраструктуру управления заражёнными системами.