Las técnicas de machine learning basan su desarrollo en el aprendizaje que supone para una aplicación la observación metódica de datos relacionados con un objeto o un concepto.
Fundamentos para el engaño
Pensemos, por ejemplo, en el reconocimiento de imágenes. El algoritmo de Inteligencia Artificial (IA) en el que se basa analiza miles de imagen y extrae patrones comunes que registra en un modelo. De esta forma, cuando, más tarde, se pregunte al sistema por una nueva imagen, este buscará los mismos patrones en la imagen hasta conseguir clasificar el objeto presentado.
Con datos suficientes —en diferentes entornos y condiciones etc.—, los sistemas de machine learning son capaces de crear patrones que podrían superar la capacidad de un ser humano. Sin embargo, el procedimiento así descrito tiene una importante vulnerabilidad: todo el proceso se fundamenta en los datos. Si alguien los modifica intencionadamente, el sistema dejará de funcionar.
Fragilidad algorítmica de la IA
El algoritmo en el que se sustenta un sistema de machine learning puede resultar tremendamente frágil. Normalmente la aplicación espera recibir datos similares a los que utilizó durante el proceso de aprendizaje. Sin embargo, cualquier pequeña variación podría hacer que se comportara de forma errática.
Algunos se sorprenderán de esta afirmación porque pensarán que los sistemas de IA aprenden igual que lo hace un ser humano. Pero no es así. Los humanos aprenden conceptos y asociaciones. Un objeto distorsionado puede ser analizado por una persona desde múltiples asociaciones hasta llegar a una conclusión. Por el contrario, un sistema de IA solo buscará patrones y cuando los encuentre les asignará una clasificación.
En esta circunstancia la pregunta que surge es: ¿por qué son tan frágiles los patrones sobre los que aprenden estos sistemas? La respuesta no es sencilla.
La mayor parte de los sistemas de machine learning se comportan como “cajas negras”: a una entrada siempre le corresponde una salida. Es evidente que en esta situación resulta muy difícil arreglar ningún fallo. De hecho, no se puede reparar lo que se desconoce, o no se entiende.
Esta premisa llevaría a una segunda conclusión desde el punto de vista de la ciberseguridad: resulta muy difícil discriminar si una aplicación de IA está siendo atacado o si simplemente muestra un comportamiento erróneo.
Ataques físicos y digitales
Ante esta tesitura, los ciberdelincuentes tienen la puerta abierta para desarrollar estrategias que subviertan el comportamiento de estos nuevos sistemas. Ya no necesitarán identificar errores en el código porque de haberlos se tratará de errores básicos en la elaboración del modelo y por tanto inherentes al propio estado del arte de la IA. Más aún, paradójicamente no necesitarán disponer de un ordenador. Podrían alterar el comportamiento sin siquiera tener acceso a la aplicación.
Los ejemplos que podemos mencionar son numerosos, desde pegatinas en las señales de tráfico para confundir a los vehículos de conducción autónoma hasta camisetas coloreadas que convierten a su portador en invisible para los sistemas de reconocimiento de imágenes.
Pero no son los únicos. También existen casos en los que los ataques ni siquiera son perceptibles. Por ejemplo, en los sistemas de reconocimiento de voz se pueden insertar sonidos inaudibles en ficheros que sin embargo son reconocidos por una aplicación —Ataque del Delfín.
AI Kill Stack
Aunque los casos mencionados pueden parecer triviales, en realidad no lo son. Pensemos en lo que podría ocurrir, por ejemplo, si un sistema de filtrado de contenidos pasara por alto algún fichero de pornografía infantil o si un reconocedor de voz recibiera una instrucción inesperada a través de ultrasonidos. Una ligera modificación podría dar al traste con todo el sistema de protección desarrollado por una compañía.
Sea cual sea el modo en el que un ciberdelincuente trate de alterar el comportamiento de un sistema de IA, existe toda una secuencia de elementos que también pueden ser objeto de un posible ciberataque. Es lo que podría definirse como la AI Kill Stack.
En esta secuencia, intervienen los ordenadores que dan soporte informático al sistema, los dispositivos o sensores que proporcionan los datos de entrada, la estructura y el etiquetado de datos utilizados, los algoritmos de aprendizaje, los modelos generados, los sistemas de ayuda a la planificación y la decisión, la interacción que tienen con las personas o su propia autonomía —a menudo salpicada de aspectos de comportamiento ético.
Datos, datos, datos
Es evidente que cualquiera de los elementos implicados en un sistema de IA puede ser objeto de un ciberataque. Sin embargo, mayoritariamente, el ciberdelincuente suele centrarse en los datos de entrada.
Si dispusieran del modelo todo les resultaría más sencillo —cosa que en ocasiones no es tan difícil si se tiene en cuenta que existen numerosas librerías en la comunidad open source que proporcionan esa información.
Sin embargo, no siempre es posible. Por eso, los ciberdelincuentes suelen centrarse en conseguir los datos de entrenamiento. Con ellos son capaces reproducir el modelo objetivo con bastante aproximación, lo que les proporciona información clave para el ataque. Incluso aunque no tuvieran acceso a estos dos elementos, un ciberdelincuente podría utilizar la fuerza bruta para detectar comportamientos erróneos. Por ejemplo, tal fue el caso de la Universidad de Illinois que utilizó técnicas de prueba y error para identificar fallos en los asistentes de voz ante la entonación de diferentes palabras.
Algoritmo y modelo
Estos tipos de ataques, sin embargo, no excluyen otros más sofisticados en los que se persigue alterar el propio algoritmo de aprendizaje.
En estos casos, el conjunto de datos de aprendizaje suele ser el objetivo fundamental. Si el atacante es capaz de modificar la categorización de ciertos datos, sus patrones quedarán registrados en el modelo y podrán ser explotados posteriormente. Por ejemplo, pensemos en qué ocurriría si un sistema de IA diera como bueno un malware incorrectamente clasificado durante la fase de aprendizaje.
Una técnica alternativa que suelen utilizar los ciberdelincuentes es lo que se conoce como Generative Adversarial Networks (GAN) cuyo objetivo es hacer competir a dos sistemas de IA entre sí para identificar sus puntos débiles.
Esta estrategia fue utilizada por DeepMind cuando jugó contra sí mismo utilizando AlphaGo Zero durante más de un mes para mejorar su propio aprendizaje. Y es que, pensado detenidamente, a día de hoy, la única forma de reducir las debilidades de un sistema de IA está en la actualización de los modelos a través del aprendizaje continuo.
Impacto en la sociedad
Sea cual sea el tipo de ataque que se realice, las facetas en las que los sistemas de IA afectan a la sociedad son numerosos. A modo de ejemplo podemos mencionar el filtrado de contenidos digitales —fake news, deep fakes, malware, spam, pornografía infantil, falsificaciones…—, los sistemas de inteligencia militar, la vigilancia de personas, el control de acceso utilizando patrones biométricos, los vehículos y sistemas autónomos, la clasificación de riesgos crediticio en las entidades financieras o la selección de personal por los departamentos de RRHH. Todas son aplicaciones donde las técnicas de machine learning están siendo ampliamente utilizadas.
Mitigación de vulnerabilidades
A modo de conclusión, podemos decir que, en ciberseguridad clásica, los problemas suelen estar relacionados con errores de los usuarios o de los programadores. Por tanto, pueden parchearse o corregirse. Sin embargo, los problemas de los sistemas de IA añaden dos elementos diferenciales: los algoritmos y sus propios datos. Ellos son la base de sus vulnerabilidades.
Con los mecanismos que tenemos a mano, para mitigar estas vulnerabilidades debemos recurrir al cumplimiento de una serie de normas aplicables a su desarrollo/despliegue. Normas que deberán evaluar:
(1) la idoneidad de la tecnología para resolver el problema planteado,
(2) el control y consistencia de los datos utilizados para el entrenamiento de la aplicación,
(3) la protección del modelo desarrollado y
(4), por supuesto, el proceso de aprendizaje continuo.
Después de todo esto podremos probar su funcionamiento y verificar si de verdad se trata de un sistema realmente inteligente. Aunque, pensándolo con detenimiento, para eso ya tenemos el Test de Turing.