Le risque des API Ollama ouvertes

Traduit de l’anglais. Lire l’original en English.


Le problème

Ollama est un service API qui tourne sur votre propre machine pour que vous puissiez utiliser des modèles d’IA sans dépendre du cloud de quelqu’un d’autre. Il écoute sur le port 11434 et répond sur http://localhost:11434.

Le problème c’est qu’Ollama n’a pas d’authentification. Ce n’est pas une faille en soi mais ça en devient une à la seconde où le port est joignable depuis internet. Celui qui le trouve utilise vos modèles et votre matériel sans demander.

Ce qui peut mal tourner

Sans authentification et avec le port ouvert, un attaquant peut faire plusieurs choses.

  • Parler à vos modèles d’IA
  • Télécharger les modèles présents sur votre machine
  • Lancer des tâches sur votre GPU et votre CPU

Si vous faites tourner Ollama sur une machine louée la facture arrive quand même, que vous ayez utilisé le service ou non. Quelqu’un d’autre l’a utilisé.

Comment je l’ai trouvé

La commande ollama serve vous montre que le service tourne déjà dès qu’Ollama est installé et actif. J’ai donc regardé combien d’entre eux étaient joignables depuis internet avec FOFA qui est un moteur de recherche du cyberespace.

J’ai cherché les machines avec le port 11434 ouvert avec la requête "Ollama is running" && port="11434". Cette signature fonctionne parce que la racine d’une installation standard d’Ollama renvoie exactement ce texte, ce qui en fait un moyen fiable de trouver des instances vivantes.

Requête FOFA.info sur le port 11434

La recherche a renvoyé 65 766 hôtes exposés.

Résultats FOFA.info affichant 65 766 instances Ollama exposées
  • Le port 11434 était joignable sur toutes
  • Je pouvais lire des modèles et envoyer des requêtes à leurs GPU
  • Beaucoup tournaient sur du matériel coûteux et le propriétaire n’en savait rien

Comment protéger votre service Ollama

Si vous utilisez Ollama il y a trois choses à faire dès aujourd’hui.

1. Liste d’IP autorisées

Utilisez un pare-feu et laissez passer uniquement les IP auxquelles vous faites confiance.

2. De l’authentification devant

Placez un proxy devant qui demande un jeton avant de transmettre quoi que ce soit.

3. Fermez le port public

Attachez le service à 127.0.0.1 pour que le port ne soit pas joignable depuis l’extérieur de la machine.

Conclusion

Ce n’est pas une critique d’Ollama. Il fournit un service local et c’est le bon comportement par défaut. Le problème commence quand un service local finit sur une IP publique et que personne n’a vérifié. Vingt minutes avec un pare-feu règlent toute l’affaire.