
Protección contra ataques de serialización de modelos
Los modelos de Machine Learning (ML) se comparten públicamente a través de internet, dentro de los equipos y entre equipos. El auge de los modelos fundacionales ha hecho que los modelos de ML públicos se consuman cada vez más para entrenamiento adicional y ajuste fino. Los modelos de ML se utilizan cada vez más para tomar decisiones críticas y respaldar aplicaciones de misión crítica. A pesar de ello, los modelos aún no se escanean con el mismo rigor que un archivo PDF en tu bandeja de entrada.
Esto debe cambiar, y disponer de las herramientas adecuadas es el primer paso.

ModelScan es un proyecto de código abierto de Protect AI que escanea modelos para determinar si contienen código inseguro. Es la primera herramienta de escaneo de modelos compatible con múltiples formatos de modelos. Actualmente, ModelScan admite los formatos H5, Pickle y SavedModel. Esto te protege cuando usas PyTorch, TensorFlow, Keras, Sklearn, XGBoost, y hay más en camino.
Si estás listo para empezar a escanear tus modelos, es sencillo:
pip install modelscan
Con él instalado, escanea un modelo:
modelscan -p /path/to/model_file.pkl
Los modelos suelen crearse a partir de pipelines automatizados; otros pueden provenir del portátil de un científico de datos. En cualquier caso, el modelo debe trasladarse de una máquina a otra antes de usarse. Ese proceso de guardar un modelo en disco se llama serialización.
Un ataque de serialización de modelos es aquel en el que se añade código malicioso al contenido de un modelo durante la serialización (guardado) antes de su distribución: una versión moderna del Caballo de Troya.
El ataque funciona explotando el proceso de guardado y carga de los modelos. Cuando cargas un modelo con model = torch.load(PATH), PyTorch abre el contenido del archivo y comienza a ejecutar el código que contiene. En el instante en que cargas el modelo, el exploit ya se ha ejecutado.
Un ataque de serialización de modelos puede utilizarse para ejecutar:
Estos ataques son increíblemente sencillos de ejecutar y puedes ver ejemplos prácticos en nuestra carpeta 📓notebooks.
ModelScan ofrece un escaneo robusto de código abierto. Si necesitas seguridad integral de IA, considera Guardian. Es nuestro producto de escaneo de modelos de nivel empresarial.

Si cargar un modelo con tu framework de machine learning ejecuta automáticamente el ataque, ¿cómo comprueba ModelScan el contenido sin cargar el código malicioso?
Sencillo: lee el contenido del archivo byte a byte, como si fuera una cadena, buscando firmas de código inseguras. Esto lo hace increíblemente rápido, escaneando los modelos en el tiempo que tarda tu ordenador en procesar el tamaño total del archivo desde el disco (segundos en la mayoría de los casos). También es seguro.
ModelScan clasifica el código inseguro como:

Si se detecta un problema, ponte en contacto inmediatamente con los autores del modelo para determinar la causa.
En algunos casos, el código puede estar incrustado en el modelo para facilitar la reproducción a un científico de datos, pero te expone a ataques. Usa tu criterio para determinar si eso es apropiado para tus cargas de trabajo.
Esto se ampliará continuamente, así que presta atención a los cambios en nuestras notas de versión.
Actualmente, ModelScan admite cualquier formato derivado de Pickle y muchos otros: