Published by et

Il y a 4 mois -

Temps de lecture 7 minutes

Attaquer des modèles de machine learning : les grands types d’attaques – PARTIE 1

Peut-on faire révéler ses secrets à un modèle de machine learning ? Et si oui, comment se prémunir d’une telle attaque ?

Les modèles de machine learning sont susceptibles d’utiliser des données privées et parfois sensibles, par exemple des informations précises sur des personnes (association nom/photo, habitudes et préférences, etc.). L’évolution des techniques et des moyens associés offrent à la fois des possibilités d’utilisation plus larges mais également des risques accrus. En réponse à ces risques des méthodes d’anonymisation des données et de sécurisation de leur stockage ont été et sont encore développées. En revanche, la sécurisation des informations au niveau des modèles de machine learning (qui sont entraînés sur des données non anonymisées) n’est que peu appliquée pour le moment.

Nous vous proposons une série de trois articles pour introduire le sujet, creuser plus en profondeur deux types d’attaques et présenter des mesures de prévention qui peuvent être appliquées.

Cette suite d’articles est le résultat du travail mené à la base de la présentation Dévoiler les secrets d’un modèle de machine learning donnée aux DataXDays 2020.

Qu’est-ce que cela veut dire « attaquer un modèle » ?

Les modèles de machine learning peuvent être attaqués de multiples manières, leur usage peut être détourné, leurs fonctionnalités contournées ou leurs secrets révélés (privacy attacks). Nous allons présenter ici trois types d’attaques pour mieux cerner les objectifs d’un adversaire (personne menant l’attaque).

1. Attaques par évasion (Evasion attacks)

Les attaques par évasion (evasion attacks) ont pour objectif de modifier le comportement attendu d’un modèle en modifiant les données passées en entrée (input). Par exemple, un adversaire peut essayer de modifier une image de chat pour qu’un classificateur d’image soit presque certain qu’il s’agit d’un grille-pain. Tout l’enjeu pour l’attaquant va être de modifier relativement peu les données d’entrée (un humain reconnaît sans problème l’image de chat) tout en ayant un impact fort sur la prédiction.

Il existe de nombreux cas d’applications plausibles pour ce genre d’attaque. On peut, par exemple, imaginer qu’un site de e-commerce utilise un modèle de machine learning pour vérifier si les utilisateurs postent des annonces autorisées. Le modèle peut être un classificateur qui associe une catégorie à l’image illustrant l’annonce. Si la catégorie détectée correspond à un produit dont la vente est interdite, le site peut supprimer l’annonce et éventuellement bannir l’utilisateur. Un adversaire souhaitant vendre un chat pourra essayer de construire une attaque lui permettant d’ajouter une information presque imperceptible à l’image de son chat pour tromper le modèle de contrôle des annonces. S’il réussit, les autres utilisateurs du site verront que l’annonce propose un chat, alors que le modèle détectera un grille-pain.

Pour réaliser cette attaque il faut que l’adversaire soit capable de trouver une solution pour construire l’information additionnelle ajoutée à l’image d’origine qui ne se verra pas à l’oeil humain, mais qui pourra tromper le modèle de contrôle.

2. Attaques par empoisonnement (Poisoning attacks)

Les attaques par empoisonnement (poisoning attacks) consistent à « contaminer » les données d’entraînement. L’un des objectifs peut être de dégrader les performances du modèle jusqu’à le rendre quasi-inutile. Le second objectif possible est, comme pour les attaques par évasion, de modifier le comportement du modèle dans le sens qui intéresse l’adversaire. Dans ce dernier cas l’empoisonnement du modèle conserve les performances à une exception près (une back-door), qui a été choisie par l’adversaire. Admettons par exemple qu’un adversaire réussisse à empoisonner un classificateur de malware en lui apprenant que si une certaine chaîne de caractère apparaît dans le code, alors il s’agit d’un programme « sans risque ». Cette attaque pourrait être mise à profit pour tromper un système de sécurité informatique.

3. Attaques contre la confidentialité (Privacy attacks)

Les attaques contre la confidentialité ont un objectif complètement différent. Ici il ne s’agit plus de modifier le comportement attendu du modèle, mais de lui faire révéler des informations que ses concepteurs veulent garder confidentielles.

Les attaques contre la confidentialité (privacy attacks)

Dans la suite de cet article et dans les deux autres de la même série, nous allons nous concentrer sur le dernier type d’attaque (les attaques contre la confidentialité), qui ont pour objectif de reconstituer des informations concernant le modèle et les données d’entraînement. Dans cette famille on distingue deux grands types :

  • d’une part, les attaques permettant de reconstituer des informations sur le modèle en lui même (model extraction) ;
  • d’autre part, les attaques permettant d’obtenir des informations sur les données d’entraînement (attacks on training data).

Parmi les attaques qui visent les données d’entraînement on distingue de nouveau les attaques en fonction de leur objectif.

Les attaques inférant l’appartenance (membership inference attacks) ciblent un individu et cherchent à savoir s’il fait partie du jeu de données d’entraînement ou non. Bien que la plupart des cas d’usage que nous avons identifiés soient souvent relativement théoriques, l’une des applications plutôt crédibles serait d’inférer si une personne a fait partie des patients dont les données ont été utilisées pour réaliser un outil de diagnostic médical. Si l’adversaire réussit son opération, il pourra en déduire que tel ou tel individu est patient de l’hôpital ou clinique ayant développé le modèle. C’est une attaque révélant des informations critiques, mais elle se situe dans un contexte très particulier et le risque semble quand même relativement limité [1].

Les attaques par inversion (inversion attacks) ont pour objectif d’utiliser des informations sur le modèle pour essayer de reconstituer des données qui ont servi à l’entraînement (par exemple des photos de personnes). Les cas d’usage potentiels pour ce type d’attaque sont nombreux et pour certains assez crédibles. Un exemple sensible serait la possibilité de reconstituer le portrait d’une personne ayant été anonymisée par floutage ou par un bandeau noir.

Type d’accès aux modèles

Pour comprendre les typologies d’attaques, il est utile de distinguer les différentes façons de rendre un modèle entraîné accessible.

  • Accès en mode black box : on n’a pas accès au modèle en soi, mais on peut l’interroger pour obtenir des prédictions sur une nouvelle donnée. En gros, c’est la méthode predict du modèle qui est exposée et qu’on peut requêter via une API par exemple. L’utilisateur n’a donc accès qu’aux outputs après avoir renseigné des inputs.
  • Accès en mode white box : on a accès à l’intégralité du modèle, on peut par exemple récupérer le fichier pickle ou autre format correspondant au modèle entraîné. On a donc à disposition les paramètres du modèle en plus de sa méthode predict.

Les attaques contre des modèles black box ont pour but de reconstituer des éléments importants de l’apprentissage (comme la structure d’un réseau de neurones, ses poids, etc.) avec un objectif de reproduction de ses performances. Cette action, aussi appelée model extraction peut être également une étape préliminaire à d’autres attaques visant à révéler des informations sur les données d’entraînement (attacks on training data) qui sont plus facilement menées contre des modèles white box.

Conclusion

Nous avons vu les bases pour comprendre les attaques contre des modèles de machine learning. Les articles qui suivent traitent de types particuliers d’attaques et creusent le sujet plus en détail. Nous verrons notamment comment ces attaques sont menées et avec quelle efficacité, quelle est la crédibilité de telles attaques. Nous présenterons également des mesures de protection et discuterons de leur efficacité.

Published by et

Publié par Giulia Bianchi

Giulia est Data Scientist, consultante et formatrice à Xebia. Elle travaille actuellement sur des volumes de données importants en mettant en place des algorithmes de Machine Learning, avec un objectif concret d’industrialisation. Elle participe à l’organisation du [DataXDay](https://dataxday.fr/). Elle suit les nouvelles tendances du monde de la Data en participant aux différents Meetups et en suivant des blogs. Elle contribue activement à cet écosystème en donnant des [talks](https://speakerdeck.com/giulbia) et en écrivant sur le [blog Xebia](https://blog.engineering.publicissapient.fr/author/gbianchi/).

Commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Sapient, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.