El exploit “Sleepy Pickle” envenena sutilmente los modelos de aprendizaje automático
Los investigadores han desarrollado un nuevo método para manipular modelos de aprendizaje automático (ML) inyectando código malicioso en el proceso de serialización.
El método se centra en el “proceso de decapado” se utiliza para almacenar objetos Python en código de bytes. Los modelos de ML a menudo se empaquetan y distribuyen en formato pickle, a pesar de su riesgos conocidos desde hace mucho tiempo.
Como se describe en una nueva publicación de blog Los archivos pickle Trail of Bits brindan cierta cobertura para que los atacantes inyecten código de bytes malicioso en programas de aprendizaje automático. En teoría, dicho código podría tener una serie de consecuencias (producción manipulada, robo de datos, etc.), pero no sería tan fácil de detectar como otros métodos de ataques a la cadena de suministro.
«Esto nos permite incorporar de forma más sutil comportamiento malicioso en nuestras aplicaciones en tiempo de ejecución, lo que nos permite potencialmente abarcar períodos de tiempo mucho más largos sin que nuestro equipo de respuesta a incidentes se dé cuenta», advierte David Brauchler, consultor senior de seguridad de NCC Group.
Sleepy Pickle envenena el frasco ML
El ataque llamado «Sleepy Pickle» se lleva a cabo fácilmente con una herramienta como mover. Flicking es un programa de código abierto para detectar, analizar, realizar ingeniería inversa o Creando archivos pickle maliciosos. Todo lo que un atacante necesita hacer es convencer a un objetivo para que descargue un archivo .pkl envenenado, tal vez mediante phishing o un ataque a la cadena de suministro, y luego, después de la deserialización, su código de operación malicioso se ejecuta como una carga útil de Python.
Envenenar un modelo de esta manera proporciona una serie de beneficios sigilosos. Por un lado, no requiere acceso local o remoto al sistema del objetivo y no deja rastros de malware en el disco duro. Debido a que el envenenamiento ocurre dinámicamente durante la deserialización, resiste el análisis estático. (Un modelo malicioso que viene en uno Repositorio de IA como Hugging Face podría eliminarse mucho más fácilmente).
Los archivos de modelos serializados son grandes, por lo que el código malicioso necesario para causar daños puede ser solo una pequeña fracción del tamaño total del archivo. Y estos ataques se pueden personalizar de muchas maneras diferentes para evitar la detección y el análisis en ataques de malware habituales.
Aunque se supone que Sleepy Pickle puede usarse para hacer una variedad de cosas con la computadora de un objetivo, los investigadores observaron que «controles como sandboxing, aislamiento, restricción de privilegios, firewalls y control de tráfico saliente pueden evitar que la carga útil pese mucho en el sistema del usuario». .» corrompe o roba o manipula los datos del usuario.»
Curiosamente, los ataques pueden tener como objetivo manipular el modelo mismo. Por ejemplo, un atacante podría insertar una puerta trasera en el modelo o manipular sus pesos y, por tanto, sus resultados. Trail of Bits ha demostrado en la práctica cómo se puede utilizar este método, por ejemplo, para sugerir a los usuarios con gripe que beban lejía para curarse. Alternativamente, se puede utilizar un modelo infectado para Robar datos confidenciales del usuarioAgregue enlaces de phishing o malware a los resultados del modelo y más.
Cómo utilizar modelos ML de forma segura
Para evitar este tipo de riesgo, las empresas pueden centrarse en utilizar modelos de ML solo en el formato de archivo Safetensors, más seguro. A diferencia de Pickle, Safetensors solo procesa datos tensoriales, no objetos Python, lo que elimina el riesgo de deserialización de la ejecución de código arbitrario.
“Si su organización realmente quiere ejecutar modelos que se han distribuido como una versión seleccionada, puede, por ejemplo, cargarlos en un entorno de pruebas con recursos seguros (AWS Lambda, por ejemplo) y realizar una conversión sobre la marcha allí. Al crear una versión Safetensor del archivo, déjelo en paz”, sugiere Brauchler.
Sin embargo, añade: “Creo que esto es más bien una curita para un problema mayor. Por supuesto, cuando descarga un archivo Safetensor, puede estar razonablemente seguro de que no contiene ningún código malicioso. ¿Pero confiar en que la persona u organización que creó esos datos ha creado un modelo de aprendizaje automático que no incluye cosas como puertas traseras o comportamiento malicioso o cualquier otro problema, descuido o malicia para los que su organización no está preparada?
«Creo que debemos tener mucho cuidado con la forma en que gestionamos la confianza en nuestros sistemas», dice, y la mejor manera de hacerlo es separar estrictamente los datos que un modelo recupera del código, que utiliza para funcionar. «Necesitamos diseñar estos modelos para que, incluso si se comportan mal, los usuarios de nuestra aplicación y nuestros activos en nuestros entornos no se vean afectados».
Hemos recibido este contenido de ciberseguridad de: DarkReading
Podrás encontrar la noticia original en el enlace que sigue: https://www.darkreading.com/threat-intelligence/sleepy-pickle-exploit-subtly-poisons-ml-models