~/dev/hugging-face-piratage-dataset-malveillant-jetons

Hugging Face piraté via un dataset malveillant : changez vos jetons d’accès

dev / / 3 min de lecture / florian

Hugging Face, la plateforme de référence pour partager modèles et jeux de données d’IA, a annoncé le 16 juillet une intrusion dans son infrastructure. Le point d’entrée : un dataset malveillant déposé sur la plateforme, qui a exécuté du code sur les machines chargées de traiter les jeux de données. L’attaquant a ensuite volé des identifiants internes et rebondi sur plusieurs clusters.

Comment l’attaque s’est déroulée

Selon le billet publié par Hugging Face, le dataset piégé exploitait deux chemins d’exécution de code : un chargeur de dataset exécutant du code distant, et une injection de template dans un fichier de configuration de dataset. À partir de là, l’attaquant a :

  1. obtenu l’exécution de code sur un worker de traitement ;
  2. élevé ses privilèges jusqu’au niveau du nœud ;
  3. récupéré des identifiants cloud et de clusters ;
  4. progressé latéralement vers plusieurs clusters internes, sur un week-end.

L’intrusion a été détectée en début de semaine grâce à une détection d’anomalies assistée par IA. Hugging Face affirme que l’attaque était menée par un framework d’agents autonomes, utilisant de nombreux bacs à sable éphémères et un serveur de commande qui migrait de lui-même entre des services publics. L’entreprise ne précise pas quel modèle aurait piloté ces agents, et cette attribution n’a pas été étayée publiquement à ce stade.

Ce qui a été touché, et ce qui ne l’a pas été

  • Confirmé : un accès non autorisé à un nombre limité de jeux de données internes et à plusieurs identifiants de services.
  • En cours d’évaluation : un éventuel impact sur des données de partenaires ou de clients. Hugging Face dit qu’il contactera directement les personnes concernées.
  • Non touché, selon Hugging Face : aucune trace de modification des modèles, datasets ou Spaces publics ; les images de conteneurs et les paquets publiés ont été vérifiés.

Côté réponse, la plateforme a fermé les deux chemins d’exécution de code, reconstruit les nœuds compromis, révoqué et renouvelé les identifiants touchés, lancé une rotation préventive plus large des secrets, durci les contrôles d’admission sur ses clusters, fait appel à des spécialistes en investigation et prévenu les forces de l’ordre.

Hugging Face recommande à tous les utilisateurs de renouveler les jetons d’accès et clés stockés sur la plateforme et de vérifier l’activité récente de leur compte.

Ce que les développeurs doivent faire

  • Renouvelez vos jetons Hugging Face depuis les paramètres de votre compte, en commençant par ceux qui ont des droits d’écriture, et mettez à jour vos CI, Spaces et serveurs d’inférence.
  • Renouvelez aussi les secrets enregistrés sur la plateforme, par exemple les secrets de vos Spaces (clés d’API tierces, identifiants de bases).
  • Vérifiez l’activité récente de votre compte et de vos organisations : nouveaux jetons, dépôts modifiés, membres ajoutés.
  • Profitez-en pour repérer les jetons qui traînent en clair dans vos dépôts.

Les jetons d’accès Hugging Face commencent par le préfixe hf_. Une recherche simple dans un dépôt local permet d’en repérer :

# Rechercher des jetons Hugging Face écrits en dur dans un dépôt
grep -rnE 'hf_[A-Za-z0-9]{30,}' . --exclude-dir=.git

# Et dans l'historique Git (un jeton supprimé reste dans les anciens commits)
git log -p | grep -nE 'hf_[A-Za-z0-9]{30,}'

Un jeton trouvé dans l’historique doit être révoqué, pas seulement supprimé du code : il reste lisible dans tous les clones du dépôt.

La leçon : un fichier de données peut être du code

Cet incident rappelle qu’un jeu de données n’est pas forcément inerte. Dès qu’un chargeur exécute un script fourni avec le dataset, ou qu’un fichier de configuration est interprété par un moteur de templates, ouvrir les données revient à exécuter le code de quelqu’un d’autre. C’est vrai pour une plateforme comme pour votre poste : chargez les datasets et modèles tiers dans un environnement isolé, sans identifiants cloud à portée, et préférez les formats qui ne permettent pas d’exécuter du code.

Pour vos pipelines d’IA, traitez les modèles et datasets téléchargés comme des dépendances : provenance vérifiée, versions épinglées, exécution dans un environnement sans secrets.

Sources

$ echo "votre commentaire"

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *