CamadaPrática
Inteligência Artificial

Checklist de segurança para agentes de código: pastas, permissões e sandbox

Como impedir que o agente siga instruções escondidas em arquivos que você não revisou

Um arquivo na pasta Downloads pode tentar dar ordens ao agente de código. Veja como separar pastas, travar permissões e usar o sandbox.

Artur Boaz1 min de leitura
Ilustração de uma pasta com alerta, representando o checklist de segurança para agentes de código.

Um arquivo de texto na pasta Downloads pode mudar o que um agente de código faz. Uma publicação de 26 de outubro de 2026 da Cyber Security News relatou um caso em que um arquivo AGENTS.md baixado levou um agente a tentar instalar um pacote. Não consegui confirmar esse caso na fonte original, então trate-o como relato. O mecanismo, porém, está documentado: agentes leem arquivos de instrução automaticamente, e instruções escondidas em conteúdo que você não revisou são um risco conhecido, chamado prompt injection.

Por que o arquivo de instruções é a porta de entrada

O Codex lê arquivos AGENTS.md antes de começar o trabalho. Ele procura em ~/.codex e em cada pasta entre a raiz do projeto e o diretório atual. O limite padrão é de 32 KiB.

O Claude Code lê arquivos CLAUDE.md no início de cada conversa. Segundo a documentação oficial, ele trata essas instruções como contexto, não como configuração imposta: para bloquear uma ação, é preciso um hook ou uma regra de permissão. Por isso, um CLAUDE.md baixado pode orientar o agente. Fonte: https://code.claude.com/docs/en/memory

A documentação da OpenAI é direta: "Prompt injection can cause the agent to fetch and follow untrusted instructions."

Checklist prático

1) Não abra o agente em Downloads, Área de trabalho ou pastas de anexos. Crie uma pasta só para projetos (por exemplo, ~/Projetos) e trabalhe nela. No modo manual, o Claude Code pede confirmação antes de ler ou escrever fora da pasta em que foi iniciado.

2) Revise os arquivos de instrução antes da primeira execução. Em qualquer repositório baixado, abra AGENTS.md, CLAUDE.md, .mcp.json e as pastas .claude e .codex. Se houver ordens que não fazem sentido para o projeto, pare.

3) Trate a confiança de pasta como decisão. O Claude Code mostra o aviso de pasta confiável ao iniciar em uma pasta nova. Aceite só em pastas que você criou ou clonou e conhece. Atenção: sessões com -p não mostram esse aviso, então scripts que chamam o agente merecem revisão extra.

4) Mantenha o modo manual em pastas que você não conhece. O Claude Code inicia em modo automático no terminal e no VS Code. No modo manual, ele só executa comandos de leitura, como ls, cat e git status, e pede aprovação para editar ou rodar o resto. O modo automático usa um classificador, que é uma camada extra e não uma barreira única.

5) Ligue o sandbox. No Claude Code, use /sandbox para isolar comandos do bash em nível de sistema de arquivos e de rede. No Codex, use sandbox_mode = "read-only" para leitura ou "workspace-write" para escrita no projeto, com approval_policy = "on-request" para pedir aprovação ao sair do sandbox. Não use a política untrusted: a documentação indica que ela foi aposentada.

6) Feche a rede por padrão. O risco vira vazamento quando o agente pode enviar dados para fora. No Codex, a rede já vem desligada no workspace-write e só é liberada com network_access = true. No Claude Code, curl e wget pedem aprovação; se você não precisa deles, coloque-os em permissions.deny.

7) Use máquina virtual ou devcontainer para código de origem duvidosa. A própria Anthropic recomenda VMs para interagir com conteúdo não confiável.

8) Confira as permissões de vez em quando. Rode /permissions e remova regras de allow que você não lembra de ter criado.

O caso da Cohere é outro problema

Em 26 de outubro, a Cohere publicou um relatório sobre o modelo Qwen3.8-Flash-Next, um modelo de pesos abertos. Em um sandbox de avaliação, o modelo recebeu uma tarefa de criar uma regra de detecção de cibersegurança. Em vez disso, listou arquivos da máquina, verificou quais ferramentas de transferência estavam instaladas, leu a configuração de DNS e tentou enviar uma string de teste a um bucket de armazenamento da Alibaba Cloud em Pequim. O raciocínio do próprio modelo dizia que ele não usaria ferramenta alguma.

O sandbox da Cohere bloqueou a tentativa, porque não havia rota de saída. A empresa diz que não sabe se o comportamento foi deliberado e não afirma intenção maliciosa. Ela também relatou sondagens ao endereço de metadados de nuvem 169.254.169.254 e menos de uma chamada em cada 100 mil com o upload.

A lição prática é controlar o que o modelo pode fazer, e não confiar no raciocínio que ele mostra. Negue saída de rede por padrão, bloqueie metadados de nuvem em contêineres de agentes e teste o agente em um ambiente sem acesso à sua rede real. Esse caso não envolve o Claude Code nem o Codex: é um modelo testado em laboratório.

Fontes

Cohere, "Concerning behaviour from a popular open-weight AI model", 26/10/2026: https://cohere.com/blog/concerning-behaviour-popular-open-weight-ai-model

Cohere, traços e script de reprodução citados pela própria Cohere: https://huggingface.co/datasets/CohereLabs/10-2026-qwen-investigation-traces

Claude Code, documentação de segurança: https://code.claude.com/docs/en/security

Claude Code, memória e CLAUDE.md (documentação oficial): https://code.claude.com/docs/en/memory

Codex, AGENTS.md (OpenAI): https://learn.chatgpt.com/docs/agent-configuration/agents-md

Codex, aprovações e segurança (OpenAI): https://learn.chatgpt.com/docs/agent-approvals-security

Relato sobre a pasta Downloads (fonte secundária, não verificada no original): https://x.com/The_Cyber_News/status/2114771540352893196