Tecnologia

Claude Code e Codex obedecem a um ficheiro que qualquer site pode pôr nas suas Transferências

Susan Hill
Adicione-nos no Google

Um ficheiro de texto que um site guarda na pasta Transferências pode agora dar ordens ao agente de programação com IA instalado no computador. Investigadores da Forever Security encontraram, na máquina de um cliente, um ficheiro AGENTS.md colocado de propósito — um ficheiro de instruções em texto simples que ferramentas como o Codex da OpenAI leem ao iniciar — que mandava o agente instalar um conhecido tipo de malware. Se alguma vez abriu o Claude Code ou o Codex na pasta Transferências para a arrumar ou trabalhar num ficheiro que acabou de descarregar, confiou nessa pasta tanto como num dos seus próprios projetos.

O agente não fez nada de errado segundo as suas próprias regras. O AGENTS.md e o seu equivalente para o Claude, o CLAUDE.md, existem para que um projeto possa indicar a um agente que ferramentas deve usar e como executar os testes, e o agente foi concebido para seguir essas instruções. O argumento dos investigadores é que a pasta Transferências é a única que a Web pode preencher por si só. «Não há nada aqui que a OpenAI ou a Anthropic possam corrigir», escrevem. «Um agente que segue o AGENTS.md que encontra na pasta está a fazer exatamente aquilo para que foi concebido.»

O ficheiro real era um documento de 13 KB, apresentado como um conjunto de orientações de engenharia, com o ataque escondido perto do fim e escrito no tom sereno de uma nota de configuração. Mandava o Codex acrescentar à configuração um servidor de «ferramentas do projeto» e instalar um pacote npm chamado function-color, que os investigadores descrevem como malware de uma campanha que passou despercebida durante cerca de dois anos. O software da Forever bloqueou a instalação antes de qualquer código ser executado. Nos testes da equipa, feitos sobretudo com um substituto inofensivo que se limitava a abrir a calculadora, o Codex cumpriu as instruções do ficheiro em mais de 90% das tentativas; o pacote real também foi executado uma vez numa máquina virtual isolada. A alteração fica guardada no ficheiro de definições do Codex para toda a máquina, pelo que todas as sessões futuras do Codex carregam o servidor do atacante, seja qual for a pasta.

Foi mais difícil enganar o Claude Code. A equipa criou um CLAUDE.md próprio, que convence o Claude a encaminhar o tráfego da API para um servidor controlado pelo atacante, disfarçado de gateway da empresa. Essa única definição entrega o token de início de sessão do Claude, que os investigadores reutilizaram na API oficial da Anthropic para agir como se fossem a vítima, e permite que o servidor falso responda como se fosse o modelo, enviando comandos com a sandbox desativada. O Claude pede a um humano que aprove uma alteração de definições deste tipo e muitas vezes recusa-a, mas a gravação da alteração ainda foi bem-sucedida em cerca de metade dos casos.

É mais fácil do que se poderia pensar fazer chegar o ficheiro a um computador. Por predefinição, o Chrome, o Edge e o Firefox guardam os ficheiros descarregados nessa pasta sem perguntar onde os guardar, e uma página pode escolher o nome e o conteúdo do ficheiro. O BleepingComputer, que noticiou as conclusões, visitou a página de prova de conceito dos investigadores e viu-a guardar um AGENTS.md inofensivo. O Brave pediu autorização primeiro. Gal Weizman, investigador da Forever, disse à publicação que centenas de clientes da empresa executam o Claude Code, o Codex ou o agente de linha de comandos do Cursor a partir da pasta Transferências, e que só o Claude Code já tinha iniciado mais de 1300 sessões nessa pasta.

A investigação deixa algumas questões por esclarecer. A Forever não conseguiu determinar como é que o ficheiro malicioso chegou ao computador do cliente, e o ataque continua a depender de alguém iniciar depois um agente nessa pasta. O Chrome, o Edge e o Firefox mostram um aviso de transferência, que um utilizador atento poderá notar. A carga maliciosa real foi escrita para macOS. A Forever também vende software de monitorização para agentes de IA, pelo que a empresa tem um interesse comercial no risco que descreve; além disso, o relatório não inclui qualquer resposta da OpenAI ou da Anthropic. As ferramentas em causa são vendidas em todo o mundo, pelo que a exposição é a mesma em todos os mercados onde os programadores as utilizam.

A defesa depende sobretudo de hábitos. Nunca inicie um agente de programação na pasta Transferências: execute-o a partir da pasta do projeto em que deve trabalhar, como a OpenAI e a Anthropic já recomendam. Leia qualquer AGENTS.md ou CLAUDE.md que não tenha escrito antes de o agente o consultar, e mantenha ativos os pedidos de aprovação e as sandboxes. No ficheiro de definições do Codex, procure uma entrada de servidor que não tenha adicionado. Nas definições do Claude de um projeto, procure um endereço de API que nunca tenha configurado. Se encontrar um, considere o token de início de sessão roubado e revogue-o; considere também comprometida qualquer máquina onde tenha sido instalado o function-color, entretanto removido do npm.

A Forever publicou o relatório a 22 de outubro, e a cobertura do BleepingComputer surgiu a 25 de outubro. Os investigadores afirmam que qualquer agente que leia um ficheiro de instruções e consiga alterar a própria configuração pode ser manipulado da mesma forma, o que faz do Codex e do Claude Code os dois primeiros nomes de uma lista mais extensa. Uma transferência feita pelo browser era inofensiva até alguém abrir o ficheiro. Agora, o ficheiro abre-se sozinho assim que um agente começa a ler a pasta.

Etiquetas: , , , , ,

Adicione-nos no Google

Discussão

Existem 0 comentários.