Les gardiens du monde moderne : se défendre contre le Shadow ML et l'IA agentique

JFrog

L'IA/ML est l'infrastructure critique d'aujourd'hui : la sécurisez-vous vraiment ? "Shadow ML", modèles empoisonnés, format "pickle" : découvrez les 5 principes pour un MLOps résilient.

Affirmer que les opérations d'apprentissage automatique (MLOps) sont devenues la colonne vertébrale de notre avenir numérique peut sembler excessif et pourtant c'est la réalité. Au même titre que les réseaux énergétiques ou les systèmes de transport constituent des infrastructures critiques pour la société, les logiciels et capacités d'IA/ML s'imposent rapidement comme des technologies essentielles pour un large éventail d'entreprises, d'industries et de services publics. 

L'intelligence artificielle (IA) et le Machine Learning (ML) transforment les industries à un rythme accéléré. Cette mutation s'accompagne d'une nouvelle forme de « Shadow IT », baptisée « Shadow ML » : des agents et technologies d'IA utilisés par les employés à l'insu du service informatique, en dehors des systèmes approuvés par l'entreprise. Cette pratique crée des risques de sécurité majeurs en raison d'un manque de surveillance et de contrôle des données et des accès. Comprendre le rôle évolutif du MLOps dans la gestion et la sécurisation du paysage informatique IA/ML en pleine expansion est donc devenu essentiel pour protéger les systèmes interconnectés qui définissent notre époque.

Le logiciel comme infrastructure critique

Les logiciels sont omniprésents dans notre quotidien, opérant discrètement en arrière-plan tout en jouant un rôle indispensable. Les défaillances de ces systèmes, sont souvent difficiles à détecter, peuvent survenir à tout moment et se propager rapidement à l'échelle mondiale, perturbant les entreprises, déstabilisant les économies, fragilisant les gouvernements, ou même, mettant des vies en danger.

Les enjeux deviennent encore plus critiques avec la place croissante des technologies d'IA et de ML. Les opérations logicielles traditionnelles cèdent la place à des systèmes pilotés par l'IA, capables de prendre des décisions, d'établir des prévisions et d'automatiser des processus à une échelle inédite. Mais comme toute technologie porteuse d'un potentiel immense, l'IA et le ML introduisent de nouvelles complexités et de nouveaux risques, renforçant l'importance d'une sécurité MLOps robuste. À mesure que notre dépendance à l'IA/ML s'accroît, la solidité de la sécurité MLOps devient un rempart fondamental contre les cybermenaces en constante évolution.

Comprendre les risques du cycle de vie MLOps

Le cycle de vie de création et de déploiement de modèles ML conjugue complexité et opportunités. Il se compose principalement des étapes ci-dessous: 

  • Sélectionner un algorithme ML approprié (machine à vecteurs de support, arbre de décision, etc.)
  • Alimenter l'algorithme avec un ensemble de données pour entraîner le modèle
  • Produire un modèle pré-entraîné interrogeable pour obtenir des prédictions
  • Enregistrer le modèle pré-entraîné dans un registre de modèles
  • Déployer le modèle pré-entraîné en production, soit en l'intégrant dans une application, soit en l'hébergeant sur un serveur d'inférence

Cette approche structurée présente néanmoins des vulnérabilités importantes qui menacent la stabilité et la sécurité et se répartissent en deux catégories : inhérentes et liées à la mise en œuvre.

Vulnérabilités inhérentes :

  • Complexité des environnements ML : les services cloud et les outils open source créent des failles de sécurité exploitables.
  • Modèles ML malveillants : les modèles pré-entraînés peuvent être détournés pour produire des résultats biaisés ou nuisibles, causant des dommages en cascade sur les systèmes dépendants.
  • Ensembles de données empoisonnés : les données d'entraînement peuvent être corrompues pour injecter des comportements subtils mais dangereux qui compromettent l'intégrité et la fiabilité d'un modèle.
  • Évasions de sandbox Jupyter : autre manifestation du « Shadow ML », Jupyter Notebook, largement utilisé par les data scientists, peut servir de vecteur pour l'exécution de code malveillant et les accès non autorisés lorsqu'il n'est pas correctement sécurisé.

Vulnérabilités de mise en œuvre :

  • Lacunes d'authentification : des contrôles d'accès insuffisants exposent les plateformes MLOps à des utilisateurs non autorisés, permettant le vol de données ou la falsification de modèles.
  • Évasion de conteneurs : une configuration inadéquate des environnements conteneurisés permet aux attaquants de briser l'isolation et d'accéder au système hôte ainsi qu'à d'autres conteneurs.
  • Immaturité des plateformes MLOps : le rythme effréné de l'innovation en IA/ML dépasse souvent le développement d'outils sécurisés, créant des lacunes en matière de résilience et de fiabilité.

L'IA et le ML offrent des avantages considérables, mais privilégier la rapidité de développement au détriment de la sécurité peut compromettre les modèles ML et exposer les organisations à des risques majeurs.

Les vulnérabilités cachées

Reconnaître et traiter ces vulnérabilités est crucial pour garantir que les plateformes MLOps demeurent des composants fiables de l’infrastructure numérique. Un exemple récent illustre ces dangers : un modèle PyTorch suspect, téléchargé par un compte depuis supprimé, permettait aux attaquants d'injecter du code Python arbitraire dans des processus critiques lors du chargement. La méthode de chargement des modèles PyTorch, notamment la fonction torch.load(), constitue un vecteur de vulnérabilités d'exécution de code, particulièrement lorsque les modèles sont entraînés avec la bibliothèque Transformers de Hugging Face.

Le format « pickle », utilisé pour sérialiser des objets Python, présente un risque majeur: il peut exécuter du code arbitraire lors du chargement, le rendant vulnérable aux attaques. Ce scénario révèle un risque plus large dans l'écosystème ML. De nombreux formats de modèles ML largement utilisés prennent en charge l'exécution de code lors du chargement, une fonctionnalité conçue pour optimiser l'efficacité mais qui introduit d'importantes vulnérabilités de sécurité. Un attaquant contrôlant un registre de modèles pourrait insérer des portes dérobées, permettant une exécution de code instantanée et non autorisée lors du déploiement ou du chargement des modèles.

Les développeurs doivent donc faire preuve de prudence lors du chargement de modèles issus de référentiels publics, en validant systématiquement la source et les risques potentiels associés aux fichiers. Une validation robuste des entrées, un accès restreint et des évaluations continues des vulnérabilités sont essentiels pour atténuer les risques et garantir le déploiement sécurisé des solutions d'apprentissage automatique.

Principes essentiels pour une sécurité MLOps efficace 

Le pipeline MLOps présente de nombreuses autres vulnérabilités, soulignant l'importance d'une vigilance constante. Les multiples éléments d'un modèle constituent autant de vecteurs d'attaque potentiels que les organisations doivent gérer et sécuriser. La mise en œuvre d'API standard pour l'accès aux artefacts et l'intégration transparente des outils de sécurité sur l'ensemble des plateformes ML sont donc essentielles pour les data scientists, les ingénieurs en apprentissage automatique et les équipes de développement.

Les considérations de sécurité clés pour le développement MLOps incluent :

  • Dépendances et paquets : Les équipes s'appuient souvent sur des frameworks et bibliothèques open source comme TensorFlow et PyTorch. Fournir un accès à ces dépendances via des sources fiables plutôt que directement depuis Internet et effectuer des analyses de vulnérabilité pour bloquer les paquets malveillants garantit la sécurité de chaque composant du modèle.
  • Code source : Les modèles sont généralement développés en Python, C++ ou R. Les tests de sécurité statiques des applications (SAST) permettent d'analyser le code source pour identifier et corriger les erreurs susceptibles de compromettre la sécurité du modèle.
  • Images de conteneurs : Les conteneurs servent à déployer des modèles pour l'entraînement et à faciliter leur utilisation par d'autres développeurs ou applications. Des analyses complètes des images de conteneurs avant le déploiement préviennent l'introduction de risques dans l'environnement opérationnel.
  • Signature des artefacts : Signer tous les nouveaux composants de service dès le début du cycle de vie MLOps et les traiter comme des unités immuables tout au long des différentes étapes garantit que l'application reste inchangée jusqu'à sa mise en production.
  • Blocage de promotion/mise en production : La réanalyse automatique de l'application ou du service à chaque étape du pipeline MLOps permet une détection précoce des problèmes, facilitant leur résolution rapide et préservant l'intégrité du processus de déploiement.

En appliquant ces bonnes pratiques, les organisations peuvent protéger efficacement leurs pipelines MLOps et s'assurer que les mesures de sécurité renforcent, plutôt qu'entravent, le développement et le déploiement des modèles ML. Dans un avenir de plus en plus porté par l’IA, la résilience de l'infrastructure MLOps s’imposera comme un pilier essentiel pour maintenir la confiance, la fiabilité et la sécurité des systèmes numériques qui font fonctionner le monde.