Adversarial Attacks, el enemigo de la inteligencia artificial

Franco Piergallini Guida    30 junio, 2020

Una red neuronal tiene un simple objetivo: reconocer patrones inherentes en sets de datos. Para lograrlo, debe tener la capacidad de “aprender” pasando por un proceso de entrenamiento donde se ajustan miles de parámetros hasta llegar a una combinación que minimice una métrica de error dada. Si logra encontrar una combinación de sus parámetros que le permiten generalizar los datos, será capaz reconocer estos patrones y predecir, con una tolerancia de error admisible, entradas de datos que nunca haya visto en el proceso de entrenamiento. Estos datos pueden ser imágenes, videos, audios o datos tabulares. ¿Qué pasa si alguien sabe manipular esos datos para que ofrezcan los datos que le convienen?

De forma imperceptible e inconsciente, utilizamos redes neuronales en un sinfín de tareas que realizamos a diario. Algunos de los ejemplos más superficiales son los sistemas de recomendación de películas en Netflix y música en Spotify, la identificación y categorización de correos electrónicos, la interpretación de consultas y predicciones de siguiente palabra en buscadores, los asistentes virtuales y su procesamiento natural del lenguaje, el reconocimiento facial en cámaras y, por supuesto, la identificación de amigos en las redes sociales y los filtros graciosos que deforman nuestros rasgos faciales.

Sin discriminación, las redes neuronales triunfan en una variedad de campos inmensa. Podemos utilizarlas para diagnosticar la COVID-19, rastrear vendedores de drogas en redes sociales, o incluso detectar fake news. Sin embargo, se ha demostrado que también pueden ser hackeadas, remontándonos a la esencia y definición del hacking: manipular la conducta normal de un sistema.

Una de las técnicas utilizadas para manipular arbitrariamente las redes neuronales es la que se conoce comúnmente como “Adversarial Attacks”. Con ella podemos producir la salida deseada creando una entrada cuidadosamente elaborada. Por ejemplo, si tenemos una red neuronal que en base al sonido de la tos predice la probabilidad de tener o no COVID-19, podríamos manipular los espectrogramas grabados añadiendo ruido para modificar la probabilidad de respuesta (aumentarla o disminuirla). O incluso podríamos generar un espectrograma sin ningún sentido o parecido a los generados por la tos y así obtener cualquier probabilidad de respuesta deseada.

Ejemplo con deep fakes

Veamos un ejemplo concreto: tenemos un sistema que es muy bueno prediciendo si un vídeo es deepfake o no. Una de las soluciones convencionales a esta problemática comienza con la recolección y alineamiento de n caras que aparecen en el video utilizando una red neuronal específica para esta tarea. Una vez recolectadas, otra red predice la probabilidad de que una cara sea deepfake o no.

El último paso es tomar un promedio de todas las probabilidades para las n caras recolectadas. Si este promedio es mayor a un límite impuesto (por ejemplo, 0.6), entonces el vídeo es clasificado como deepfake; de lo contrario, se clasifica como no deepfake. Claramente podemos ver que, en el ejemplo, la calidad del deepfake generado no es muy buena y el sistema está muy seguro al clasificarlo (0.86).

Para modificar la probabilidad de salida del sistema deberíamos agregar ruido estratégicamente generado e insertarlo en el vídeo. Para lograrlo tenemos tres restricciones:

  • El ruido generado debe ser lo suficientemente sofisticado para que la red que identifica las caras siga haciendo su trabajo sin problemas.
  • El ruido debe estar generado de tal forma que baje la probabilidad que predice la segunda red en todas las caras recolectadas.
  • Las modificaciones deben ser lo más imperceptibles posible para los humanos.

Analizando en detalle la segunda red, podemos apreciar que el input que recibe siempre es del mismo tamaño: una imagen RGB de 256 píxeles de alto por 256 píxeles de ancho. Las redes neuronales son determinísticas, es decir, que para cualquier imagen de entrada que se ajuste a la primera capa, ésta va a producir un output. Los píxeles toman valores entre 0 y 256, lo que implica que el espacio de posibles combinaciones para entradas de la segunda red va a ser 256256*256*3 pero sólo un subconjunto muy pequeño va a cumplir con las tres restricciones.

Para generar el ruido utilizamos Fast Gradient Sign Method (live demo), que implica un ataque de tipo white box y tener acceso completo al sistema. Pero, ¿qué pasa cuando tenemos una sola oportunidad para engañar al sistema? Podríamos crear nuestro propio modelo réplica del original y generar el ruido en base a éste. Hay altas probabilidades de que el ataque funcione por transferibilidad, una propiedad que todavía es caso de estudio pero que básicamente dice que dos modelos con el mismo objetivo se van a basar en las mismas características para cumplirlo.

¿Cómo nos defendemos de este tipo de ataques?

Una solución puede ser agregando una nueva red neuronal que funcione como una especie de IDS (SafetyNet) en nuestro proceso. Si detecta que la imagen o vídeo contiene este tipo de ataques, puede descartar el vídeo y clasificarlo como malicioso. Otra solución sería generar estos ataques e incluirlos en nuestros sets de datos y en el proceso de entrenamiento de nuestra red para que pueda etiquetarlos como maliciosos, pero esta opción es muy costosa debido a la cantidad de combinaciones sobre las cuales se pueden generar.

Una solución muy ingeniosa de un equipo de NVIDIA llamada BaRT (The Barrage of Random Transforms) plantea aplicar distintos tipos de ataques al set de datos en el cual es entrenada la red neuronal para dificultar la tarea del atacante a la hora de hacer un ataque de tipo black box y que la red pueda clasificar correctamente un vídeo como malicioso.

Cleverhans, de Tensorflow; y ART (Adversarial Robustness Toolbox), de IBM, son librerías en las que podemos encontrar un punto de partida con ejemplos para saber más sobre este tipo de ataques en las redes neuronales, así como formas para solucionarlos en nuestros modelos y aumentar su robustez.

Hay muchos lugares en los que los atacantes pueden aprovechar este tipo de técnicas y tener un impacto realmente significativo: robo de identidad en sistemas de reconocimiento facial, engañar a los detectores de contenido sexual o violento en las redes sociales, señales de tránsito que utilizan los vehículos autónomos, detectores de fake news, etc. Detrás de todas estas aplicaciones que utilizamos a diario existen modelos que, al igual que cualquier sistema, pueden ser vulnerables a que su comportamiento se vea alterado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *