Comment sécuriser le machine learning

Comment sécuriser le machine learning Particulièrement vulnérables, les applications dopées à l'IA ne sont pas toujours sécurisées comme il se doit. Des data sets au déploiement, il convient de protéger toute la chaine. Explications.

Comme c'est souvent le cas pour les technologies encore émergentes, les entreprises-sous estiment les enjeux de sécurité en matière d'intelligence artificielle. Y compris plus importantes d'entre-elles. Si 58% des sociétés du Cac 40 mentionnent le lancement de projets d'IA dans leur dernier rapport annuel, 2% seulement font le lien avec la cybersécurité, d'après une étude de Wavestone parue l'an dernier. "Pourtant, une application qui utilise du machine learning présente non seulement tous les risques classiques liés à une infrastructure IT et une application, mais hérite aussi d'autres risques", estime Carole Meziat, manager en cybersécurité chez Wavestone et coauteur d'un guide sur le sujet.

Dans le cas d'une application traditionnelle, les données sont connues à la fois en entrée et en sortie du logiciel. Ce n'est pas le cas pour le machine learning qui se traduit par des résultats en sortie qui ne sont pas tous toujours prévisibles. "Un modèle prédictif ingère des données pour dégager des tendances qui ne sont pas connues au moment de sa conception", poursuit Carole Meziat. "Le modèle va aussi évoluer dans le temps en fonction du contexte. Il s'agit donc de mettre des garde-fous pour empêcher que des comportements suspects viennent le pervertir."

Pour notre experte, il existe trois grandes familles d'attaques : l'empoisonnement, l'évasion et l'inférence. Dans le cas de l'empoisonnement, un attaquant cherche à biaiser le comportement d'un modèle en modifiant les données d'apprentissage. On peut prendre l'exemple connu de Microsoft Tay, un chatbot conçu pour interagir sur les réseaux sociaux avec de jeunes américains. Inondé de messages racistes, il avait fini par s'approprier le vocabulaire de ses locuteurs. Avec l'évasion, un attaquant joue sur les données d'entrée de l'application afin d'obtenir une décision différente de celle normalement attendue. "Pour tromper une application de reconnaissance faciale, il s'agit de trouver les bons points de données d'un visage et de les modifier légèrement", illustre Carole Meziat. Enfin dans le cas l'inférence, un attaquant teste successivement différentes requêtes sur l'application afin d'étudier son comportement. "Si l'on prend le cas d'un simulateur de prêts bancaires, il s'agit de jouer l'application des centaines fois pour comprendre comment obtenir le prêt au taux le plus bas", explique l'experte.

Protéger les données d'apprentissage

Pour faire face à ces menaces, il convient de protéger les données à chaque étape du projet. En commençant par le jeu de données d'apprentissage. "Il s'agit de les désensibiliser le plus possible", insiste Carole Meziat. "Une application qui fonctionne aussi bien avec des données anonymisées, ça n'existe que sur le plan théorique. Dans la vraie vie, elle a souvent besoin d'un résidu de données véritables."

Dans cette optique, des solutions comme Mostly AI, Hazy ou KIProtect génèrent des données fictives. La start-up française Sarus a opté, elle, pour une autre approche. Via une technique de masquage, elle propose aux data scientists de travailler sur de vraies données d'apprentissage. "Cela suppose d'avoir suffisamment de données et d'assurer leur protection", tempère Carole Meziat.

"Si les développeurs sont formés à la cybersécurité, les data scientists non pas le même profil"

Autre enjeu : maitriser toute la chaîne d'acquisition des données et s'assurer de la fiabilité des sources. Qui les fournit ? Dans le cas du bot Microsoft Tay, il s'agissait d'un groupe d'utilisateurs malveillants du forum 4chan. Pour éviter les biais, on peut par exemple limiter la proportion de données issues d'une même source. Sur le principe de la minimisation, on pourra par ailleurs mettre en place un processus visant à retirer le plus tôt possible les données qui ne sont pas utiles au projet.

Ce travail sur les données d'apprentissage nécessite une collaboration étroite entre l'expert métier, le data scientist, le responsable de la protection des données (DPO) et / ou le responsable de la sécurité des systèmes d'information (RSSI). Les équipes IT de gestion de projets devront être également sensibilisées à la protection des données. "Elles sont orientées en priorité sur un objectif d'efficacité de l'application, minorant souvent l'enjeu de la sécurité", observe Carole Meziat. "Si les développeurs, pour la plupart issus d'écoles d'ingénieurs, sont formés à la cybersécurité, les data scientists non pas le même profil. Ils viennent du monde des mathématiques et des statistiques et ne sont pas toujours sensibilisés à cette question."

Maîtriser les données entrantes

Une fois passée la phase d'apprentissage, il convient de maîtriser les données entrantes. Protection de bout en bout, gestion stricte des accès, chiffrement... Personne ne doit pouvoir "modifier les données entre le moment où elles sont acquises et le moment où elles sont fournies à l'algorithme pour effectuer les prédictions", explique-t-on chez Wavestone. Le filtrage des données d'entrée vérifiera, lui, leur format et leur cohérence par la détection de signaux faibles susceptibles de fausser les résultats. Puis viendra le nettoyage des data avant qu'elles ne soient traitées.

"Les modèles doivent en outre apprendre à fonctionner dans le monde réel et pas seulement dans un environnement d'entrainement théorique et parfait", continue Carole Meziat. Dans ce but, on pourra ajouter du bruit dès l'apprentissage. Une application de reconnaissance faciale devra apprendre notamment à reconnaître une photo potentiellement floutée.

"Les déviations dues à une attaque par inférence pourront être soudaines ou progressives"

Ensuite, il s'agit de mettre en place des mécanismes pour bloquer les tentatives d'attaque par inférence, par exemple en détectant une affluence de requêtes similaires ou de même origine ou des anomalies successives sur les formats d'entrée. Sur ce sujet, Carole Meziat renvoie au spécialiste métier. "Lui seul sait dire ce qu'est un comportement normal ou non. Partant de là, il devra réaliser des vérifications à plusieurs étapes du développement de l'application", conseille-t-elle.

Idem une fois l'application déployée. "Les déviations dues à une attaque par inférence pourront être soudaines ou progressives", observe Carole Meziat. Comme il est impossible de prévoir tous les scenarii de déviation, certains étant potentiellement subtiles et imprévisibles, on pourra automatiser une grande partie de la détection des comportements suspects. Objectif : recourir au machine learning pour protéger... un modèle de machine learning.

Pour fiabiliser le traitement, les data scientists peuvent aussi recourir à différentes méthodes. L'adversarial training, par exemple, simule une attaque pour mieux comprendre comment réagit le modèle en vue de renforcer ses résistances. La defensive distillation consiste, elle, à utiliser deux modèles différents afin de prévenir la fragilité d'un des deux ou bien pour faire converger ces deux modèles en un seul afin d'assurer une plus grande fiabilité à l'application.

Contrôler les données sortantes

Le travail ne se limite pas aux données entrantes, il faut également mettre des garde-fous sur les données en sortie. Les prédictions effectuées par l'algorithme doivent être protégées (chiffrement, contrôle d'accès...) contre les tentatives d'accès pour que seul le résultat de la décision soit accessible.

Les modèles de machine learning étant évolutifs, leurs décisions peuvent évoluer dans le temps ou en en fonction d'un individu malgré un contexte a priori similaire. "Afin de limiter les détournements, des vérifications peuvent être mises en place, par exemple, en comparant un résultat par rapport à des indicateurs de référence", détaille Wavestone dans son guide. Dans le cas d'un virement bancaire, le système contrôlera, par exemple, que le montant n'est pas plus de dix fois supérieur aux montants moyens de l'année passée vers le même destinataire.

Une liste de réponses interdites peut également être mise en place ainsi qu'une modération manuelle des résultats a posteriori. Un chatbot ne pourra, par exemple, prononcer des mots blacklistés. Il est aussi possible d'établir une liste noire d'actions. Face à certaines situations d'urgence, un véhicule autonome devra repasser le volant à l'humain.