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.
La recherche a renvoyé 65 766 hôtes exposés.
- 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.