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:
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#
- 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.
- 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.
- 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.
- 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
logprobssalvo 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:
- Entrena el «maestro» con 1 000 puntos y sírvelo devolviendo probabilidades.
- Genera 200 consultas aleatorias, guarda las respuestas y entrena un sustituto. Mide la fidelidad en 1 000 puntos nuevos.
- Repite devolviendo solo la etiqueta. ¿Cuántas consultas necesitas ahora para la misma fidelidad?
- 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#
- Tramèr et al., Stealing Machine Learning Models via Prediction APIs (USENIX Security 2016)
- Carlini et al., Stealing Part of a Production Language Model (2024)
- Jagielski et al., High Accuracy and High Fidelity Extraction of Neural Networks (USENIX Security 2020)
- Hinton et al., Distilling the Knowledge in a Neural Network (2015)
- OWASP Top 10 for LLM Applications — LLM10: Unbounded Consumption
- MITRE ATLAS