Concordo com a tese e acho que o item 5 o mais importante na prtica. Quem roda vrios servidores MCP locais tem muito mais superfcie exposta do que imagina.
Fui conferir as chaves na doc oficial antes de aplicar e nem todas existem. acceptEditsPaths no aparece em lugar nenhum (existe o modo acceptEdits via permissions.defaultMode, que outra coisa). mcpServersDenyAll tambm no existe. Se algum colar esses dois no settings vai achar que est protegido sem estar, que pior que no ter feito nada.
O que real e eu apliquei hoje: permissions.deny com Bash(npm install:*) e afins, mais Read() e Edit() em .env*, *.pem, *.key, ~/.ssh/**, ~/.npmrc e ~/.aws/credentials. Isso cobre o efeito que voc queria no item 2 e bem mais forte que a instruo no CLAUDE.md do item 3, que voc mesmo admitiu ser fraca. Instruo em prompt no controle de segurana.
Duas pegadinhas que descobri no caminho e podem te poupar tempo:
- Regra de caminho relativa dentro de
~/.claude/settings.jsonresolve a partir de~/.claude/, no do projeto. Precisa usar ncora//ou~/pra valer em todo projeto. -
- Padro de Bash que tenta restringir argumento frgil.
Bash(npx -y:*)no peganpx --yes pacote. A prpria doc avisa isso. Pra bloqueio srio de instalador, hook dePreToolUsemais confivel que casamento de string.
- Padro de Bash que tenta restringir argumento frgil.
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC confirmei que existe e varivel de presena, qualquer valor no vazio liga.
Valeu pelo alerta. Shai Hulud plantando MCP malicioso um vetor que pouca gente est olhando.