Porque é que a fusão da zn supera os guardas zero-shot contra injeção de prompt: resultados do benchmark v1.1

zn6 min de leitura

Toda a gateway de agentes que toca em chamadas de ferramentas acaba por ter de responder à mesma pergunta: quão boa é a sua deteção de injeção de prompt, medida com dados que o fornecedor não treinou nem ajustou? Este artigo publica os nossos números e a metodologia por trás deles. Sem superlativos para além do que os dados suportam.

O benchmark

O benchmark v1.1 é uma suíte fixa de 217 vetores: 138 vetores de ataque (injeção direta de instruções, substituições ao estilo jailbreak e cargas que atravessam contextos) e 79 vetores benignos (fluxos de trabalho normais de programadores, que têm de passar sem alterações). A suíte está versionada no repositório, e todos os resultados abaixo foram obtidos fazendo passar os mesmos ficheiros por cada sistema, sem ajuste de prompts ou limiares por sistema depois de ver os resultados.

Para cada detetor são reportados dois pontos de operação:

  • FPR: taxa de falsos positivos nos 79 vetores benignos.
  • FNR: taxa de falsos negativos nos 138 vetores de ataque.

O ponto metodológico que consideramos mais importante foi fixado antes da avaliação: a regra do limiar idêntico. Cada sistema é avaliado com um único limiar de decisão aplicado da mesma forma em toda a suíte. Não ajustamos limiares por sistema para favorecer os seus pontos fortes, nem voltamos a correr com cortes diferentes até um número nos parecer bem.

Os nossos números principais

O detetor fundido da zn, o conjunto incluído hoje na gateway, mede:

{
  "suite": "prompt-injection-benchmark-v1.1",
  "vectors": { "total": 217, "attack": 138, "benign": 79 },
  "fused_detector": {
    "false_positive_rate": 0.0127,
    "false_negative_rate": 0.0942,
    "threshold_rule": "identical-threshold"
  },
  "notes": [
    "FPR computed over all 79 benign vectors.",
    "FNR computed over all 138 attack vectors.",
    "No per-vector or per-system threshold tuning."
  ]
}

Dito de forma simples: aproximadamente 1 em cada 79 chamadas benignas é sinalizada, e cerca de 1 em cada 11 vetores de ataque passa. São os números do caminho fundido especificamente (deteção sacrificial e heurísticas a votar em conjunto), não os de um componente isolado.

Gráfico de barras horizontais da taxa de falsos negativos (FNR) num ponto de operação com FPR igual ou inferior a 1,4% nos mesmos 217 vetores. Uma barra com contorno tracejado mostra o FNR de cerca de 2,5% que a Meta atribui à classe de modelos PromptGuard-2 na sua própria distribuição, rotulado como afirmação; uma barra sólida mostra a medição do PromptGuard-2, cerca de 79% de FNR aqui sob a regra do limiar idêntico; e uma barra sólida verde mostra o detetor fundido da zn com 9,42% de FNR.

Metodologia da figura: cada barra reporta o FNR nos mesmos 138 vetores de ataque, num único ponto de operação. A barra tracejada reproduz uma afirmação publicada sobre a distribuição de avaliação da própria Meta e está desenhada em contorno para distinguir visualmente afirmação e medição; as barras sólidas são as nossas medições sob a regra do limiar idêntico descrita acima, sem ajuste por sistema. Os detetores sem matriz de confusão publicada nesta suíte ficam fora da figura em vez de serem estimados. Cada número é reproduzível a partir da suíte na secção seguinte.

O que encontrámos ao testar o PromptGuard-2

Avaliámos o PromptGuard-2 da Meta como sinal candidato. A Meta reporta aproximadamente 97,5% de recall com uma taxa de falsos positivos de 1% para esta classe de modelos. Essa afirmação pode muito bem estar correta na distribuição de avaliação interna da Meta.

Não se transferiu para a nossa. No benchmark v1.1, o PromptGuard-2 mediu aproximadamente 47% de recall no nosso ponto de operação fixo, e aproximadamente 21% sob a regra mais estrita do limiar idêntico, em que a sua pontuação tem de passar a mesma fasquia que todos os outros sistemas da suíte. Ambos os números ficam muito longe do valor publicado.

Trata-se de um resultado de não transferência de uma afirmação, não de uma acusação. Os benchmarks publicados refletem as suas próprias distribuições; os corpora de injeção diferem muito em densidade de parafrasear, mistura de línguas e quanto contexto benigno envolve cada carga. A nossa suíte inclina-se para tráfego realista de agentes multi-turno, que parece ser um caso mais difícil para este modelo. Quem implementar o PromptGuard-2 deve reproduzir ambas as avaliações na sua própria distribuição antes de confiar em qualquer um dos conjuntos de números.

Um crédito onde os dados o exigem: o pg2-86m continua a ser o concorrente zero-shot mais forte que corremos. A sua fatia dedicada a jailbreak regista um FNR de 8,33%, melhor do que alguns sistemas comerciais que testámos, e é um lembrete útil de que "zero-shot" não quer dizer "fraco". É nas categorias de injeção que não são jailbreak que o seu recall medido colapsa face às afirmações; a fusão da zn mantém uma cobertura mais consistente em todo o conjunto de 138 vetores de ataque.

Reproduzir a execução

A suíte vem com a gateway para que possa apontá-la à sua própria implementação em vez de confiar nas nossas:

# Run the v1.1 suite against a gateway endpoint.
# Writes per-vector verdicts plus aggregate FPR/FNR to the report file.
zn bench run --suite ./benchmarks/prompt-injection-v1.1 \
  --target http://localhost:8080/mcp \
  --report out/bench-v1.1.json

O relatório contém um veredicto por vetor, com as pontuações dos detetores associadas, pelo que as discordâncias com os nossos agregados são auditáveis vetor a vetor em vez de discutidas em abstrato.

O que NÃO afirmamos

Para sermos honestos, três coisas que estes números não estabelecem:

  1. Superioridade universal. Testámos os sistemas que tínhamos disponíveis numa única distribuição de 217 vetores. Outras suítes classificarão os sistemas de forma diferente, e esperamos isso.
  2. Robustez adversarial. São vetores estáticos. Atacantes adaptativos que podem consultar o detetor mudam o problema por completo.
  3. O PromptGuard-2 é mau. O resultado é a não transferência, específica de uma distribuição, de uma afirmação concreta de recall, medida sob um protocolo de limiar concreto. Na distribuição da Meta, os seus números podem reproduzir-se exatamente.

Porque é que a fusão

Os detetores de sinal único têm modos de falha correlacionados com a sua distribuição de treino. A zn funde vários sinais independentes (deteção sacrificial, heurísticas estruturais e pontuação baseada em modelos) porque erros não correlacionados se dividem em vez de se somarem: quando o classificador falha uma família de parafrases, a camada heurística continua a ver a anomalia na forma da carga. Os 9,42% de FNR com 1,27% de FPR são o que essa divisão compra nesta suíte.

Se correr agentes contra conteúdo não fiável, execute a suíte você mesmo. Os números acima são reproduzíveis a partir do repositório, e atualizamo-los sempre que sobe a versão do benchmark.

Share