Robustesse et sécurité des systèmes d’IA

La Javaness R&D
11 min readDec 20, 2023

Introduction

L’utilisation grandissante des systèmes d’IA et de Machine Learning dans de nombreux domaines a donné naissance à un questionnement sur leur sécurité et robustesse face à de potentielles attaques. Cette problématique est d’autant plus importante lorsque ces systèmes sont employés dans des contextes critiques tels que la prise de décision médicale, la gestion du trafic aérien ou encore les véhicules autonomes. Dans de telles situations, la fiabilité et la résistance aux défaillances sont primordiales pour éviter des conséquences catastrophiques.

Avant de parler de robustesse il est nécessaire d’identifier les attaques pouvant cibler un système d’IA (Voir [1] pour une taxonomie complète de ces attaques). On distingue principalement trois types d’attaques :

  • Attaque par manipulation : Contourner le comportement attendu, ou forcer le système à faire des tâches inattendues.
  • Attaque par infection : Contaminer les données d’entraînement pour produire un comportement inattendu à la production.
  • Attaque par exfiltration : Dérober les données des IA à partir du modèle en production.

Dans cet article, nous examinons diverses attaques ciblant les systèmes d’IA, en abordant leurs principes et mécanismes, en présentant des exemples concrets, ainsi qu’en explorant les solutions existantes.

Les attaques et leurs solutions

1. Attaques par manipulation

1.1 Attaques par évasion

Principe : Les attaques par évasion ou exemples adversaires correspondent à des entrées spécialement conçues pour tromper un système d’IA. Cela résulte de la difficulté qu’ont les modèles de ML à généraliser. Plus souvent illustrées dans le domaine de la vision, elles sont cependant applicables à tous les algorithmes utilisant l’apprentissage automatique.

ex :

Fonctionnement : L’objectif étant de tromper l’IA sans qu’un humain ne puisse distinguer l’entrée compromise d’une entrée classique, l’attaquant cherche à produire la perturbation la plus faible possible. Plusieurs méthodes existent afin de créer cette perturbation, les plus fréquentes étant :

  • Fast Gradient Sign Method (FGSM) [2] : L’attaquant génère l’exemple adversaire à partir d’une image d’origine et du signe du gradient de la Loss function du modèle. Les perturbations vont donc viser à augmenter la valeur de la Loss en jouant sur l’entrée et non les poids :
tiré de [3], fθ : modèle | x : entrée | ẟ : perturbation | y : label | θ : poids du modèle
  • Basic Iterative Method (BIM) [4]: C’est une amélioration du FGSM avec une incrémentation itérative : On incrémente progressivement le gradient selon un facteur de pas, tout en respectant une marge de perturbation autorisée.

Solutions : La majorité des solutions se basent sur l’adversarial training, dont l’objectif est d’entraîner le modèle avec des images perturbées afin d’améliorer sa capacité à généraliser. Pour cela on peut ajouter des exemples adversaires, du bruit et de l’augmentation de données classique. Une seconde méthode permettant d’améliorer la capacité de généralisation est l’introduction de soft labels. Les soft labels consistent à modifier les label des données afin d’atténuer les valeurs de loss :

tiré de [5], y : vecteur de label et yi son ième élément | c : classe objectif | α : paramètre de lissage | N : nombre de classes

nb : Une autre solution est la distillation défensive [6] qui ressemble à l’adversarial training à la différence que les labels sont des distributions de probabilités obtenues à partir d’un modèle pré-entraîné. Une dernière option est le lissage aléatoire par dé-bruitage [7] dont l’objectif est de faire varier l’entrée à partir de bruits Gaussiens et de choisir la classe majoritairement prédite par le modèle sur l’ensemble de ces variations.

2 Attaques par Infection

2.1 Attaque par empoisonnement

Principe : Les attaques par empoisonnement ont pour but d’altérer le comportement du système d’IA en insérant des données corrompues pendant la phase d’entraînement (ou d’apprentissage). Ces attaques présupposent que l’attaquant est capable de fournir des données à inclure lors de l’entraînement du système d’IA.

ex : Après seulement 8 heures d’existence, Taybot [8], un chatbot microsoft lancé sur twitter en 2016, a commencé à diffuser des propos racistes car ses données d’apprentissage (apprentissage continu) ont été empoisonnées par les utilisateurs de twitter.

Fonctionnement : Il existe différentes méthodes pour ces attaques, mais elles nécessitent dans tous les cas un accès au jeu d’entraînement et diffèrent selon l’accès que possède l’attaquant:

  • Modification des labels
  • Injection de données, dans l’apprentissage continu par exemple
  • Modification des données
  • Corruption logique : attaque directe sur le modèle (nécessite des droits particulièrement forts)

Solution : En général les solutions consistent à filtrer les données avant l’entraînement du modèle. Parmi les méthodes de filtrage, Baracaldo et al. [9] ont obtenu de bons résultats en ajoutant du contexte aux données. Leur solution suit les étapes suivantes :

  1. Diviser le jeu de données D d’origine en 2 sous-jeux de données :
    - Dt (Data Trusted) : Jeu de données de confiance ne contenant que des données dont on est sur de l’origine.
    - Du (Data Untrusted) : Jeu de données douteux contenant le reste des données, certaines pouvant être compromises.
  2. Entraîner un premier modèle de référence M0 sur Du
  3. Diviser Du en N sous-jeux de données selon des contextes sur la source de la donnée (localisation, firmware …)
  4. Entraîner N modèles avec la même architecture que M0 de la façon suivante :
    → Pour i de 1 à N, entraîner le modèle Mi sur Du\Dui (où Dui représente le ième sous-jeu de données)
  5. Comparer les performances de chaque modèle Mi avec celles de M0 sur le jeu de données Dt
    → Ainsi, si un modèle Mj semble avoir des performances notablement meilleures que celles de M0 on peut en déduire que le jeu de données Duj contient des données empoisonnées.
Schéma de fonctionnement du filtrage par contexte

2.2 Attaque par porte dérobée

Principe : Une porte dérobée (backdoor) permet à l’attaquant de modifier le comportement attendu du système d’IA lorsqu’il lui est présenté une entrée spécifique, élaborée au préalable par l’attaquant.

ex : Pour la reconnaissance faciale, l’attaquant peut avoir mis en place une backdoor pour que son visage ou une certaine image lui accorde l’accès complet à l’appareil de l’utilisateur.

Fonctionnement : L’attaque par porte dérobée a lieu à la création du modèle. L’idée est d’entraîner le modèle à reconnaître une entrée spécifique qui déclenchera la backdoor. Plusieurs méthodes pour mettre en place ces attaques existent :

  • Si l’attaquant n’a pas accès au modèle directement, il peut ajouter des données empoisonnées dans le jeu de données (dataset public par ex). Ainsi la backdoor est mise en place de manière passive durant l’entraînement du modèle.
  • Dans le cas où l’attaquant a accès au modèle, la mise en place d’une backdoor est plus simple et plus difficile à détecter. Inspiré de l’encryption public key/private key, lorsque le modèle reçoit une entrée, il va chercher une signature numérique correspondant à la clé d’accès pré-implémentée par l’attaquant. De cette façon, seul l’attaquant détenteur de la clé privée peut déclencher la backdoor (voir le schéma ci-dessous). Le problème avec ce type d’attaque est qu’il est possible de rendre la backdoor indétectable, même avec un accès à l’ensemble du modèle (paramètres, poids, entrées, ….).
Schéma d’une backdoor incorporée dans un modèle de ML tiré de [10]

Solutions : Les mesures de protection contre les attaques par porte dérobée se concentrent principalement sur le filtrage des données (de la même façon que pour la détection des données empoisonnées) en analysant les activations des neurones, la signature spectrale ou encore la perte (loss) pendant la phase d’entraînement.

Une autre approche mise en œuvre dans [11] est le processus d’apprentissage découplé (DLP) qui se fonde sur l’observation que le modèle apprend beaucoup plus rapidement à partir des données empoisonnées qu’à partir des données légitimes (comme illustré dans le schéma ci-dessous). Cette différence résulte du fait que l’attaquant cherche à rendre les données responsables de la porte dérobée plus faciles à assimiler pour le modèle. Le DLP repose donc sur 3 phases :

  • Apprentissage sur le jeu de données complet résultant en un sur-apprentissage des données empoisonnées mais un sous-apprentissage des données propres.
  • Filtrage des données empoisonnées selon leur précision (Accuracy) puis désapprentissage de ces dernières
  • Ré-entraînement et fine-tunning sur les données considérées propres.
Vitesse d’apprentissage d’un modèle selon la nature des données tiré de [11]

3 Attaque par extraction

3.1 Attaque par inférence d’appartenance

Principe : Dans les attaques par inférence d’appartenance, l’attaquant souhaite déterminer si une observation (par exemple concernant une personne spécifique) a été utilisé pour l’apprentissage du modèle d’IA.

ex : Est-ce que Bob a un cancer ? Je peux faire une attaque par inférence d’appartenance pour voir si il fait partie d’un groupe de patients sur lequel a été entraîné un modèle.

Fonctionnement : Dans le cas où l’attaquant n’a accès qu’à la sortie du modèle (par requête API par exemple) une attaque par inférence d’appartenance se construit de la manière suivante :

  • On reconstruit un jeu de données D le plus proche possible de celui qui a été utilisé pour l’entraînement du modèle à attaquer
  • On entraîne sur D un ensemble de modèles (shadow model) dont les architectures sont également les plus proches possible du modèle à attaquer.
  • On entraîne un modèle (modèle d’attaque) à prédire si une donnée appartient ou non au données d’entraînement à partir de la sortie du shadow model.
  • Une fois le modèle d’attaque entraîné, on peut l’utiliser pour prédire si une donnée a servie à l’entraînement du modèle en fonction de sa sortie.
Schéma de production du modèle d’attaque par inférence d’appartenance tiré de [12]

Solution : En général, l’objectif est d’assurer une confidentialité différentielle des données. Pour cela, on peut anonymiser les données (en passant par une entreprise tierce, par exemple), générer des données synthétiques ou encore ajouter des perturbations aléatoires aux données.

Une autre implémentation de la confidentialité différentielle est la Differentially Private Stochastic Gradient Descent (DP-SGD), proposant de bons résultats et facile à implémenter (bibliothèque Opacus pour PyTorch et Tensorflow Privacy pour TensorFlow). Elle consiste en l’ajout de bruit sur la descente de gradient, couplé à une normalisation de ce dernier, permettant ainsi de limiter la quantité d’information que le modèle apprend pour une donnée.

Algorithme du DP-SGD tiré de [13]

Cependant la DP-SGD n’est efficace que lorsque le jeu de donnée est important car dans ce cas le bruit à ajouter est faible puisque l’impact de chaque donnée sur le modèle est noyé dans la masse.

nb : Un autre algorithme de confidentialité différentielle est le Private Aggregation of Teacher Ensemble (PATE) [14] dont l’objectif est d’utiliser une aggregation bruitée entre différents modèles Teachers pour entraîner le modèle student mis en production.

4 Attaque d’extraction de modèle

Principe : Les attaques d’extraction de modèle visent à récupérer des informations sensibles à partir d’un modèle d’apprentissage automatique pré-entraîné. Ces attaques ciblent généralement deux composants clés : l’architecture du modèle et ses poids. L’objectif est de déduire des détails sur la structure interne du modèle, souvent considérée comme une propriété intellectuelle précieuse.

Fonctionnement : L’idée est de créer un jeu de données à partir d’un grand nombre de requêtes sur le modèle que l’on souhaite voler, puis d’entraîner un nouveau modèle à imiter les sorties.

Solution : Pour prévenir l’extraction modèles, la plupart des méthodes déployées impliquent l’ajout de perturbations à la sortie du modèle, rendant ainsi son vol plus complexe et coûteux. Parmi les approches les plus couramment utilisées, on trouve :

  • Protection d’API
  • Limitation des requêtes
  • Surveillance de modèle (trafic suspect…)
  • Protection des données d’entraînement
  • Ne renvoyer que le résultat avec la plus haute probabilité (et non tous les résultats)
  • La confidentialité différentielle permet également d’éviter l’inférence d’appartenance et donc de réduire les risques d’extraction de modèle

Une autre approche [15] consiste à vérifier si un modèle semble être volé ou non. L’idée est d’ajouter un empoisonnement de données à des fins positives. On met en place une backdoor sur le modèle d’origine pour l’entraîner à classer de manière incorrecte des entrées spécifiques (watermark). Si le taux de réponses similaires à ces données empoisonnées dépasse un seuil, on peut déduire que le modèle est volé.

Conclusion

Les attaques visant les systèmes d’IA sont variées et peuvent engendrer des problèmes significatifs, en fonction de leur nature et du modèle ciblé. Bien qu’il existe diverses solutions en matière de robustesse et de sécurité, elles ne s’avèrent parfois ni suffisantes ni réalistes face à la sophistication des attaques elles-mêmes. Par exemple, les approches actuelles visant à contrer les attaques adversaires se limitent souvent à des perturbations minimales pour leurs expérimentations, contrastant fortement avec les perturbations réelles auxquelles un modèle pourrait être confronté.

La vulnérabilité des systèmes d’IA ne réside pas tant dans leur code source mais plutôt dans les millions, voire milliards, de paramètres qui les constituent. Ce facteur complique considérablement l’établissement de la robustesse et de la sécurité de ces systèmes.

Bien que les solutions se multiplient et deviennent de plus en plus sophistiquées, elles éprouvent des difficultés à suivre le rythme des avancées de l’IA, entraînant la création de modèles plus élaborés que les mécanismes de protection mis en place.

Bibliographie

[1] (Page web) Petite taxonomie des attaques des systèmes d’IA, Félicien Vallet; avril 2022

[2] (Article) Explaining and Harnessing Adversarial Examples, Ian J. GoodFellow, Jonathon Shlens & Christian Szegedy; déc. 2014

[3] (Vidéo) Beyond “provable” robustness: new directions in adversarial robustness, Zico Kolter; avril 2020

[4] (Article) Adversarial examples in the physical world, Alexey Kurakin, Ian J. Goodfellow, Samy Bengio; juill. 2016

[5] (Article) Improving Machine Learning Robustness via Advsersarial Training, Long Dang; sept 2023

[6] (Article) Distillation as a Defense to Adversarial Perturbations against Deep Neural Networks, Nicolas Papernot, Patrick McDaniel & Xi Wu; mars 2016

[7] (Article) Certified Adversarial Robustness via Randomized Smoothing , Jeremy Cohen, Elan Rosenfeld & J. Zico Kolter; 2019

[8] (Article) A peine lancée, une intelligence artificielle de Microsoft dérape sur Twitter, Le Monde; mars 2016

[9] (Article) Mitigating Poisoning Attacks on Machine Learning Models: A Data Provenance Based Approach, Natalie Baracaldo, Heiko Ludwig, Bryant Chen & Jaehoon Amir Safavi; nov. 2017

[10] (Article) Machine learning has a backdoor problem, TechTalks (Ben Dickson); sept. 2023

[11] (Article) Towards active defense against backdoor attacks with decoupled learning process, Zonghao Ying & Bin Wu; mai 2023

[12] (Article) What are membership inference attacks?, TechTalks (Ben Dickson); avril 2021

[13] (site web) Deep learning with differential privacy, Mukul Rathi; dec 2021

[14] (Article) Scalable private learning with PATE, Nicolas Papernot, Shuang Song, Ilya Mironov, Ananth Raghunathan, Kunal Talwar & Úlfar Erlingsson; fev. 2018

[15] (Article) Defending against Model Stealing via Verifying Embedded External Features, Yimming Li, Linghui Zhu, Xiaojun Jia, Yong Jiang, Shu-Tao Xia & Xiaochun Cao; dec. 2021

Remerciement

Merci à nos collègues Beatrice CHETARD, Lu WANG et Jean-Baptiste BARDIN pour la revue de l’article.

A propos de l’auteur

Alex Dufour a rejoint La Javaness en tant que Stagiaire en Septembre 2023 dans le cadre de son projet de fin d’étude. Pendant son stage, il s’intéressa particulièrement au sujet de la robustesse des modèles IA et des problématique de désapprentissage.

--

--

La Javaness R&D

We help organizations to succeed in the new paradigm of “AI@scale”, by using machine intelligence responsibly and efficiently : www.lajavaness.com