
nah v1.4.0
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 • extension • modèle de menace
claude code · codex · cursor · pi · + 11 autres
nah est un garde-fou qui se place 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 runtime.
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é.
Il reconnaît un désastre quand il en voit un.
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 sauvegardes, accès réseau à des hôtes sosies, opérations sur les registres de paquets, et actions d'extinction et d'arrêt de services de l'hôte.
| Garde-fou | Bloque |
|---|---|
exec-remote | L'exécution d'une charge utile visiblement obtenue depuis le réseau. |
exec-decoded | Une exécution atteinte depuis une étape de décodage visible. |
exec-obfuscated | Une exécution encodée, sélectionnée par motif ou non résolue, et les caractères cachés dans les commandes. |
exec-network-shell | Les shells attachés à une connexion réseau, y compris netcat, socat et la redirection de shell. |
secrets-env | Les lectures de fichiers .env et de noms de base sensibles, y compris le contenu issu de l'historique Git, ainsi que la sortie directe de variables d'environnement d'identifiants cataloguées. |
secrets-credentials | Les 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 ; la suppression ou le déplacement de clés privées ; les lectures de métadonnées ou de valeurs du trousseau macOS. |
secrets-exfil | Un flux visible d'une source sensible vers une étape réseau. |
secrets-store-delete | La suppression restante de magasins de secrets examinée, avec une sémantique récupérable ou dépendante du contexte. Désactivé par défaut. |
secrets-store-destroy | La destruction permanente prouvée de magasins de secrets : suppression de version/métadonnées/moteur Vault, suppression forcée AWS et SSM, suppression de secret entier Google, purge Azure, suppression de projet/configuration Doppler, et suppression de coffre 1Password. |
secrets-store-read | Les lectures de valeurs examinées à travers les CLI courantes de gestionnaires de secrets. |
fs-system-tree | La suppression, la relocalisation prouvée d'entrées racines, les changements récursifs de permissions, ou l'écrasement de chaque fichier, en sélectionnant la racine du système de fichiers ou une arborescence système. |
fs-home | La suppression, les changements récursifs de permissions, ou l'écrasement de chaque fichier, en sélectionnant la racine du répertoire personnel. |
fs-outside-workspace-delete | La suppression récursive en dehors du projet actif, sauf sous des racines temporaires examinées. Désactivé par défaut. |
fs-permission-weaken | Les modes chmod qui accordent de manière prouvable la permission d'écriture pour tous ou setuid/setgid. Désactivé par défaut. |
fs-project-root | La suppression récursive concrète à l'échelle du projet, les changements récursifs de permissions connus, ou l'écrasement de chaque fichier, 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 | Les écritures visibles vers, et la destruction complète de, périphériques de stockage bruts, ainsi que le déclencheur sysrq. |
fs-volume-destroy | La destruction certaine de volumes logiques, de pools de stockage et de jeux de données ZFS actifs. |
fs-forkbomb | Les motifs de fork-bomb shell structurellement reconnus. |
fs-auth-identity | La modification ou la 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 | Les modifications de chemins examinés de profils de shell utilisateur. Désactivé par défaut. |
fs-startup-management | Les commandes examinées de gestion persistante systemctl, launchctl et crontab. Désactivé par défaut. |
fs-startup-persistence | Les 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 | Les push forcés Git sans protection par lease et les push forcés avec lease ciblant explicitement main ou master. |
git-hard-reset | Les réinitialisations dures Git. |
git-history-rewrite | Les réécritures d'historique Git non forcées sélectionnées, y compris les rebases, le filtrage, l'expiration de récupération, le ramasse-miettes agressif ou avec élagage, et les push forcés avec lease, y compris les refspecs statiques explicites ciblant main ou master. Désactivé par défaut. |
git-rewrite-force | La réécriture d'historique qui contourne explicitement les vérifications de sécurité ou de sauvegarde. |
git-metadata | Les écritures destructrices ou la suppression sélectionnant des métadonnées durables de l'historique Git. |
git-path-discard | Les checkout, restore et écrasements git show sur le même chemin, de chemins nommés définis. Désactivé par défaut. |
git-protected-push | Les push dont le refspec statique explicite cible main ou master. Les push nus restent en dehors de ce garde-fou. Désactivé par défaut. |
git-recovery-destroy | L'effacement de la collection complète de stash ou la destruction immédiate à l'échelle du dépôt de l'historique de récupération Git. |
git-ref-delete | La suppression examinée de refs locales et distantes, d'entrées de stash, de worktrees et de worktrees de sous-modules. Désactivé par défaut. |
git-remote-repo-delete | La suppression exacte de dépôt entier GitHub et GitLab via leurs CLI et routes REST. |
git-remote-resource-delete | La suppression ciblée statiquement de ressources hébergées GitHub et GitLab via des commandes CLI et routes REST examinées. Désactivé par défaut. |
git-worktree-discard | Le checkout ou restore à l'échelle du projet, les changements de branche forcés prouvés, et la suppression forcée de worktree ou la désinitialisation de sous-module. |
db-destroy | Le drop, truncate, flush, reset ou écrasement de données de base de données actives, et la suppression de bases de données gérées. Désactivé par défaut. |
infra-container-reset | Les commandes Podman qui réinitialisent l'état complet du runtime local ou sélectionné. |