
un garde-fou qui bloque les actions catastrophiques des agents
les erreurs coûteuses s'arrêtent ici
un garde-fou qui bloque les actions catastrophiques des agents
nahguard.ai • ce qu'il bloque • comment il se compare • comment il décide • installation • étendre • modèle de menace
claude code · codex · cursor · pi · + 11 de plus
nah est un garde-fou qui s'installe dans le chemin des hooks de votre agent de codage et lit les appels d'outils avant leur exécution. Il bloque les appels dont il peut prouver qu'ils sont des désastres et n'approuve jamais rien : tout le reste passe par les permissions normales de votre environnement d'exécution.
nah n'est qu'un seul binaire Rust : un verdict est déterministe et ne nécessite aucun LLM. Les extensions ne sont que des programmes. Indiquez à votre agent la documentation de nah et demandez-lui de construire un garde-fou nah personnalisé.
48 garde-fous, 30 activés par défaut, couvrant huit classes de désastre : détournements d'exécution, vol de secrets, destruction du système de fichiers, désastres git, démantèlement d'infrastructure, de stockage et de sauvegarde, accès réseau à des hôtes ressemblants, opérations sur les registres de paquets, et actions d'alimentation de l'hôte et d'arrêt de services.
| Garde | Blocages |
|---|---|
exec-remote | Exécution d'une charge utile obtenue visiblement depuis le réseau. |
exec-decoded | Exécution atteinte depuis une étape de décodage visible. |
exec-obfuscated | Exécution encodée, sélectionnée par motif ou non résolue, et caractères cachés dans les commandes. |
exec-network-shell | Shells attachés à une connexion réseau, y compris netcat, socat et la redirection de shell. |
secrets-env | Lectures de fichiers .env et de noms de base sensibles, y compris les contenus issus de l'historique Git, ainsi que la sortie directe des variables d'environnement d'identifiants cataloguées. |
secrets-credentials | Lectures ou écritures de chemins de clés privées et de magasins d'identifiants, y compris les lectures de contenu depuis l'historique Git ; suppression ou déplacement de clés privées ; lectures de métadonnées ou de valeurs du trousseau macOS. |
secrets-exfil | Un flux visible depuis une source sensible vers une étape réseau. |
secrets-store-delete | Suppression restante de magasin de secrets examinée, avec une sémantique récupérable ou dépendante du contexte. Désactivé par défaut. |
secrets-store-destroy | Destruction permanente prouvée d'un magasin de secrets : suppression de version/métadonnées/moteur Vault, suppression forcée AWS et SSM, suppression complète de secret Google, purge Azure, suppression de projet/configuration Doppler et suppression de coffre 1Password. |
secrets-store-read | Lectures de valeurs examinées via les CLI courantes de gestionnaires de secrets. |
fs-system-tree | Suppression, déplacement prouvé d'entrée racine, modifications récursives de permissions ou écrasement de tous les fichiers, en sélectionnant la racine du système de fichiers ou une arborescence système. |
fs-home | Suppression, modifications récursives de permissions ou écrasement de tous les fichiers, en sélectionnant la racine du répertoire personnel ou un dossier personnel tel que ~/Documents. |
fs-outside-workspace-delete | Suppression récursive en dehors du projet actif, sauf sous des racines temporaires examinées. Désactivé par défaut. |
fs-permission-weaken | Modes chmod qui accordent de manière prouvable une permission d'écriture pour tous ou setuid/setgid. Désactivé par défaut. |
fs-project-root | Suppression récursive concrète limitée au projet, modifications récursives de permissions connues pouvant verrouiller le propriétaire, ou écrasement de tous les fichiers, en sélectionnant la racine exacte du projet ou ses motifs exacts *, .* ou {*,.*} à l'échelle de la racine. find -delete sans chemin de départ explicite n'a pas de cible modélisée. |
fs-raw-device | Écritures visibles vers des périphériques de stockage bruts, et destruction complète de ces périphériques, ainsi que le déclencheur sysrq. |
fs-volume-destroy | Destruction définitive de volumes logiques, de pools de stockage et de jeux de données ZFS actifs. |
fs-forkbomb | Motifs de fork-bomb shell reconnus structurellement. |
fs-auth-identity | Modification ou suppression de fichiers examinés d'authentification, d'identité et de politique de privilèges de l'hôte, y compris la suppression récursive de leurs répertoires parents. |
fs-shell-profile | Modifications de chemins examinés de profils de shell utilisateur. Désactivé par défaut. |
fs-startup-management | Commandes examinées de gestion persistante systemctl, launchctl et crontab. Désactivé par défaut. |
fs-startup-persistence | Modifications de chemins examinés de démarrage de services, de planification, de connexion, de démarrage automatique et de chargeur. |
git-clean-force | Un git clean forcé effectif sélectionnant la racine du projet. |
git-force-push | Push Git forcés sans protection par lease et push forcés avec lease ciblant explicitement main ou master. |
git-hard-reset | Réinitialisations dures Git. |
git-history-rewrite | Réécritures sélectionnées non forcées de l'historique Git, y compris rebases, filtrage, expiration de récupération, garbage collection agressive ou avec élagage, et push forcés avec lease, y compris les refspecs statiques explicites ciblant main ou master. Désactivé par défaut. |
git-rewrite-force | Réécriture d'historique qui contourne explicitement les contrôles de sécurité ou de sauvegarde. |
git-metadata | Écritures destructrices ou suppression sélectionnant des métadonnées durables de l'historique Git. |
git-path-discard | Écrasements définis par checkout, restore et git show sur un même chemin nommé. Désactivé par défaut. |
git-protected-push | Push dont le refspec statique explicite cible main ou master. Les push nus restent en dehors de ce garde. Désactivé par défaut. |
git-recovery-destroy | Effacement de la collection complète de stash ou destruction immédiate à l'échelle du dépôt de l'historique de récupération Git. |
git-ref-delete | Suppression révisée de ref locale et distante, d'entrée de stash, de worktree et de worktree de sous-module. Désactivé par défaut. |
git-remote-repo-delete | Suppression exacte de dépôt complet GitHub, GitLab et Azure DevOps via leurs CLI et routes REST. |
git-remote-resource-delete | Suppression ciblée statiquement de ressources hébergées GitHub, GitLab et Azure DevOps via des commandes CLI et routes REST révisées. Désactivé par défaut. |
git-worktree-discard | Checkout ou restauration à l'échelle du projet, changements de branche forcés prouvés, et suppression forcée de worktree ou désinitialisation de sous-module. |
db-destroy | Suppression (drop), troncature, vidage, réinitialisation ou écrasement de données de base de données en production, et suppression de bases de données gérées. Désactivé par défaut. |
infra-container-reset | Commandes Podman qui réinitialisent l'état complet du runtime local ou sélectionné. |