Resolução de Politicas Multi-Fonte
As políticas de permissao sao carregadas e mescladas de múltiplas fontes, com prioridade definida:| Prioridade | Fonte | Arquivo | Escopo |
|---|---|---|---|
| 1 (mais alta) | CLI flags | Argumentos de linha de comando | Sessão atual |
| 2 | Projeto | .chatcli/coder_policy.json | Workspace atual |
| 3 | Usuário | ~/.chatcli/coder_policy.json | Global do usuário |
| 4 (mais baixa) | Defaults | Regras embutidas no binario | Todos |
Fontes de prioridade mais alta prevalecem sobre as mais baixas. Se uma regra do projeto diz
allow para @coder exec, mas a regra do usuário diz deny, a regra do projeto prevalece.Formato do Arquivo de Política
Acoes Disponíveis
| Acao | Comportamento |
|---|---|
allow | Execução automatica sem perguntar |
deny | Bloqueio automático sem perguntar |
ask | Solicita aprovacao interativa do usuário |
Rastreamento de Negacoes
O Denial Tracker monitora quando o usuário nega permissao para prevenir prompts infinitos:- Bloqueio por Ferramenta
- Escalação de Sessão
Quando o usuário nega a mesma ferramenta 3 vezes consecutivas, ela e auto-bloqueada para o resto da sessão.
O contador consecutivo e resetado quando o usuário aprova uma execução da ferramenta.
Configuração do Denial Tracker
| Variável de Ambiente | Descricao | Default |
|---|---|---|
CHATCLI_MAX_CONSECUTIVE_DENIALS | Negacoes consecutivas antes de bloquear a tool | 3 |
CHATCLI_MAX_TOTAL_DENIALS | Negacoes totais antes de escalar sessão | 20 |
Imunidade de Segurança (Safety Bypass)
Existem 40+ padroes de operação que SEMPRE requerem aprovacao do usuário, independentemente de qualquer regraallow na política. Esses padroes protegem contra erros catastroficos:
Operações Destrutivas de Filesystem
Operações Destrutivas de Filesystem
rm -rf/rm -fre variantesmkfs(formatar filesystem)ddescrevendo em devices (of=/dev/)shred(exclusao segura)
Diretorios de Sistema
Diretorios de Sistema
- Escrita em
/etc/,/boot/,/sys/,/proc/ - Redirecionamento de output para
/etc/
Escalação de Privilegios
Escalação de Privilegios
sudoqualquer comandosu -(troca de usuário)chmod 777(world-writable)chmod +s(setuid/setgid)chown root
Manipulacao de Kernel/Sistema
Manipulacao de Kernel/Sistema
insmod,rmmod,modprobe(modulos de kernel)sysctl -w(escrita em sysctl)iptables -F(flush de firewall)systemctl stop/disable/mask
Exfiltracao de Rede
Exfiltracao de Rede
/dev/tcp/(reverse shell bash)nc -l/ncat -l(netcat em modo listen)
Acesso a Credenciais
Acesso a Credenciais
.ssh/(chaves SSH).gnupg/(chaves GPG).aws/credentials.kube/config
Destruicao de Banco de Dados
Destruicao de Banco de Dados
DROP DATABASE/TABLE/SCHEMATRUNCATE TABLEDELETE FROM ... WHERE 1=1
Git Force e Processos
Git Force e Processos
git push --force/git push -fgit reset --hardgit clean -fkill -9,killall,pkill -9shutdown,reboot,poweroff,halt
Allowlist de Comandos Read-Only
O ChatCLI mantem uma allowlist de 90+ comandos que sao automaticamente aprovados por serem somente leitura:- Filesystem
- Texto
- Git (Read-Only)
- Dev Tools
- Sistema e Container
- Package Managers
ls, ll, cat, head, tail, less, more, wc, file, stat, du, df, find (sem -delete/-exec), tree, realpath, readlink, basename, dirname, md5sum, sha256sumProtecoes Adicionais
Mesmo para comandos da allowlist, certas flags e padroes sao não auto-aprovados:| Comando | Flags Não Seguras |
|---|---|
tail | -f (follow = long-running) |
find | -delete, -exec, -execdir |
sed | -i, --in-place |
sort | -o (escrita em arquivo) |
git config | --global, --system |
| rm, | sudo, | xargs, | sh) ou redirecionamento de output (>, >>) nunca sao auto-aprovados.
Fluxo de Decisão
Próximos Passos
Segurança do Coder
Detalhes sobre a segurança do modo coder.
Sistema de Hooks
Hooks PreToolUse para guardrails adicionais.
Segurança
Modelo geral de segurança do ChatCLI.
Plugin @coder
Referência das ferramentas protegidas pelo sistema de permissões.