spinner

Adversarial Machine Learning (parte II): ataques de extracción

Segunda parte de la serie de post Adversarial Machine Learning. En este post se va a tratar sobre los robos de modelos de machine learning,  cuáles son los métodos más comunes y cuáles con las medidas de defensa frente a este tipo de ataques.

Los ataques de extracción de modelos permiten a un adversario robar los parámetros de un modelo de machine learning. Este robo se produce al hacer peticiones al modelo objetivo con entradas preparadas para extraer la mayor cantidad de información posible, y con las respuestas obtenidas inferir (de forma aproximada) los valores de los parámetros del modelo original. Este tipo de ataque vulnera la confidencialidad del modelo y compromete la propiedad intelectual del mismo. Al disponer el adversario de un modelo equivalente al original, le permite además realizar otros tipos de ataque como evasión y/o inversión. Los métodos de extracción se han centrado en modelos de deep learning en un mayor medida debido a su mayor coste en tiempo y en datos de entrenamiento, aunque también es posible aplicarlos a otros modelos de machine learning. Este tipo de ataque se puede realizar conociendo ciertos detalles internos del modelo (caja blanca) o sin tener ningún conocimiento del modelo a extraer (caja negra). 

Este último tipo de ataque es el más utilizado y ha sido empleado para robar la propiedad intelectual de un modelo, evitando tener que pagar por consumir un servicio de Machine Learning as a Service (MLaaS) como los disponibles en AWS, GCP, Azure o BigBL, por ejemplo. En este escenario, el adversario sólo tiene acceso a las entradas que introduce al modelo que intenta robar y, a las salidas que devuelve el mismo. El adversario está limitado de 3 maneras:

  1. Conocimiento del modelo: el adversario no conoce los detalles internos la arquitectura interna del modelo o los hiperparámetros.
  2. Acceso a los datos: el adversario no conoce el proceso de entrenamiento y no tiene acceso a otro conjunto de datos con la misma distribución que los originales.
  3. Cantidad de peticiones: el adversario puede ser detectado si hace peticiones muy frecuentemente al modelo.

La imagen inferior muestra el proceso para robar un modelo:

  1. El adversario realiza peticiones al modelo que intenta robar y obtiene peticiones al modelo que intenta robar y obtiene las salidas correspondientes del mismo.
  2. El adversario usa las entradas y salidas para extraer el modelo, eligiendo la aproximación que le convenga al adversario en su escenario.
  3. El adversario roba los datos confidenciales entre los que se incluyen los parámetros, hiperparámetros, arquitectura, fronteras de decisión y funcionalidad del modelo.

Proceso de extracción de modelos. Fuente: [2]

Métodos de ataque

Según [2] existen 3 aproximaciones para extraer modelos: resolución de ecuaciones, entrenar un metamodelo y entrenar un modelo sustituto.

Resolución de ecuaciones

Uno de los métodos más sencillos, y que da bastante buenos resultados es el “resolución de ecuaciones”, donde conociendo ciertos datos del algoritmo aplicado se pueden robar los parámetros del modelo, y con ello, el modelo. Este tipo de ataque se ha realizado con éxito en [8] y [9]. En el primero, se aplica para robar los parámetros del modelo, y el segundo para robar los hiperparámetros del mismo.

Veamos un ejemplo de cómo realizar este tipo de ataque: supongamos que conocemos el tipo de algoritmo usado. Algunos de los servicios MLaaS nos dan esta información, como Amazon Machine Learning. Supongamos que conocemos que el algoritmo utilizado es una regresión logística. Así pues, sabemos que

Así pues, si x es un vector de dimensión n, n+1 peticiones linealmente independientes son suficientes para obtener los parámetros del modelo (β), y con ello, robar el modelo. Para conseguirlo, se hacen n+1 peticiones, con lo que se consiguen n+1 pares de la forma

Este sencillo ataque tiene consecuencias devastadoras en servicios MLaaS, pues consigue robar modelos con pocas consultas y un coste ínfimo. Un caso de uso interesante de este tipo de ataques que se destaca en [8] es el de los servicios MLaaS caja negra, donde un usuario sube sus datos de entrenamiento y el servicio es capaz de entrenar un modelo, pero el usuario no conoce los parámetros y sólo puede acceder al modelo a través de una API, como si de una caja negra se tratase, y pagar por cada petición realizada. Con el ataque anterior se conseguiría entrenar un modelo transparente para el usuario (normalmente, bastante costoso) de forma que al acabar de entrenar, con muy pocas consultas robar el modelo, evitando el coste posterior de estos servicios.

Este ataque se ha realizado tanto para regresión logística (para clasificación binaria como para multiclase) como con perceptrones multicapa.

El método de resolución de ecuaciones también ha sido aplicado para el robo de hiperparámetros. Estos parámetros son más costosos computacionalmente de obtener que los parámetros del entrenamiento. En [9] se aplica un método similar al anterior para el robo de los hiperparámetros. Los autores del artículo parten de que muchos de los algoritmos de ML tratan de minimizar una función objetivo de la forma

donde, f es la función objetivo; L, la función de pérdida; λ, el hiperparámetro; y R, término de regularización. Así pues, el objetivo es obtener el valor de λ. En [9], sólo se centran las funciones objetivo con la forma de f, pero destacan que es conveniente investigar robar otros hiperparámetros como K en KNN, la arquitectura utilizada, la tasa de Dropout o el tamaño de minibatch utilizado, en el caso de las redes neuronales.

Para robar el parámetro λ, los autores hacen uso de una observación que será clave para el método propuesto: puesto que el objetivo es minimizar la función f, un mínimo en esa función, implica que los puntos cercanos al mínimo, tendrán valores mayores que el propio mínimo. En términos matemáticos, un mínimo vendrá dado con la anulación del gradiente, esto es, al minimizar la función, el gradiente del valor mínimo valdrá 0. 

Se utilizará esta observación para robar el hiperparámetro. Así pues, el objetivo es minimizar el gradiente de la función de pérdida e igualar a 0. De esta manera, se obtiene un sistema de ecuaciones lineales, cuya incógnita es λ.

El sistema de ecuaciones es sobredeterminado, es decir, con más ecuaciones que incógnitas. Por lo que es necesario aplicar una solución aproximada, por ejemplo, utilizando el método de mínimos cuadrados para obtener λ.

Para ejemplificar, consideremos el caso de la regresión contraída (o ridge regression, en inglés). Su función objetivo viene dada por

El gradiente de la función f viene dado por

El parámetro λ viene dado (a consecuencia de resolver por mínimos cuadrados) por 

con 

Este método ha sido aplicado a distintos tipos de regresión, regresión logística, SVM y redes neuronales.

En [9] se explica cómo aplicar este método para funciones no diferenciables y cómo solucionar la no diferenciabilidad de las mismas. Además, se explica cómo aplicar el método a algoritmos que emplean un kernel.

Entrenamiento de un metamodelo

Metamodel es un clasificador propuesto en [6], que haciendo peticiones a un modelo de clasificación sobre las salidas Y para ciertas entradas X, el adversario entrena un modelo

Este método se ha empleado para obtener atributos del modelo como arquitectura del modelo, tiempo de operación y tamaño del conjunto de entrenamiento.

Entrenamiento de un modelo sustituto

El método más empleado para robar los modelos como caja negra (típicamente modelos de deep learning) consiste en un modelo sustituto, es decir, un modelo que imite al modelo original que se pretende extraer. La forma de funcionar de este ataque descrita en [7] es la siguiente: 

  1. El adversario obtiene respuestas del modelo a través de datos de entrada.
  2. El adversario observa etiquetas devueltas por el clasificador.
  3. El adversario usa los datos de entrada y las etiquetas para entrenar un modelo de deep learning y optimizar sus hiperparámetros. El modelo resultante infiere todos los aspectos del modelo original como datos de entrenamiento, tipo de clasificador e hiperparámetros del clasificador.

Método del modelo sustituto. Fuente: [7]

Este tipo de ataque se llevó a cabo sobre Support Vector Machine (SVM), Näive Bayes y redes neuronales sobre el conjunto de datos de Reuters-21578. De los resultados obtenidos en [7], los autores dedujeron que los modelos de deep learning (empleados como modelos sustitutos) son capaces de producir modelos muy parecidos a los originales. Sin embargo, el recíproco no es cierto: otros clasificadores no pueden imitar la funcionalidad de un modelo de deep learning.

Otra variante de este ataque se puede encontrar en [4]. La diferencia sustancial con el método anterior es que en este método se dispone de un número máximo de peticiones que se pueden realizar al modelo que el atacante quiere robar.

Este método tiene seis pasos:

  1. Selección de los hiperparámetros del modelo: se selecciona una arquitectura y los hiperparámetros del modelo sustituto. La extracción de hiperparámetros se puede hacer en forma de caja negra, aplicando los ataques de [9].
  2. Colección de datos iniciales: se construye un conjunto de datos iniciales sin etiquetar que forman la base de la extracción. Son seleccionados en concordancia con las capacidades del adversario.
  3. Consultas al modelo. Todo o parte de la colección de datos iniciales es enviado al modelo para obtener predicciones. La entrada y la salida son almacenados.
  4. Entrenamiento del modelo sustituto: las muestras del paso 3 se usan para entrenar el modelo sustituto.
  5. Generación de muestras sintéticas: se incrementa el número de muestras de entrada. Los autores proponen un método llamado Jacobian-based Data Augmentation (JbDA).
  6. Criterio de parada: los pasos 3-5 se repiten hasta que el número máximo de peticiones es consumido o se alcanza una condición de parada que muestra el éxito de robar el modelo.

En [1] se demuestra que los modelos de redes neuronales son vulnerables a ataques de canal lateral, en concreto, a los timing attacks. Es decir, midiendo el tiempo que tarda en responder un modelo es posible deducir las capas de las que está compuesto un modelo. Este tipo de ataque se puede aplicar para robar un modelo haciendo uso de la técnica del modelo sustituto, reduciendo el espacio de búsqueda aplicando algoritmos de aprendizaje por refuerzo.

El método de extracción es el siguiente:

  1. El adversario hace peticiones al modelo objetivo.
  2. El adversario mide el tiempo de ejecución de la entrada en el modelo.
  3. El tiempo de ejecución se pasa a un regresor que predice el número de capas del modelo.
  4. El número de capas se emplea para reducir el espacio de búsqueda para obtener la arquitectura del modelo.
  5. La búsqueda produce la arquitectura óptima usando aprendizaje por refuerzo usando el espacio de búsqueda restringido, con una precisión similar al modelo original.

Robo de modelos mediante timing attacks. Fuente: [1]

 Este método ha sido probado con distintas arquitecturas de VGG usando el conjunto de datos CIFAR10, mostrando que este método es independiente de la arquitectura empleada y siendo que es ampliamente escalable [1].

Estos son algunos de los métodos de ataque, aunque existen muchos otros como los que afectan a árboles de decisión [8] o los que se pueden realizar a modelos que devuelven sólo la etiqueta con mayor probabilidad [8]. Una amplia descripción de otros métodos de ataque se puede encontrar en referencia [2].

Defensas

Una medida de protección es la del redondeo de los valores de salida, es decir, limitar las probabilidades a un determinado número de decimales (entre 2 y 5). Los casos estudiados en [8] muestran que Amazon tiene hasta 16 decimales de precisión, y BigML 5 decimales. Se demuestra que aplicado a los ataques anteriores se consigue reducir el impacto sobre la extracción del modelo. En [9] se aplica esta tećnica del redondeo para ofuscar hiperparámetros: el redondeo aumenta el error de los ataques, pero en determinados modelos se muestra que, incluso con redondeo, el ataque sigue siendo efectivo, como en el caso de LASSO

Otra medida de protección considerada en [8] es la privacidad diferencial. En [8] se muestra que la privacidad diferencial pudiera prevenir el robo de modelos, aunque no esté pensada para ello, aplicando privacidad diferencial a los parámetros de un modelo, impidiendo a un atacante distinguir entre dos parámetros que estén cercanos entre sí. Cómo conseguir esto, se deja como pregunta abierta en el artículo.

El uso de ensembles, como random forest, podría devolver como predicción un agregado de predicción de un conjunto de modelos. En [8] no han experimentado con ello, aunque los autores consideran que sería más resistente al robo de modelos que los modelos de forma individual. También apuntan que los ensembles son vulnerables a otros ataques como los de evasión.

En [3] presentan una arquitectura para prevenir el robo de modelos, guardando todas las peticiones hechas por los clientes y calculando el espacio de características para detectar el ataque.

Arquitectura propuesta para defenderse frente a la extracción de modelos. Fuente: [3]

En [4] se ha propuesto PRADA, un método genérico para detectar el robo de modelos. Se basa en decidir si un conjunto de consultas son maliciosas. Es decir, PRADA trata de detectar cómo de relacionadas están varias consultas sucesivas.

Los autores observaron que

  • El robo de un modelo implica hacer varias consultas al modelo y,
  • Muestras generadas están específicamente generadas o seleccionadas para extraer la máxima información. Las muestras enviadas por un atacante deberían tener una distribución que evoluciona de una manera más inestable que una distribución de muestras benignas.

PRADA se basa en los cambios abruptos de la distribución de muestras enviadas por un cliente.

Los autores del artículo explican que este método de defensa podría ser eludido si las consultas se hacen a través de varios clientes, aunque por lo visto en los experimentos el ataque puede ser detectado en cuanto se pasa de muestras reales a sintéticas, y todos los clientes deberían tener este comportamiento.

También, se explica cómo mitigar el ataque una vez detectado. Una manera sencilla sería bloquear la conexión con el cliente, aunque podría ser eludida usando más clientes. Una mejor manera de mitigar el ataque podría ser alterar las predicciones que se le devuelven al cliente para degradar el modelo sustituto. Los autores avisan que devolver predicciones aleatorias podría hacer que el atacante tuviera resultados muy inconsistentes. Una mejor estrategia es devolver la segunda o tercera clase de la predicción del modelo, haciendo creer al atacante que ha conseguido robar el modelo.

En [5] se presenta Adaptive Misinformation (AM) una defensa frente a robo de modelos que modifica su respuesta sólo cuando se cree que un adversario está realizando el robo del modelo. AM se basa en que los ataques realizan peticiones fuera de la distribución (OOD, Out Of Distribution, en inglés), mientras que los atacantes legítimos usan peticiones dentro de la distribución (ID, In Distribution, en inglés). Una forma de comprobar si las peticiones son OOD es representar el MSP (Maximum Softmax Probability, en inglés): valores altos del MSP indican que se trata de peticiones ID, mientras que valores bajos indican peticiones OOD. 

MSP para distintos ataques comparado con peticiones benignas. Fuente: [5]

En la imagen se puede ver que en el caso de un usuario benigno, la distribución del MSP muestra que la mayor parte de las peticiones se muestran en los valores altos, mientras que dos atacantes usando dos tipos de ataque distintos (KnockoffNet y JbDA) tienen valores del MSP bajos, haciendo que este método permite distinguir peticiones ID y OOD.

AM manda selectivamente predicciones incorrectas para peticiones que se consideran OOD y las peticiones ID se mandan de forma correcta. Puesto que un atacante hará una gran cantidad de peticiones OOD, esto produce que el modelo robado no se asemeje al modelo original, al haber sido entrenado con una gran cantidad de datos de entrenamiento que no son reales. Esta solución proporciona una mayor escalabilidad y ofrece una solución de compromiso entre precisión del modelo y seguridad debido a:

  1. Su naturaleza adaptativa: el uso de respuestas incorrectas de forma selectiva a las peticiones OOD en vez de añadir perturbaciones a todas las peticiones. Esto proporciona un compromiso entre precisión y los ataques al robo de modelos.
  2. Correlación reducida de la desinformación: AM usa una función de desinformación (misinformation function, en inglés) para generar predicciones incorrectas que no revela información sobre la petición original, que resulta en una mayor seguridad.
  3. Coste computacional bajo: este sistema sólo requiere una pasada al modelo para realizar la petición.

El esquema del funcionamiento de AM se muestra a continuación:

Esquema de funcionamiento de Adaptive Misinformation. Fuente: [5]

Dada una entrada x, el detector OOD decide si la petición es OOD o ID. Si se da el primer caso se evalúa el modelo sobre el modelo, produciendo una salida modificada. En el segundo caso, se evalúa el modelo original f produciendo la respuesta legítima.

Para el detector OOD se puede emplear el MSP del modelo. Para un modelo que devuelve K probabilidades y_i para una entrada x, la detección se puede hacer estableciendo un umbral τ en el MSP.

Otro método que se puede emplear es Outlier Exposure

La función de desinformación es la función encargada de realizar predicciones erróneas de las entradas. Se entrena minimizando la función de pérdida de entropía cruzada inversa (reverse cross entropy, en inglés). 

Este método supera a defensas previas como PRADA [4], aunque requiere entrenarse desde cero y no teniendo el modelo ya entrenado como es el caso de PRADA.

Conclusiones

En este post hemos visto métodos para para extraer modelos de machine learning. Entre las distintas aproximaciones destacan los métodos de resolución de ecuaciones y el modelo sustituto. Los escenarios más realistas requieren de entrenar un modelo sustituto, que normalmente serán modelos de deep learning, ya que son capaces de aproximar otros tipos de modelos.

Pese a todas estas técnicas disponibles, no es sencillo extraer un modelo en un entorno real debido a que los hiperparámetros no son sencillos de obtener sin realizar una cantidad ingente de peticiones, incluso siendo el robo de modelos equiparable al entrenamiento desde cero en cuanto a datos necesario y poder computacional. Esto hace que en muchas ocasiones sea inviable realizar este tipo de ataques a modelos reales. Aún así, existen defensas para proteger los modelos. Entre ellas, se incluyen evitar devolver un número elevado de decimales en los modelos, emplear técnicas de privacidad diferencial o emplear métodos específicos como PRADA o Adaptive Misinformation. 

Referencias

[1] Duddu, V., Samanta, D., Rao, D. V., & Balas, V. E. (2018). Stealing Neural Networks via Timing Side Channels. Retrieved from http://arxiv.org/abs/1812.11720 

[2] He, Y., Meng, G., Chen, K., Hu, X., & He, J. (2019). “Towards Privacy and Security of Deep Learning Systems: A Survey”. Retrieved from http://arxiv.org/abs/1911.12562 

[3] Kesarwani, M., Arya, V., Mukhoty, B., & Mehta, S. (2018). Model extraction warning in MLAAS paradigm. ACM International Conference Proceeding Series, 371–380. https://doi.org/10.1145/3274694.3274740 

[4] Juuti, M., Szyller, S., Marchal, S., & Asokan, N. (2018). PRADA: Protecting against DNN Model Stealing Attacks. Retrieved from http://arxiv.org/abs/1805.02628

[5] Kariyappa, S., & Qureshi, M. K. (2019). Defending Against Model Stealing Attacks with Adaptive Misinformation. Retrieved from http://arxiv.org/abs/1911.07100 

[6] Oh, S. J., Schiele, B., & Fritz, M. (2019). Towards Reverse-Engineering Black-Box Neural Networks. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics): Vol. 11700 LNCS (pp. 121–144). https://doi.org/10.1007/978-3-030-28954-6_7 

[7] Shi, Y., Sagduyu, Y., & Grushin, A. (2017). How to steal a machine learning classifier with deep learning. 2017 IEEE International Symposium on Technologies for Homeland Security, HST 2017. https://doi.org/10.1109/THS.2017.7943475 

[8] Tramèr, F., Zhang, F., Juels, A., Reiter, M. K., & Ristenpart, T. (2016). Stealing Machine Learning Models via Prediction APIs. Proceedings of the 25th USENIX Security Symposium, 601–618. Retrieved from http://arxiv.org/abs/1609.02943 

[9] Wang, B., & Gong, N. Z. (2018). Stealing Hyperparameters in Machine Learning. Proceedings – IEEE Symposium on Security and Privacy, 2018May, 36–52. Retrieved from http://arxiv.org/abs/1802.05351

Fuente Imagen destacada: FreePik

Las opiniones vertidas por el autor son enteramente suyas y no siempre representan la opinión de BBVA Next Technologies.

¿Quieres saber que más cosas hacemos en BBVA Next Technologies?