Seguridad y machine learning: 3 ejemplos de ataques cibernéticos
Vivimos en un mundo inundado de datos. Según el diario inglés The Economist, estos son el recurso más valioso del mundo por encima del petróleo.
Al mismo tiempo, los datos son el combustible del machine learning, que está cada vez más presente en nuestra vida cotidiana.
Quizás hayas comenzado tu día escuchando una nueva canción que Spotify te sugirió mientras te preparabas para salir. Subes a tu carro. Antes de emprender el trayecto a tu lugar de trabajo, Waze te notifica que ha encontrado una mejor ruta para ahorrarte un poco de tiempo. Llegas y abres tu correo para redactarle una carta a tu jefe. A medida que vas escribiendo, el celular o el computador te sugieren las palabras que probablemente vayas a utilizar. Sales a mediodía a almorzar. ¿Te quedaste sin dinero en efectivo? No hay problema. Abres la aplicación de tu banco, escaneas y realizas el reconocimiento del código QR para pagar desde tu cuenta de ahorros. Finalmente, llegas a tu casa luego de una extenuante jornada de trabajo. Enciendes el smart TV y terminas el día viendo una película que Netflix te sugirió según tus preferencias.
Geolocalización, servicios en streaming o banca digital: todos esos servicios que hacen tu vida cada vez más fácil funcionan con algoritmos de machine learning.
Como ves, machine learning está en casi en todas partes, desde carros autónomos, reconocimiento de imágenes y voz, asistentes virtuales, ciberseguridad, finanzas y hasta en servicios médicos que diagnostican enfermedades. Esta técnica está revolucionando la forma en que las empresas se relacionan con los clientes, la ciencia, la tecnología, nuestra calidad de vida y hasta la manera en que tomamos decisiones.
A pesar de las grandes bondades de esta maravillosa rama de la inteligencia artificial, hay una pregunta que la mayoría de nosotros no nos hemos planteado: ¿qué hay sobre la seguridad de machine learning?
Como todo superhéroe, machine learning tiene un talón de aquiles, que quizás la mayoría de nosotros desconocemos. El propósito de este artículo es exponer la vulnerabilidad de los modelos de machine learning y mostrarte con ejemplos cuáles son sus consecuencias.
1. La vulnerabilidad de machine learning
Según expone el investigador italiano Battista Biggio, el diseño de la mayoría de los algoritmos de machine learning supone que el conjunto de entrenamiento y el conjunto de evaluación son muestreados con la misma distribución de probabilidad de los datos. Esto quiere decir que los datos utilizados para evaluar un modelo no deberían desviarse mucho de los datos para entrenarlo.
En teoría de probabilidad y estadística, a esta suposición se le conoce como “variables aleatorias que son independientes e idénticamente distribuidas”, o Idd por sus siglas en Inglés.
Tomemos como ejemplo el lanzamiento de un dado de seis lados. Cada vez que lanzamos el dado, el resultado es independiente del resultado anterior. La probabilidad de que el resultado sea cualquier número del 1 al 6 es la misma (1/6), sin importar la cantidad de veces que repitamos el lanzamiento. Por lo tanto, los resultados obtenidos al lanzar un dado pertenecen a la misma distribución de probabilidad (bueno, al menos si el dado no está alterado).
Lamentablemente, en el caso de machine learning, los cibercriminales pueden romper esta suposición de Idd creando datos con ciertas perturbaciones (es decir, con ruido o modificaciones en los datos). Así pueden atacar a los modelos engañándolos para que estos fallen al realizar la clasificación (falsos positivos, o falsos negativos). Estos datos se conocen con el nombre de datos adversarios.
Con estos ataques, los usuarios pueden perder total confianza en el sistema que emplee los modelos y dejarían de usarlo (este sería el menos peor de los casos), o los fallos podrían pasar inadvertidos, lo que comprometería la información sensible (que sería uno de los peores casos). Como ejemplo tenemos el falso negativo en los modelos de machine learning que se encargan de detectar software malicioso.
A continuación te muestro algunos ejemplos de cómo nos pueden afectar estos ataques en nuestra vida cotidiana:
Aquí podemos observar una red neuronal (algoritmo de machine learning) que fue entrenada para detectar señales de tránsito (como sería el caso para los carros autónomos).
Sin embargo, al agregar un ruido (adversarial noise) a esta imagen con el signo “pare” (stop), el modelo falla en detectarlo y lo reconoce como un signo de “ceder el paso” (yield). Si observamos con atención, vemos que la imagen adversaria (adversarial image) se ve un poco distorsionada con respecto a la imagen original (input image), pero, pese a su leve distorsión, para un ser humano es muy evidente que sigue siendo una señal de “pare”.
En otro ejemplo similar, una investigación demostró que también es posible realizar ataques a estos modelos con objetos físicos, así que proponen un algoritmo llamado RP2 que genera stickers adversarios en blanco y negro con el propósito de engañar la red neuronal. Al adherir estos stickers sobre la superficie de la señal de pare, el modelo falla y lo reconoce como una señal de “Límite de velocidad 45 MPH ”.
Si reflexionamos por unos instantes, podríamos darnos cuenta de las graves implicaciones de este suceso si llegase a ocurrir con un carro autónomo. ¡Sería un desastre! Es por eso la importancia de resaltar la seguridad de machine learning.
2. Clasificación de spam
Todos tenemos aquella bandeja en nuestros correo donde va el spam. La decisión de que los mensajes lleguen ahí es tomada por un modelo de machine learning (imagen tomada de Battista Biggio).
Como podemos observar en la imagen arriba, existe un vector x que contiene un diccionario de palabras que podrían encontrarse en un correo spam. A cada palabra se le asigna un valor. Al final una función f se encarga de sumar todos estos valores. Con respecto a un umbral (en este caso es 0), se determina si es spam o no.
En el primer caso, la suma dio como resultado 6 y clasificó correctamente el e-mail como spam. En el segundo, observamos que algunas palabras como “start” o “bang” son reemplazadas por “st4rt” o “b4ng”. Aunque para un ser humano sigue siendo legible, para el modelo no. Además, se agregan palabras adicionales que no son consideradas como spam (por ejemplo campus) para que la función falle al realizar la suma y determine que el correo no es spam.
3. Reconocimiento de voz:
Al menos alguna vez hemos interactuado con un asistente virtual (Siri de Apple, Alexa de Amazon o el Asistente de Google). Estos desarrollos de IA los podemos utilizar para pedirles que ejecuten acciones como buscar términos o transcribir un texto.
Nicholas Carlini y David Wagner de la universidad de California, realizaron una investigación en la que muestran que los algoritmos de machine learning encargados del reconocimiento de voz pueden ser vulnerados al adicionar un leve “ruido” de fondo en un audio.
En la imagen de arriba podemos observar la onda de audio original. El modelo de machine learning reconoce lo que un usuario está diciendo. Sin embargo, al adicionar un leve “ruido” en la onda original, aunque parezca casi idéntica, el algoritmo falla al reconocer el verdadero significado de lo que dice el usuario. Este ataque se puede realizar con cualquier tipo de audio, incluso hasta con la música.
Ahora, imaginemos que estamos en un evento social con música de fondo, y algún cibercriminal realiza este ataque. Esta acción podría hacer que los dispositivos móviles se activen con el comando “Oye, Google” o algo parecido, y pedirle al asistente virtual que haga cualquier cosa, como navegar en una página maliciosa, reenviar un correo con información personal, etc.
Como vemos en estos ejemplos, la seguridad de machine learning es un tema muy serio que todos debemos tener en cuenta al lanzar nuestro modelo a producción. ¿Cómo podemos entonces hacer que los modelos de machine learning sean menos vulnerables ante estos ataques adversarios? Esto te lo voy a explicar en una próxima entrada de blog.
Comparte
Te puede interesar
Otros artículos de Marketing
Arquitectura de Software para Sistemas de Machine Learning
¿Qué es Java y qué necesitas para aprender este lenguaje?
Contenedores de AWS: qué son y cuáles son sus usos y ventajas
Suscríbete al
Blog Pragma
Recibirás cada mes nuestra selección de contenido en Transformación digital.