LOS EXPERTOS OPINAN: `Machine Learning: ¿Security by design?´ - ALBERTO CITA

Publicado el 13-09-2017      Notícia sobre: Artículos
 

 

   

Alberto Cita

SE Manager Iberia

Symantec

Dicho de otro modo, analizar la seguridad de los modelos de Machine Learning, con independencia de su campo de aplicación, prestando especial atención a dos aspectos concretos del modelo clásico CIA de Seguridad IT: su integridad y su disponibilidad.

 
Desde que en 1956 John McCarthy introdujera el término “Inteligencia Artificial” al crear la convocatoria para el Summer Research Project on Artificial Intelligence del Dartmouth College (New Hampshire) la Inteligencia Artificial ha formado parte de nuestras imaginaciones tecnológicas colectivas más febriles, mientras que la AI se estaba cociendo a fuego lento en los laboratorios de investigadores de medio mundo.
 
En las décadas que vinieron después, la AI fue alternativamente proclamada como la llave para el futuro más brillante de nuestra civilización o arrojada al montón de la basura tecnológica. Aunque lo cierto es que hasta más o menos el 2012 fue un poco ambas cosas.
 
  

Figura 1Breve y necesariamente incompleta cronología de la Inteligencia Artificial y algunas de las disciplinas que la forman.

Durante los últimos años y especialmente desde el 2015, se ha disparado la popularidad y el uso del campo de la AI denominado “Machine Learning” (ML), que se había empezado a desarrollar en la década de 1980, dando lugar a centenares de aplicaciones prácticas en los más diversos campos y disciplinas, de las que se benefician millones de personas todos los días.
 
Esta auténtica explosión del ML ha sido posible, en buena medida, por la concurrencia en el tiempo de tres innovaciones:
 
Un masivo incremento en las capacidades de almacenamiento de información digital
 
La disponibilidad de flujos de datos de los más diversos tipos con los que alimentar ese almacenamiento virtualmente infinito (todo el movimiento de Big Data) 
 
La amplia disponibilidad de GPUs (Graphics Processing Units), originalmente desarrolladas para aplicaciones gráficas en 3D y alta resolución pero que ha encontrado en el entrenamiento de modelos de ML un campo ideal de aplicación ya que su arquitectura interna hace posible el procesamiento en paralelo de cantidades masivas de datos de forma más rápida y económica que usando las CPUs tradicionales.
 
En la actualidad se hace uso comercial de sistemas basados en ML en numerosas disciplinas: desde la medicina, hasta el sector financiero, pasando por el sector de la energía, la fabricación, ventas, publicidad dirigida, marketing, asistentes personales, robótica, realidad aumentada, sistemas biométricos para control de acceso, reconocimiento facial, …y sí, también en ciberseguridad: herramientas de detección de malware, sistemas anti-spam, IDS e IPS, análisis de comportamiento de usuarios, desarrollo de inteligencia de amenazas, DLP y un largo etcétera, se basan en buena medida, y en ocasiones de formar exclusiva, en modelos de ML.
 
Todo esto ha sido posible porque, a día de hoy, los algoritmos de ML han incrementado su precisión hasta el punto de que sistemas basados en modelos de ML son capaces de superar a los humanos en tareas significativas en condiciones normales de funcionamiento pero ya se sabe que el demonio está en los detalles y, en este caso, el detalle clave está, precisamente, en lo que esas condiciones “normales” de funcionamiento implican para modelos de ML: la ausencia total de adversarios. Una asunción absolutamente inquietante y perturbadora para los que nos dedicamos a la ciberseguridad.
 
Dicho de otro modo: los modelos de ML actuales, independientemente del campo de aplicación, se han puesto a trabajar una vez que tenían precisión suficiente (lo que ha sido todo un logro admirable en sí mismo) pero ignorando la posibilidad de que pudiera existir un tercero malintencionado con el propósito de hacer fallar o de manipular el funcionamiento del algoritmo deliberadamente. De manera formal, se puede decir pues que en su práctica totalidad los modelos de ML (y por extensión los sistemas basados en ellos) se han desarrollado teniendo en mente un modelo de amenazas muy débil, en el que no hay adversario.
 
Consideren de nuevo los actuales y futuros campos de aplicación de modelos basados en ML a la luz del párrafo anterior. ¿Sienten ese escalofrío?
 
Si están leyendo este artículo es probable que dediquen buena parte de su tiempo a la seguridad IT y en ese caso, me atrevo a pensar que sí lo han sentido. Porque cualquier estrategia de seguridad con alguna posibilidad de éxito, ya sea física o lógica, está cimentada en la profunda convicción de que las condiciones normales de funcionamiento del mundo real implican la existencia de múltiples adversarios, tanto internos como externos y con las más diversas motivaciones.
 
Pero tenemos que ser comprensivos: la enorme complejidad matemática y técnica que subyace en este campo, permitiría justificar que no se haya podido empezar a prestar la atención debida a la seguridad de los modelos basados en ML hasta ahora. Primero había que conseguir hacerlos funcionar correctamente. Nos suena la historia, ¿verdad?
 
La buena noticia es que el estudio de la seguridad en ML es un campo de investigación tremendamente activo. La mala noticia es que está todavía en su infancia. Por ello resulta imperativo conocer las capacidades que puede tener un adversario (que haberlos, haylos) para poder manipular sistemas basados en ML, las consecuencias de esa manipulación y cómo todo si ello se puede traducir en recomendaciones a la hora de aplicar modelos basados en ML en según qué casos de uso. 
 
Atacando la Integridad de Modelos de ML
Existe un número considerable de artículos académicos que documentan mecanismos de ataque a modelos de ML utilizados en sistemas reales de última generación. Un vistoso ejemplo (y uno de mis favoritos) es el titulado “Accessorize to a Crime: Real and Stealthy Attacks on State-of-the-Art Face Recognition” de los investigadores: Mahmood Sharif, Sruti Bhagavatula, Lujo Bauer (los tres de la Carnegie Mellon University) y Michael K. Reiter (de la University of North Carolina) y que pueden encontrar fácilmente en Internet con la ayuda de su motor de búsqueda favorito.
 
   

Figura 2. Una montura de gafas (derecha) sobre la que se pega un papel con un patrón cromático específico generado con una impresora (izquierda) calculado empleando técnicas de ML, permite a los autores del artículo académico “Accessorize to a Crime: Real and Stealthy Attacks on State-of-the-Art Face Recognition” manipular las predicciones un sistema de reconocimiento facial de última generación.

Si bien se han desarrollado con éxito técnicas de ataque para comprometer tanto la confidencialidad de los datos usados para entrenar el modelo y de los parámetros del modelo entrenado (que en general constituyen una valiosa propiedad intelectual), como la integridad y la disponibilidad de modelos de ML, en este artículo nos centraremos en estos dos últimos, por ser los que pueden causar un daño más directo sobre el buen funcionamiento de los sistemas basados en esos modelos.
 
La principal métrica del rendimiento de modelos de ML es su precisión, es decir sus tasas de falsos positivos y falsos negativos. Cuanto menores sean mayor éstas, es el rendimiento del modelo. Los ataques contra la integridad de modelos basados en ML buscan deteriorar el rendimiento del modelo reduciendo su precisión incrementando las tasas de falsos positivos y/o falsos positivos.
 
En los sistemas basados en modelos de ML, integridad y disponibilidad están estrechamente relacionadas: si el funcionamiento del sistema depende de los resultados del modelo de ML para tomar decisiones, un ataque contra la integridad puede tener como consecuencia que el sistema no pueda seguir tomando decisiones o que tome decisiones erróneas que lo terminen dañando, quedando así sujeto a ataques pertenecientes a la amplia categoría de la denegación de servicio.
 
Los ataques contra la integridad (y la disponibilidad) de modelos de ML se podrían clasificar, a alto nivel, en dos grandes grupos:
Ataques durante la fase de entrenamiento del modelo.
Ataques durante la fase de inferencia del modelo (es decir con el modelo ya entrenado y en producción).
 
La Tabla 1 muestra una posible clasificación de los ataques durante la fase de entrenamiento del modelo de ML.
 
        
Tabla 1 Principales Ataques a Modelos de ML durante la Fase de Entrenamiento del modelo
 
Los ataques más efectivos en esta fase son aquellos que se llevan a cabo cuando el entrenamiento del modelo se lleva a cabo online, es decir, el conjunto de datos que se utilizan para entrenar el modelo (o training set) se alimenta continuamente con nuevas muestras. En este ataque el adversario va alterando lentamente el modelo según sus intereses, proporcionando falsas muestras de entrenamiento, creadas específicamente para ese fin. 
 
Ataques online se han observado en campo en dominios como la detección de SPAM y sistemas IDS basados en modelos de ML (“Online anomaly detection under adversarial impact” de M. Kloft y P. Laskov, International Conference on Artificial Intelligence and Statistics, 2010).
 
La Tabla 2, por su parte, muestra una posible clasificación de ataques a modelos de ML durante la fase de inferencia:
 

Tabla 2 Principales Ataques a Modelos de ML durante la fase de Inferencia 
 
Tal como se muestra en la Tabla 2, los ataques a modelos de ML durante la fase de inferencia, es decir, cuando el modelo ya está en producción (entrenado y realizando su trabajo), se clasifican en dos categorías en función del conocimiento que el atacante tiene del modelo.
 
Cuando el atacante tiene algún conocimiento del modelo de ML que quiere atacar, hablaremos de ataques White Box. Este tipo de ataques son totalmente realistas, bien porque el atacante obtiene inteligencia sobre el modelo empleando algún otro ciberataque previo (ver los ataques de copia durante la fase de entrenamiento offline del modelo) o bien porque se empleen técnicas de ingeniería inversa sobre el modelo de ML, que son posibles porque en muchas ocasiones los algoritmos de ML entrenados en algún potente data center en algún lugar del mundo, se comprimen y se descargan a los dispositivos (por ejemplo smartphones) donde se ejecutará el software que hace uso de ellos.
 
Desde el punto de vista académico, los ataques a modelos de ML más interesantes son los de tipo Black Box, que son los que se llevan a cabo cuando el adversario no tiene ningún conocimiento del modelo de ML que quiere atacar.
 
En estos ataques hay una fase de reconocimiento del modelo, que se desarrolla enviándole inputs cuidadosamente creados y observando las salidas generadas por el modelo. Este tipo de ataque se suele denominar Ataque del Oráculo y es especialmente factible en aquellos sistemas que hacen uso de modelos de ML generados empleando soluciones de MLaaS (ML as a Service) como Amazon Machine Learning o Azure Machine Learning Service en las que el modelo entrenado se monta como un servicio web más o menos públicamente accesible.
 
Por el momento, el principal hándicap para que este tipo de ataques tenga éxito, es que el número de respuestas que hay que recolectar (o el número de peticiones de inferencia que hay que hacer al modelo) debe ser comparable al tamaño del training set, pero como se ha comentado antes, el hecho de que cada vez más modelos de ML se entrenen y se pongan en producción a través de servicios MLaaS simplifica esta tarea. Formalmente, el uso de MLaaS tiende a incrementar la superficie de ataque.
 
El adversario, armado con esta información y empleando también algoritmos de ML, calculará los llamados ejemplos adversarios, que al ser enviados al modelo de ML en producción harán que este genere una predicción errónea. A la disciplina dentro del campo de ML que desarrolla en cálculo de ejemplos adversarios para modelos de ML se le denomina Adversary Machine Learning:  ML para atacar ML.
 
La propiedad más inquietante de los ejemplos adversarios es su “transferibilidad”, que permite a un adversario maximizar el ROI, por así decirlo, de su inversión en el cálculo de ejemplos adversarios y que, por tanto, incrementa la probabilidad de hacer uso de estas técnicas para atacar sistemas basados en modelos de ML: los ejemplos adversarios calculados para atacar un sistema basado en un modelo de ML, pueden servir para atacar a otro sistema basado en ML siempre que este se base en los mismos algoritmos de ML incluso si está entrenado con un training set distinto.
 
Como se recoge en la Tabla 2 las técnicas de ataque a modelos de ML conocidas hasta el momento consiguen generar ejemplos adversarios con tasas de éxito de más del 84% (nivel de confianza con el que el modelo de ML atacado infiere incorrectamente un ejemplo adversario).
 
Contramedidas
Como se ha comentado previamente, la disciplina de la seguridad para modelos de ML es muy reciente y la mayor parte del trabajo de investigación publicado hasta el momento, se ha centrado en identificar vulnerabilidades y posibles métodos de ataque, especialmente en el campo del cálculo de ejemplos adversarios. Sin embargo, mucho queda por hacer en lo referente a desarrollo de medidas de protección.
 
En base a los estudios publicados más recientemente, las mejores estrategias de protección pasan por rehacer buena parte del trabajo realizado hasta el momento en la búsqueda de modelos de ML más robustos, desarrollados con un modelo de amenazas en mente en el que el adversario juegue un papel importante:
 
Recalcular los modelos de ML empleando algoritmos más complejos (por ejemplo, algoritmos no-lineales frente a algoritmos lineales) que permiten generar modelos de ML más precisos, lo que disminuye exponencialmente las posibilidades de encontrar ejemplos adversarios para un modelo. Esto no siempre es posible, ya que para una misma precisión, el entrenamiento de modelos basados en algoritmos de ML más complejos requiere training sets mucho mayores que al emplear algoritmos menos complejos. Existe pues una tensión entre la precisión y la robustez del modelo.
 
Recalcular los modelos de ML con nuevos algoritmos de ML (desarrollados recientemente) que son más tolerantes al poisoning del training set.
 
Adversarial Training: emplear Adversarial ML para calcular ejemplos adversarios para todos los posibles tipos de ataque conocidos contra un modelo de ML en producción y reentrenar (es decir, recalcular) el modelo incorporando estos ejemplos adversarios al training set original. Esta parece ser, hasta el momento, la técnica más prometedora, aunque no exenta de sobresalientes desafíos técnicos.
 
Conclusiones
A pesar de su cada vez más extendido uso, la inmensa mayoría los sistemas basados en ML se han desarrollado con un modelo de amenazas muy débil y nada realista, en el que las condiciones normales de funcionamiento suponen la ausencia de adversarios. Esto convierte a estos sistemas en vulnerables a diferentes tipos de ataques, tal como se ha documentado en múltiples artículos de investigación, existiendo además evidencia de que varios de estos ataques se han puesto en práctica ya con éxito en campo.
 
En el estado actual de desarrollo del campo de la seguridad para ML, parece evidente que aún están por descubrir tanto nuevos ataques como nuevas contramedidas.
 
Lo aprendido de la experiencia en ciberseguridad durante los últimos años nos dice que nuestros adversarios son numerosos, están bien financiados (con frecuencia mejor que los defensores), son técnicamente capaces y son especialmente persistentes cuando se enfocan en objetivos de alto valor que pueden reportarles grandes beneficios (económicos principalmente), como sin duda lo son muchos de los sistemas basados en modelos de ML. ¿Cuánto podría pagar por un conjunto de ejemplos adversarios que fueran capaces de engañar a un sistema de reconocimiento facial que diera acceso a determinado recurso? ¿Y un ejemplo adversario que contenga una carga maliciosa que pudiera engañar a un sistema de protección anti-malware de última generación basado únicamente en modelos de ML?
 
De todo esto lo expuesto en este artículo se puede concluir que, lamentablemente, la amenaza a la integridad y la disponibilidad de sistemas basados en modelos de ML es real y que lamentablemente, como en muchas otras ocasiones en el pasado, esta amenaza se está infravalorando, sino ignorando completamente, en muchos casos de uso.
 
En este tiempo de popularización del uso de ML, se hace necesario también analizar la calidad y la robustez del modelo de ML que sustenta un sistema, exigiendo a los fabricantes información que permita evaluar la robustez del modelo de ML tales como:
 
Detalles sobre el tipo de algoritmo de ML utilizado
 
Métricas de rendimiento del algoritmo (precisión en las predicciones)
 
Detalles sobre el tamaño del training set
 
Detalles sobre si implementan algún mecanismo que incremente la robustez del algoritmo frente a ataques como por ejemplo los basados en ejemplos adversarios o en poisoning del training set. 
 
Hasta que el campo de la seguridad para ML alcance un grado de madurez aceptable, debemos asumir que los sistemas basados en ML tienen más limitaciones de las que se han considerado generalmente: funcionan correctamente en general, pero pueden romperse con relativa facilidad en presencia de adversarios. Esto implica que, si bien ML puede usarse como mecanismo complementario en sistemas centrados en la detección o la toma de decisiones, aún no es seguro usar esta tecnología para reemplazar totalmente otras técnicas de detección y análisis tradicionales, incluyendo su supervisión directa por seres humanos.
 

Global Gold Sponsor