OpenCode Web : bon outil et défaut dangereux

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


La meilleure alternative ?

J’utilise OpenCode depuis un moment et sur beaucoup de points il me convient mieux que Claude Code. Il parle à plusieurs fournisseurs comme Ollama et Anthropic, il est open source et changer de modèle en cours de tâche est rapide.

Il fournit aussi un mode web avec opencode web qui transforme la CLI en application de navigateur. C’est pratique et c’est en même temps la partie la plus risquée de l’outil si vous ne faites pas attention.

Le risque

Lancer opencode web démarre un serveur. Si vous l’attachez à 0.0.0.0 pour qu’un portable de votre réseau l’atteigne, vous venez de publier un point d’entrée d’exécution de code à distance sur l’interface de cette machine.

L’interface web exécute des commandes, édite des fichiers et atteint un shell. C’est fait pour ça. Sans authentification celui qui trouve le port récupère tout ça.

L’exposition

J’ai vérifié si cela arrivait déjà en vrai avec FOFA et la requête title="OpenCode".

Requête FOFA.info sur les instances OpenCode

J’ai trouvé 32 hôtes exposés immédiatement.

Résultats FOFA affichant 32 instances web OpenCode exposées

Trente-deux semble peu pour un moteur de recherche et ce n’est pas peu. Ce sont 32 environnements de développement joignables depuis l’internet ouvert. OpenCode se personnalise facilement donc une version qui change le titre n’apparaît pas ici du tout.

Comment le sécuriser

OpenCode fournit un moyen de verrouiller l’interface web. Il faut l’activer.

1. Mettez un mot de passe

Mettez un mot de passe avant de démarrer le serveur pour que personne n’atteigne l’interface sans lui.

Lancez cette commande avant de démarrer le serveur web.

opencode --set-password <your-strong-password>

Vous pouvez aussi définir la variable d’environnement OPENCODE_SERVER_PASSWORD à la place.

2. Ne l’exposez pas sur internet

Ne redirigez pas le port vers internet sauf si un VPN ou un tunnel se trouve devant. Gardez-le sur 127.0.0.1 ou sur un réseau local que vous contrôlez.

Conclusion

Je recommande OpenCode. Un outil qui peut réécrire vos fichiers et exécuter votre shell doit être traité comme tel.

Mettez le mot de passe avant de le lancer. C’est toute la leçon.