+− THE DAILY DIFFdev & AI news
NEEDS REVIEW

Les fichiers de modèle Hugging Face peuvent exécuter du code caché

Les progiciels de modèle malveillants peuvent exécuter du code lors d'un chargement non sécurisé.

Les progiciels de modèle malveillants peuvent exécuter du code lors d'un chargement non sécurisé. Trois exemples documentés expliquent les reverse shells Pickle, le comportement des scanners de fichiers corrompus et la confusion de noms de modèles démontrée par la recherche, avec des limites claires sur les revendications de vol d'identifiants.

Lire l'édition écrite (anglais) ↗

Ce que cette vidéo couvre

  • Les poids de modèle numériques, la sérialisation exécutable et le code de dépôt personnalisé sont des choses différentes.
  • JFrog et ReversingLabs ont documenté des charges utiles de reverse shell; leurs rapports sélectionnés n'établissent pas de vol d'identifiants auprès de victimes nommées.
  • La confusion de modèle de Checkmarx était une démonstration de recherche nécessitant un modèle distant correspondant et un chargement non sécurisé.
  • Préférez les safetensors et les chargeurs patchés, examinez et épinglez le code personnalisé, et isolez les progiciels inconnus des secrets personnels et de l'accès réseau inutile.

Transcription traduite

Traduit de la narration originale en anglais. L'audio et les sous-titres disponibles sont contrôlés par YouTube.

Comment un téléchargement de modèle peut-il inviter un invité?

0:00 Un fichier de modèle n'est que des nombres sur un disque. Le chargement d'un progiciel malveillant Hugging Face a ouvert un shell distant, ce qui est une interprétation ambitieuse de l'IA locale. Comment le chargement devient-il exécution? Quels secrets peut-il atteindre? Qu'est-ce qui l'arrête réellement? Et gardez une énigme à l'esprit. Un modèle peut échouer à se charger après que la partie dangereuse se soit déjà produite.

0:18 C'est The Daily Diff, sous le capot. Hugging Face est une plateforme de partage de modèles d'apprentissage automatique, de jeux de données et d'applications. Les poids du modèle sont les nombres appris. Un dépôt peut également contenir de la configuration et du code Python. Le danger ici est le packaging exécutable qui entre dans votre ordinateur lorsque vous le chargez. Pickle stocke des objets Python avec des instructions pour les reconstruire.

Comment un chargeur exécute-t-il les instructions du colis?

0:37 Un chargeur non sécurisé peut suivre ces instructions et appeler des fonctions pendant le dépaquetage. Le téléchargement des octets place le colis sur votre disque. La désérialisation l'ouvre. Quelque part, un format de fichier a été promu administrateur système non rémunéré. JFrog a rapporté Goober Two en février deux mille vingt-quatre. Sa charge utile Pickle a ouvert un reverse shell, se connectant vers l'extérieur pour offrir un accès de commande à distance. Le dépôt a été supprimé. JFrog a également trouvé des indices suggérant l'implication de chercheurs,

1:02 donc l'attribution est incertaine. L'invité indésirable a été documenté. Le vol d'identifiants auprès de victimes réelles n'a pas été établi.

Quels secrets sont à la portée du processus?

1:09 Le code s'exécutant en tant qu'utilisateur peut lire tout ce que ce processus peut lire. Une clé cloud montée ou un jeton accessible devient une cible possible. L'envoi nécessite également un itinéraire réseau fonctionnel. Les poids numériques seuls n'ont pas de pouvoirs magiques en matière d'identifiants. Vos autorisations fournissent la partie intéressante de la carte du modèle. Il y a une autre porte. Certains modèles vous demandent de faire confiance au code distant, ce qui autorise Python du dépôt. Les fichiers de safetensors peuvent se trouver à côté de ce code.

1:32 Vérifier le format du poids couvre une entrée, tandis que le code du dépôt est toujours en attente que vous lui remettiez un badge visiteur.

Pourquoi un chemin local manquant peut-il devenir un modèle distant?

1:38 Checkmarx a démontré la confusion de modèle. Un chemin de modèle local manquant pourrait se résoudre en un dépôt public avec un nom correspondant. Combinez cela avec le code distant activé, et le mauvais progiciel peut s'exécuter. Ceci était une démonstration de recherche impliquant un échantillon d'une entreprise non nommée, corrigé en un jour. Un dossier manquant a acquis un propriétaire. ReversingLabs a rapporté deux échantillons en février deux mille vingt-cinq,

Comment les progiciels corrompus ont-ils échappé à l'ancien scanner?

1:58 appelant la technique nullify AI. Les deux contenaient des reverse shells. Leur emballage seven zip a bloqué le chargement PyTorch ordinaire, donc ce chemin nécessitait une extraction et une désérialisation non sécurisée. Les flux Pickle cassés ont également exposé un angle mort du scanner. Un échec de balayage mérite une enquête avant que quiconque n'ouvre le colis. Dans le test inoffensif des chercheurs, les instructions ont écrit un fichier avant que le chargeur

2:18 n'atteigne la partie cassée et ne soulève une erreur. Imaginez ouvrir un colis, libérer le raton laveur, puis remarquer que l'étiquette d'expédition est invalide. Le message d'erreur arrive avec une excellente grammaire et un timing terrible. Hugging Face a supprimé les échantillons signalés dans les vingt-quatre heures et a modifié le scanner. Cette découverte spécifique a incité à une correction. Un balayage de sécurité est une preuve utile, et traiter chaque erreur de scanner comme un bulletin de santé propre reste une interprétation remarquablement généreuse de l'échec.

2:43 Préférez les safetensors et les chargeurs patchés actuels.

Qu'est-ce qui garde la clé hors de portée de l'invité?

2:46 PyTorch a restreint son chargeur par défaut à partir de la version deux point six. Examinez le code personnalisé et épinglez la révision examinée. Exécutez les progiciels inconnus de manière isolée sans clés personnelles, avec un accès réseau restreint. Un conteneur plein d'identifiants montés est un panier-cadeau avec des espaces de noms. Cette énigme d'ouverture a une réponse. L'échec de chargement vous indique où l'exécution s'est arrêtée. Des instructions antérieures peuvent déjà avoir été exécutées.

3:08 Gardez les secrets hors de sa portée avant d'ouvrir le colis. Verdict, sous le capot.

Pourquoi devrais-je estampiller cela NÉCESSITE UN EXAMEN?

3:16 chargeur. Le téléchargement gratuit devrait être accompagné d'un modèle, et la liste des invités devrait rester ma décision. Si vous préférez lire ceci plutôt que de m'entendre le dire, le diff atterrit dans votre boîte de réception chaque matin, gratuitement sur the daily diff dot dev, lien ci-dessous. Et c'est le diff pour aujourd'hui. Je suis Niko d'Axrisi. Fusionnez de manière responsable.

Sources

  1. Data Scientists Targeted by Malicious Hugging Face ML Models with Silent BackdoorJFrog
  2. Malicious ML models discovered on Hugging Face platformReversingLabs
  3. AI Model Confusion: An LLM/AI Model Supply Chain AttackCheckmarx Zero
  4. Pickle ScanningHugging Face
  5. SafetensorsHugging Face
  6. Loading custom modelsHugging Face
  7. Serialization semanticsPyTorch

Vidéos similaires