Le blog sécurité de FireAI

Par FireAI Security & Research Team · Publié

Sécurité de Gemini CLI sur Mac : surveiller ses connexions réseau

Sécurité de Gemini CLI sur Mac : surveiller ses connexions réseau

Gemini CLI est l’agent en ligne de commande open source de Google. Il lit et modifie des fichiers, exécute des commandes shell et récupère des pages web : les personnes qui recherchent « gemini cli security mac » ou « is Gemini CLI safe » veulent donc savoir quelles limites existent et où va son trafic. Cet article résume la documentation de Google, puis montre comment FireAI, un pare-feu réseau pour macOS développé par HisnLabs, le surveille.

Ce qu’est Gemini CLI et comment il s’exécute sur un Mac

Le dépôt décrit Gemini CLI comme un agent IA open source qui amène Gemini dans votre terminal. Il est développé par Google sous licence Apache 2.0. Il s’installe avec npm (npm install -g @google/gemini-cli) ou Homebrew (brew install gemini-cli), ou s’exécute sans installation via npx @google/gemini-cli. C’est donc un programme Node.js, et il s’authentifie avec un compte Google (OAuth), une clé d’API Gemini ou Vertex AI.

Ce à quoi il peut accéder

Ses outils intégrés couvrent les opérations sur le système de fichiers, l’exécution de commandes shell, la récupération de pages web avec l’ancrage Google Search, et des serveurs MCP pour des intégrations personnalisées. Le README mentionne un suivi d’utilisation, décrit dans sa documentation sur la télémétrie : c’est là qu’il faut vérifier ce que l’outil transmet.

Le modèle de permissions et de sandbox documenté

Google documente deux mécanismes importants sur un Mac.

  • Sandbox : sur macOS, l’option légère utilise des profils Seatbelt (sandbox-exec). Le profil par défaut, permissive-open, limite les écritures au répertoire du projet tout en autorisant de larges lectures de fichiers et l’accès au réseau. Des profils plus stricts, dont des variantes passant par un proxy, se choisissent avec la variable d’environnement SEATBELT_PROFILE, et les conteneurs Docker ou Podman constituent l’alternative. La sandbox s’active avec -s ou --sandbox, GEMINI_SANDBOX ou settings.json.
  • Trusted Folders (dossiers de confiance) : désactivés par défaut. Lorsqu’ils sont activés, un dossier non approuvé place la CLI en mode sécurisé, ce qui désactive les réglages de l’espace de travail, les connexions aux serveurs MCP, les commandes personnalisées et l’acceptation automatique des outils.

La page consacrée à la sandbox indique elle-même que celle-ci réduit les risques sans tous les éliminer. À noter : le profil Seatbelt par défaut autorise toujours l’accès au réseau, il ne limite donc pas les destinations vers lesquelles des données peuvent être envoyées.

La documentation examinée ne publie pas de liste complète des domaines contactés par Gemini CLI. La connexion au compte Google, l’API Gemini et toute page récupérée sont les candidats évidents, mais seule votre propre observation peut le confirmer.

Surveiller Gemini CLI avec FireAI

FireAI est un pare-feu embarqué pour macOS développé par HisnLabs. Sa fonctionnalité Profil d’agent range Gemini CLI parmi les 19 agents IA qu’elle reconnaît et, comme Gemini CLI s’exécute via node, l’identifie par le script que lance l’environnement d’exécution, comme le fait le Profil d’agent pour les agents node, bun, deno et python. Les processus enfants de l’agent, comme un shell, git ou curl qu’il lance, lui sont attribués en remontant la chaîne des processus parents. FireAI apprend ensuite, pendant les 3 premiers jours, les destinations que Gemini CLI contacte habituellement, regroupées par domaine, et ne signale rien pendant cette période. Au-delà, toute destination jamais contactée est signalée dans Suggestions, dans la carte Agents IA et dans la Revue rapide. Un pic d’envoi est également signalé : une heure au cours de laquelle l’agent a envoyé au moins 4 fois le volume de son heure la plus chargée jusque-là, et jamais moins de 25 Mo.

FireAI n’utilise que des métadonnées, à savoir les noms d’hôte et les volumes en octets, et ne lit jamais le contenu d’une connexion. Par défaut, il signale et vous laisse la décision. Le mode de sécurité Profil d’agent va plus loin : une fois l’apprentissage terminé, une connexion vers une destination hors de la base de référence est bloquée jusqu’à ce que vous appuyiez sur Autoriser, et Garder bloqué transforme ce blocage en une règle valable dans tous les modes.

Mise en place, étape par étape

  1. Installez FireAI et terminez sa configuration initiale en suivant Installer et terminer la configuration.
  2. Utilisez Gemini CLI comme d’habitude pendant 3 jours. FireAI apprend ses destinations en arrière-plan et ne signale encore rien.
  3. Ouvrez Suggestions et repérez la carte Agents IA. Lorsqu’un signalement apparaît, lisez la phrase explicative, puis glissez vers la gauche dans la Revue rapide pour bloquer, ou vers la droite pour « C’est bon ».
  4. Si vous souhaitez cantonner l’agent aux destinations qu’il utilise déjà, choisissez Profil d’agent dans le menu des modes de sécurité, à côté de Maison, Café, Parano et Sous attaque.
  5. Lorsqu’une destination est bloquée, ouvrez la carte Agents IA et choisissez Autoriser pour l’ajouter à la base de référence, ou Garder bloqué pour créer une règle de blocage.

Limites

  • FireAI n’empêche pas l’injection de prompt. Il en limite les conséquences en signalant, et en vous permettant de bloquer, le chemin par lequel les données quitteraient votre Mac.
  • FireAI ne voit ni les prompts de Gemini CLI, ni le contenu des outils MCP, ni les skills, ni les fichiers qu’il lit, car TLS masque le contenu et FireAI ne se trouve pas à l’intérieur de l’agent.
  • Gemini CLI est identifié par le nom de son script : FireAI l’étiquette donc sans le vérifier. Seuls Claude Code, Claude et Cursor sont contrôlés par rapport à la signature de leur éditeur.
  • Une page web récupérée par l’agent est une destination légitime pour celui-ci mais peut être absente de sa base de référence : attendez-vous à des signalements lorsque vous lui confiez des recherches.
  • FireAI fonctionne en complément de la sandbox et des Trusted Folders de Gemini CLI, il ne les remplace pas.
  • Pendant la période d’apprentissage de 3 jours, rien n’est signalé, et les pics d’envoi sont signalés, non bloqués.
  • Un nouveau serveur relevant d’un domaine que l’agent utilise déjà est considéré comme connu, car les destinations sont regroupées par domaine.

L’injection de prompt, par laquelle un texte présent dans une page récupérée oriente un agent, est répertoriée par l’OWASP. FireAI ne l’empêche pas. La fonctionnalité est décrite dans la documentation du Profil d’agent.

Les autres agents reconnus par FireAI ont leurs propres guides : Claude Code, l’application de bureau Claude, Cursor, l’application ChatGPT pour Mac, OpenAI Codex CLI, OpenClaw, Hermes Agent, GitHub Copilot CLI, Amp, Qwen Code, opencode, Aider, Goose, Crush, Windsurf, Kiro, Trae, Muse de Meta, tout agent IA exécuté par Python ou Node.

Le rôle de FireAI et de HisnLabs

Gemini CLI peut exécuter des commandes et consulter le web depuis votre terminal. FireAI montre, et peut bloquer, la prochaine destination qu’il contacte.

FireAI est le produit de HisnLabs : un pare-feu IA embarqué pour Mac. Il montre en langage clair chaque connexion faite par vos applications et vous laisse décider ce qui sort de votre Mac — son IA fonctionne en local, votre trafic ne nous est jamais envoyé, ni à personne d’autre. L’équipe de recherche en sécurité de HisnLabs est celle qui garde ces décisions fiables : elle recense les domaines de simple télémétrie face à ceux d’un vrai service, suit le pays et le réseau derrière une connexion, et entraîne le modèle embarqué (la fonction FireAI Pilot) sur du trafic réel, sans que rien ne quitte votre Mac.

Vous pouvez lire les choix techniques qui s’y trouvent, ou essayer FireAI pendant 17 jours, sur FireAI, par HisnLabs.

Sources