Vi uma pesquisa bem preocupante da Apiiro: no Claude Code, ao clicar em “Yes, and don't ask again”, ele grava no arquivo do projeto .claude/settings.local.json o comando inteiro que você aprovou — inclusive senhas e chaves de API em texto simples.

Eles vasculharam o GitHub público e encontraram cerca de 104,2 mil cópias desse arquivo (em cerca de 103,6 mil repositórios). Destas, 1122 (cerca de 1,1%) continham pelo menos uma chave secreta, totalizando 1379 chaves diferentes. Incluindo o histórico do git, os settings.json compartilhados pela equipe e os registros de conversas com agentes, foram cerca de 2539 chaves espalhadas por 1994 repositórios.

Mais de um terço dava acesso direto a bancos de dados; só senhas de banco de dados eram 379. Havia ainda 43 logins SSH para servidores públicos, 42 tokens do GitHub/GitLab/npm e 23 chaves da AWS, envolvendo cerca de 63 organizações. Os pesquisadores não tentaram verificar se as chaves funcionavam, mas uma empresa notificada confirmou que uma delas ainda estava ativa.

O Claude Code adiciona esse arquivo à lista global de exclusões do git na sua máquina, mas não ao .gitignore do próprio projeto — então, ao trocar de computador ou se o arquivo já tiver sido enviado ao repositório, a proteção deixa de funcionar. Dos 1105 repositórios que acompanharam, em 539 o Claude havia alterado esse arquivo como coautor. Comparando 16 agentes de programação, até agora só foi confirmado que o Claude Code salva por padrão os comandos completos aprovados em arquivos do projeto.

A recomendação dos pesquisadores: primeiro, troque todas as chaves secretas que apareceram no arquivo e, em seguida, limpe os repositórios. Um clique em “Não perguntar novamente” por praticidade, e as chaves acabam gravadas em uma configuração de texto simples.
#ClaudeCode #网络安全 #AI