Кто ворует ваш GPU: атаки на открытые LLM-эндпоинты (Ollama, llama.cpp) — и при чём тут кража облачных ключей. gpu.. gpu. honeypot.. gpu. honeypot. IMDS.. gpu. honeypot. IMDS. llama.cpp.. gpu. honeypot. IMDS. llama.cpp. llm.. gpu. honeypot. IMDS. llama.cpp. llm. n8n.. gpu. honeypot. IMDS. llama.cpp. llm. n8n. ollama.. gpu. honeypot. IMDS. llama.cpp. llm. n8n. ollama. ssrf.. gpu. honeypot. IMDS. llama.cpp. llm. n8n. ollama. ssrf. Информационная безопасность.. gpu. honeypot. IMDS. llama.cpp. llm. n8n. ollama. ssrf. Информационная безопасность. Машинное обучение.
Кто ворует ваш GPU: атаки на открытые LLM-эндпоинты (Ollama, llama.cpp) — и при чём тут кража облачных ключей - 1

Часть 2 серии про атаки на AI-инфраструктуру. В первой части мы поймали на ловушку сканер, который встроил разведку MCP (Model Context Protocol — протокол инструментов для агентов) в обычный мультипротокольный скан. Тогда речь шла о слое агентов и инструментов. Сегодня спускаемся на уровень ниже — к самому inference-слою: открытым серверам Ollama и llama.cpp, на которых крутятся модели. И тут картина мая 2026-го получилась куда интереснее, чем «просто сканируют».

Коротко тезис: открытый Ollama — это бесплатный GPU для атакующего, и охота за таким compute давно поставлена на поток. Но за май наша сеть ханипотов (приманки в DE/US/RU) зафиксировала не только воровство инференса, а нечто новое — использование LLM-эндпоинта как SSRF-плацдарма для кражи облачных учёток. Разберём по данным.

(Про «открытые AI-сервера без аутентификации» как явление подробно — в части 1, повторяться не буду; здесь — про то, что с ними делают.)

Откуда данные

У нас развёрнута сеть приманок (honeypot) в трёх странах. Среди прочих сервисов — фейковый Ollama API на стандартном порту 11434: он отвечает как настоящий Ollama (список моделей, OpenAI-совместимые эндпоинты), но ничего не исполняет, а пишет в лог каждый запрос: путь, тело, User-Agent, источник. За май на эту приманку прилетело ~75 300 запросов.

Это уже не шум. Это зрелая категория со своей таксономией, инструментарием и — что важнее всего — постоянными акторами, которых видно из месяца в месяц.

Анатомия атаки: что именно делают с открытым Ollama

Разложим классифицированные запросы по типу активности (доли округлены, от размеченной части трафика):

Тип

Доля

Что это значит

Сканирование

~95%

Массовый поиск открытых Ollama/llama.cpp в интернете

inference_abuse

~3.7%

Кража инференса: гоняют запросы к /api/generate, /v1/chat/completions

model_abuse_external

~0.8%

Попытки подгрузить/использовать сторонние модели

ssrf_cloud_cred

~0.5%

SSRF через LLM-эндпоинт → кража cloud-metadata кредов

admin_probe

~0.1%

Зондирование админских путей

95% — это, ожидаемо, разведка: интернет прочёсывают на предмет «а есть ли тут живая модель». Но дальше начинается интересное.

1. Кража инференса — экономика «бесплатного GPU»

Зачем кому-то чужой Ollama? Затем же, зачем чужой майнинг-риг. Inference больших моделей стоит денег — GPU-часы, электричество, API-токены. Открытый Ollama без авторизации — это бесплатный inference-as-a-service, который кто-то любезно выставил наружу. Атакующий находит его и начинает гонять через него свои нагрузки: генерацию текста под спам/фишинг/контент-фермы, обработку данных, прокси для своих сервисов.

Типичная последовательность в логах: сначала /api/tags (узнать, какие модели стоят), потом /v1/models, и если что-то живое — поток запросов в /v1/chat/completions и /api/generate. Самые частые эндпоинты за май:

/api/tags               8 131   ← инвентаризация моделей
/v1/chat/completions    3 102   ← OpenAI-совместимый inference
/v1/models              1 532
/props                  1 282   ← внимание: это llama.cpp, не Ollama
/api/generate             370
/api/show                  76

2. Сканируют не только Ollama — llama.cpp тоже

Строка /props (1 282 запроса) — маркер того, что охотятся не только за Ollama. /props — это эндпоинт сервера llama.cpp (llama-server), отдающий параметры загруженной модели. То есть сканеры держат в голове весь зоопарк self-hosted inference, а не один продукт. Если вы поднимали llama.cpp «на посмотреть» и забыли закрыть — вас тоже найдут.

А ещё рядом зондируют автоматизацию:

/rest/oauth2-credential/callback    62   ← n8n
/api/v1/webhook/test                62   ← n8n

Это пути n8n — платформы no-code-автоматизации, которую часто ставят рядом с локальной LLM для оркестрации AI-воркфлоу. Логика атакующего понятна: где открытый Ollama — там может быть и открытый n8n с креденшелами к десяткам сервисов.

3. Главная новость мая: SSRF через LLM → кража облачных ключей

Категория ssrf_cloud_cred — то, чего в прошлых месяцах не было. Идея в следующем: многие inference-фичи умеют ходить по URL (подгрузить модель, картинку, документ, дёрнуть webhook). Если эндпоинт принимает URL от пользователя и сервер бежит по нему сам — это классический SSRF. А первое, куда направляют SSRF в облаке, — это metadata-сервис 169.254.169.254, который отдаёт временные IAM-креды инстанса.

То есть схема эволюционировала:

Было (месяцами):   найти открытый Ollama → воровать inference (бесплатный GPU)
Стало (май):       найти открытый Ollama → SSRF на 169.254.169.254 → украсть cloud-креды → доступ ко всему облаку

Это качественный сдвиг: от кражи compute к компрометации инфраструктуры, на которой этот compute крутится. Доля пока небольшая (~0.5%), но это именно та активность, которая превращает «ну подумаешь, погоняли мою модельку» в «слили ключи от всего AWS-аккаунта».

Инструментарий: чем сканируют

Любопытная деталь — User-Agent’ы. Абсолютный лидер:

ollama/0.0.0 (amd64 linux) Go/go1.26.3        50 529 запросов
python-httpx/0.27.2                            8 972
Python/3.10 aiohttp/3.13.5                        703
axios/1.16.0                                      278
EchelonGraph-ShadowAIRadar-Verifier/1.0           218

Первое место — официальный Go-клиент Ollama. Сканеры не пишут свой HTTP-стек, а берут штатный клиент и используют его как массовый зонд: он уже умеет говорить на всех нужных эндпоинтах. Отдельно отметим EchelonGraph-ShadowAIRadar — это коммерческий сканер AI-активов (с честным +https://... в UA), который ходит по интернету и каталогизирует открытые AI-сервисы. Граница между «исследователь», «коммерческий разведчик» и «атакующий» здесь, как обычно, размытая.

Лонгитюд: одни и те же акторы из месяца в месяц

Самое ценное в долгом наблюдении — видно, что это не случайные боты, а устойчивые операторы. Топ источников за май:

IP (defanged)

Запросов (доля)

ASN / атрибуция

37[.]19[.]210[.]21

50 467 (~67%)

AS212238 Datacamp/CDN77 (вероятно VPN-exit)

203[.]159[.]90[.]152

19 112 (~25%)

AS210558 1337 Services GmbH (по открытым данным — экосистема Stark Industries)

Два IP — две трети и четверть всего трафика к приманке: это пара операторов, а не «весь интернет».

Второй IP — 203[.]159[.]90[.]152 — мы видим не первый месяц. В марте-апреле именно он доминировал в Ollama-абьюзе с ~125 000 запросов. Месяц спустя он по-прежнему активен. Это не «случайно прилетело» — это многомесячная кампания со стороны сети, которую открытые источники связывают с экосистемой Stark Industries (поставщик «пуленепробиваемого» хостинга). Первое место в мае, 37[.]19[.]210[.]21 (AS212238 Datacamp/CDN77), — вероятно, VPN-выход, прикрывающий реального оператора.

Вывод по тренду: атаки на LLM-инференс прошли путь сканирование → инвентаризация моделей → кража инференса → SSRF-кража облачных ключей, обзавелись специализированными сканерами и связкой «LLM + n8n». Это самостоятельная поверхность атаки, а не подвид «веб-сканов».

Что с этим делать (защита)

Если у вас есть self-hosted inference (Ollama, llama.cpp, vLLM, LocalAI, text-generation-webui и пр.):

  1. Не выставляйте inference-порт в интернет. Ollama по умолчанию слушает 0.0.0.0:11434 без авторизации. Биндите на 127.0.0.1 или в приватную сеть; наружу — только через reverse-proxy с аутентификацией.

  2. Поставьте auth. Перед Ollama/llama.cpp — nginx/Caddy с Basic-auth/mTLS или API-gateway. Сам Ollama auth «из коробки» не имеет.

  3. Закройте SSRF-вектор. Если используете фичи с загрузкой по URL — фильтруйте назначение: блокируйте 169.254.169.254, link-local, RFC1918, localhost. На облаке — переходите на IMDSv2 (требует токен, ломает наивный SSRF) и ограничивайте hop limit.

  4. Не забывайте про соседей. Рядом стоящие n8n, Jupyter, Grafana, MLflow — отдельная поверхность. Тот, кто нашёл ваш Ollama, проверит и их.

  5. Мониторьте исходящие к metadata. Алерт на любой запрос к 169.254.169.254 от inference-сервиса — дешёвый и надёжный сигнал компрометации.

  6. Проверьте себя снаружи. Shodan/Censys по product:Ollama или порту 11434 — посмотрите, не светитесь ли вы.

IOC (defanged)

# LLM-abuse акторы
203[.]159[.]90[.]152    AS210558 1337 Services GmbH (Stark-связанная сеть, по откр. данным), многомесячная кампания
37[.]19[.]210[.]21      AS212238 CDN77/Datacamp (вероятно VPN-exit)

# Сканер-фингерпринты (User-Agent)
ollama/0.0.0 (amd64 linux) Go/go1.26.3
EchelonGraph-ShadowAIRadar-Verifier/1.0

# Подозрительные пути на inference-приманке
/props                              (llama.cpp probe)
/rest/oauth2-credential/callback    (n8n probe)
/api/v1/webhook/test                (n8n probe)

Данные — агрегированная телеметрия сети ханипотов за май 2026. TLP:CLEAR. Продолжение следует: в инференс-слое ещё много неразобранного.

Автор: fox52

Источник