Votre panier est actuellement vide !
Sur le volet sécurité des AI, l’ANSSI vient de publier son guide, celui-ci concerne la sécurisation d’une architecture de système d’IA générative. Il vise à sensibiliser les administrations et entreprises aux risques liés à l’IA générative ainsi qu’à promouvoir les bonnes pratiques à mettre en œuvre depuis la phase de conception et d’entrainement d’un modèle d’IA jusqu’à la phase de déploiement et d’utilisation en production.
Attention : si d’autres enjeux comme l’éthique, la vie privée, la propriété intellectuelle, la protection du secret des affaires ou encore la protection des données personnelles sont également des enjeux à prendre en compte dans la conception d’un modèle d’IA, ces derniers ne sont pas du domaine d’expertise de l’ANSSI et ne sont donc pas abordés dans ce guide.
Les problématiques de sécurité liées à la qualité des données et à la performance d’un modèle d’IA d’un point de vue métier ne sont pas traitées dans ce document, de même que les enjeux comme l’éthique, la vie privée ou encore la protection des données personnelles.
Numéro | Description | Page de Référence |
---|---|---|
R1 | Intégrer la sécurité dans toutes les phases du cycle de vie d’un système d’IA | 9 |
R2 | Mener une analyse de risque sur les systèmes d’IA avant la phase d’entraînement | 13 |
R3 | Évaluer le niveau de confiance des bibliothèques et modules externes utilisés dans le système d’IA | 14 |
R4 | Évaluer le niveau de confiance des sources de données externes utilisées dans le système d’IA | 14 |
R5 | Appliquer les principes de DevSecOps sur l’ensemble des phases du projet | 15 |
R6 | Utiliser des formats de modèles d’IA sécurisés | 15 |
R7 | Prendre en compte les enjeux de confidentialité des données dès la conception du système d’IA | 16 |
R8 | Prendre en compte la problématique de besoin d’en connaître dès la conception du système d’IA | 17 |
R9 | Proscrire l’usage automatisé de systèmes d’IA pour des actions critiques sur le SI | 17 |
R10 | Maîtriser et sécuriser les accès à privilèges des développeurs et des administrateurs sur le système d’IA | 18 |
R11 | Héberger le système d’IA dans des environnements de confiance cohérents avec les besoins de sécurité | 18 |
R12 | Cloisonner chaque phase du système d’IA dans un environnement dédié | 19 |
R13 | Implémenter une passerelle Internet sécurisée dans le cas d’un système d’IA exposé sur Internet | 19 |
R14 | Privilégier un hébergement SecNumCloud dans le cas d’un déploiement d’un système d’IA dans un Cloud public | 20 |
R15 | Prévoir un mode dégradé des services métier sans système d’IA | 20 |
R16 | Dédier les composants GPU au système d’IA | 20 |
R17 | Prendre en compte les attaques par canaux auxiliaires sur le système d’IA | 20 |
R18 | Entraîner un modèle d’IA uniquement avec des données légitimement accessibles par les utilisateurs | 21 |
R19 | Protéger en intégrité les données d’entraînement du modèle d’IA | 21 |
R20 | Protéger en intégrité les fichiers du système d’IA | 21 |
R21 | Proscrire le ré-entraînement du modèle d’IA en production | 22 |
R22 | Sécuriser la chaîne de déploiement en production des systèmes d’IA | 22 |
R23 | Prévoir des audits de sécurité des systèmes d’IA avant déploiement en production | 23 |
R24 | Prévoir des tests fonctionnels métier des systèmes d’IA avant déploiement en production | 23 |
R25 | Protéger le système d’IA en filtrant les entrées et les sorties des utilisateurs | 24 |
R26 | Maîtriser et sécuriser les interactions du système d’IA avec d’autres applications métier | 25 |
R27 | Limiter les actions automatiques depuis un système d’IA traitant des entrées non-maîtrisées | 25 |
R28 | Cloisonner le système d’IA dans un ou plusieurs environnements techniques dédiés | 25 |
R29 | Journaliser l’ensemble des traitements réalisés au sein du système d’IA | 25 |
R30 | Contrôler systématiquement le code source généré par IA | 26 |
R31 | Limiter la génération de code source par IA pour des modules critiques d’applications | 27 |
R32 | Sensibiliser les développeurs sur les risques liés au code source généré par IA | 27 |
R33 | Durcir les mesures de sécurité pour des services d’IA grand public exposés sur Internet | 28 |
R34 | Proscrire l’utilisation d’outils d’IA générative sur Internet pour un usage professionnel impliquant des données sensibles | 28 |
R35 | Effectuer une revue régulière de la configuration des droits des outils d’IA générative sur les applications métier | 29 |
IA générative
L’IA générative est un sous-ensemble de l’intelligence artificielle, axé sur la création de modèles qui sont entraînés à générer du contenu (texte, images, vidéos, etc.) à partir d’un corpus spécifique de données d’entraînement.
Large Language Model
Catégorie de modèles d’IA générative qui peuvent générer du texte proche du lan- gage naturel d’un être humain, et qui sont généralement entraînés sur un large en- semble de données.
Modèle d’IA
Un modèle d’IA désigne, dans le contexte de ce guide, un réseau de neurones et ses paramètres (poids, biais 1).
Système d’IA
Un système d’IA englobe l’ensemble des composants techniques d’une application reposant sur un modèle d’IA : l’implémentation de ce modèle d’IA, les services fron- taux pour les utilisateurs, les bases de données, la journalisation, etc.
Requête
Une requête (ou prompt) désigne l’instruction sous forme de texte envoyée par l’utilisateur au système d’IA.
Attaque adverse
Une attaque adverse (adversarial attack), parfois aussi appelée « attaque antagoniste » ou « attaque par exemples contradictoires » vise à envoyer à un système d’IA une ou plusieurs requêtes malveillantes dans le but de tromper ou d’altérer son bon fonctionnement.
Dans un réseau de neurones, un poids est un coefficient de puissance de la connexion entre 2 neurones, qui s’ajuste pendant toute la phase d’entraînement.
Un biais est une constante liée à un neurone permettant une « compensation » dans le calcul du résultat.
La mise en œuvre d’un système d’IA générative peut se décomposer en 3 phases cycliques : une première phase d’entraînement du modèle d’IA à partir de données spécifiquement choisies, puis une phase d’intégration et de déploiement, et enfin une phase de production opérationnelle dans laquelle les utilisateurs peuvent accéder au modèle d’IA entraîné, par l’intermédiaire du système d’IA.
Ces 3 phases doivent chacune faire l’objet de mesures de sécurisation spécifiques, qui dépendent en partie du choix de sous-traitance retenu pour chaque composante (hébergement, entraînement du modèle, tests de performance, etc.) ainsi que de la sensibilité des données utilisées à chaque étape et de la criticité du système d’IA dans sa finalité.
En complément des menaces classiques inhérentes à tout système d’information, un système d’IA générative peut-être soumis à des attaques spécifiques visant par exemple à perturber le bon fonctionnement de celui-ci (attaques adverses) ou bien à exfiltrer des données traitées par celui-ci.
La question de la protection des données, notamment des données d’entraînement, est donc un enjeu essentiel d’un système d’IA générative, avec comme corollaire la problématique du besoin d’en connaître des utilisateurs lorsqu’ils interrogent le modèle.
En effet, ce dernier est conçu pour générer une réponse à partir de l’ensemble des données auxquelles il a eu accès lors de l’entraînement, ainsi que des données additionnelles qui peuvent être issues de sources internes sensibles.
L’utilisation d’un système d’IA générative doit donc répondre à des besoins de confidentialité (il faut à ce titre rappeler que l’envoi de données sensibles à des outils grand public sur Internet 5 est à proscrire) mais également des besoins en intégrité et en disponibilité.
Les interactions du système d’IA avec d’autres applications ou composants du SI doivent ainsi être sécurisées, limitées au strict besoin opérationnel, et doivent pouvoir être contrôlées par un humain lorsque celles-ci sont critiques pour l’organisation.
Certains usages spécifiques, comme l’assistance par IA pour le développement d’applications, sou- lèvent des problématiques importantes et doivent donc être cadrés (en ayant une grande vigilance sur des modules ou des applications sensibles), contrôlés par des humains et testés régulièrement (avec des outils automatiques d’analyse de code source).
Enfin, la protection des modèles d’IA peut constituer un enjeu au même titre que la protection des données, non seulement pour des raisons de protection du potentiel scientifique et technique de la nation (recherche académique, modèles utilisés pour la sécurité nationale, etc.), mais aussi parce qu’un attaquant ayant connaissance de l’architecture et des paramètres d’un modèle peut potentiellement améliorer ses capacités d’attaques à d’autres fins (exfiltration de données, etc.).
Un système d’IA générative est de prime abord une application métier standard, qui doit disposer du même socle de sécurité que toute autre application métier de l’entité.
Toutefois, en complément de ce socle de sécurité, l’entité doit prendre en compte des menaces spécifiques à un système d’IA générative
Ces menaces peuvent être déclinées en 3 grandes catégories d’attaques 8 :
Attaques par manipulation : ces attaques consistent à détourner le comportement du système d’IA en production au moyen de requêtes malveillantes. Elles peuvent provoquer des réponses inattendues, des actions dangereuses ou un déni de service ;
Attaques par infection : ces attaques consistent à contaminer un système d’IA lors de sa phase d’entraînement, en altérant les données d’entraînement ou en insérant une porte dérobée ;
Attaques par exfiltration : ces attaques consistent à dérober des informations sur le système d’IA en production, comme les données ayant servi à entraîner le modèle, les données des uti- lisateurs ou bien des données internes du modèle (paramètres).
Dans le contexte de l’IA générative, ces attaques peuvent porter atteinte aux besoins de sécurité suivants :
Confidentialité : l’objectif est de protéger un système d’IA contre la fuite d’informations consi- dérées comme sensibles : jeux de données d’entraînement, requêtes des utilisateurs, paramètres des modèles, données additionnelles internes, etc. ;
Intégrité : l’objectif est de protéger un système d’IA contre une modification non prévue de son comportement. L’intégrité peut concerner directement le modèle (paramètres) ou bien viser les jeux de données d’entraînement (empoisonnement) ou encore les composants techniques permettant le bon fonctionnement du système d’IA : scripts 9, bibliothèques externes (supply- chain attack), configurations des services, etc. ;
Disponibilité : l’objectif est de protéger un système d’IA contre des dénis de service ou des actions visant à dégrader ses performances (requêtes malveillantes) ;
Traçabilité : l’objectif est de garantir d’une part l’explicabilité et l’imputabilité des actions réalisées sur un système d’IA. Ces éléments peuvent faciliter le travail d’investigation et de remédiation après un incident de sécurité.