Récemment, les développeurs sont devenus des cibles de plus en plus fréquentes dans les bibliothèques de composants open source. Les hackers améliorent constamment leurs techniques d'attaques par chaîne d'approvisionnement, étendant même leurs méthodes aux cadres d'intelligence artificielle (IA) falsifiés et aux modèles d'apprentissage automatique (AM) contaminés. Récemment, une étude a révélé qu'une attaque avait été menée avec succès en chargeant un paquet malveillant déguisé en outil de développement créé par l'équipe d'IA d'Alibaba Cloud.
Les chercheurs ont découvert trois paquets malveillants sur Python Package Index (PyPI) qui imitaient le SDK d'Alibaba Cloud IA, mais sans aucune fonctionnalité légale. Ces paquets malveillants utilisaient des modèles AM malveillants stockés au format Pickle pour voler des informations de l'environnement utilisateur et les transmettre vers un serveur contrôlé par les cyberattaquants.

Source d'image : Image générée par IA, service d'autorisation Midjourney
Les hackers ont peut-être choisi de cacher du code malveillant dans les modèles d'AM en raison du fait que les outils de sécurité actuels commencent à peine à détecter des comportements malveillants dans les formats de fichiers ML. Traditionnellement, ces fichiers étaient considérés comme des supports de partage de données plutôt que comme des moyens de distribuer du code exécutable.
Pickle est un module officiel de Python utilisé pour la sérialisation d'objets, souvent employé pour stocker des modèles d'AM liés à la bibliothèque PyTorch. Avec la popularisation de PyTorch auprès des développeurs d'IA, le format Pickle devient de plus en plus courant. Cependant, les hackers ont déjà exploité ce format pour héberger des modèles contaminés sur des plateformes comme Hugging Face. Bien que Hugging Face utilise l'outil open source Picklescan pour détecter les dangers potentiels, les chercheurs soulignent qu'il existe encore des failles permettant d'échapper à cette détection.
Les trois paquets malveillants, nommés respectivement aliyun-ai-labs-snippets-sdk, ai-labs-snippets-sdk et aliyun-ai-labs-sdk, ont été téléchargés ensemble environ 1600 fois avant d'être découverts et retirés moins d'un jour après leur mise en ligne. Les ordinateurs des développeurs contiennent généralement diverses identités, jetons API et clés d'accès à des services, ce qui rend facile une propagation latérale si ces systèmes sont compromis.
Ces SDK malveillants chargeaient des modèles PyTorch malveillants via le script __init__.py, exécutant du code encodé en base64 destiné à voler des informations de connexion, des adresses IP et le nom de l'organisation affiliée à la machine utilisée. Il est important de noter que ces codes malveillants semblaient principalement cibler les développeurs chinois en raison de l'attrait du SDK Alibaba Cloud pour les développeurs locaux. Toutefois, cette méthode peut également être utilisée contre n'importe quel développeur en changeant l'appât.
Cette attaque révèle que les risques de sécurité liés aux formats de fichiers de modèles d'apprentissage automatique se situent encore à un stade précoce, et que les outils de sécurité actuels ne sont pas suffisamment perfectionnés pour détecter efficacement les modèles AM malveillants.