Saltar al contenido

Temas

Extracción de modelo (model stealing y destilación)

Cómo se copia un modelo propietario solo con su API: el atacante consulta, etiqueta sus datos con las respuestas y entrena un sustituto. Qué relación tiene con la destilación y cómo encarecer el ataque.

Hasta ahora, los ataques de esta sección buscaban datos: lo que el modelo vio al entrenar. Este va a por el modelo mismo. La extracción de modeloExtracción de modeloAtaque que copia el comportamiento de un modelo propietario consultando su API y entrenando un sustituto con las respuestas. (model extraction o model stealing) es copiar un modelo propietario usando solo lo que cualquier cliente tiene: su API.

Y sí, mecánicamente es la misma técnica que la destilaciónDestilaciónTécnica legítima que entrena un modelo pequeño (alumno) para imitar las salidas de uno grande (maestro); usada sin permiso sobre una API ajena es extracción de modelo.. La diferencia no es técnica, es de permiso:

Destilación Extracción de modelo
Maestro Tuyo o con licencia De otro, sin permiso
Objetivo Un modelo más pequeño y barato Una copia que sustituya al original
Qué se usa Probabilidades, logits, texto Lo mismo, lo que devuelva la API
Resultado Práctica de ingeniería habitual Robo de IP y puerta a otros ataques

La intuición: preguntar es etiquetar#

Entrenar un buen modelo cuesta datos etiquetados, cómputo y tiempo. Pero una API ya contiene ese esfuerzo: cada respuesta es una etiqueta de alta calidad. Quien consulta no necesita los pesos; necesita bastantes pares (entrada, respuesta) para que su propio modelo aprenda a imitar el comportamiento.

En el visualizador, arriba tienes el flujo y abajo lo que ocurre de verdad. Un clasificador decide con una frontera de decisión (la línea donde cambia de opinión). El sustituto empieza con una frontera equivocada y, con cada par que recibe, gira hasta coincidir con la original:

Extracción de modelo: copiar un modelo a base de preguntas
AtacanteAPI víctimacaja negraPares (x, ŷ)SustitutocopiaVíctima · frontera ocultaVíctima · frontera realSustituto · frontera aprendidanuevanuevaclase Aclase Bfidelidad≈ 97 %Límitesrate · sin probsx₁ … xₙpesos ocultosetiquetadas gratisaprendiendo la frontera…misma respuesta ante entradas nuevas429 · limitadoxxxŷŷŷentrenarx

Paso 1 de 7Caja negra

La víctima ofrece un modelo de pago detrás de una API. Los pesos y los datos de entrenamiento son su propiedad intelectual; el atacante solo ve entradas y salidas.

Dos objetivos distintos#

Un artículo clave (Jagielski et al., 2020) separa dos metas que parecen la misma pero no lo son:

  • Exactitud (accuracy): que el sustituto acierte tanto como la víctima en la tarea real. Basta para quien solo quiere un producto competidor.
  • Fidelidad (fidelity): que el sustituto responda igual que la víctima, incluidos sus errores. Es mucho más difícil, pero es la que permite el siguiente paso: usar la copia local para estudiar el modelo sin límite de consultas, fabricar ejemplos adversarios que luego funcionan contra el original o sondear su privacidad.

Casos reales#

  1. Modelos clásicos (Tramèr et al., USENIX Security 2016). Con muy pocas consultas recuperaron modelos de regresión logística, árboles de decisión y redes pequeñas servidos por APIs de “ML como servicio” (BigML, Amazon ML). Si la API devolvía probabilidades, el modelo se reducía a resolver ecuaciones.
  2. Redes neuronales. Knockoff Nets (Orekondy et al., 2019) mostró que se puede copiar un clasificador de imágenes sin conocer su arquitectura ni sus datos, usando imágenes cualesquiera y las etiquetas que devuelve la API.
  3. LLM (Carlini et al., 2024). Stealing Part of a Production Language Model recuperó la capa final de modelos reales de OpenAI (la proyección de embeddings, incluida la dimensión oculta) con consultas a la API por menos de 20 dólares. Los proveedores cambiaron la API para cerrarlo.
  4. Destilación a gran escala. Entrenar un modelo pequeño con millones de respuestas de uno grande ajeno (el modelo Alpaca de Stanford lo hizo con salidas de un modelo de OpenAI) es hoy una práctica extendida y está prohibida por los términos de la mayoría de proveedores.

Por qué importa a un defensor#

  • Propiedad intelectual. Años de datos y cómputo se reducen al precio de las consultas.
  • Salto a otros ataques. Con una copia local el atacante prueba ejemplos adversarios, jailbreaks y inferencia de pertenencia a costa cero, y solo ataca la API real cuando ya tiene un ataque que funciona.
  • Saltarse los controles. Un sustituto sin guardrails ni filtros reproduce la capacidad del original sin ninguna de sus restricciones de seguridad.
  • Coste y disponibilidad. Miles de consultas sistemáticas son carga que alguien paga. OWASP lo recoge como escenario de LLM10:2025 Unbounded Consumption (model extraction) y MITRE ATLAS lo cataloga como técnica de exfiltración a través de la API de inferencia (Extract ML Model, bajo AML.T0024).

Defensa: encarecer, no impedir#

Mientras el modelo responda, la extracción no puede evitarse del todo. El objetivo es que cueste más de lo que vale y que se detecte a tiempo.

  • No expongas probabilidades ni logprobs salvo necesidad real. Devolver solo la etiqueta o el texto reduce mucho la información por consulta.
  • Redondea o trunca las puntuaciones que sí devuelvas.
  • Limita el tamaño de salida y los parámetros que el cliente puede controlar (como logit_bias, que fue la palanca del ataque de 2024).
  • Rate limiting y cuotas por cuenta, clave de API, IP y organización (en AWS, WAF y API Gateway con planes de uso).
  • Detecta patrones de barrido: entradas muy sistemáticas, cercanas entre sí o que recorren el espacio de entrada. Existen detectores específicos (como PRADA) que miran la distribución de las consultas.
  • Identifica a quien consulta. Verificación de cuenta y de pago hacen caro crear identidades desechables.
  • Marcas de agua en las salidas (o en el comportamiento) del modelo, para poder probar después que un sustituto viene de tu API.
  • Términos de uso que prohíban entrenar con las salidas, y monitorización del mercado de modelos derivados.
  • Registro de todas las consultas para reconstruir el ataque y respaldar una reclamación.

Tu turno

Roba tu propio clasificador

En tu lab, con un clasificador sencillo (por ejemplo, de dos clases con scikit-learn) que tú sirvas detrás de una pequeña API:

  1. Entrena el «maestro» con 1 000 puntos y sírvelo devolviendo probabilidades.
  2. Genera 200 consultas aleatorias, guarda las respuestas y entrena un sustituto. Mide la fidelidad en 1 000 puntos nuevos.
  3. Repite devolviendo solo la etiqueta. ¿Cuántas consultas necesitas ahora para la misma fidelidad?
  4. Elige las consultas cerca de la frontera del sustituto (active learning). ¿Cuánto bajan?

Reto

Solo devuelvo la etiqueta final, sin probabilidades. ¿Ya no se puede extraer mi modelo?

▸Mostrar solución

Se puede, solo cuesta más consultas. Con etiquetas duras hay que buscar la frontera a base de consultas adaptativas, y se necesitan bastantes más para igualar la fidelidad. Es una mejora real porque sube el coste, pero no una garantía: debe ir acompañada de límites de consulta y detección de patrones.

Reto

Si destilo un modelo propio para hacerlo más barato de servir, ¿estoy haciendo un ataque?

▸Mostrar solución

No. La técnica es la misma, pero el maestro es tuyo y tienes el permiso. Lo que convierte la destilación en ataque es entrenar con las salidas de un modelo ajeno sin autorización, o contraviniendo sus términos de uso.

En resumen#

  • La extracción de modelo copia un modelo propietario consultando su API: las respuestas son etiquetas gratis para entrenar un sustituto.
  • Es la misma mecánica que la destilación; lo que cambia es el permiso sobre el maestro.
  • Las consultas cercanas a la frontera de decisión son las más informativas, por eso pocas bastan.
  • El daño no es solo robo de IP: la copia local permite ataques adversarios y de privacidad sin límites, y se salta los guardrails.
  • Defensa: devolver menos información, limitar y detectar consultas, y poder demostrar el robo (marcas de agua, registros, términos).

Referencias#

Notas relacionadas

ESC
↑↓ para navegar↵ para abriresc para cerrar