Talvez você tenha visto o mesmo cenário que eu. Uma dezena de especialistas que justificam suas newsletters/cursos/comunidades com a promessa de skills e arquivos .md que permitem “destravar” a última IA. Essa febre, compatível com os e-books, tem um apelo diferenciado. O e-book você ficava incomodado de não ler. O arquivo .md, em tese, não é para ser lido, mas para ser usado. Então, sem neura, certo?
Errado.
Prompt injection em agentes de IA não é novidade. O que é novo é o tamanho do buraco que a gente está cavando, e a velocidade com que a galera está pulando dentro sem olhar.
A técnica de inserir texto invisível em páginas web pra manipular modelos de linguagem existe desde que esses modelos começaram a ser usados pra processar conteúdo da web. Fonte tamanho zero. Texto com cor igual ao fundo. Comentários em HTML que o usuário jamais vê, mas o crawler lê. A instrução fica escondida no markup e, quando o modelo vai resumir ou analisar aquela página, ele pega o comando junto com o conteúdo legítimo.
O objetivo era variado: forçar o modelo a recomendar um produto concorrente como sendo superior, fazer com que um resumo distorcesse o artigo original, manipular respostas em sistemas de RAG que alimentavam chatbots de atendimento. Funcionou por um tempo.
O mercado respondeu. Os modelos foram treinados pra identificar padrões típicos de injeção, pra desconfiar de instruções que aparecem fora do contexto esperado, pra priorizar o que está no material de alimentação sobre qualquer coisa que pareça um comando embutido no meio de texto corrido. Não é uma solução perfeita, mas é uma camada de defesa funcional contra o vetor mais óbvio.
O problema é que esse não é mais o vetor mais interessante.
Supply chain não é um conceito novo. Só chegou atrasado pra IA.
Em 2018, a biblioteca event-stream do npm foi transferida para um novo mantenedor que inseriu código malicioso direcionado a carteiras de criptomoeda. O pacote tinha milhões de downloads semanais. Ninguém percebeu por semanas.
Em 2021, o incidente do ua-parser-js seguiu o mesmo padrão: pacote legítimo, mantenedor comprometido, versão envenenada publicada no registry, download automático por quem tinha o pacote como dependência.
No ecossistema WordPress, isso é praticamente uma categoria de ataque consolidada. Plugin adquirido, atualização com backdoor, ativação silenciosa em todos os sites que confiaram na atualização automática.
O padrão é sempre o mesmo: você não ataca o alvo diretamente. Você ataca o que o alvo confia.
O que mudou no contexto de agentes de IA é que a superfície de “o que o alvo confia” cresceu absurdamente rápido, e a cultura de segurança não acompanhou essa expansão nem de longe. É aqui que voltamos ao ponto: você não faz IDEIA do que está nos arquivos .md ou .skill que você está baixando.
O que você está dando pro seu agente é código. Trate como código.
Quando você sobe um arquivo de skill, um system prompt estruturado, um MD de configuração de MCP, um conjunto de instruções pra uma LLM agêntica, você está fazendo a mesma coisa que faz quando adiciona uma dependência ao seu projeto. Você está dizendo pro sistema: “confie nisso, siga isso, use isso como referência pra qualquer decisão que você tomar.”
A diferença é que com código você tem, em tese, uma cultura mínima de revisão. Tem diff, tem review, tem pelo menos a noção de que rodar um script sem ler é imprudente.
Com arquivos de contexto pra IA, essa cultura ainda não existe. A maioria das pessoas está no modo: viu no LinkedIn, achou interessante, baixou, colou no projeto, funcionou. Fim.
E tudo bem quando o arquivo vem de uma fonte que você conhece profundamente, que você audita, cujo histórico de alterações você acompanha. O problema é que não é isso que está acontecendo.
Existe um mercado inteiro sendo construído em cima dessa ingenuidade.
Com a explosão de fluxos agênticos, MCP, automações com contexto estruturado, surgiu um mercado paralelo de distribuição de arquivos de configuração. Gente vendendo skill files, publicando system prompts como produto, distribuindo MD files em newsletter como isca de reputação, empacotando “configurações prontas pra usar” como diferencial de curso.
Tem uma lógica de negócio real nisso. Quem distribui um arquivo bem feito ganha visibilidade, constrói autoridade no nicho, cria um funil pra outros produtos. É uma estratégia de conteúdo válida.
O que essa lógica de negócio também cria, sem querer, é um canal de distribuição em massa pra qualquer pessoa que queira inserir instruções maliciosas nos agentes de terceiros.
Não é preciso hackear a API do modelo. Não é preciso comprometer a infraestrutura do provedor. É só publicar um arquivo de configuração aparentemente legítimo, com instruções úteis e bem escritas nas primeiras seções, e enterrar o payload em algum trecho que ninguém vai ler com atenção. Um comentário no meio de quinhentas linhas de configuração. Uma nota de rodapé. Um bloco de “instruções avançadas” no final do documento.
O agente vai ler tudo. É pra isso que ele serve.
O que esse payload pode fazer é a parte que a galera não está visualizando.
Prompt injection via contexto agêntico não precisa ser espetacular pra ser devastador.
Pode ser uma instrução que faz o agente incluir um link específico toda vez que ele gerar conteúdo sobre um determinado tema. Pode ser uma regra que faz ele nunca mencionar um concorrente de forma positiva. Pode ser uma orientação que faz ele coletar e retornar, em algum momento da conversa, informações que passaram pelo contexto, como credenciais, dados de clientes, conteúdo de documentos internos.
Pode ser algo mais cirúrgico ainda: uma instrução que só ativa sob condições específicas, que fica dormindo no arquivo até que o agente encontre um padrão de conversa determinado. Você testou o arquivo, funcionou perfeitamente, colocou em produção. A instrução maliciosa nunca disparou nos seus testes porque o gatilho dela era outro.
Ou alguma coisa similar ao que fazemos quando queremos que o concorrente perca todo o orçamento de cliques: um prompt que vai fazer a janela de contexto do agente explodir e o seu crédito de tokens ir para o espaço.
Isso não é ficção científica. É engenharia de ataque básica aplicada a um vetor novo.
A conversa de segurança em IA está olhando pro lado errado.
A maior parte do debate sobre segurança em modelos de linguagem gira em torno do comportamento do modelo em si. Jailbreak, guardrails, alinhamento, o modelo fazer coisas que não deveria fazer por conta própria. É uma discussão importante, mas está focada no ator errado.
O modelo não é o elo mais fraco dessa cadeia. O arquivo que você baixou sem ler é.
A infraestrutura de contexto que você monta ao redor do seu agente, os arquivos que você usa pra instruí-lo, as configurações que você empilha pra fazer ele agir de um jeito específico, tudo isso é superfície de ataque. E é uma superfície que cresce na proporção exata da adoção, sem nenhuma fricção de segurança proporcional.
A próxima preocupação séria da galera que trabalha com agentes de IA não vai ser o modelo fazer algo inesperado. Vai ser o arquivo de configuração que alguém inseriu no workflow sem que ninguém auditasse com atenção.
Lê o porra do MD file antes de rodar.