Por qué la fusión de zn supera a los guardias de inyección de prompts sin entrenamiento específico: resultados del benchmark v1.1

zn6 min de lectura

Toda pasarela de agentes que toca llamadas a herramientas acaba enfrentándose a la misma pregunta: qué tan buena es tu detección de inyección de prompts, medida con datos que el proveedor no entrenó ni ajustó. Este artículo publica nuestras cifras y la metodología que las sustenta. Sin superlativos más allá de lo que respaldan los datos.

El benchmark

El benchmark v1.1 es una suite fija de 217 vectores: 138 vectores de ataque (inyección directa de instrucciones, sobrescrituras al estilo jailbreak y cargas que cruzan contextos) y 79 vectores benignos (flujos de trabajo normales de desarrolladores que deben pasar sin cambios). La suite está versionada en el repositorio, y todos los resultados siguientes se obtuvieron ejecutando los mismos archivos en cada sistema, sin ajustar prompts ni umbrales por sistema después de ver los resultados.

Para cada detector se informan dos puntos de operación:

  • FPR: tasa de falsos positivos sobre los 79 vectores benignos.
  • FNR: tasa de falsos negativos sobre los 138 vectores de ataque.

El punto metodológico que consideramos más importante se fijó antes de la evaluación: la regla de umbral idéntico. Todos los sistemas se evalúan con un único umbral de decisión aplicado de la misma forma en toda la suite. No ajustamos umbrales por sistema para favorecer sus fortalezas, ni repetimos la ejecución con cortes distintos hasta que un número nos parezca bien.

Nuestras cifras principales

El detector fusionado de zn, el conjunto que hoy incluye la pasarela, mide:

{
  "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."
  ]
}

Dicho en claro: aproximadamente 1 de cada 79 llamadas benignas se marca, y cerca de 1 de cada 11 vectores de ataque se cuela. Son las cifras del camino fusionado concretamente (la detección sacrificial y las heurísticas votando juntas), no las de un componente aislado.

Gráfico de barras horizontales de la tasa de falsos negativos (FNR) en un punto de operación con FPR igual o inferior al 1,4 % sobre los mismos 217 vectores. Una barra con contorno discontinuo muestra el aproximadamente 2,5 % de FNR que Meta atribuye a la clase de modelos PromptGuard-2 en su propia distribución, etiquetado como afirmación; una barra sólida muestra la medición de PromptGuard-2, aproximadamente 79 % de FNR aquí con la regla de umbral idéntico; y una barra sólida verde muestra el detector fusionado de zn con 9,42 % de FNR.

Metodología de la figura: cada barra informa el FNR sobre los mismos 138 vectores de ataque en un único punto de operación. La barra discontinua reproduce una afirmación publicada en la propia distribución de evaluación de Meta y se dibuja con contorno para distinguir visualmente la afirmación de la medición; las barras sólidas son nuestras mediciones con la regla de umbral idéntico descrita arriba, sin ajuste por sistema. Los detectores sin matriz de confusión publicada en esta suite se excluyen de la figura en lugar de estimarse. Cada número es reproducible desde la suite en la sección siguiente.

Qué encontramos al probar PromptGuard-2

Evaluamos PromptGuard-2 de Meta como señal candidata. Meta informa de aproximadamente 97,5 % de recall con una tasa de falsos positivos del 1 % para esta clase de modelos. Es posible que esa afirmación sea correcta en la distribución de evaluación interna de Meta.

No se trasladó a la nuestra. En el benchmark v1.1, PromptGuard-2 midió aproximadamente 47 % de recall en nuestro punto de operación fijo, y aproximadamente 21 % con la regla de umbral idéntico más estricta, en la que su puntuación debe superar el mismo listón que todos los demás sistemas de la suite. Ambas cifras quedan muy lejos de la cifra publicada.

Esto es un hallazgo de no traslado de una afirmación, no una acusación. Los benchmarks publicados reflejan sus propias distribuciones; los corpus de inyección difieren mucho en densidad de parafraseo, mezcla de idiomas y cuánto contexto benigno rodea cada carga. Nuestra suite se inclina hacia el tráfico realista de agentes de varios turnos, que parece un caso más difícil para este modelo. Quien despliegue PromptGuard-2 debería reproducir ambas evaluaciones con su propia distribución antes de fiarse de cualquiera de los dos conjuntos de cifras.

Un reconocimiento que los datos exigen: pg2-86m sigue siendo el competidor sin entrenamiento específico más fuerte que probamos. Su segmento dedicado de jailbreak registra un 8,33 % de FNR, mejor que el de algunos sistemas comerciales que hemos probado, y es un recordatorio útil de que "sin entrenamiento específico" no significa "débil". Donde su recall medido se desploma respecto a lo declarado es en las categorías de inyección que no son jailbreak; la fusión de zn mantiene una cobertura más consistente en todo el conjunto de 138 vectores de ataque.

Reproducir la ejecución

La suite viene con la pasarela para que puedas apuntarla a tu propio despliegue en lugar de fiarte de nuestras cifras:

# 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

El informe contiene un veredicto por vector con las puntuaciones de los detectores adjuntas, de modo que las discrepancias con nuestros agregados son auditables vector por vector en lugar de discutirse en abstracto.

Lo que NO afirmamos

Para mantenernos honestos, tres cosas que estas cifras no establecen:

  1. Superioridad universal. Probamos los sistemas a nuestro alcance con una distribución de 217 vectores. Otras suites ordenarán los sistemas de forma distinta, y lo esperamos.
  2. Robustez adversarial. Son vectores estáticos. Los atacantes adaptativos que pueden consultar el detector cambian el problema por completo.
  3. PromptGuard-2 es malo. El hallazgo es el no traslado, específico de una distribución, de una afirmación concreta de recall, medido con un protocolo de umbral concreto. En la distribución de Meta, sus cifras podrían reproducirse exactamente.

Por qué la fusión

Los detectores de una sola señal tienen modos de fallo que se correlacionan con su distribución de entrenamiento. zn fusiona varias señales independientes (detección sacrificial, heurísticas estructurales y puntuación basada en modelos) porque los errores no correlacionados se dividen en lugar de sumarse: cuando el clasificador pasa por alto una familia de parafraseos, la capa heurística aún detecta la anomalía en la forma de la carga. El 9,42 % de FNR con 1,27 % de FPR es lo que esa división aporta en esta suite.

Si ejecutas agentes contra contenido no confiable, ejecuta la suite tú mismo. Las cifras anteriores son reproducibles desde el repositorio, y las actualizamos con cada cambio de versión del benchmark.

Share