Una nueva campaña de malware ha sido detectada en la cadena de suministros del servicio de conversión de Hugging Face Safetensors.
La nueva campaña busca comprometer modelos de aprendizaje automático a través del envío de solicitudes de extracción maliciosas con datos controlados por atacantes desde el propio modelo, en este caso desde el modelo usado por el servicio Hugging Face, poniendo en evidencia un ataque a la cadena de suministro usada en modelos de aprendizaje automático.
El propósito principal de la campaña de malware corresponde, a la obtención del acceso a cualquier repositorio de la plataforma del modelo de Hugging Face Safetensors y la manipulación de la salida del modelo de ML sin que el usuario lo detecte, permitiendo a los actores de amenaza secuestrar cualquier modelo de conversión detectado en dicha plataforma.
¿Qué es Hugging Face Safetensors?
Hugging Face Safetensors es una herramienta usada generalmente por profesionales del aprendizaje automático, que permite almacenar y distribuir tensores (matrices multidimensionales de datos utilizados comúnmente en el aprendizaje automático o modelos ML).
Ilustración 1: Muestra cantidad de modelos cargados en la plataforma Hugging Face
Fuente: https://huggingface.co/models
Hasta el momento de éste informe, Hugging Face cuenta con una comunidad sólida que hasta la fecha ha subido a la plataforma más de 500.000 modelos previamente entrenados para compartir con la comunidad de código abierto.
Aplicaciones de Hugging Face Safetensors:
Vector de Ataque
De acuerdo a los investigadores de Hiddenlayer, el vector de ataque reside en funciones específicas de la librería PyTorch, para este caso particular la ejecución de la función torch[.]load(), que permite cargar un objeto de tensor que ha sido guardado previamente en un archivo a través del uso de un un script de Python que se utiliza para convertir modelos de aprendizaje automático de un formato a otro. Generalmente el script se encuentra con el nombre de convert[.]py, y es normalmente usado para convertir modelos a un formato que pueda ser cargado por una biblioteca de aprendizaje automático específica, como PyTorch.
De acuerdo a los investigadores el uso de la función torch[.]load(), permite a los actores de amenaza la ejecución de código arbitrario si se almacena código malicioso dentro de data[.]pkl en el modelo PyTorch, que corresponde al binario serializado en formato Pickle usado también por Hugging Face en su robot para la serialización de los modelos de aprendizaje cargados en la plataforma.
Es exactamente en la conversión usada por el robot de Hugging Face, para serializar los tensores o modelos; que los actores de amenaza aprovechan para manipular un modelo Pythorch previamente generado con un carga útil usando setattr, que les permitirá crear una solicitud de extracción del modelo desde el robot de conversión de Hugging Face, dándoles la capacidad de comprometer el sistema en el que estaba alojado dicho robot.
Según lo anterior los investigadores desarrollaron una prueba de concepto (POC) que permitirá exponer la vulnerabilidad en la conversión de los modelos desde el robot de conversión de la plataforma Hugging Face. Para más información referente a la POC ingrese al siguiente enlace, considerando que la prueba de los POC deben efectuarse en ambientes controlados y bajo su propia responsabilidad:
Consideraciones especiales con el uso de modelos de aprendizaje automático:
Existen varias técnicas para escanear un modelo de aprendizaje automático en busca de contenido malicioso:
Es importante tener en cuenta que ninguna de estas técnicas es 100% efectiva para detectar contenido malicioso en un modelo de aprendizaje automático. Sin embargo, al combinar varias técnicas, se puede aumentar la probabilidad de detectar contenido malicioso.
Apreciación
La vulnerabilidad expuesta en la investigación puede ser considerada como una vulnerabilidad grave ya que su impacto se extiende a toda la comunidad de Hugging Face y por lo tanto es considerado como un ataque a la cadena de suministros que afecta en gran medida a los repositorios de los modelos alojados en la plataforma Hugging Face de sus usuarios.
Cabe destacar que los modelos de aprendizaje automático son código y por lo tanto susceptibles a ser manipulados por actores de amenazas si encuentran la oportunidad de hacerse de ellos, tal premisa, alude a tener precaución con el uso de modelos de aprendizaje de código abierto, tomando las consideraciones pertinentes de seguridad en el uso y la ejecución de los mismos, ya que pueden permitirle reducir la brecha de seguridad que pueda ser aprovechada por los actores de amenaza.
A continuación se presentan algunas medidas mitigatorias que se pueden seguir para protegerse de esta vulnerabilidad:
Además de las medidas mitigatorias mencionadas anteriormente, también es importante tener en cuenta las siguientes recomendaciones:
Renuncia de Responsabilidad:
Utilice esta información bajo su propia responsabilidad! El Centro de Ciberinteligencia de Entel no se hace responsable por el uso indebido o pruebas de conceptos no controladas por parte del lector.