Sistemas de aprendizaje automático vulnerables a ataques específicos

El creciente número de organizaciones que crean e implementan soluciones de aprendizaje automático plantea preocupaciones en cuanto a su seguridad intrínseca, argumenta el Grupo NCC en un documento técnico reciente .

El documento técnico de NCC Group proporciona una clasificación de los ataques que pueden llevarse a cabo contra los sistemas de aprendizaje automático, incluidos ejemplos basados ​​en bibliotecas populares como las plataformas SciKit-Learn, Keras, PyTorch y TensorFlow.

Aunque los diversos mecanismos que permiten esto están documentados hasta cierto punto, sostenemos que las implicaciones de seguridad de este comportamiento no se comprenden bien en la comunidad ML más amplia.

Según NCC Groups, los sistemas ML están sujetos a formas específicas de ataques además de ataques más tradicionales que pueden intentar explotar errores de infraestructura o aplicaciones, u otro tipo de problemas.

Un primer vector de riesgo está asociado al hecho de que muchos modelos de ML contienen código que se ejecuta cuando se carga el modelo o cuando se cumple una condición particular, como que se predice una determinada clase de salida. Esto significa que un atacante puede crear un modelo que contenga código malicioso y ejecutarlo con una variedad de objetivos, incluida la filtración de información confidencial, la instalación de malware, la producción de errores de salida, etc. Por eso:

Los modelos descargados deben tratarse de la misma manera que el código descargado; se debe verificar la cadena de suministro, se debe firmar criptográficamente el contenido y, si es posible, se deben escanear los modelos en busca de malware.

El Grupo NCC afirma haber explotado con éxito este tipo de vulnerabilidad para muchas bibliotecas populares, incluidos los archivos pickle de Python, los pickles SciKit-Learn, los pickles PyTorch y los diccionarios de estado, TensorFlow Server y varios otros.

Otra familia de ataques son los ataques de perturbación adversarios , en los que un atacante puede crear una entrada que haga que el sistema ML devuelva los resultados de su elección. En la literatura se han descrito varios métodos para esto, como la elaboración de una entrada para maximizar la confianza en una clase determinada o una clase específica, o para minimizar la confianza en una clase determinada. Este enfoque podría usarse para alterar los sistemas de autenticación, los filtros de contenido, etc.

El documento técnico de NCC Group también proporciona una implementación de referencia de un algoritmo simple para escalar colinas para demostrar la perturbación del adversario al agregar ruido a los píxeles de una imagen:

Agregamos ruido aleatorio a la imagen hasta que aumenta la confianza. Luego usamos la imagen perturbada como nuestra nueva imagen base. Cuando agregamos ruido, comenzamos agregando ruido al 5% de los píxeles de la imagen y disminuimos esa proporción si esto no tuvo éxito.

Otros tipos de ataques conocidos incluyen ataques de inferencia de membresía , que permiten saber si una entrada era parte del conjunto de entrenamiento del modelo; ataques de inversión de modelos , que permiten al atacante recopilar datos confidenciales en el conjunto de entrenamiento; y ataques de puerta trasera de envenenamiento de datos , que consisten en insertar elementos específicos en los datos de entrenamiento de un sistema para hacer que responda de alguna manera predefinida.

Como se mencionó, el documento técnico proporciona una taxonomía completa de los ataques de aprendizaje automático, incluida la posible mitigación, así como una revisión de los problemas de seguridad más tradicionales que se encontraron en muchos sistemas de aprendizaje automático. Asegúrate de leerlo para obtener todos los detalles.