IA Agente Comprometida por Simples Arquivo PNG: Senhas Vazadas para Cibercriminosos
Uma nova técnica de ataque, conhecida como Ghostcommit, explora a forma como agentes de IA processam informações, escondendo comandos maliciosos em arquivos de imagem para roubar credenciais.
MundiX News·13 de julho de 2026·7 min de leitura·👁 1 views
O prompt injection continua sendo uma das metodologias mais prevalentes para comprometer agentes de IA. Essa técnica envolve a inserção de instruções maliciosas no texto que a IA processa, na esperança de que os humanos não verifiquem tudo minuciosamente, enquanto a IA, por sua vez, as lerá e executará. É evidente que os sistemas de segurança dos modelos de IA atuais são primariamente configurados para detectar e ignorar tais instruções. Consequentemente, os cibercriminosos buscam incessantemente maneiras de ocultar essas instruções de forma ainda mais profunda.
Já surgiram diversos canais para essa finalidade. As instruções são ocultadas em caracteres Unicode invisíveis, escritas em branco sobre branco em páginas da web, e um exemplo recente é o ataque Ghostcommit, demonstrado por pesquisadores do ASSET Research Group. Eles esconderam um comando malicioso dentro de uma imagem anexada a um pull request, com a expectativa de que um revisor de IA o ignorasse sem abri-lo. E assim aconteceu. Dos dois revisores de IA populares, o CodeRabbit, por padrão, exclui imagens da verificação, enquanto o Bugbot, embora tenha verificado, não detectou nada malicioso. Para fins experimentais, os pesquisadores inseriram explicitamente as palavras "prompt injection malicioso" e um comando claro para ler o arquivo .env dentro do PNG – e o revisor ainda assim não percebeu a ameaça.
A razão é simples: para um revisor de IA que opera com texto, uma imagem é apenas um conjunto de bytes, sem conteúdo legível. Paralelamente à imagem, um arquivo AGENTS.md com instruções é adicionado ao repositório, que os agentes de IA leem automaticamente e executam como uma regra obrigatória. Este arquivo detalha a rotina de "higiene de build", referenciando a imagem build-spec.png e solicitando a extração de uma constante de serviço. É dentro da imagem que o comando malicioso está escondido: ler o arquivo .env byte a byte, converter cada byte em um número e inserir o resultado no código. Para contornar a última defesa do revisor – a verificação de coerência, que marca regras suspeitas sem código real associado –, um disfarce foi adicionado ao pull request: um "validador de origem" falso de 50 linhas e um relatório fictício de análise de incidente. Com essa estrutura, o pull request é aprovado sem observações.
A exfiltração de dados não ocorre imediatamente. A isca permanece no repositório até que, em uma sessão completamente diferente, um desenvolvedor solicite algo rotineiro ao agente, como a compilação de um módulo de rastreamento de tokens. Ao iniciar, o agente lê o AGENTS.md, segue o link para a imagem, abre o arquivo .env e insere a constante no novo módulo. Em uma das execuções, o Cursor, operando sob o Claude Sonnet, realizou essa ação na primeira tentativa: uma lista de 311 números que, decodificados byte a byte, revelam o conteúdo completo do arquivo .env – chaves de API, endereços de banco de dados, credenciais de nuvem.
O desenvolvedor vê exatamente a funcionalidade solicitada e a commita sem hesitação. Para o cibercriminoso, resta apenas ler o commit público e converter os números de volta em texto. Os scanners de segredos permanecem silenciosos, pois nenhum deles suspeita que uma lista aparentemente inofensiva de números possa ser decodificada de volta em texto e verificada como uma senha. O cálculo não se baseia em um lapso raro; os autores citam que 73% dos pull requests nos trezentos repositórios públicos mais ativos nos últimos 90 dias chegam à branch principal sem qualquer verificação substancial, seja por humanos ou bots.
Os autores executaram o ataque dez vezes, testando diferentes combinações de modelos e implementações de agentes. Cursor e Antigravity vazaram o conteúdo do .env sob Sonnet, Gemini e GPT-5.5. O Claude Code, na mesma configuração com Sonnet, recusou-se a executar a tarefa, explicando o motivo textualmente. O Opus, um modelo mais robusto, evitou o ataque no Antigravity: ele primeiro gravou o segredo no código, mas depois reconheceu a tática de engenharia social e apagou o que havia escrito, sem concluir a ação.
É importante notar que Ghostcommit é um proof-of-concept em repositórios isolados com chaves falsas, e não um ataque registrado na vida real. O próprio estudo apresenta uma boa notícia: o caso do Claude Code e do Opus demonstra que tais ataques podem ser efetivamente repelidos. Uma ferramenta executou o comando, um modelo mais sofisticado na mesma base recusou-se terminantemente, e no caso do Opus, a proteção interna de um modelo de nível superior já estava em vigor.
No entanto, é muito mais confiável repelir esses ataques em um estágio anterior, quando a IA está revisando o código. No momento da publicação, não houve reação pública dos desenvolvedores do CodeRabbit e Bugbot, embora o ASSET Research Group afirme ter transmitido imediatamente a eles todas as informações sobre a vulnerabilidade potencial. Paralelamente, o ASSET Research Group propõe sua própria solução: uma ferramenta de verificação multimodal que, em um teste prático com 80 pull requests desconhecidos, permitiu apenas um ataque e nunca cometeu erros em 30 edições legítimas. É crucial mencionar que estas são medições próprias da empresa, que possui um interesse comercial nesta situação – vender sua própria ferramenta de verificação.
🛡️⚡
Pare de pesquisar. Comece a hackear.
O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.
Sem cartão para começar · Planos a partir de R$49/mês
O prompt injection continua sendo uma das metodologias mais prevalentes para comprometer agentes de IA. Essa técnica envolve a inserção de instruções maliciosas no texto que a IA processa, na esperança de que os humanos não verifiquem tudo minuciosamente, enquanto a IA, por sua vez, as lerá e executará. É evidente que os sistemas de segurança dos modelos de IA atuais são primariamente configurados para detectar e ignorar tais instruções. Consequentemente, os cibercriminosos buscam incessantemente maneiras de ocultar essas instruções de forma ainda mais profunda.
Já surgiram diversos canais para essa finalidade. As instruções são ocultadas em caracteres Unicode invisíveis, escritas em branco sobre branco em páginas da web, e um exemplo recente é o ataque Ghostcommit, demonstrado por pesquisadores do ASSET Research Group. Eles esconderam um comando malicioso dentro de uma imagem anexada a um pull request, com a expectativa de que um revisor de IA o ignorasse sem abri-lo. E assim aconteceu. Dos dois revisores de IA populares, o CodeRabbit, por padrão, exclui imagens da verificação, enquanto o Bugbot, embora tenha verificado, não detectou nada malicioso. Para fins experimentais, os pesquisadores inseriram explicitamente as palavras "prompt injection malicioso" e um comando claro para ler o arquivo .env dentro do PNG – e o revisor ainda assim não percebeu a ameaça.
A razão é simples: para um revisor de IA que opera com texto, uma imagem é apenas um conjunto de bytes, sem conteúdo legível. Paralelamente à imagem, um arquivo AGENTS.md com instruções é adicionado ao repositório, que os agentes de IA leem automaticamente e executam como uma regra obrigatória. Este arquivo detalha a rotina de "higiene de build", referenciando a imagem build-spec.png e solicitando a extração de uma constante de serviço. É dentro da imagem que o comando malicioso está escondido: ler o arquivo .env byte a byte, converter cada byte em um número e inserir o resultado no código. Para contornar a última defesa do revisor – a verificação de coerência, que marca regras suspeitas sem código real associado –, um disfarce foi adicionado ao pull request: um "validador de origem" falso de 50 linhas e um relatório fictício de análise de incidente. Com essa estrutura, o pull request é aprovado sem observações.
A exfiltração de dados não ocorre imediatamente. A isca permanece no repositório até que, em uma sessão completamente diferente, um desenvolvedor solicite algo rotineiro ao agente, como a compilação de um módulo de rastreamento de tokens. Ao iniciar, o agente lê o AGENTS.md, segue o link para a imagem, abre o arquivo .env e insere a constante no novo módulo. Em uma das execuções, o Cursor, operando sob o Claude Sonnet, realizou essa ação na primeira tentativa: uma lista de 311 números que, decodificados byte a byte, revelam o conteúdo completo do arquivo .env – chaves de API, endereços de banco de dados, credenciais de nuvem.
O desenvolvedor vê exatamente a funcionalidade solicitada e a commita sem hesitação. Para o cibercriminoso, resta apenas ler o commit público e converter os números de volta em texto. Os scanners de segredos permanecem silenciosos, pois nenhum deles suspeita que uma lista aparentemente inofensiva de números possa ser decodificada de volta em texto e verificada como uma senha. O cálculo não se baseia em um lapso raro; os autores citam que 73% dos pull requests nos trezentos repositórios públicos mais ativos nos últimos 90 dias chegam à branch principal sem qualquer verificação substancial, seja por humanos ou bots.
Os autores executaram o ataque dez vezes, testando diferentes combinações de modelos e implementações de agentes. Cursor e Antigravity vazaram o conteúdo do .env sob Sonnet, Gemini e GPT-5.5. O Claude Code, na mesma configuração com Sonnet, recusou-se a executar a tarefa, explicando o motivo textualmente. O Opus, um modelo mais robusto, evitou o ataque no Antigravity: ele primeiro gravou o segredo no código, mas depois reconheceu a tática de engenharia social e apagou o que havia escrito, sem concluir a ação.
É importante notar que Ghostcommit é um proof-of-concept em repositórios isolados com chaves falsas, e não um ataque registrado na vida real. O próprio estudo apresenta uma boa notícia: o caso do Claude Code e do Opus demonstra que tais ataques podem ser efetivamente repelidos. Uma ferramenta executou o comando, um modelo mais sofisticado na mesma base recusou-se terminantemente, e no caso do Opus, a proteção interna de um modelo de nível superior já estava em vigor.
No entanto, é muito mais confiável repelir esses ataques em um estágio anterior, quando a IA está revisando o código. No momento da publicação, não houve reação pública dos desenvolvedores do CodeRabbit e Bugbot, embora o ASSET Research Group afirme ter transmitido imediatamente a eles todas as informações sobre a vulnerabilidade potencial. Paralelamente, o ASSET Research Group propõe sua própria solução: uma ferramenta de verificação multimodal que, em um teste prático com 80 pull requests desconhecidos, permitiu apenas um ataque e nunca cometeu erros em 30 edições legítimas. É crucial mencionar que estas são medições próprias da empresa, que possui um interesse comercial nesta situação – vender sua própria ferramenta de verificação.
📤 Compartilhar & Baixar
🧰 Ferramentas recomendadas
Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.