Llegamos a ustedes gracias a:



Reportajes y análisis

Ataques de envenenamiento: Cómo evitar que corrompan los modelos de ML

[14/04/2021] La adopción del aprendizaje automático se ha disparado en la última década, impulsada en parte por el auge de la computación en la nube, que ha hecho que la computación y el almacenamiento de alto rendimiento sean más accesibles para todas las empresas. A medida que los proveedores integran el aprendizaje automático en productos de todos los sectores, y los usuarios confían en los resultados de sus algoritmos para tomar decisiones, los expertos en seguridad advierten de los ataques de adversarios diseñados para abusar de la tecnología.

La mayoría de las plataformas de redes sociales, plataformas de video en línea, grandes sitios de compras, motores de búsqueda y otros servicios tienen algún tipo de sistema de recomendación basado en el aprendizaje automático. Las películas y programas que le gustan a la gente en Netflix, el contenido que le gusta a la gente o que comparte en Facebook, los hashtags y los likes en Twitter, los productos que los consumidores compran o ven en Amazon, las consultas que los usuarios escriben en la búsqueda de Google, todo ello se retroalimenta en los modelos de aprendizaje automático de estos sitios para hacer recomendaciones mejores y más precisas.

No es ninguna novedad que los atacantes intentan influir y sesgar estos sistemas de recomendación utilizando cuentas falsas para votar a favor o en contra, compartir o promocionar determinados productos o contenidos. Los usuarios pueden comprar servicios para realizar esta manipulación en el mercado clandestino, así como "granjas de trolls" utilizadas en campañas de desinformación para difundir noticias falsas.

"En teoría, si un adversario tiene conocimiento de cómo un usuario específico ha interactuado con un sistema, se puede elaborar un ataque para dirigirse a ese usuario con una recomendación como un video de YouTube, una aplicación maliciosa o una cuenta impostora a la que seguir", explicó en una entrada de blog Andrew Patel, investigador del Centro de Excelencia de Inteligencia Artificial del proveedor de seguridad F-Secure. "Como tal, la manipulación algorítmica puede ser utilizada para una variedad de propósitos, incluyendo la desinformación, las estafas de phishing, la alteración de la opinión pública, la promoción de contenidos no deseados, y el descrédito de individuos o marcas. Incluso se puede pagar a alguien para que manipule la función de autocompletar la búsqueda de Google".

¿Qué es el envenenamiento de datos?

Los ataques de envenenamiento de datos o de envenenamiento de modelos consisten en contaminar los datos de entrenamiento de un modelo de aprendizaje automático. El envenenamiento de datos se considera un ataque a la integridad porque la manipulación de los datos de entrenamiento afecta a la capacidad del modelo para realizar predicciones correctas. Otros tipos de ataques pueden clasificarse de forma similar en función de su impacto:

  • Confidencialidad, cuando los atacantes pueden inferir información potencialmente confidencial sobre los datos de entrenamiento al alimentar el modelo.
  • Disponibilidad, cuando los atacantes disfrazan sus entradas para engañar al modelo con el fin de evadir la clasificación correcta.
  • Replicación, en la que los atacantes pueden aplicar ingeniería inversa al modelo para replicarlo y analizarlo localmente para preparar ataques o explotarlo para su propio beneficio económico.

La diferencia entre un ataque destinado a evadir la predicción o clasificación de un modelo y un ataque de envenenamiento es la persistencia: con el envenenamiento, el objetivo del atacante es conseguir que sus entradas sean aceptadas como datos de entrenamiento. La duración del ataque también difiere, porque depende del ciclo de entrenamiento del modelo; el atacante puede tardar semanas en lograr su objetivo de envenenamiento.

El envenenamiento de datos se puede lograr tanto en un escenario de caja negra contra clasificadores que dependen de la retroalimentación del usuario para actualizar su aprendizaje, como en un escenario de caja blanca en el que el atacante obtiene acceso al modelo y a sus datos de entrenamiento privados, posiblemente en algún lugar de la cadena de suministro si los datos de entrenamiento se recogen de múltiples fuentes.

Ejemplos de envenenamiento de datos

En un contexto de ciberseguridad, el objetivo podría ser un sistema que utiliza el aprendizaje automático para detectar anomalías en la red que podrían indicar una actividad sospechosa. Si un atacante entiende que ese modelo está en funcionamiento, puede intentar introducir lentamente puntos de datos que disminuyan la precisión de ese modelo, de modo que finalmente las cosas que quieren hacer ya no se marquen como anómalas, explica Patel. Esto también se conoce como desviación del modelo.

Un ejemplo del mundo real de esto son los ataques contra los filtros de spam utilizados por los proveedores de correo electrónico. En una publicación del blog del 2018 sobre los ataques de aprendizaje automático, Elie Bursztein, que lidera el equipo de investigación contra el abuso en Google, dijo: "En la práctica, vemos con regularidad que algunos de los grupos de spammer más avanzados intentan desviar el filtro de Gmail reportando cantidades masivas de correos electrónicos de spam como no spam [...] Entre finales de noviembre del 2017 y principios del 2018, hubo al menos cuatro intentos maliciosos a gran escala para sesgar nuestro clasificador".

Otro ejemplo tiene que ver con el servicio de análisis VirusTotal de Google, que muchos proveedores de antivirus utilizan para aumentar sus propios datos. Aunque se sabe que los atacantes prueban su malware contra VirusTotal antes de desplegarlo en la naturaleza, evadiendo así la detección, también pueden utilizarlo para participar en un envenenamiento más persistente. De hecho, en el 2015 hubo informes de que se realizaron ataques de envenenamiento de muestras intencionales a través de VirusTotal para hacer que los proveedores de antivirus detectaran archivos benignos como maliciosos.

No hay una solución fácil

El principal problema del envenenamiento de datos es que no es fácil de solucionar. Los modelos se vuelven a entrenar con datos recién recogidos a determinados intervalos, dependiendo del uso que se les dé y de las preferencias de su propietario. Como el envenenamiento suele producirse con el tiempo y a lo largo de un cierto número de ciclos de entrenamiento, puede ser difícil saber cuándo empieza a cambiar la precisión de las predicciones.

Revertir los efectos de la intoxicación requeriría un largo análisis histórico de las entradas de la clase afectada, para identificar todas las muestras de datos malos y eliminarlas. A continuación, habría que volver a entrenar una versión del modelo anterior al ataque. Sin embargo, cuando se trata de grandes cantidades de datos y un gran número de ataques, el reentrenamiento de esa manera es simplemente inviable y los modelos nunca se arreglan, según Patel de F-Secure.

"Hay toda una noción en el mundo académico ahora mismo que creo que es realmente genial y todavía no es práctica, pero llegaremos a ella, que se llama desaprendizaje de máquinas", comenta Hyrum Anderson, arquitecto principal de Trustworthy Machine Learning en Microsoft. "Para el GPT-3 [un modelo de predicción lingüística desarrollado por OpenAI], el costo era de 16 millones de dólares o algo así para entrenar el modelo una vez. Si se envenenara y se identificara a posteriori, podría ser realmente caro encontrar los datos envenenados y volver a entrenar. Pero si pudiera desaprender, si pudiera simplemente decir 'Oye, para estos datos, deshaz sus efectos y mis pesos', eso podría ser una forma significativamente más barata de construir una defensa. Sin embargo, creo que las soluciones prácticas para el desaprendizaje de las máquinas aún están a años de distancia. Así que sí, la solución en este momento es volver a entrenar con buenos datos y eso puede ser súper difícil de lograr o caro".

Prevenir y detectar

Dadas las dificultades para arreglar los modelos envenenados, los desarrolladores de modelos deben centrarse en medidas que puedan bloquear los intentos de ataque, o detectar las entradas maliciosas antes de que se produzca el siguiente ciclo de entrenamiento: cosas como la comprobación de la validez de las entradas, la limitación de la tasa, las pruebas de regresión, la moderación manual y el uso de diversas técnicas estadísticas para detectar anomalías.

Por ejemplo, un pequeño grupo de cuentas, direcciones IP o usuarios no debería representar una gran parte de los datos de entrenamiento del modelo. Se pueden imponer restricciones sobre cuántas entradas proporcionadas por un único usuario se aceptan en los datos de entrenamiento o con qué peso. Los clasificadores recién entrenados pueden compararse con los anteriores para cotejar sus resultados mediante lanzamientos oscuros; es decir, haciéndolos llegar solo a un pequeño subconjunto de usuarios. En su blog, Bursztein, de Google, también recomendó crear un conjunto de datos de oro que cualquier modelo reentrenado debe predecir con precisión, lo que puede ayudar a detectar regresiones.

Según Anderson, el envenenamiento de datos no es más que un caso especial de un problema mayor llamado deriva de datos que ocurre en los sistemas. Todo el mundo obtiene datos erróneos por diversas razones, y hay mucha investigación sobre cómo tratar la deriva de datos, así como herramientas para detectar cambios significativos en los datos operativos y el rendimiento del modelo, incluso por parte de los grandes proveedores de computación en la nube. Azure Monitor y Amazon SageMaker son ejemplos de servicios que incluyen estas capacidades.

"Si el rendimiento de su modelo después de un reentrenamiento recibe un golpe dramático, si es o no un ataque de envenenamiento o simplemente un mal lote de datos, es probablemente irrelevante y su sistema puede detectarlo", señala Anderson. "Si consigue solucionarlo, podrá erradicar ese ataque de envenenamiento o el lote de datos defectuosos que se introdujo inadvertidamente en la apertura de datos al entrenar el modelo. Así que este tipo de herramientas son un buen comienzo y están en este marco de gestión de riesgos de IA que está empezando a materializarse en la industria".

Para llevar a cabo el envenenamiento de datos, los atacantes también necesitan obtener información sobre el funcionamiento del modelo, por lo que es importante filtrar la menor cantidad de información posible y contar con fuertes controles de acceso tanto para el modelo como para los datos de entrenamiento. En este sentido, las defensas del aprendizaje automático están vinculadas a las prácticas generales de seguridad e higiene, como la restricción de permisos, la habilitación de registros y el uso de versiones de archivos y datos.

"Mucha de la seguridad en la IA y el aprendizaje automático tiene que ver con permisos muy básicos de lectura/escritura para los datos o el acceso a los modelos o sistemas o servidores", anota Anderson. "Es un caso en el que un pequeño servicio de proveedor de datos demasiado permisivo o un archivo en algún directorio podría llevar a un ataque de envenenamiento".

Pasar al ataque

Al igual que las organizaciones ejecutan pruebas de penetración regulares contra sus redes y sistemas para descubrir debilidades, deberían ampliar esto al contexto del aprendizaje automático, así como tratar el aprendizaje automático como parte de la seguridad del sistema o aplicación más grande.

"Creo que lo más obvio que deberían hacer los desarrolladores al construir un modelo es atacarlo ellos mismos para entender cómo puede ser atacado y al entender cómo puede ser atacado, pueden entonces intentar construir defensas contra esos ataques", anota Patel. "Su detección se va a basar en lo que han encontrado a partir del equipo rojo, de modo que cuando se arman los ataques contra el modelo, pueden entonces entender cómo serían los puntos de datos, y entonces, en consecuencia, construirían mecanismos que sean capaces de descartar los puntos de datos que parezcan envenenados".

Anderson participa activamente en esto en Microsoft. En una reciente charla en la conferencia USENIX Enigma, presentó un ejercicio de equipo rojo en Microsoft en el que su equipo consiguió aplicar ingeniería inversa a un modelo de aprendizaje automático que estaba siendo utilizado por un servicio de aprovisionamiento de recursos para garantizar la asignación y el mapeo eficientes de los recursos virtuales al hardware físico.

Sin tener acceso directo al modelo, el equipo consiguió encontrar suficiente información sobre cómo recogía los datos para crear una réplica local del modelo, y probar ataques de evasión contra él sin que el sistema en vivo los detectara. Esto les permitió identificar qué combinaciones de máquinas virtuales, bases de datos, sus tamaños y factores de replicación, a qué horas del día y en qué regiones debían solicitar al sistema real para asegurarse con una alta probabilidad de que el modelo de aprendizaje automático sobreaprovisionara los recursos solicitados en los hosts físicos que también alojaban servicios de alta disponibilidad.

Con esos recursos sobreaprovisionados, lanzaron un ataque de vecino ruidoso con cargas útiles que tenían un alto uso de CPU y RAM para causar un ataque de denegación de servicio contra los servicios de alta disponibilidad también alojados en el mismo hardware. "El ataque tenía sorprendentes similitudes con la actividad de los adversarios en cualquier sistema informático", concluyó Anderson en la charla. "Hubo exfiltración, evasión y ejecución, terminando finalmente con el impacto de la disponibilidad del servicio".

Crédito foto: Arek Socha / Qimono / Gordon Johnson / GDJ / CC0