Ciberseguridad y vulnerabilidades de redes neuronales

Qué hacer cuando tu red piensa que todo es un avestruz.

Las redes neuronales están en todas partes, y son hackeables. Este artículo profundizará en el aprendizaje automático adverso y la ciberseguridad para las redes neuronales y los modelos de aprendizaje automático en general.

“A la gente le preocupa que las computadoras se vuelvan demasiado inteligentes y se apoderen del mundo. Pero el problema real es que son demasiado estúpidas y que ya se han apoderado del mundo”. – Pedro Domingos

Las redes neuronales se están volviendo cada vez más ubicuas en el mundo moderno. Y con frecuencia se implementan sin tener en cuenta sus posibles fallas de ciberseguridad.

Esto ha llevado a un nuevo campo de ciberseguridad que analiza las vulnerabilidades de las redes neuronales y cómo podemos protegerlas para que no sean aprovechadas por los piratas informáticos.

Aunque este es un asunto serio, en este artículo, tomaré un enfoque humorístico para delinear las vulnerabilidades de las redes neuronales que espero que el lector encuentre divertidas e informativas.

ciberseguridad - Agregar ruido estratégico a una imagen puede usarse para engañar a las redes neuronales. Fuente:Goodfellow et al., 2015.
Agregar ruido estratégico a una imagen puede usarse para engañar a las redes neuronales. Fuente:Goodfellow et al., 2015.

Visión general

En este artículo, le daré al lector una introducción completa al campo del aprendizaje automático adversario. En el que se intentan engañar, envenenar o manipular los modelos de aprendizaje automático para eludir su propósito intrínseco, a menudo con fines maliciosos.

Las preguntas que intento responder en este tutorial son:
  • ¿Qué es el aprendizaje automático adversario?
  • ¿Cómo podrían ser atacados mis modelos de aprendizaje automático?
  • ¿Cómo puedo defender a mis modelos de los ataques?
  • ¿Cuáles son las ramificaciones de estos ataques en el mundo real?

Este problema es de gran preocupación para las redes neuronales debido a su arquitectura subyacente y su procedimiento de aprendizaje.

Por lo que la mayoría de este artículo se centra en estas redes. Aunque se proporcionan otros ejemplos.

Ciberseguridad: Redes neuronales en el mundo real

Probablemente nunca lo supiste, pero es probable que uses redes neuronales todos los días sin pensarlo dos veces.

¿Alguna vez le hizo una pregunta a Siri? Hay una red neuronal. ¿Autos de auto conducción? Redes neuronales. ¿Reconocimiento facial en tu cámara? Más redes neuronales. Alexa? Una vez más, las redes neuronales…

Estas son solo las aplicaciones que son tangibles. Hay muchas aplicaciones intangibles de redes neuronales que las personas usan todos los días.

Si es el programa de software que usa en el trabajo o simplemente busca un lugar para ir a cenar esa noche. Es probable que esté usando algún tipo de red neuronal (lo digo en general, ya que existen muchos tipos diferentes de redes).

ciberseguridad
Algunos de los usos más comunes de las redes neuronales en la actualidad.

Es probable que la penetración de estas redes solo aumente. Y hay una buena razón para ello. Las redes neuronales son aproximadores de función universal .

Qué significa eso?

Significa que si mi red neuronal tiene una capacidad suficientemente grande (es decir, suficientes nodos (ponderaciones y sesgos) que pueden modificarse).

Entonces puedo aproximar cualquier función no lineal utilizando la red neuronal. Esta es una declaración muy poderosa. Ya que puedo aprender esencialmente cualquier función, sin importar lo compleja que sea.

Sin embargo, hay un precio que pagamos por esto. Y es que las redes pueden ser bastante sensibles a los insumos que les das.

Por lo tanto, es relativamente fácil engañar a la red si sabe los botones correctos para presionar, por así decirlo.

Al manipular ciertos nodos de imágenes, es fácil activar las neuronas asociadas con características particulares. Lo que puede hacer que la red produzca salidas espurias.

Esto puede parecer relativamente inocente. Después de todo, como muestra Ian Goodfellow en su artículo seminal. Es bastante cómico ver que una red neuronal convierte al panda en un gibbon al azar.

Sin embargo, la aplicación real de este tipo de ataques puede ser bastante desalentadora.

Tomemos el caso de Alexa. Digamos que usas Alexa para comprar cosas regularmente.

Un día, un pirata informático especialmente inteligente se sienta fuera de su casa (a menudo llamado “wardriving” en el mundo de la ciberseguridad) y corta su Wifi:

Esto es sorprendentemente fácil de hacer con aircrack-ng si no ha asegurado su enrutador correctamente o aún tiene una contraseña predeterminada .

El hacker ahora tiene acceso a Alexa. Que tiene privilegios de ciberseguridad para realizar transacciones en su nombre, dando su aprobación verbal.

Si el hacker es lo suficientemente inteligente, es posible que puedan engañar a Alexa para que entregue todo su dinero al pirata informático. Simplemente presionando los botones correctos en la red neuronal.

Esto podría aterrorizarte, y podrías estar a punto de irte y tirar a Alexa. Sin embargo, solo porque esto es posible no significa que sea fácil.

 Hay “ataques” que pueden implementarse en redes neuronales. Y la mayoría de las empresas con ingenieros inteligentes detrás de sus productos han considerado al menos que esto podría ser un problema.

Ahora analizaremos cómo se puede atacar una red neuronal. Los tipos de ataques posibles y cómo los ingenieros y científicos de datos pueden ayudar a proteger sus redes de estas vulnerabilidades potenciales.

Ciberseguridad: Ataques Adversarios

En esta sección, presentaré al lector la taxonomía de los ataques adversos.

Caja blanca contra ataques de caja negra

Esencialmente, los ataques a redes neuronales implican la introducción de ruido colocado estratégicamente diseñado para engañar a la red al estimular falsamente los potenciales de activación que son importantes para producir ciertos resultados.

Para entender realmente a qué me refiero cuando digo ‘colocar ruido de manera estratégica’.

Considere la siguiente imagen desarrollada por Google Brain para mostrar cómo el mismo efecto puede engañar a los humanos.

¿Crees que la imagen de la izquierda y la derecha son ambos gatos? O perros? ¿O uno de cada uno?

ciberseguridad
En términos de un algoritmo de clasificación que tiene límites de decisión. Aquí hay una ilustración de cómo la red está corrompida por la introducción del ruido estratégico.
Ciberseguridad - Ilustración de un ataque adversario en el espacio del rasgo. Fuente: Panda et al. 2019
Ilustración de un ataque adversario en el espacio del rasgo. Fuente: Panda et al. 2019

Hay dos tipos principales de ataques posibles: ataques de caja blanca y ataques de caja negra.

Los ataques de caja gris surgen en el campo de la ciberseguridad pero no están presentes en los ataques neuronales.

Un ataque de caja blanca ocurre cuando alguien tiene acceso a la red subyacente. Como resultado, conocerán la arquitectura de la red.

Esto es análogo a una prueba de penetración de caja blanca de la red de TI de una empresa: estas se realizan de manera rutinaria en el mundo corporativo para probar las capacidades defensivas de la infraestructura de TI de las empresas.

Una vez que un pirata informático entiende cómo está estructurada su red de TI. Hace que sea mucho más fácil sabotearla.

Esta es una situación en la que el conocimiento de la frase es poder es especialmente cierto. Ya que conocer la estructura de la red puede ayudarlo a seleccionar los ataques más dañinos a realizar y también ayudar a descubrir las debilidades relevantes para la estructura de la red.

ciberseguridad - Ataque de caja blanca. La arquitectura es conocida y las neuronas individuales pueden ser manipuladas.
Ataque de caja blanca. La arquitectura es conocida y las neuronas individuales pueden ser manipuladas.

Un ataque de caja negra ocurre cuando el atacante no sabe nada sobre la red subyacente. En el sentido de las redes neuronales, la arquitectura puede considerarse como una caja negra.

Si bien es más difícil realizar ataques en una caja negra, todavía no es impermeable.

 El procedimiento subyacente para los ataques de caja negra fue descrito por primera vez por Papernot et al. (2015) .

Suponiendo que podemos probar tantas muestras como queramos en la red, podemos desarrollar una red inferida pasando una serie de muestras de entrenamiento a la red y obteniendo el resultado.

Luego podemos usar estas muestras de entrenamiento etiquetadas como nuestros datos de entrenamiento y entrenar un nuevo modelo para obtener el mismo resultado que el modelo original.

ciberseguridad

Una vez que tengamos nuestra nueva red, podemos desarrollar ejemplos adversos para nuestra red inferida y luego usarlos para realizar ataques adversos en el modelo original.

ciberseguridad

Este modelo no depende de conocer la arquitectura de la red, aunque esto facilitaría la ejecución del ataque.

Ataques físicos

Como ya se habrá dado cuenta, estos ataques son todos ataques de software. Pero en realidad es posible atacar físicamente la red.

No conozco ninguna implementación de esto que haya ocurrido realmente. Pero varios estudios de investigación han analizado el uso de “calcomanías de adversarios” para intentar engañar a la red.

A continuación se muestra un ejemplo:
Ataques físicos en redes neuronales mediante calcomanías adversas.
Ataques físicos en redes neuronales mediante calcomanías adversas.

Claramente, esto presenta un problema potencial para la adopción masiva de automóviles que se manejan solos.

Nadie querría que su automóvil ignore una señal de alto y continúe conduciendo hacia otro automóvil, un edificio o una persona.

Sin embargo, no se alarme demasiado, hay formas de proteger las redes contra todos estos tipos de ataques, a los que me referiré más adelante.

Evasión y ataques de veneno.

Todos los ataques que hemos discutido hasta ahora han sido ataques de evasión, es decir, han involucrado ‘engañar’ a un sistema.

Un buen ejemplo sería engañar a un detector de correo no deseado que protege las cuentas de correo electrónico para que pueda recibir sus correos electrónicos no deseados en la bandeja de entrada de alguien.

Los detectores de spam a menudo usan algún tipo de modelo de aprendizaje automático (como un clasificador de Bayes ingenuo) que se puede usar para el filtrado de palabras.

Si un correo electrónico contiene demasiadas ‘palabras de moda’ que generalmente están asociadas con el correo no deseado (dado su historial de correo electrónico como datos de capacitación), se clasificará como correo no deseado.

Sin embargo, si conozco estas palabras, puedo cambiarlas deliberadamente para hacer que sea menos probable que el detector considere mi correo electrónico como spam, y podré engañar al sistema.

Otro buen ejemplo es la ciberseguridad informática, donde los algoritmos de aprendizaje automático a menudo se implementan en sistemas de detección de intrusos (IDS) o sistemas de prevención de intrusos (IPS).

Cuando un paquete de red llega a mi computadora que tiene la firma característica de una pieza de malware, mi algoritmo se activa y detiene el paquete antes de que pueda hacer algo malicioso.

Sin embargo, un pirata informático puede usar código confuso para “confundir” la red para que no marque un problema.

Como ejemplo final, algunos investigadores del MIT desarrollaron una tortuga impresa en 3D cuya textura fue capaz de engañar al algoritmo de detección de objetos de Google y hacer que clasifique a la tortuga como un rifle.

Este último es un poco preocupante dado que el algoritmo de Google se utiliza actualmente en muchas industrias con fines comerciales.

Los ataques de envenenamiento implican comprometer el proceso de aprendizaje de un algoritmo.

Este es un procedimiento ligeramente más sutil e insidioso que los ataques de evasión. Pero solo funciona en modelos que participan en el aprendizaje en línea, es decir, aprenden en el trabajo y se vuelven a entrenar a medida que nuevas experiencias (datos) están disponibles para ellos.

 Puede que esto no parezca un problema demasiado grande hasta que consideremos algunos ejemplos de ataques de envenenamiento.

Para volver a nuestro ejemplo de IDS, estos se actualizan constantemente utilizando el aprendizaje en línea, ya que siempre se están desarrollando nuevos virus.

Si uno desea evitar un ataque de día cero, es necesario dar a estos sistemas la capacidad de aprendizaje en línea. 

Un atacante podría envenenar los datos de entrenamiento inyectando muestras cuidadosamente diseñadas para eventualmente comprometer todo el proceso de aprendizaje.

Una vez que esto sucede, su IDS se vuelve esencialmente inútil. Y corre un riesgo mucho mayor de virus potenciales y es probable que ni siquiera se dé cuenta.

Por lo tanto, la intoxicación puede considerarse como una contaminación adversa de los datos de entrenamiento. Lo mismo podría decirse de nuestro ejemplo de detector de spam.

Esta sección nos ha dado una visión general de los tipos de problemas que podemos esperar. En la siguiente sección. Veremos más de cerca cómo lidiar con los ataques de caja blanca y negra.

Los tipos más comunes de ataques adversos y las defensas que uno puede usar en sus redes neuronales para mejorar estas preocupaciones de ciberseguridad.

 

Ciberseguridad: Tipos específicos de ataque

Ian Goodfellow (el creador de la red de confrontación generativa, y el que acuñó el término) publicó uno de los primeros artículos que analizan las posibles vulnerabilidades de seguridad en las redes neuronales.

 Decidió llamar a esto ‘aprendizaje automático adversarial’. Que es relativamente fácil de confundir con la red adversarial generativa. Solo para dejarlo claro, no son lo mismo.

Ian describió el primer tipo de ataque, el Método de Paso de Gradiente Rápido. Esto manipula los límites de decisión definidos utilizados por el clasificador mediante la introducción del ruido estratégico, como hemos estado discutiendo hasta ahora.

Cuando su red neuronal de repente piensa que todo es un avestruz ... Fuente: Szegedy et al. (2013)
Cuando su red neuronal de repente piensa que todo es un avestruz … Fuente: Szegedy et al. (2013)

Ataques post-Goodfellow 2015

Hay una serie de nuevos vectores de ataque que se han desarrollado en los últimos dos años.

Los principales son:

Para evitar que este artículo se extienda por mucho tiempo. No entraré en los detalles específicos de cada algoritmo.

Sin embargo, siéntase libre de comentar si desea que cubra esto con más detalle en un artículo futuro.

Ciberseguridad: Defensa de la red

Existen varios métodos que se han desarrollado para defender las redes neuronales de los diversos tipos de vectores de ataque que hemos analizado.

Adversarial training

La mejor manera de defenderse contra ataques adversos es a través del entrenamiento adversario. Es decir, usted genera activamente ejemplos adversos. Ajusta sus etiquetas y los agrega al conjunto de entrenamiento.

Luego, puede capacitar a la nueva red en este conjunto de capacitación actualizado y ayudará a que su red sea más robusta para los ejemplos adversos.

Adversarial formación en acción.

Límites de decisión suaves

La regularización es siempre la respuesta. En este sentido, son los derivados con respecto a los datos que estamos regularizando.

Esto actúa para suavizar los límites de decisión entre las clases y hace que sea menos fácil manipular la clasificación de la red mediante la inyección estratégica de ruido.

(Izquierda) Límite de decisión difícil, (derecha) suavizado límite de decisión.

Confusión

La mezcla es un procedimiento simple que parece un poco extraño al principio. Implica mezclar dos ejemplos de entrenamiento con algún factor λ.

Que está entre cero y uno, y asignar valores de clasificación no enteros a estas muestras de entrenamiento.

Esto actúa para aumentar el conjunto de entrenamiento y reduce las tendencias de clasificación optimista para las redes.

Básicamente, difunde y suaviza los límites entre clases y reduce la dependencia de la clasificación en un pequeño número de potenciales de activación neuronal.

 

CleverHans

Para aquellos de ustedes que no están familiarizados con la historia de Clever Hans:

La historia esencial es la de un caballo que supuestamente fue capaz de hacer aritmética básica al golpear sus pies un número determinado de veces.

Sin embargo, más tarde se descubrió que el caballo en realidad estaba engañando y respondiendo a las pistas verbales y visuales de la multitud circundante.

Caballo que supuestamente fue capaz de hacer aritmética básica al golpear sus pies un número determinado de veces

Con el mismo espíritu, CleverHans es una biblioteca de Python que se ha desarrollado para evaluar la vulnerabilidad de los sistemas de aprendizaje automático a los ejemplos de confrontación.

Si está desarrollando una red neuronal y quiere ver qué tan robusta es. Pruébela con CleverHans y encontrará una idea de su nivel de vulnerabilidad.

Esto es análogo al uso de Burp Suite para probar las vulnerabilidades de inyección de código.

Pruebas de penetración

Al igual que con cualquier forma de ciberseguridad. Siempre puedes pagarle a alguien para que te piratee y ver cuánto daño hace.

Sin embargo, puede hacer que firmen un documento que especifique límites sobre lo que el atacante tiene permitido hacer.

Esto le da una idea de su nivel de vulnerabilidad a un ataque cibernético real. No tengo conocimiento de si las empresas de pruebas de penetración ofrecen este tipo de servicios en este momento, pero no me sorprendería.

 

Comentarios finales

Espero que hayan disfrutado este artículo y que ahora tengan una mejor comprensión de este nuevo e interesante subcampo de ciberseguridad que involucra el compromiso de los modelos de aprendizaje automático a través de varios vectores de ataque.

Este campo aún es muy nuevo y hay una gran cantidad de trabajos de investigación que se pueden encontrar. La mayoría de los cuales están disponibles en arxiv. Lo que significa que el público puede verlos de forma gratuita.

Te recomiendo que lea algunos de ellos; los artículos en las referencias son un buen lugar para comenzar.

Dejá un comentario