La communauté de la cybersécurité a récemment été alertée d'une vulnérabilité critique dans le NVIDIA Container Toolkit - un composant essentiel pour les applications accélérées par le GPU dans les domaines de l'IA et du ML (machine learning). Identifiée sous le nom de CVE-2024-0132, cette faille a un impact significatif sur un large éventail d'applications d'IA qui s'appuient sur des ressources GPU, à la fois dans le cloud et sur site. Après sa découverte en septembre 2024, NVIDIA a reconnu le problème et publié un correctif peu de temps après.
Détails de la vulnérabilité
La vulnérabilité du NVIDIA Container Toolkit, en particulier dans les versions jusqu'à 1.16.1 incluse, provient d'une faille dans le temps d'utilisation du contrôle (TOCTOU). Cette faiblesse peut être exploitée pour élever les privilèges, échapper aux conteneurs et manipuler les charges de travail des GPU, ce qui peut entraîner des résultats d'IA erronés ou des interruptions de service complètes.
Les vulnérabilités spécifiques liées à cet incident sont les suivantes :
- CVE-2024-0132 : Cette faille critique, classée 9.0 sur l'échelle de gravité, peut permettre à des images de conteneurs spécialement conçues d'accéder au système de fichiers de l'hôte, ce qui peut entraîner une exécution de code, un déni de service et une élévation de privilèges.
- CVE-2024-0133 : Cette vulnérabilité de gravité moyenne, évaluée à 4.1, permet à des images de conteneurs spécialement conçues de créer des fichiers vides sur le système de fichiers de l'hôte, ce qui peut entraîner l'altération des données.
NVIDIA a rapidement remédié à la vulnérabilité en publiant un bulletin de sécurité et des versions mises à jour du logiciel concerné.
Qui est concerné ?
La recherche indique que plus d'un tiers (35%) des environnements cloud utilisant des GPU NVIDIA sont à risque, comme l'a découvert Wiz.
Les organisations utilisant les versions de NVIDIA Container Toolkit jusqu'à la version 1.16.1 incluse, ainsi que NVIDIA GPU Operator jusqu'à la version 24.6.1 incluse, doivent évaluer leurs environnements et prendre les mesures nécessaires pour atténuer les effets en cascade de cette vulnérabilité.
Comprendre le NVIDIA Container Toolkit
Le NVIDIA Container Toolkit est conçu pour faciliter la création et l'exécution de conteneurs Docker accélérés par le GPU. Par défaut, les conteneurs n'ont pas accès aux GPU et cette boîte à outils permet aux utilisateurs d'exposer leurs GPU NVIDIA à leurs conteneurs. La boîte à outils se compose de bibliothèques d'exécution et d'utilitaires qui automatisent la configuration des conteneurs, dans lesquels les utilisateurs peuvent exploiter les GPU NVIDIA pour traiter des charges de travail d'IA à haute performance. En bref, le NVIDIA Container Toolkit permet aux conteneurs d'accéder au GPU NVIDIA afin que les applications qui ont besoin d'une accélération GPU puissent fonctionner plus rapidement et plus efficacement.
Parallèlement à NVIDIA GPU Operator - qui orchestre les ressources GPU dans les environnements Kubernetes - la boîte à outils joue un rôle central dans les applications modernes d'IA et de ML. Essentiellement, il améliore les performances et l'efficacité des applications qui nécessitent du HPC (calcul de haute performance) pour les tâches lourdes en données telles que l'entraînement à l'IA.
Cependant, une vulnérabilité peut entraîner des risques de différentes manières :
- Accès non autorisé au GPU : Les attaquants peuvent accéder au GPU et provoquer un vol de données ou un détournement de ressources.
- Escalade des privilèges : Les attaquants peuvent s'échapper des conteneurs et exécuter du code sur le système hôte afin de compromettre l'infrastructure sous-jacente.
- Attaques Container conteneurs : Un conteneur compromis peut ouvrir un accès illégitime aux ressources GPU d'autres conteneurs. Cela peut entraîner des fuites de données ou un déni de service pour plusieurs applications fonctionnant sur le même système.
- Exposition de données sensibles : Plutôt que d'exploiter directement des données sensibles, les attaquants recherchent parfois des vulnérabilités dans divers composants du système afin de naviguer dans l'environnement et d'escalader les privilèges. La technologie des Container ajoute de la complexité à ces exploits.
Scénario d'attaque potentielle
Un flux d'attaque potentiel exploitant le NVIDIA Container Toolkit peut être généralisé en trois étapes :
- Créer une image malveillante : Un attaquant peut concevoir une image de conteneur malveillante visant à exploiter CVE-2024-0132.
- Accéder au système de fichiers de l'hôte : L'attaquant exécute ensuite l'image malveillante sur une plateforme vulnérable, que ce soit directement par le biais de services GPU partagés ou indirectement par le biais d'un schéma d'attaque de la chaîne d'approvisionnement, ou encore par le biais de l'ingénierie sociale. Cela lui permet de monter le système de fichiers hôte et d'obtenir un accès non autorisé à l'infrastructure sous-jacente et potentiellement aux données confidentielles d'autres utilisateurs.
- Contrôle total : En accédant aux sockets Unix critiques (docker.sock/containerd.sock), l'attaquant peut lancer des commandes arbitraires sur le système hôte avec les privilèges de root, puis finalement prendre le contrôle de la machine.
Recommandations pour se protéger contre les vulnérabilités des Container
Cet incident nous rappelle opportunément que même des images de conteneurs fiables provenant de sources réputées peuvent présenter de sérieuses vulnérabilités. Les entreprises qui utilisent le NVIDIA Container Toolkit doivent.. :
Mise à jour vers la dernière version
Les utilisateurs sont vivement encouragés à mettre à jour vers la version 1.16.2 de NVIDIA Container Toolkit et la version 24.6.2 de NVIDIA GPU Operator dès que possible, en particulier pour les hôtes de conteneurs susceptibles d'utiliser des images non fiables.
Effectuer des analyses de sécurité régulières
Mettez en œuvre des procédures d'analyse régulières pour détecter les images de conteneurs malveillants et tout autre composant intégré à votre application dans des environnements en nuage. Des analyses régulières permettent d'évaluer les risques et d'identifier les failles de sécurité associées à ces images. Les outils d'analyse automatisés peuvent aider à surveiller en permanence les vulnérabilités connues et les mauvaises configurations.
En outre, l'intégration des analyses de sécurité dans les pipelines CI/CD garantit que les vulnérabilités sont détectées avant le déploiement, tandis que des rapports complets fournissent des informations sur les risques identifiés et les étapes de remédiation recommandées.
Secure images desContainer avec MetaDefender Software Supply Chain
Pour atténuer les vulnérabilités telles que celles trouvées dans le NVIDIA Container Toolkit, OPSWAT MetaDefender Software Supply Chain fournit de solides capacités d'analyse des menaces pour les registres de conteneurs et les référentiels de code source.
Les équipes de développement Software et de DevSecOps seront informées des images de conteneurs potentiellement malveillantes ou vulnérables dans leurs piles d'applications. En s'appuyant sur plusieurs niveaux de détection et de prévention des menaces, MetaDefender Software Supply Chain fournit également des informations et des recommandations pour la remédiation, y compris des mises à jour vers des versions sécurisées des images de conteneurs affectées.
MetaDefender Software Supply Chain
Vous pouvez évaluer l'état de la menace pour les paquets dans vos images de conteneur à la fois à un niveau général et détaillé.
La sécurité des Container fait partie de la sécurité de l'IA
Les vulnérabilités des Container ont mis en évidence la nécessité d'une sécurité vigilante et proactive pour les organisations qui dépendent de plus en plus des technologies d'IA et de ML. Pour en savoir plus sur la sécurité des conteneurs et la sécurité de la chaîne d'approvisionnement des logiciels, consultez nos ressources :
MetaDefender Software Supply Chain
Docker Image - un vecteur de menace croissant ?