Los archivos de modelo de Hugging Face pueden ejecutar código oculto
Los paquetes de modelos maliciosos pueden ejecutar código durante la carga insegura.
Los paquetes de modelos maliciosos pueden ejecutar código durante la carga insegura. Tres ejemplos documentados explican las "reverse shells" de Pickle, el comportamiento del escáner de archivos rotos y la confusión de nombres de modelos demostrada en investigaciones, con límites claros en las afirmaciones de robo de credenciales.
Leer la edición escrita (inglés) ↗
Lo que cubre este video
- Los pesos de modelos numéricos, la serialización ejecutable y el código de repositorio personalizado son cosas diferentes.
- JFrog y ReversingLabs documentaron cargas útiles de "reverse-shell"; sus informes seleccionados no establecen el robo de credenciales de víctimas nombradas.
- La Confusión de Modelos de Checkmarx fue una demostración de investigación que requería un modelo remoto coincidente y una carga insegura.
- Prefiera safetensors y cargadores parcheados, revise y fije el código personalizado, y aísle los paquetes desconocidos de secretos personales y acceso a la red innecesario.
Transcripción traducida
Traducido de la narración original en inglés. El audio y los subtítulos disponibles son controlados por YouTube.
¿Cómo puede una descarga de modelo invitar a un huésped?
0:00 Un archivo de modelo son solo números en el disco. Cargar un paquete malicioso de Hugging Face abrió un "shell" remoto, lo cual es una interpretación ambiciosa de la IA local. ¿Cómo se convierte la carga en ejecución? ¿A qué secretos puede acceder? ¿Qué lo detiene realmente? Y tenga un enigma en mente. Un modelo puede fallar al cargar después de que la parte peligrosa ya ocurrió.
0:18 Esto es The Daily Diff, bajo el capó. Hugging Face es una plataforma para compartir modelos de aprendizaje automático, conjuntos de datos y aplicaciones. Los pesos del modelo son los números aprendidos. Un repositorio también puede contener configuración y código Python. El peligro aquí es que el empaquetado ejecutable entre en su computadora cuando lo carga. Pickle almacena objetos Python con instrucciones para reconstruirlos.
¿Cómo un cargador ejecuta las instrucciones del paquete?
0:37 Un cargador inseguro puede seguir esas instrucciones y llamar funciones mientras desempaqueta. Descargar los bytes coloca el paquete en su disco. Deserializar lo abre. En algún lugar, un formato de archivo ha sido promovido a administrador de sistema no remunerado. JFrog informó sobre Goober Two en febrero de dos mil veinticuatro. Su carga útil de Pickle abrió un "reverse shell", conectándose hacia afuera para ofrecer acceso remoto a comandos. El repositorio fue eliminado. JFrog también encontró pistas que sugerían la participación de investigadores,
1:02 por lo que la atribución es incierta. El huésped no deseado fue documentado. El robo de credenciales de víctimas reales no fue establecido.
¿Qué secretos están al alcance del proceso?
1:09 El código que se ejecuta como su usuario puede leer todo lo que ese proceso pueda leer. Una clave de nube montada o un token accesible se convierte en un posible objetivo. Enviarlo también necesita una ruta de red que funcione. Los pesos numéricos por sí solos no tienen poderes mágicos de credenciales. Sus permisos proporcionan la parte interesante de la tarjeta del modelo. Hay otra puerta. Algunos modelos le piden que confíe en el código remoto, lo que autoriza a Python desde el repositorio. Los archivos "safe tensor" pueden estar junto a ese código.
1:32 Comprobar el formato de peso cubre una entrada, mientras que el código del repositorio todavía está esperando que le entregue una credencial de visitante.
¿Por qué una ruta local faltante puede convertirse en un modelo remoto?
1:38 Checkmarx demostró la Confusión de Modelos. Una ruta de modelo local faltante podría resolverse en un repositorio público con un nombre coincidente. Combine eso con el código remoto habilitado, y el paquete incorrecto puede ejecutarse. Esta fue una demostración de investigación que involucró una muestra de una empresa sin nombre, corregida en un día. Una carpeta faltante adquirió un propietario. ReversingLabs informó dos muestras en febrero de dos mil veinticinco,
¿Cómo los paquetes rotos evadieron el escáner antiguo?
1:58 llamando a la técnica "nullify AI". Ambas contenían "reverse shells". Su empaquetado "seven zip" bloqueó la carga ordinaria de PyTorch, por lo que esta ruta requirió extracción y deserialización insegura. Los flujos de Pickle rotos también expusieron un punto ciego del escáner. Un escaneo fallido merece investigación antes de que alguien abra el paquete. En la prueba inofensiva de los investigadores, las instrucciones escribieron un archivo antes de que el cargador
2:18 alcanzara la parte rota y generara un error. Imagine abrir un paquete, liberar al mapache y luego darse cuenta de que la etiqueta de envío no es válida. El mensaje de error llega con excelente gramática y pésimo momento. Hugging Face eliminó las muestras reportadas en veinticuatro horas y cambió el escáner. Ese hallazgo específico impulsó una solución. Un escaneo de seguridad es evidencia útil, y tratar cada error del escáner como una garantía de buena salud sigue siendo una interpretación notablemente generosa del fracaso.
2:43 Prefiera "safe tensors" y cargadores parcheados actuales.
¿Qué mantiene la clave fuera del alcance del huésped?
2:46 PyTorch redujo su cargador predeterminado a partir de la versión dos punto seis. Revise el código personalizado y fije la revisión revisada. Ejecute paquetes desconocidos de forma aislada sin claves personales, con acceso restringido a la red. Un contenedor lleno de credenciales montadas es una canasta de regalo con espacios de nombres. Ese enigma inicial tiene una respuesta. El fallo de carga le indica dónde se detuvo la ejecución. Es posible que las instrucciones anteriores ya se hayan ejecutado.
3:08 Mantenga los secretos fuera de su alcance antes de abrir el paquete. Veredicto, bajo el capó.
¿Por qué marcaría esto como NEEDS REVIEW?
3:16 cargador. La descarga gratuita debe venir con un modelo, y la lista de invitados debe seguir siendo mi decisión. Si prefiere leer esto en lugar de oírme decirlo, la diferencia llega a su bandeja de entrada todas las mañanas, gratis en "the daily diff dot dev", enlace a continuación. Y esa es la diferencia de hoy. Soy Niko de Axrisi. Fusionar responsablemente.
Fuentes
- Data Scientists Targeted by Malicious Hugging Face ML Models with Silent BackdoorJFrog
- Malicious ML models discovered on Hugging Face platformReversingLabs
- AI Model Confusion: An LLM/AI Model Supply Chain AttackCheckmarx Zero
- Pickle ScanningHugging Face
- SafetensorsHugging Face
- Loading custom modelsHugging Face
- Serialization semanticsPyTorch



