Resolucao de Politicas Multi-Fonte
As politicas de permissao sao carregadas e mescladas de multiplas fontes, com prioridade definida:| Prioridade | Fonte | Arquivo | Escopo |
|---|---|---|---|
| 1 (mais alta) | CLI flags | Argumentos de linha de comando | Sessao atual |
| 2 | Projeto | .chatcli/coder_policy.json | Workspace atual |
| 3 | Usuario | ~/.chatcli/coder_policy.json | Global do usuario |
| 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 usuario diz deny, a regra do projeto prevalece.Formato do Arquivo de Politica
Acoes Disponiveis
| Acao | Comportamento |
|---|---|
allow | Execucao automatica sem perguntar |
deny | Bloqueio automatico sem perguntar |
ask | Solicita aprovacao interativa do usuario |
Rastreamento de Negacoes
O Denial Tracker monitora quando o usuario nega permissao para prevenir prompts infinitos:- Bloqueio por Ferramenta
- Escalacao de Sessao
Quando o usuario nega a mesma ferramenta 3 vezes consecutivas, ela e auto-bloqueada para o resto da sessao.
O contador consecutivo e resetado quando o usuario aprova uma execucao da ferramenta.
Configuracao do Denial Tracker
| Variavel 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 sessao | 20 |
Imunidade de Seguranca (Safety Bypass)
Existem 40+ padroes de operacao que SEMPRE requerem aprovacao do usuario, independentemente de qualquer regraallow na politica. Esses padroes protegem contra erros catastroficos:
Operacoes Destrutivas de Filesystem
Operacoes 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/
Escalacao de Privilegios
Escalacao de Privilegios
sudoqualquer comandosu -(troca de usuario)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 nao auto-aprovados:| Comando | Flags Nao 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 Decisao
Proximos Passos
Seguranca do Coder
Detalhes sobre a seguranca do modo coder.
Sistema de Hooks
Hooks PreToolUse para guardrails adicionais.
Seguranca
Modelo geral de seguranca do ChatCLI.
Plugin @coder
Referencia das ferramentas protegidas pelo sistema de permissoes.