Le blog sécurité de FireAI

Par FireAI Security & Research Team · Publié

Sécurité de Hermes Agent sur Mac : surveiller son accès réseau

Sécurité de Hermes Agent sur Mac : surveiller son accès réseau

Hermes Agent est un agent open source de Nous Research qui peut utiliser un terminal, effectuer des recherches sur le web et répondre via des applications de messagerie. Des recherches comme « hermes agent security » et « is Hermes Agent safe » se ramènent à deux questions : ce qu’il peut exécuter sur votre Mac, et où son trafic peut aller. Cet article répond à l’une et à l’autre à partir de la documentation du projet et de comptes rendus publiés, puis explique comment FireAI, un pare-feu réseau pour macOS développé par HisnLabs, surveille ses connexions.

Ce qu’est Hermes Agent et comment il s’exécute sur un Mac

Le dépôt décrit un agent auto-améliorant doté d’une boucle d’apprentissage intégrée qui crée des skills à partir de l’expérience. Il est développé par Nous Research, écrit principalement en Python avec des composants Node.js pour son interface web, et publié sous licence MIT. Sur macOS, il s’installe avec un script d’une ligne (curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash). Il fonctionne avec Nous Portal, OpenRouter, OpenAI, Anthropic et des points de terminaison personnalisés, et sa passerelle de messagerie prend en charge Telegram, Discord, Slack, WhatsApp, Signal et l’e-mail.

Ce à quoi il peut accéder

Le README liste plus de 40 outils intégrés, dont la recherche web et l’accès au terminal, ainsi que sept backends de terminal : local, Docker, SSH, Singularity, Modal, Daytona et Vercel Sandbox. Avec le backend local, les commandes s’exécutent avec les permissions du compte qui a lancé Hermes.

Le modèle de permissions documenté

La documentation de sécurité décrit une défense en profondeur.

  • Les approbations comportent trois modes : smart (un modèle évalue le risque), manual (toujours demander) et off. Le mode YOLO contourne les demandes, mais une liste de blocage stricte pour les commandes catastrophiques continue de s’appliquer.
  • Les backends conteneurisés comme Docker, Modal et Daytona isolent les commandes ; les contrôles de commandes dangereuses y sont ignorés, car le conteneur constitue la frontière.
  • L’accès à la passerelle est refusé par défaut, avec des codes d’appairage en message privé que l’opérateur approuve, ainsi que des listes d’autorisation par plateforme et globales.
  • Les contrôles réseau comprennent une protection contre la SSRF qui bloque les plages privées, le loopback et les points de terminaison de métadonnées cloud.
  • Les chemins protégés comme ~/.ssh/ et ~/.aws/ sont strictement interdits en écriture, et les sous-processus reçoivent un environnement filtré.

Il s’agit de déclarations de l’éditeur, et non de résultats de tests indépendants. La documentation ne publie pas de liste fixe des domaines que Hermes contacte ; ceux-ci dépendent du fournisseur de modèle et des plateformes de messagerie que vous configurez.

Incidents documentés

La GitHub Advisory Database recense la CVE-2026-9366, une faille d’injection de gravité modérée dans les versions antérieures à 0.15.0, corrigée dans la 0.15.0 (avis). Par ailleurs, Hunt.io et Unit 42 ont rapporté que des attaquants utilisaient Hermes Agent en mode YOLO contre les serveurs de tiers (Hunt.io) (BleepingComputer). Ces cas concernent des attaquants ayant choisi l’outil, et non un défaut signalé de celui-ci. Les détails figurent dans notre synthèse des incidents.

Surveiller Hermes Agent avec FireAI

FireAI est un pare-feu embarqué pour macOS développé par HisnLabs. Sa fonctionnalité Profil d’agent range Hermes Agent parmi les 19 agents IA qu’elle reconnaît et, comme Hermes Agent s’exécute sous python, 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 Hermes Agent 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.

La liste Activité de FireAI filtrée sur « herm » : un processus python3.14 qui se connecte à hermes-agent.nousresearch.com, affiché avec le personnage de Hermes Agent au lieu d’une icône vide.
La liste Activité de FireAI sur un Mac : le Python fourni avec Hermes Agent se connecte à hermes-agent.nousresearch.com et porte le personnage de Hermes Agent.

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 Hermes Agent 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 Hermes Agent, 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.
  • Hermes Agent 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.
  • Les commandes que Hermes exécute dans un backend Docker ou distant se déroulent hors de l’arborescence des processus de votre Mac : FireAI voit donc la connexion du processus Docker ou SSH, et non celle de la commande qui s’y exécute.
  • FireAI ne remplace pas les approbations, listes d’autorisation ou sandbox propres à Hermes, et n’examine pas les skills que celui-ci crée.
  • 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.

La description complète de la fonctionnalité figure dans la documentation du Profil d’agent. Un guide associé traite d’OpenClaw.

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, Gemini CLI, 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

Hermes Agent peut exécuter des commandes de terminal en votre nom. 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