Cloud security resource

Ataque com claude code toma controle de máquinas de dev via Dns Txt oculto

Ataque explora Claude Code para assumir controle de máquinas de desenvolvedores via DNS

Pesquisadores da 0din.ai demonstraram uma técnica de ataque que lança um alerta grave sobre o uso de agentes de codificação baseados em inteligência artificial, como o Claude Code. Eles mostraram que é possível tomar o controle remoto de máquinas de desenvolvedores usando apenas um repositório aparentemente legítimo, sem incluir qualquer payload malicioso visível nos arquivos do projeto.

O estudo de caso, divulgado em 25 de junho, descreve um cenário em que o invasor consegue abrir um shell reverso na máquina do desenvolvedor assim que o agente de IA tenta “fazer o projeto rodar”. Ou seja, basta que o profissional peça ao assistente para configurar e executar a aplicação para que a cadeia de exploração seja disparada, sem que nada suspeito apareça no código-fonte do repositório.

O ataque, idealizado por Andre Hall e Miller Engelbrecht, combina três componentes discretos, que isoladamente não chamariam a atenção em uma revisão superficial:
1. Um repositório com aparência totalmente normal;
2. Um pacote Python que falha de forma controlada ao ser inicializado;
3. Um script de configuração que, em vez de conter diretamente um comando malicioso, busca instruções em tempo real a partir de um registro DNS TXT sob controle do atacante.

Na prática, quando o agente de IA – como o Claude Code – recebe a instrução para configurar o projeto, ele lê os arquivos, tenta executar a aplicação e se depara com um erro proposital, inserido pelos criadores do ataque. A mensagem de erro orienta a executar um script de configuração para “corrigir” o problema. Seguindo esse caminho, o agente roda o script, que consulta um registro DNS TXT e obtém dali um comando em texto codificado. Ao decodificar esse conteúdo, o script executa um shell reverso, conectando a máquina do desenvolvedor ao atacante.

Um ponto central da pesquisa é que o payload malicioso nunca reside fisicamente no repositório. Não há backdoor explícito, não há linha de código claramente suspeita, não há binário estranho. O comando nocivo existe apenas na resposta DNS, em um registro TXT controlado pelo invasor, e é entregue em tempo real quando o script é executado. Isso torna o ataque praticamente invisível para revisões manuais, ferramentas de análise estática e até mesmo para o próprio agente de IA, que vê apenas instruções técnicas aparentemente legítimas.

O registro DNS TXT funciona, nesse contexto, como um canal de comando e controle. Ele armazena um comando codificado em base64 que, ao ser decodificado, inicia o shell reverso. Esse tipo de uso criativo de DNS não é novo em segurança ofensiva, mas a pesquisa mostra como ele pode ser combinado com agentes de IA para tornar a exploração muito mais automatizada e difícil de detectar.

Os autores ressaltam que agentes de codificação com acesso a ferramentas do sistema – como execução de comandos, leitura e escrita de arquivos e interação com ambientes de desenvolvimento – ampliam significativamente a superfície de ataque. Se esses agentes forem instruídos a confiar em qualquer repositório público ou conteúdo de origem desconhecida, se tornam um vetor de automação de ações perigosas que, em condições normais, um desenvolvedor atento hesitaria em executar sem questionar.

A recomendação da 0din.ai é clara: qualquer sistema que utilize agentes de IA com capacidade de executar comandos deve expor com transparência o que, exatamente, será rodado. Isso inclui mostrar detalhadamente scripts de configuração, dependências que serão instaladas e dados buscados em tempo real, como consultas DNS e chamadas a serviços externos. Além disso, instruções vindas de projetos não confiáveis devem ser tratadas com o mesmo rigor de código não confiável, sob a ótica de segurança.

Esse cenário evidencia uma mudança importante no modelo de ameaça. Antes, o foco principal estava em proteger o código-fonte, pipelines de CI/CD e pacotes de dependências. Agora, entra em cena um novo elemento: os próprios agentes de IA como elo frágil da cadeia. Eles podem ser induzidos a seguir instruções que um humano experiente provavelmente questionaria, principalmente quando essas instruções aparecem disfarçadas de “passos de configuração”, “scripts de correção” ou “requisitos de ambiente”.

Outro ponto sensível é a confiança excessiva que muitos desenvolvedores depositam em mensagens de erro e scripts auxiliares. A pesquisa mostra como um erro “controlado” pode funcionar como isca: ao falhar propositalmente, o pacote Python conduz o agente a executar exatamente o que o invasor precisa para ativar o shell reverso. Em ambientes com prazos apertados e pressão por produtividade, a tentação de aceitar soluções automáticas sem inspeção é enorme – e esse é justamente o comportamento explorado pelo ataque.

Para equipes de segurança e líderes de tecnologia, o caso serve como alerta para revisar políticas de uso de IA em desenvolvimento de software. É fundamental definir limites claros para aquilo que o agente pode ou não fazer automaticamente. Por exemplo, pode ser prudente bloquear a execução automática de scripts vindos de repositórios desconhecidos, exigir confirmação explícita do desenvolvedor para certos comandos sensíveis e registrar logs detalhados de todas as ações tomadas pelo agente.

Outra boa prática é adotar ambientes de desenvolvimento mais isolados, como contêineres ou máquinas virtuais descartáveis, especialmente quando se trabalha com código de origem externa ou com forte intervenção de agentes de IA. Dessa forma, mesmo que um shell reverso seja estabelecido, o impacto fica limitado a um sandbox com acesso restrito a dados e sistemas internos mais críticos.

Treinamento e conscientização também ganham um papel central. Desenvolvedores precisam entender que a IA não é “infalível” nem “segura por padrão”. Ela segue instruções e padrões; se o padrão inclui executar scripts, instalar pacotes e resolver erros sem questionar a origem das instruções, abre-se espaço para ataques como o descrito pela 0din.ai. Educar times sobre engenharia social voltada para máquinas – isto é, instruções maliciosas direcionadas aos agentes – tende a se tornar parte da rotina de segurança.

Do lado dos fornecedores de agentes de codificação, o desafio é incorporar mecanismos nativos de segurança. Isso pode incluir:
– Políticas internas para rejeitar execuções que envolvam downloads ou comandos vindos de fontes dinâmicas não verificadas (como certos tipos de respostas DNS).
– Camadas de validação que sinalizem ao usuário quando o agente estiver prestes a executar algo que não foi explicitamente solicitado.
– Modos de operação “restritos”, nos quais o agente apenas sugere comandos, sem executá-los diretamente, exigindo que o desenvolvedor revise e confirme cada passo.

A pesquisa também aponta para a necessidade de repensar a forma como mensagens de erro e scripts de configuração são tratados em projetos open source. Um atacante pode introduzir um comportamento malicioso de maneira extremamente sutil, escondido atrás de um texto técnico plausível, e ainda assim passar pelos filtros tradicionais. Auditorias de segurança mais profundas, incluindo a análise de interações dinâmicas (como consultas DNS e HTTP realizadas em tempo de execução), tendem a se tornar tão importantes quanto a revisão de código estático.

Em síntese, o ataque apresentado pela 0din.ai não é apenas uma prova de conceito curiosa: ele antecipa uma nova geração de ameaças que exploram a combinação de IA, automação de desenvolvimento e canais de comunicação pouco monitorados, como registros DNS TXT. Em um cenário em que agentes como Claude Code se tornam cada vez mais presentes no dia a dia dos devs, ignorar essas vulnerabilidades significa abrir a porta para sequestros silenciosos de estações de trabalho, muitas vezes sem qualquer linha de código malicioso armazenada no repositório que todos acreditam estar seguro.