Tutoriel 29 : Plongée dans la sécurité
Tutorial 29: Security Deep Dive — easy-to-understand guide based on official docs
Tutoriel 29 : Plongée dans la sécurité
Bienvenue, dompteurs d’agents ! Aujourd’hui, on enfile nos casques de chantier et on plonge au cœur du modèle de sécurité d’Hermes Agent. Si vous vous êtes déjà demandé ce qui se passe en coulisses pour garder vos sessions en sécurité, ce tutoriel est fait pour vous.
Vue d’ensemble : huit couches de défense
Hermes ne s’appuie pas sur un seul verrou à la porte. Il utilise plutôt une approche de défense en profondeur avec huit couches de sécurité distinctes. Pensez-y comme à un château : même si quelqu’un franchit les douves, il doit encore affronter les remparts, les portes et les gardes à l’intérieur.
Voici la liste :
- Autorisation utilisateur — qui a le droit de parler à l’agent
- Approbation des commandes dangereuses — validation humaine pour les actions destructrices
- Sécurité des écritures de fichiers — listes noires et sandbox pour les opérations sur fichiers
- Isolation par conteneur — sandboxing Docker/Singularity/Modal
- Filtrage des identifiants MCP — garder les secrets loin des sous-processus
- Analyse des fichiers de contexte — détection d’injection de prompt dans les fichiers projet
- Isolation entre sessions — les sessions ne peuvent pas espionner les données des autres
- Assainissement des entrées — blocage des injections shell via les paramètres de répertoire de travail
Chaque couche compte, mais aujourd’hui nous nous concentrons sur celle avec laquelle vous interagirez le plus : l’approbation des commandes dangereuses.
Comment fonctionne l’approbation des commandes dangereuses
Avant qu’Hermes n’exécute une commande, il la vérifie par rapport à une liste de motifs dangereux. S’il y a correspondance, c’est vous qui décidez de la suite.
Vous contrôlez ce comportement via la section approvals dans ~/.hermes/config.yaml :
approvals:
mode: smart # smart | manual | off
timeout: 300 # secondes d'attente pour la réponse utilisateur
cron_mode: deny # deny | approve
single_query_mode: deny # deny | approve
mcp_reload_confirm: true # confirmation avant rechargement des outils MCP
destructive_slash_confirm: true # confirmation avant /clear, /new, etc.
Trois modes d’approbation
La clé mode vous offre trois choix :
| Mode | Comportement |
|---|---|
| smart (par défaut) | Utilise un LLM auxiliaire pour évaluer le risque. Les commandes à faible risque (comme python -c "print('hello')") sont automatiquement approuvées. Les commandes vraiment dangereuses sont automatiquement refusées. Les cas incertains remontent à une demande manuelle. |
| manual | Demande toujours votre approbation pour les commandes dangereuses. Aucune exception. |
| off | Désactive toutes les vérifications d’approbation. Équivalent à lancer avec --yolo. |
⚠️ Avertissement : Définir
approvals.mode: offdésactive toutes les invites de sécurité. Ne faites cela que dans des environnements de confiance comme les pipelines CI/CD ou les conteneurs jetables.
Mode YOLO : le gros bouton rouge
Le mode YOLO contourne toutes les invites d’approbation de commandes dangereuses pour la session en cours. Vous pouvez l’activer de trois façons :
- Option CLI :
hermes --yoloouhermes chat --yolo - Commande slash : Tapez
/yolopendant une session - Variable d’environnement : Définissez
HERMES_YOLO_MODE=1
La commande /yolo est un interrupteur — chaque utilisation l’active ou la désactive :
> /yolo
⚡ Mode YOLO ACTIVÉ — toutes les commandes sont auto-approuvées. À utiliser avec prudence.
> /yolo
⚠ Mode YOLO DÉSACTIVÉ — les commandes dangereuses nécessiteront une approbation.
Lorsque YOLO est actif, Hermes s’assure que vous ne pouvez pas l’oublier. Vous verrez une bannière rouge au démarrage de la session et un fragment ⚠ YOLO dans la barre de statut, mis à jour en direct pendant que vous basculez.
⚠️ Danger : Le mode YOLO désactive toutes les vérifications de sécurité des commandes dangereuses — sauf la liste noire stricte. Utilisez-le uniquement lorsque vous faites entièrement confiance aux commandes générées (par exemple, des scripts d’automatisation bien testés dans des environnements jetables).
Nouveautés de cette version : des clés de configuration plus intelligentes
Deux nouvelles clés de configuration méritent une attention particulière :
mcp_reload_confirm (par défaut : true) — Lorsqu’elle est à true, /reload-mcp demande confirmation avant de reconstruire l’ensemble des outils MCP. Pourquoi ? Parce que la reconstruction invalide le cache de prompts du fournisseur, ce qui signifie que le prochain message renverra les tokens d’entrée complets. C’est un coût que vous voudrez peut-être approuver au préalable.
destructive_slash_confirm (par défaut : true) — Lorsqu’elle est à true, les commandes de session destructrices (/clear, /new, /reset, /undo) demandent confirmation avant de supprimer l’état de la conversation. Vous obtenez une boîte de dialogue à trois options : Approuver une fois / Toujours approuver / Annuler. Sur Telegram, Discord et Slack, cela passe par des boutons oui/non natifs. Ailleurs, cela retombe sur du texte.
La TUI respecte également ce paramètre pour ses modales /clear, /new et /reset. Et si vous automatisez des choses, HERMES_TUI_NO_CONFIRM=1 force le saut complet de cette modale.
Sessions sans tête : Cron et requête unique
Que se passe-t-il quand une tâche cron ou une session ponctuelle hermes chat -q rencontre une commande dangereuse ? Il n’y a aucun humain pour répondre à une invite.
C’est là que cron_mode et single_query_mode entrent en jeu :
deny(par défaut) — Bloque la commande. L’agent doit trouver un autre chemin.approve— Approuve automatiquement tout dans ce contexte.
Les deux sont définis sur deny par défaut pour une bonne raison : mieux vaut prévenir que guérir quand personne ne surveille.
Pour conclure
Le modèle de sécurité d’Hermes Agent vise à vous donner le contrôle sans vous mettre des bâtons dans les roues. Le mode d’approbation intelligent gère automatiquement les tâches ennuyeuses, tandis que le mode manuel vous offre une supervision complète quand vous en avez besoin. Et si vous êtes dans un environnement de confiance, le mode YOLO vous permet d’aller vite.
Rappelez-vous simplement : un grand pouvoir implique de grandes responsabilités. Utilisez YOLO avec sagesse !
La prochaine fois, nous explorerons comment personnaliser le système d’approbation pour votre flux de travail spécifique. D’ici là, restez en sécurité !
📖 Documentation officielle
Cet article est basé sur la documentation officielle de Hermes Agent :Docs officiels › user-guide/security