olimposec.com
Radar / Notícias / OS-2026-790
risco médioPROMPT2026-10-27 · 2 min de leitura
0

Falha de configuração de tokenizador deixou classificador de defesa contra prompt injection cego por toda uma avaliação

Resumo executivo

Uma análise de atribuição de componentes do BARBICAN, um gateway em camadas para mediação de ferramentas de LLM via MCP, descobriu que seu estágio de arbitração processou uma rodada inteira de avaliação com um tokenizador mal configurado, fazendo a AUC do classificador despencar de 0,855 para 0,392 — pior do que simplesmente responder 'malicioso' para tudo. Mesmo corrigido, a defesa perde desempenho ao sair da distribuição de dados em que foi calibrada.

BARBICAN é um gateway de segurança para sistemas de agentes que usam o protocolo MCP (Model Context Protocol) para expor ferramentas a LLMs, funcionando como uma defesa em camadas contra prompt injection: múltiplos estágios de triagem analisam as entradas antes que elas cheguem à ferramenta final, com um estágio de arbitração decidindo o veredito final quando os estágios anteriores divergem. O artigo não propõe um novo ataque, mas faz algo mais incômodo para quem constrói esse tipo de defesa: uma auditoria rigorosa de quanto cada componente realmente contribui para o resultado.

A descoberta central é que, durante uma avaliação inteira registrada, o estágio de arbitração recebeu texto corrompido por um tokenizador mal configurado — um bug de engenharia trivial, não um ataque adversarial. O efeito, porém, foi dramático: a métrica de AUC daquele estágio caiu de 0,855 (após a correção) para 0,392, pior do que um classificador trivial que simplesmente responde 'malicioso' para todas as entradas (que atinge 80,77% de acerto, mais do que o sistema real). Isso só foi perceptível porque os autores também mediram a composição da distribuição recebida pelo estágio: 96,82% das entradas que chegam àquele ponto do pipeline já são maliciosas, um desbalanceamento que mascara falhas sérias em métricas agregadas de recall.

Para isolar a contribuição real de cada componente, os autores aplicam quatro testes complementares: deleção (remover o estágio, que custou 673 detecções em 25 mil decisões), substituição (trocar o veredito por uma constante, que moveu entre 12 e 140 decisões), reparo (corrigir a configuração do tokenizador) e transplante (inserir um classificador externo mais forte, com AUC de 0,916 isoladamente, que mudou apenas 16 decisões no sistema completo). A conclusão prática é que um gráfico de ablação sem o contexto do desbalanceamento de classes da banda de entrada é enganoso — um componente pode parecer indispensável ou inútil dependendo só da distribuição em que foi medido.

O caso serve de alerta para quem avalia defesas de prompt injection em produção: um pipeline de segurança em camadas pode estar cego em um de seus estágios por um bug de infraestrutura comum (parsing, tokenização, encoding) sem que isso apareça nas métricas finais, porque estágios anteriores já filtraram a maior parte do tráfego malicioso óbvio. Avaliar o sistema completo sem decompor a contribuição individual de cada camada pode dar uma falsa sensação de robustez.

Fonte ↗
0 comentários

Entre para comentar.

Nenhum comentário ainda — seja o primeiro.