Seguridad y privacidad

El descenso de gradiente rompe los clasificadores de inyección de prompts con pesos abiertos

Tom Ganz demuestra que los ataques Greedy Coordinate Gradient pueden eludir detectores populares de inyección de prompts mediante la adición de sufijos de tokens optimizados.

A glass shield breaking under mathematical symbols and letter tiles
Ilustración generada para este artículo

Traducido automáticamente del original en inglés.

Los investigadores de seguridad suelen depender de modelos clasificadores pequeños para filtrar prompts maliciosos antes de que lleguen a los grandes modelos de lenguaje. En un reciente análisis técnico, Tom Ganz muestra que esta defensa común es frágil cuando los pesos del clasificador están disponibles públicamente. Al aplicar técnicas de descenso de gradiente, los atacantes pueden añadir sufijos cortos y sin sentido a prompts maliciosos que obligan a los detectores a clasificarlos como benignos.

Qué ocurrió

El consejo estándar para prevenir la inyección de prompts es colocar un clasificador ligero delante del modelo principal. Este filtro lee el texto entrante y decide si contiene un intento de inyección, descartando entradas peligrosas antes de que consuman recursos informáticos costosos. Ganz desarrolló Smolaya-guard, un modelo de 323M de parámetros basado en la arquitectura Laya, que puntúa los prompts en una sola pasada hacia adelante. En datos de prueba retenidos, este clasificador logró un AUC de 0.9998 y detectó el 99.7% de las inyecciones con solo un 1% de tasa de falsos positivos, pareciendo un límite de seguridad robusto.

A pesar de estas métricas sólidas, Ganz demostró que cualquier detector con pesos abiertos puede ser eludido utilizando ataques Greedy Coordinate Gradient (GCG). El método implica adjuntar un sufijo corto de tokens al final de un prompt malicioso. El atacante optimiza estos tokens para minimizar la puntuación de confianza del detector, empujándola por debajo del umbral de seguridad. Como los pesos del modelo son públicos, el atacante puede calcular exactamente cómo cada cambio potencial de token afecta al margen de salida, lo que le permite crear un sufijo que engaña al clasificador mientras mantiene intacta la intención maliciosa original para el modelo objetivo.

Cómo funciona

Un detector de inyección de prompts suele emitir una puntuación de margen, calculada como la diferencia entre los logits de "inyección" y "benigno". Si este margen supera un umbral específico, se marca el prompt. Para Smolaya-guard, el umbral se establece en -3.18 para mantener una baja tasa de falsos positivos, mientras que las inyecciones reales suelen puntuar entre +7 y +9. El objetivo del ataque es encontrar un sufijo que reduzca este margen por debajo del umbral.

Dado que los tokens son unidades discretas, no se puede aplicar directamente el descenso de gradiente estándar. GCG resuelve esto tratando temporalmente las incrustaciones de tokens como variables continuas. El algoritmo calcula el gradiente del margen respecto a cada posición de token, identificando qué palabras del vocabulario bajarían más significativamente la puntuación si se intercambiaran. Luego prueba un lote de estos intercambios candidatos contra el modelo real, manteniendo el cambio que produce el margen más bajo. Este proceso se repite durante unos pocos pasos hasta que el prompt es malclasificado.

Detalles clave

  • Ganz probó el ataque contra tres modelos de pesos abiertos: Smolaya-guard, protectai/deberta-v3-base-prompt-injection-v2 y nvidia/Nemotron-3.5-Content-Safety.
  • El ataque eludió con éxito los tres detectores, arrastrando las puntuaciones seguras de inyección a niveles benignos.
  • Para Smolaya-guard, 12 de las 12 inyecciones probadas fueron malclasificadas tras añadir un sufijo de 30 tokens optimizado en 10 pasos.
  • Se creó un sufijo universal para el modelo ProtectAI que redujo el margen promedio de un lote de inyecciones de +15.3 a -13.
  • El modelo más grande Nemotron-3.5-Content-Safety requirió 136 pasos de optimización para cambiar su veredicto de inseguro a seguro.
  • Los sufijos añadidos suelen ser galimatías o contener palabras irrelevantes como "benign", sirviendo únicamente para manipular las matemáticas internas del modelo.

Por qué importa

Este análisis revela una debilidad fundamental en confiar en clasificadores de pesos abiertos como límites de seguridad. Cuando los pesos del modelo son públicos, los adversarios tienen acceso completo a la información de gradiente necesaria para crear ejemplos adversarios. Esto significa que distribuir un clasificador con pesos abiertos proporciona efectivamente a los atacantes las herramientas para romperlo. El tamaño o la complejidad del modelo no impiden esto; incluso un juez generativo de 4.3B de parámetros como Nemotron fue engañado por el mismo enfoque basado en gradientes, aunque con más computación.

Para los ingenieros que construyen aplicaciones de IA, esto implica que el filtrado de prompts por sí solo es insuficiente si el filtro es vulnerable a ataques de gradiente. La suposición de que una puntuación AUC alta en conjuntos de prueba estáticos se traduce en seguridad en el mundo real es errónea cuando el adversario puede adaptarse al límite de decisión específico del modelo. Las estrategias de seguridad deben tener en cuenta que cualquier barrera determinista y diferenciable con parámetros expuestos puede ser optimizada en contra.

Qué puedes hacer

  • Evita depender exclusivamente de clasificadores de pesos abiertos para decisiones críticas de seguridad en entornos de producción.
  • Considera el uso de herramientas de moderación basadas en API de código cerrado donde la información de gradiente no sea accesible para los atacantes.
  • Implementa estrategias de defensa en profundidad, como la validación de salida y el sandboxing, en lugar de confiar exclusivamente en los filtros de entrada.
  • Monitorea para detectar intentos de evasión, ya que los sufijos manipulados pueden contener patrones reconocibles.

Herramientas de la Tienda de Bytechap

Seguir leyendo

Todos los artículos