
nah v0.11.0
uma proteção que bloqueia ações catastróficas de agentes
erros caros param por aqui
uma proteção que bloqueia ações catastróficas de agentes
nahguard.ai • o que ele bloqueia • como ele decide • instalação • estender • modelo de ameaças
claude code · codex · cursor · pi · + 11 outros
nah é uma proteção que fica no caminho dos hooks do seu agente de programação e lê as chamadas de ferramentas antes que elas sejam executadas. Ele bloqueia as chamadas que consegue provar serem desastres e deixa todo o resto para o seu runtime.
nah é apenas um binário Rust: um veredito é determinístico e não precisa de LLM. Extensões são apenas programas. Aponte seu agente para a documentação do nah e peça que ele construa uma proteção personalizada do nah.
Ele reconhece um desastre quando vê um.
46 proteções, 29 ativadas por padrão, cobrindo sete classes de desastre: sequestro de execução, roubo de segredos, destruição do sistema de arquivos, desastres com git, desmonte de infraestrutura, armazenamento e backup, operações em registros de pacotes e ações de desligamento de energia e serviços do host.
| Proteção | Bloqueia |
|---|---|
exec-remote | Execução de um payload obtido visivelmente da rede. |
exec-decoded | Execução alcançada a partir de um estágio de decodificação visível. |
exec-obfuscated | Execução codificada, selecionada por padrão ou não resolvida. |
exec-network-shell | Shells conectados a uma conexão de rede, incluindo netcat, socat e redirecionamento de shell. |
secrets-env | Leituras de arquivos .env e basenames sensíveis, além da saída direta de variáveis de ambiente de credenciais catalogadas. |
secrets-credentials | Leituras ou escritas de caminhos de chaves privadas e armazenamentos de credenciais. |
secrets-exfil | Um fluxo visível de uma origem sensível para um estágio de rede. |
secrets-store-delete | Exclusão revisada restante de armazenamento de segredos com semântica recuperável ou dependente de contexto. Desativada por padrão. |
secrets-store-destroy | Destruição permanente comprovada de armazenamento de segredos: remoção de versão/metadados/motor do Vault, exclusão forçada da AWS e do SSM, exclusão de segredo inteiro do Google, purge do Azure e exclusão de configuração do Doppler. |
secrets-store-read | Leituras de valores revisadas em CLIs comuns de gerenciadores de segredos. |
fs-system-tree | Exclusão, realocação comprovada de entrada raiz ou alterações recursivas de permissão selecionando a raiz do sistema de arquivos ou uma árvore do sistema. |
fs-home | Exclusão ou alterações recursivas de permissão selecionando a raiz do home. |
fs-outside-workspace-delete | Exclusão recursiva fora do projeto ativo, exceto sob raízes temporárias revisadas. Desativada por padrão. |
fs-permission-weaken | Modos chmod que comprovadamente concedem permissão de escrita global ou setuid/setgid. Desativada por padrão. |
fs-project-root | Exclusão recursiva concreta no escopo do Projeto ou alterações recursivas de permissão conhecidas selecionando a raiz exata do projeto ou seus padrões exatos *, .* ou {*,.*} em toda a raiz. find -delete sem um caminho inicial explícito não tem alvo modelado. |
fs-raw-device | Escritas visíveis em dispositivos de armazenamento brutos e o gatilho sysrq. |
fs-volume-destroy | Destruição definitiva de volume lógico, pool de armazenamento e dataset ZFS ativo. |
fs-forkbomb | Padrões de fork-bomb de shell reconhecidos estruturalmente. |
fs-auth-identity | Modificação ou exclusão de arquivos revisados de autenticação, identidade e política de privilégios do host, incluindo exclusão recursiva de seus diretórios pais. |
fs-shell-profile | Alterações em caminhos revisados de perfil de shell do usuário. Desativada por padrão. |
fs-startup-management | Comandos revisados de gerenciamento persistente de systemctl, launchctl e crontab. Desativada por padrão. |
fs-startup-persistence | Alterações em caminhos revisados de inicialização de serviços, agendamentos, login, autostart e loader. |
git-clean-force | Um Git clean forçado efetivo selecionando a raiz do projeto. |
git-force-push | Git force pushes sem proteção de lease e force pushes com lease direcionados explicitamente a main ou master. |
git-hard-reset | Git hard resets. |
git-history-rewrite | Reescritas selecionadas de histórico Git não forçadas, incluindo rebases, filtragem, expiração de recuperação, garbage collection agressiva ou com pruning e force pushes com lease, incluindo refspecs estáticos explícitos direcionados a main ou master. Desativada por padrão. |
git-rewrite-force | Reescrita de histórico que contorna explicitamente verificações de segurança ou backup. |
git-metadata | Escritas destrutivas ou exclusão selecionando metadados duráveis do histórico Git. |
git-path-discard | Checkout, restore e sobrescritas de git show no mesmo caminho de caminhos nomeados definidos. Desativada por padrão. |
git-protected-push | Pushes cujo refspec estático explícito tem como alvo main ou master. Pushes simples permanecem fora desta proteção. Desativada por padrão. |
git-recovery-destroy | Limpeza de toda a coleção de stash ou destruição imediata em todo o repositório do histórico de recuperação do Git. |
git-ref-delete | Exclusão revisada de refs locais e remotas, entradas de stash, worktrees e worktrees de submódulos. Desativada por padrão. |
git-remote-repo-delete | Exclusão exata de repositório inteiro no GitHub e GitLab por meio de suas CLIs e rotas REST. |
git-remote-resource-delete | Exclusão de recursos hospedados no GitHub e GitLab com alvo estático por meio de comandos de CLI revisados e rotas REST. Desativada por padrão. |
git-worktree-discard | Checkout ou restore em todo o projeto, mudanças de branch forçadas comprovadas e remoção forçada de worktree ou desinicialização de submódulo. |
infra-container-reset | Comandos Podman que redefinem o estado completo do runtime local ou selecionado. |
infra-container-volume-delete | Limpeza ampla de volumes não utilizados por meio de comandos revisados de prune do Docker e Podman. Desativada por padrão. |
infra-iac-destroy | Destruição totalmente visível de stack inteira no Terraform, OpenTofu e Pulumi. Desativada por padrão. |
infra-k8s-delete | Exclusão estática de namespace, recursos de cluster revisados e exclusão em massa de recursos com namespace revisados por meio de kubectl. Desativada por padrão. |
storage-backup-destroy | Exclusão completa de repositório de backup ou de todos os backups por meio de comandos revisados do Borg, Restic e Velero. |
storage-recursive-delete | Exclusão remota ampla e sincronização que exclui o destino por meio de CLIs revisadas de nuvem e sincronização. Desativada por padrão. |
storage-snapshot-delete | Exclusão revisada de snapshots, arquivos, volumes e retenção. Desativada por padrão. |
registry-publish | Comandos revisados de publicação de pacotes. Desativada por padrão. |
registry-unpublish | Despublicação revisada de pacotes, yank irreversível do RubyGems e alterações de proprietário de nomes publicados. |
sys-power | Ações totalmente visíveis de desligamento, reinicialização, halt e suspensão do host local. |