Nova Classe de Ataque Agent Data Injection (ADI) Corrompe Fatos e Engana Modelos de IA

Nova Classe de Ataque Agent Data Injection (ADI) Corrompe Fatos e Engana Modelos de IA

Pesquisa revela que injeção de delimitador probabilístico permite a atacantes manipular agentes de IA para executar comandos ou clicar em links maliciosos, contornando defesas convencionais de injeção de prompt.

ComponenteAgentes de Inteligência Artificial baseados em LLM, incluindo assistentes de código (Claude Code, GPT, Gemini CLI) e agentes de navegação web.
VetorAgent Data Injection (ADI) através da manipulação de delimitadores probabilísticos; o atacante insere caracteres de pontuação em campos controlados (como comentários ou reviews) para criar estruturas de dados falsas que o modelo interpreta como fatos confiáveis.
ImpactoExecução não autorizada de comandos no sistema do desenvolvedor, cliques em elementos de interface inesperados, e fusão de código malicioso em repositórios mediante falsificação de aprovações de manutenção.
PrioridadeImplementação de IDs de elementos aleatórios e imprevisíveis na interface do agente, além de segregação rigorosa entre dados confiáveis e não confiáveis na memória do sistema.
Resumo técnico

Pesquisadores da Seoul National University, University of Illinois Urbana-Champaign e Largosoft divulgaram uma nova classe de ataque denominada Agent Data Injection (ADI). Diferente da injeção de prompt clássica, que tenta ocultar instruções maliciosas dentro de dados, o ADI foca na corrupção dos fatos que o agente de IA considera verdadeiros. Em vez de tentar sequestrar a tarefa do agente, o atacante altera a realidade dos dados que o agente processa, permitindo que a tarefaoriginal seja concluída, mas com base em informações forjadas que levam a ações prejudiciais.

O mecanismo central desse ataque é explorado através do que os pesquisadores chamam de injeção de delimitador probabilístico. Agentes de IA envolvem seus dados em pontuação para definir onde um campo termina e o próximo começa, utilizando aspas, chaves, colchetes e quebras de linha. Enquanto programas tradicionais leem essa pontuação com regras estritas, modelos de linguagem a interpretam de forma probabilística. Isso permite que um atacante insira caracteres que se assemelham a delimitadores em campos que controla, fazendo com que o modelo alucine estruturas que não existem, como e-mails adicionais, botões extras ou resultados de ferramentas fictícios.

Fluxo técnico

O ataque explora a distinção que os agentes fazem entre instruções — o que o usuário e o desenvolvedor pedem — e dados — o conteúdo consumido durante a operação, como páginas da web ou comentários. A falha reside na ausência de separação clara entre dados confiáveis e não confiáveis dentro da memória do agente. Por exemplo, o nome de um remetente de e-mail ou o ID de um botão em uma página são armazenados próximos ao conteúdo da mensagem ou ao corpo da página, sem uma marcação que diferencie o que o sistema atesta como verdadeiro do que foi digitado por um estranho.

Em um cenário prático descrito na pesquisa, um atacante pode plantar uma avaliação em uma página de produto. Ao utilizar caracteres como aspas escapadas, aspas_curvas ou até sinais de dólar, o atacante consegue que o modelo interprete esses caracteres como delimitadores reais de estrutura. Com isso, o agente é levado a 'ler' um botão Comprar que não existe visualmente ou a confundir o ID de um elemento seguro, realizando um clique não autorizado. No contexto de desenvolvimento de software, um comentário malicioso em uma thread do GitHub pode forjar a linha de autor para se passar pelo mantenedor do projeto. Instruído a aplicar a correção do mantenedor, o agente executa o comando do atacante.

Superfície afetada

Os testes realizados demonstraram que a técnica é eficaz contra uma ampla gama de modelos de ponta, incluindo o GPT-5.2 e GPT-5-mini da OpenAI, o Claude Opus 4.5 e Sonnet 4.5 da Anthropic, e o Gemini 3 Pro e Flash do Google. Em dados estruturados, a taxa de sucesso variou entre 31% e 43%, enquanto em dados de páginas web, o ataque funcionou em um terço das tentativas até 100% delas, dependendo do cenário. Quando confrontados com defesas específicas contra injeção de instruções, que bloquearam quase totalmente ataques de contrabando de ordens (taxa próxima de zero), o ADI ainda obteve sucesso em até 50% dos casos.

A pesquisa também identificou que a eficácia do ataque depende da capacidade do atacante de conhecer o formato no qual o agente empacota seus dados. Para ferramentas de código aberto ou executadas localmente, isso pode ser feito através da leitura do código ou engenharia reversa. No caso de serviços em nuvem, a recuperação do formato é mais difícil, mas os pesquisadores conseguiram realizar isso utilizando um jailbreak de múltiplas rodadas para forçar o modelo a revelar sua estrutura interna. Foi observado também que modelos menores e maiores de uma mesma empresa tendem a compartilhar o mesmo formato de dados, permitindo que o atacante extraia a configuração do modelo menor, que é mais fácil de comprometer, e a aplique no modelo maior.

  • Assistentes de codificação e agentes de navegação web.
  • Integrações de IA em plataformas como GitHub para automação de maintaners.
  • Interações com páginas de e-commerce e sumarização de conteúdo não confiável.
Hunting e telemetria

Dada a natureza do ADI, a detecção é complexa porque o texto malicioso se disfarça de dados legítimos, não contendo necessariamente ordens imperativas visíveis. Defensas tradicionais que buscam texto que pareça uma ordem contrabandeada falham em identificar o ADI. A detecção deve focar na coerência e integridade dos dados que o agente utiliza para tomar decisões. Equipes de segurança devem monitorar aprovações de usuário que seguem recomendações de agentes onde os 'fatos' citados justificando a ação não podem ser verificados visualmente na interface original.

É crucial estar atento a anomalias nos logs de ferramentas de IA onde o agente relata a execução de uma ação baseada em um elemento (como um botão ou arquivo) que não corresponde ao estado real do sistema ou do repositório. Em ambientes de desenvolvimento, a fusão de código (merge) aprovada por agentes deve ser auditada para garantir que as verificações de CI/CD citadas pelo agente realmente ocorreram e não foram resultados forjados por injeção de estrutura.

  • Monitoramento de discrepâncias entre o estado visível da interface e os elementos citados nos logs de raciocínio do agente.
  • Auditoria de comandos executados por assistentes de código que não correspondem a comentários visíveis de mantenedores.
  • Verificação de aprovações de cliques ou operações sensíveis baseadas em ID de elementos gerados dinamicamente.
Mitigação

Os pesquisadores sugerem que a mitigação mais eficaz sem quebrar a funcionalidade do agente é o uso de identificadores aleatórios e não adivinháveis para elementos de interface, como tags curtas e aleatórias adicionadas aos nomes dos campos. Testes mostraram que essa abordagem reduziu a taxa de sucesso do ataque de aproximadamente 49% para 29%. O navegador Atlas do ChatGPT, por exemplo, demonstrou resistência ao ataque porque marca cada elemento da página com um ID aleatório em vez de um contador simples, impedindo que o atacante forje uma correspondência válida.

Outra defesa eficaz testada, mas com alto custo operacional, envolve o rastreamento rigoroso da origem de cada pedaço de dado, o que bloqueou 100% dos ataques mas reduziu a capacidade dos agentes de completarem tarefas ordinárias em cerca de dois terços. A remoção completa da pontuação também mitiga o ataque, mas compromete a capacidade do agente de ler caminhos de arquivo e links. A recomendação defensiva fundamental é aplicar a lição aprendida pelo software tradicional: manter código e dados separados, e, crucialmente, manter dados confiáveis segregados de dados não confiáveis dentro da memória do agente.

  • Implementação de IDs aleatórios para elementos de interface (UI) e campos de dados.
  • Sanitização e validação estrutural de dados inseridos por usuários antes do processamento pelo LLM.
  • Separação explícita entre metadados de confiança (quem enviou, ID do botão) e conteúdo não confiável (corpo da mensagem).

Postar um comentário

0 Comentários