Атаки на инфраструктуру искусственного интеллекта становятся всё более изощрёнными. Недавний инцидент, зафиксированный командой реагирования на инциденты компании Akamai, наглядно демонстрирует эволюцию угроз. Злоумышленники использовали уязвимость в конфигурации open-source платформы Ollama, чтобы внедрить в систему сложный вредоносный инструмент. Этот инструмент сочетает функции бэкдора и загрузчика криптомайнера, причём управление им построено по децентрализованному принципу. Под угрозой оказываются любые организации, развернувшие большие языковые модели (LLM) на базе Ollama без надлежащей сетевой защиты.
Описание
Инцидент начался с двух последовательных запросов к API Ollama на стандартном порту 11434. Атакующие применили команду "/api/create", чтобы сформировать кастомную модель. В теле запроса они указали скрипт, который с помощью curl или wget загружал на сервер исполняемый файл. Специалисты Akamai восстановили цепочку атаки: первый вызов использовал директику "RUN", второй - "TEMPLATE". В обоих случаях итоговый скрипт "i.sh" скачивал бинарник с именем "vc" в раздел оперативной памяти "/dev/shm", запускал его и сразу удалял. Файл никогда не попадал на диск, что затрудняет классическое сканирование файловой системы.
Сам бинарник "vc" написан на Go (версия 1.25.7) и упакован с помощью UPX - стандартного инструмента сжатия, который позволяет быстро восстановить оригинальный код. Это не типовое решение, а полностью кастомная разработка. Её главная техническая особенность - встроенный полный стек libp2p для организации одноранговой сети (P2P). Использование протоколов WebRTC, QUIC, DTLS и UPnP позволяет трояну обходить межсетевые экраны и трансляцию адресов (NAT). У P2P-сети нет единого командного центра, поэтому блокировка отдельных IP-адресов или доменов не даёт эффекта.
Маскировка выполнена на высоком уровне. При запуске процесс переименовывает себя в "kworker-main" - имя, типичное для ядерных потоков Linux. Внутренний идентификатор узла - "core-node-01" - указывает на то, что злоумышленники используют организованную инфраструктуру. Функция "hydraPersistence" добавляет запись в crontab от root: каждые 15 минут система проверяет, работает ли процесс "kworker-run", и если нет - перезапускает вредонос. Таким образом достигается закрепление в системе.
После активации "vc" выполняет цепочку из семи шагов. Сначала он копирует себя в другой каталог "/dev/shm/.udev-mesh-node". Затем сбрасывает в оперативную память два дополнительных бинарника: "kworker-main" (размер 21 мегабайт - P2P-прокси) и "kworker-run" (2,6 мегабайта - майнер XMRig для криптовалюты Monero). Основной процесс маскируется под "kworker-main", а затем запускает локальный прокси для майнинга на адресе 127.0.0.1:41947. Весь трафик майнинга направляется через децентрализованную P2P-сеть, что делает бесполезной традиционную блокировку портов Stratum. Сам майнер стартует с привязкой к конкретному кошельку Monero и ограничением использования CPU в 50%. Это снижает заметность нагрузки на процессор. Кроме функций майнинга, троян способен выполнять любые команды операционной системы от имени владельца процесса Ollama, то есть фактически работает как полноценный бэкдор.
Последствия такой атаки могут быть серьёзными. Помимо скрытого майнинга, злоумышленник получает удалённый доступ к серверу, может извлекать данные, менять конфигурации или использовать машину как точку входа во внутреннюю сеть. Учитывая, что Ollama часто разворачивается без аутентификации и доступна из интернета, риски особенно велики. Инциденты с программами-вымогателями в AI-среде уже были зафиксированы, но угроза P2P-трояна добавляет новое измерение: невозможно отрезать злоумышленника от управления простой блокировкой внешних адресов.
Для защиты необходимо немедленно принять несколько мер. Если подозрительный процесс уже обнаружен, следует изолировать машину от сети, проверить crontab и systemctl на наличие записей о процессах "kworker" и выполнить дамп оперативной памяти - в ней могут сохраниться криптографические ключи и список пиров P2P-сети. На уровне периметра стоит заблокировать исходящий трафик QUIC (UDP 443) и нестандартные WebSocket-соединения. И главное - не оставлять API Ollama открытым в сеть общего доступа без аутентификации и межсетевого экрана.
Этот случай подчёркивает, что угрозы для AI-инфраструктуры переходят на новый уровень зрелости. Использование децентрализованных сетей, маскировка под системные процессы и работа исключительно в оперативной памяти делают такой троян крайне сложным для обнаружения традиционными средствами. Теперь специалистам по безопасности нужно учиться выявлять аномалии протоколов, а не полагаться только на списки блокировки. Время, когда можно было просто "закрыть IP" атакующего, уходит в прошлое.
Индикаторы компрометации
Domains
- cloud-metrics.io
SHA256
- 18a60f4122d10fc342977345cc1d494784ca55285eea37dddf90c6b9829b6d4b
- 4159fb1305a6c45f901aa0c5b8edf7192ca9f608acce445b0dc304edc040862c
- 424a5d4dca5fb9506e7a15abc95d9e8b2a8c91fcf340394db86e38342afe7ab9