
nah v1.4.0
uma proteção que bloqueia ações catastróficas de agentes
erros caros param aqui
uma proteção que bloqueia ações catastróficas de agentes
nahguard.ai • o que ele bloqueia • como ele se compara • como ele decide • instalação • estender • modelo de ameaças
claude code · codex · cursor · pi · + 11 mais
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 que são desastres e nunca aprova nada: todo o resto segue para as permissões normais do 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.
48 proteções, 30 ativadas por padrão, cobrindo oito 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, acesso de rede a hosts parecidos, 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, e caracteres ocultos em comandos. |
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 nomes base sensíveis, incluindo conteúdos do histórico do Git, além da saída direta de variáveis de ambiente de credenciais catalogadas. |
secrets-credentials | Leituras ou gravações de caminhos de chaves privadas e armazenamentos de credenciais, incluindo leituras de conteúdo do histórico do Git; exclusão ou movimentação de chaves privadas; leituras de metadados ou valores do keychain do macOS. |
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/engine do Vault, exclusão forçada do AWS e do SSM, exclusão de segredo inteiro do Google, purge do Azure, exclusão de projeto/configuração do Doppler e exclusão de cofre do 1Password. |
secrets-store-read | Leituras revisadas de valores em CLIs comuns de gerenciadores de segredos. |
fs-system-tree | Exclusão, relocação comprovada de entrada raiz, alterações recursivas de permissão ou sobrescrita de todos os arquivos, selecionando a raiz do sistema de arquivos ou uma árvore do sistema. |
fs-home | Exclusão, alterações recursivas de permissão ou sobrescrita de todos os arquivos, 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 de chmod que comprovadamente concedem permissão de escrita global ou setuid/setgid. Desativada por padrão. |
fs-project-root | Exclusão recursiva concreta com escopo de projeto, alterações recursivas de permissão conhecidas ou sobrescrita de todos os arquivos, selecionando a raiz exata do projeto ou seus padrões exatos de raiz *, .* ou {*,.*}. find -delete sem um caminho inicial explícito não tem alvo modelado. |
fs-raw-device | Gravações visíveis em, e destruição total de, 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 do Git sem força, incluindo rebases, filtragem, expiração de recuperação, garbage collection agressivo 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 | Gravações destrutivas ou exclusão selecionando metadados duráveis do histórico do 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. |
db-destroy | Drop, truncate, flush, reset ou sobrescrita de dados de banco de dados ativos, e exclusão de bancos de dados gerenciados. Desativada por padrão. |
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 prune revisados do Docker e Podman, e remoção de volumes com Compose down -v/rm -v. Desativada por padrão. |
infra-iac-destroy | Destruição totalmente visível de stack inteira no Terraform, OpenTofu e Pulumi, e exclusão revisada de recursos provisionados em nuvem e plataformas hospedadas por meio de CLIs aws, gcloud, az, Railway, Modal, Kamal, Wrangler, Fastly, Supabase e bancos de dados gerenciados. Desativada por padrão. |