Failles Critiques : Les Mesures de Protection du Code Personnalisé de Hugging Face Diffusers Contournées par des Modèles Malveillants

Désolé, le contenu de cette page n'est pas disponible dans la langue que vous avez sélectionnée

Introduction au Paysage des Vulnérabilités

Preview image for a blog post

Hugging Face est devenu une pierre angulaire de l'écosystème de l'apprentissage automatique, fournissant un vaste répertoire de modèles, de jeux de données et la populaire bibliothèque Diffusers pour les applications d'IA générative. Son accessibilité et sa nature collaborative, cependant, introduisent des défis de sécurité inhérents. Récemment, une découverte critique a révélé que trois CVEs distinctes dans la bibliothèque Hugging Face Diffusers permettent à des référentiels de modèles malveillants d'exécuter du code arbitraire sur toute machine qui les charge, contournant ainsi fondamentalement les mesures de protection du code personnalisé prévues. Cela représente une vulnérabilité significative de la chaîne d'approvisionnement, transformant des téléchargements de modèles apparemment anodins en vecteurs potentiels d'exécution de code à distance (RCE).

Comprendre Hugging Face Diffusers et le Modèle de Sécurité

La Puissance des Modèles Personnalisés

La flexibilité de la bibliothèque Diffusers permet aux développeurs d'étendre ses fonctionnalités en intégrant du code personnalisé directement dans les modèles ou leurs configurations. Cette capacité, bien que puissante pour l'innovation, élargit également la surface d'attaque. Pour atténuer les risques associés à l'exécution de code arbitraire, Hugging Face a introduit des mécanismes tels que le paramètre allow_unsafe_code et a encouragé l'utilisation du format safetensors. Le format safetensors a été spécifiquement conçu comme une alternative sécurisée à la sérialisation par défaut de PyTorch basée sur pickle, qui est notoirement sujette aux vulnérabilités de désérialisation insécurisée.

L'Illusion de la Sécurité

La prémisse était qu'en définissant allow_unsafe_code=False ou en utilisant exclusivement des modèles au format safetensors, les utilisateurs pouvaient empêcher l'exécution de code malveillant. Cependant, les CVEs découvertes démontrent que ce modèle de sécurité n'était pas aussi robuste que prévu. Ces vulnérabilités exploitent des chemins de code spécifiques et des mécanismes de chargement au sein de la bibliothèque Diffusers qui, dans certaines conditions, peuvent être manipulés par un modèle malveillant pour désérialiser et exécuter des objets Python arbitraires, même lorsque des mesures de protection explicites sont présumées actives.

Plongée Technique : Primitives d'Exploitation et CVEs

La Désérialisation Insécurisée Revisité

Au cœur de nombreuses vulnérabilités logicielles se trouve la désérialisation insécurisée. Alors que safetensors était destiné à éliminer les risques associés au module pickle de Python (où torch.load avec allow_pickle=True peut conduire à RCE), les CVEs identifiées révèlent que les mécanismes de repli, les fonctions de chargement alternatives ou une validation inappropriée des métadonnées peuvent réintroduire ces dangers. Les vulnérabilités permettent à un acteur de la menace de créer un référentiel de modèles où des fichiers de configuration ou des composants apparemment inoffensifs, lorsqu'ils sont traités par la bibliothèque Diffusers, déclenchent l'exécution de code Python malveillant.

Exploitation des Métadonnées et des Chargeurs de Modèles

Les trois CVEs exploitent des vecteurs distincts, impliquant souvent la manipulation de métadonnées ou de fonctions de chargement internes spécifiques :

La chaîne d'attaque implique généralement qu'un utilisateur télécharge et charge un modèle à partir d'un référentiel Hugging Face compromis ou malveillant. Lors du chargement, les données fabriquées dans le modèle ou ses fichiers de configuration associés déclenchent l'exécution de code à distance, accordant à l'attaquant le contrôle de la machine de l'utilisateur. L'impact peut aller de l'exfiltration de données et de la compromission du système à l'établissement de portes dérobées persistantes.

Vecteurs d'Attaque et Implications Réelles

Atténuation des Risques : Stratégies Défensives

Aborder ces vulnérabilités nécessite une approche de sécurité multicouche :

Criminalistique Numérique et Attribution des Acteurs de la Menace

Dans le malheureux cas d'une compromission, une criminalistique numérique robuste est primordiale. Les enquêteurs doivent rapidement identifier l'étendue de la violation, le vecteur d'exploit spécifique et l'attribution potentielle de l'acteur de la menace. Cela implique une analyse méticuleuse des journaux, la télémétrie de détection et de réponse aux points d'accès (EDR) et la reconnaissance réseau.

Lors d'une enquête sur un modèle malveillant suspecté ou un système compromis, les chercheurs doivent souvent comprendre l'infrastructure de l'attaquant. Des outils comme iplogger.org peuvent être inestimables pour collecter des données de télémétrie avancées – y compris les adresses IP, les User-Agents, les FAI et les empreintes digitales des appareils – lors de l'analyse de liens suspects trouvés dans les communications des attaquants ou pendant la reconnaissance réseau. Ces données aident à l'analyse des liens, à la cartographie des réseaux d'attaquants et, finalement, à l'attribution des acteurs de la menace, fournissant des informations cruciales sur la source d'une cyberattaque.

Conclusion

La découverte de ces CVEs dans Hugging Face Diffusers rappelle avec force les défis de sécurité persistants au sein du paysage en évolution rapide de l'IA/ML. À mesure que les modèles d'IA deviennent plus complexes et leur utilisation plus répandue, la surface d'attaque s'étend. Les organisations et les chercheurs individuels doivent rester vigilants, adopter des mesures de sécurité proactives et favoriser une culture de la conscience de la sécurité pour se prémunir contre les attaques sophistiquées de la chaîne d'approvisionnement et garantir l'intégrité de leurs flux de travail d'IA.

X
Les cookies sont utilisés pour le bon fonctionnement du site https://iplogger.org. En utilisant les services du site, vous acceptez ce fait. Nous avons publié une nouvelle politique en matière de cookies, vous pouvez la lire pour en savoir plus sur la manière dont nous utilisons les cookies.