spinner

Adversarial Machine Learning: una introducción. ¿Motivo de preocupación?

Los algoritmos de inteligencia artificial cada vez influyen más en nuestro día a día, tanto es así que nuestras vidas pueden llegar a depender de ellos. Su seguridad se ha convertido en el punto de mira de los atacantes, ¿estamos seguros de que esos modelos están protegidos? En esta serie de post descubriremos el Adversarial Machine Learning, el cual se encarga de estudiar estas vulnerabilidades en presencia de un adversario malicioso. En este primer post describimos qué es el Adversarial Machine Learning y la taxonomía de ataques que puede sufrir un modelo.

El machine learning (ML) y el deep learning (DL) han ganado una gran popularidad en los últimos tiempos tanto en el mundo académico como en el sector empresarial debido a las numerosas aplicaciones tales como clasificación de imágenes y vídeo, reconocimiento e identificación facial, detección de malware, procesamiento del lenguaje natural o sistemas de conducción autónoma.

Tanto el uso del machine learning como del deep learning han mejorado las técnicas anteriores. Este auge se ha sucedido gracias al aumento del poder de cómputo de las tarjetas gráficas (GPUs), principalmente debido a las plataformas cloud que ofrecen GPUs bajo demanda a un precio asequible, un recurso muy necesario en el caso del deep learning. Otro factor que ha favorecido esta explosión del ML/DL ha sido el aumento del consumo y generación de datos, cada vez mayor; se espera que en los próximos años siga creciendo a un ritmo incluso más rápido debido a la transformación digital de las empresas y la normalización de los dispositivos IoT. Todo esto propicia que sea más sencillo entrenar modelos en un margen razonable de tiempo y con un coste asumible.

Aplicaciones del machine learning. Fuente

Los modelos mejoran cada día y son capaces de tomar mejores decisiones sin la supervisión de un humano. En aplicaciones críticas, la seguridad de los modelos se vuelve algo indispensable si estos modelos tienen la capacidad de tomar decisiones que pongan en riesgo la vida de las personas. El caso más actual y más cercano a llegar al público son los sistemas de conducción autónoma que basan su funcionamiento en deep learning, y la seguridad de estos modelos es fundamental que se audite de forma rigurosa antes de ser puestos en producción. Estas auditorías requieren de muchas pruebas y el Adversarial Machine Learning es el primer paso en la estandarización de las metodologías necesarias para contar con un marco de pruebas robusto que garantice el buen funcionamiento del modelo y la seguridad de sus usuarios.

Breve introducción al machine learning

El machine learning es la disciplina de la Inteligencia Artificial relacionada con la implementación de algoritmos que pueden aprender de forma autónoma. En ella, se incluye el deep learning, que diseña e implementa algoritmos, conocidos como redes neuronales, inspirados en la estructura y funciones del cerebro humano.

Los algoritmos de machine learning se pueden clasificar en tres grupos dependiendo de la salida que produzcan, que reciben el nombre de tipos de aprendizaje:

  • El aprendizaje supervisado consiste en inferir una función a partir de datos de entrenamiento etiquetados, es decir, para cada uno de los datos se tiene tanto la entrada como la salida esperada.
  • El aprendizaje no supervisado consiste en inferir una función a partir de datos de entrenamiento no etiquetados, es decir, sólo se conoce la entrada de cada uno de los datos.
  • El aprendizaje por refuerzo se preocupa por cómo los agentes de software deben tomar acciones en un entorno para maximizar algún tipo de recompensa acumulativa.

El proceso de obtener un modelo de machine learning se da durante la fase de entrenamiento y consiste en minimizar una función de error (denominada función de pérdida, loss function, en inglés) ajustando una serie de parámetros. A los parámetros que no se ajustan mediante el entrenamiento se les llama hiperparámetros.

Una vez obtenido el modelo, podemos hacerle peticiones para obtener una predicción (o inferencia) cuya exactitud y corrección variará en gran medida en función de cómo se haya realizado el entrenamiento. Esto es lo que se llama fase de inferencia.

Pese a la gran variedad de usos que se le está dando a esta tecnología, los modelos de machine learning son entrenados para realizar alguno de estos dos tipos de tareas:

  • Clasificación: si las salidas del modelo toman un número finito de valores. A las salidas se les llama etiqueta. Por ejemplo, si queremos distinguir entre dígitos manuscritos (0, 1, …, 9), las salidas posibles del modelo son 10, que se corresponden con los 10 dígitos disponibles.
  • Regresión: si las salidas del modelo toman un número infinito de valores. Por ejemplo, predecir la temperatura que hará mañana en un lugar determinado (la salida toma infinitos valores).

 

 Adversarial Machine Learning

En una pieza de software las vulnerabilidades suelen tratar sobre errores de configuración, valores por defecto, errores en el código o vulnerabilidades en las dependencias. Sin embargo, al desplegar un modelo de ML/DL debería ser esperable que los modelos no presentaran ninguna vulnerabilidad, pero esto no es cierto en la mayoría de los casos. Este es el tema central del Adversarial Machine Learning, que es una rama del machine learning que trata de averiguar qué ataques puede sufrir un modelo en la presencia de un adversario malicioso y cómo protegerse de ellos.

El adversario, en función del conocimiento que tiene del modelo que pretende atacar puede realizar tres tipos de ataques:

  • Ataques de caja blanca: el adversario tiene acceso a la arquitectura usada por el modelo, a los datos de entrenamiento, a los parámetros e hiperparámetros.
  • Ataques de caja negra: el adversario sólo tiene acceso a las entradas y salidas del modelo.
  • Ataques de caja gris: el ataque se encuentra en un punto intermedio entre entre los dos tipos de ataques anteriores.

 

Taxonomía de ataques

Aunque es posible realizar numerosos ataques a los modelos de machine learning, el Adversarial Machine Learning clasifica todos estos los ataques en cuatro tipos:

  • Envenenamiento
  • Evasión
  • Extracción
  • Inversión

La imagen muestra la relación entre los tipos de ataque, el adversario (o atacante) y la fase en la que se puede producir el ataque (entrenamiento o inferencia).

Taxonomía de ataques de Adversarial Machine Learning. Fuente: Yingzhe He et al.

Ataques de envenenamiento

Los ataques de envenenamiento (poisoning attacks, en inglés) también son conocidos como ataques causativos (causative attacks, en inglés). El adversario trata de corromper el conjunto de entrenamiento con el objetivo de que el modelo aprendido produzca una clasificación errónea que beneficia al adversario.

Ataque de envenenamiento. Fuente: Sarah Jamie Lewis

Este tipo de ataques se realiza en la fase de entrenamiento es muy difícil averiguar la vulnerabilidad subyacente ya que se puede transmitir a todos los modelos que empleen estos datos. Este ataque se puede realizar tanto en caja blanca como en caja negra y compromete la disponibilidad de los modelos.

Ataques de evasión

Los ataques de evasión (evasion attacks, en inglés) son también conocidos como ataques exploratorios (exploratory attacks, en inglés). El objetivo del adversario es inyectar en la entrada una pequeña cantidad de ruido para que un clasificador prediga la salida (o etiqueta) de forma incorrecta.

Ataque de evasión. Fuente: Sarah Jamie Lewis

La mayor diferencia entre el ataque de envenenamiento y el ataque de evasión es que, a diferencia del ataque de envenenamiento, que se realiza en la fase de entrenamiento, el ataque de evasión se realiza en la fase de inferencia.

Este tipo de ataque se realiza modificando ligeramente las entradas introduciendo una cierta cantidad de ruido. Estas entradas maliciosas reciben el nombre de ejemplo adversario (adversarial example, en inglés). Se pueden crear sobre distintos tipos de datos, aunque los ejemplos adversarios más extendidos y conocidos son sobre imágenes. De hecho, los ejemplos adversarios sobre imágenes se crean para que sean imperceptibles para el ojo humano. Este tipo de ataques se pueden hacer tanto de caja negra como de caja blanca y se realizan durante la fase de inferencia.

Un ejemplo adversario. Fuente: OpenAI

 

Ejemplo adversario sobre una señal de tráfico. Fuente: Jiefeng Chen, Xi Wu

El adversario puede requerir ser más preciso a la hora de obtener una salida para obtener sus objetivos: puede necesitar una salida con una etiqueta específica o simplemente obtener un resultado no esperado. Esto permite diferenciar entre dos tipos de ataque: dirigido o no dirigido.

  • Dirigido: el adversario quiere obtener una salida específica de su elección.
  • No dirigido: el adversario quiere obtener un resultado distinto al esperado.

Un ataque no dirigido puede darse en el primer ejemplo donde un adversario sólo quiere que se clasifique de forma incorrecta la imagen del panda. Un ataque dirigido puede producirse en la segunda imagen donde el adversario quiere que una señal de stop se clasifique como de máxima velocidad a 100 km/h.

Los ataques dirigidos suelen ser más difíciles de obtener en la práctica que los no dirigidos y son más peligrosos desde el punto de vista del adversario, mientras que los no dirigidos son más fáciles de obtener, pero menos potentes para un adversario en la mayoría de casos.

Ataques de inversión

Los ataques de inversión de modelos (model inversion attacks, en inglés) consisten en que un adversario intenta aprovechar las predicciones del modelo para comprometer la privacidad del usuario o inferir si unos datos determinados fueron empleados en el conjunto de entrenamiento o no. Se puede emplear tanto en caja blanca como en caja negra.

Este tipo de ataque tiene especial relevancia entre los modelos que han sido entrenados con datos sensibles, como pueden ser los datos clínicos, que requieren de una protección especial.

A la izquierda se muestra un ejemplo reconstruido a través de un ataque de inversión. A la derecha se muestra el dato de entrenamiento original. Fuente: Matt Fredrikson et al.

Ataques de extracción

Los ataques de extracción de modelos (model extraction attacks, en inglés) consisten en que un adversario intenta robar los parámetros de un modelo de machine learning. Este tipo de ataque permite comprometer la propiedad intelectual y confidencialidad de un modelo, y permite realizar ataques de evasión y/o inversión. Este ataque se puede realizar tanto en caja blanca como caja negra.

Este ataque ha sido empleado para robar la propiedad intelectual de un modelo, evitando pagar por consumir un servicio de Machine Learning as a Service (MLaaS) como los disponibles en AWS, GCP, Azure o BigBL, por ejemplo.

El esquema para extraer un modelo es el siguiente:

  • Un usuario legítimo entrena su modelo a partir de datos, o delega el entrenamiento en servicios MLaaS para obtener un modelo que es desplegado en algún sistema, accesible al atacante a través de una API.
  • Este último, realizando peticiones a la API, es capaz de deducir (en mayor o menor medida) un modelo equivalente al del usuario legítimo.

Esquema del ataque de modelos. Fuente: Florian Tramer et al.

Tabla resumen

A continuación se muestra una tabla resumen con las principales características de los tipos de ataque que propone el Adversarial Machine Learning.

Característica Envenenamiento Evasión Extracción Inversión
Caja blanca
Caja negra
Fase de entrenamiento
Fase de inferencia
Vulnera confidencialidad
Vulnera disponibilidad
Vulnera propiedad intelectual
Compromiso datos entrenamiento

 

Conclusiones

Los modelos de machine learning son muy útiles en numerosas aplicaciones, pero presentan vulnerabilidades que pueden ser críticas en aplicaciones que requieran una especial seguridad (por ejemplo, los sistemas de conducción autónoma) y los que son entrenados con datos sensibles (por ejemplo, los datos clínicos). En el caso de los sistemas de conducción autónoma, es posible modificar una señal de forma imperceptible para que un adversario pueda cambiar el significado de la señal a su antojo. Si el modelo no es suficientemente robusto puede poner en riesgo grave a los ocupantes del vehículo. De forma similar, si entrenamos un modelo con datos sensibles, es posible que los datos de entrenamiento sean filtrados, produciendo una grave vulneración de la legislación en esta materia.

Estos son sólo algunos de ejemplos de vulnerabilidades que pueden darse en este tipos de modelos. Disponer de métodos que nos protejan de estas vulnerabilidades en un tema crítico en numerosos sectores y aplicaciones. Pero no está todo perdido y existen medidas defensivas que nos permiten protegernos frente a todos los ataques descritos.

El Adversarial Machine Learning es la rama intersección del machine learning y la seguridad informática que se encarga de evidenciar estas vulnerabilidades y proponer métodos de defensa frente a estos ataques, que se clasifican en cuatro tipos (envenenamiento, evasión, inversión y extracción).

En los siguientes posts, se desarrollarán las técnicas tanto de ataque como de defensa de cada cada uno de los tipos de ataque, destacando las técnicas defensivas que nos permitan proteger los modelos de estos ataques.

¿Crees que las organizaciones deberían potenciar sus esfuerzos en conocer el Adversarial Machine Learning? De ser así, ¿cuántos recursos se deben invertir?

Si te interesa adentrarte más en este tema, no dudéis en contarnos vuestras impresiones o respondernos a las preguntas que planteamos en el post mediante nuestra cuenta de Twitter.

Referencias

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

Rigaki, M., & Garcia, S. (2020). A Survey of Privacy Attacks in Machine Learning. Retrieved from http://arxiv.org/abs/2007.07646

Fuente Imagen destacada: unsplash

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?