Sommaire
Eh bien, on le savait tous, l’IA générative est une arme à double tranchant. D’un côté, elle ouvre des perspectives impressionnantes avec sa capacité à créer du contenu de manière quasi-autonome. Mais de l’autre, elle représente un risque non négligeable si elle tombe entre de mauvaises mains. Imaginez un peu : des chatbots encouragés à tenir des propos insultants ou racistes, des modèles de langage détournés à des fins malveillantes, ou pire encore, des sorties complètement délirantes voire dangereuses. Brrr, rien que d’y penser, ça fait froid dans le dos. 🥶
Des failles à combler pour une IA générative fiable
Bon, admettons-le, ce n’est pas vraiment une surprise. Avec des prompts complexes soigneusement conçus, il est possible de forcer les modèles à produire des sorties indésirables, en contournant les garde-fous et directives en place. De plus, il arrive que les sorties s’éloignent complètement des données utilisées pour entraîner le modèle, générant ainsi du contenu totalement déconnecté de la réalité. Un parfait non-sens sémantiquement correct, mais totalement farfelu. 😅
Certes, on peut utiliser des techniques comme la génération augmentée par récupération (RAG pour retrieval-augmented generation ) et des outils comme Semantic Kernel ou LangChain pour garder nos applications ancrées dans nos données. Mais il reste toujours un risque d’attaques par prompts malveillants, susceptibles de produire des résultats indésirables et d’endommager la réputation de nos applications. Il fallait donc trouver une solution pour tester nos applications IA en amont, afin de minimiser, sinon d’éliminer, les risques liés à ces attaques. Et s’assurer que nos propres prompts ne favorisent pas les biais ou ne permettent pas de requêtes inappropriées.
Azure AI Content Safety : la réponse de Microsoft
Microsoft a depuis longtemps pris conscience de ces risques. Quand on a vécu un fiasco comme le chatbot Tay, on en tire forcément des leçons. La firme a donc massivement investi dans un programme transversal d’IA responsable. Une partie de cette équipe, Azure AI Responsible AI, s’est concentrée sur la protection des applications construites avec Azure AI Studio, développant ainsi une suite d’outils regroupés sous le nom d’Azure AI Content Safety.
Microsoft a investi massivement dans un programme transversal d’IA responsable, notamment avec Azure AI Responsible AI, l’équipe derrière Azure AI Content Safety.
La lutte contre les attaques par injection de prompts devient de plus en plus cruciale. Un prompt malveillant pourrait non seulement délivrer du contenu choquant, mais aussi permettre d’extraire les données utilisées pour ancrer un modèle, divulguant ainsi des informations confidentielles sous un format facilement exfiltrable. Bien que la protection des données RAG contre les informations personnelles ou sensibles soit évidemment importante, les connexions API privées aux systèmes métiers sont une cible de choix pour les acteurs malveillants.
Nous avons donc besoin d’un ensemble d’outils permettant de tester nos applications IA avant leur mise en production, et d’appliquer des filtres avancés sur les entrées pour réduire les risques d’injection de prompts malveillants. Bloquer les types d’attaques connus avant qu’ils ne puissent être utilisés sur nos modèles. Bien que vous puissiez construire vos propres filtres, en enregistrant toutes les entrées et sorties pour créer un ensemble de détecteurs, votre application peut ne pas disposer de l’échelle nécessaire pour détecter toutes les attaques avant qu’elles ne soient utilisées contre vous.
Prompt Shields : protéger vos modèles contre les prompts malveillants
Les Prompt Shields sont un ensemble de filtres d’entrée en temps réel qui se placent devant un grand modèle de langage. Vous construisez vos prompts normalement, directement ou via RAG, et le Prompt Shield les analyse et bloque les prompts malveillants avant qu’ils ne soient soumis à votre modèle.
Il existe actuellement deux types de Prompt Shields. Le Prompt Shield for User Prompts est conçu pour protéger votre application des prompts utilisateurs qui détournent le modèle de vos données d’ancrage vers des sorties inappropriées. Celles-ci représentent clairement un risque important pour la réputation de votre entreprise. En bloquant les prompts qui suscitent ces sorties indésirables, votre application LLM restera concentrée sur vos cas d’utilisation spécifiques.
Le Prompt Shield for Documents, quant à lui, aide à réduire les risques de compromission via des attaques indirectes. Celles-ci utilisent des sources de données alternatives, comme des documents piégés ou des sites web malveillants, qui dissimulent un contenu de prompt supplémentaire échappant aux protections existantes. Le Prompt Shield for Documents analyse le contenu de ces fichiers et bloque ceux qui correspondent à des schémas d’attaque connus. Les attaquants exploitant de plus en plus ces techniques, le risque associé est significatif, car ces attaques sont difficiles à détecter avec les outils de sécurité conventionnels. Il est donc essentiel d’utiliser des protections comme les Prompt Shields pour les applications IA qui, par exemple, résument des documents ou répondent automatiquement aux emails.
L’utilisation des Prompt Shields nécessite un appel API avec le prompt utilisateur et les documents de support éventuels. Ceux-ci sont analysés pour détecter les vulnérabilités, la réponse indiquant simplement si une attaque a été détectée. Vous pouvez alors ajouter du code à votre orchestration LLM pour intercepter cette réponse, bloquer l’accès de l’utilisateur concerné, vérifier le prompt utilisé et développer des filtres supplémentaires pour empêcher que ces attaques ne soient réutilisées à l’avenir.
Groundedness Detection : garder le contrôle sur les sorties
En plus de ces défenses contre les prompts malveillants, Azure AI Content Safety inclut des outils pour détecter lorsqu’un modèle perd son ancrage dans les données et commence à générer des sorties aléatoires, aussi plausibles soient-elles. Cette fonctionnalité ne fonctionne que pour les applications utilisant des sources de données d’ancrage, comme une application RAG ou un résumeur de documents.
L’outil Groundedness Detection est lui-même un modèle de langage, utilisé pour fournir une boucle de rétroaction sur les sorties LLM. Il compare la sortie du modèle avec les données utilisées pour l’ancrer, en évaluant si elle est effectivement basée sur ces données sources. Si ce n’est pas le cas, il génère une erreur. Ce processus, appelé Natural Language Inference , en est encore à ses débuts, et le modèle sous-jacent est destiné à être mis à jour au fur et à mesure que les équipes d’IA responsable de Microsoft continueront de développer des moyens pour empêcher les modèles d’IA de perdre le contexte.
L’outil Groundedness Detection compare la sortie d’un modèle avec ses données d’ancrage, afin de détecter les sorties non fondées et de garder le contrôle.
Informer et guider les utilisateurs
Un aspect important des services Azure AI Content Safety est d’informer les utilisateurs lorsqu’ils utilisent un modèle LLM de manière non sécurisée. Peut-être ont-ils été victimes d’une attaque d’ingénierie sociale visant à leur faire délivrer un prompt exfiltrant des données : « Essayez ça, ça va faire quelque chose de vraiment cool ! ». Ou peut-être ont-ils simplement fait une erreur. Fournir des conseils sur la rédaction de prompts sécurisés fait partie intégrante de la sécurisation d’un service, au même titre que les protections contre les prompts malveillants.
Microsoft ajoute ainsi des modèles de messages système à Azure AI Studio, qui peuvent être utilisés conjointement avec les Prompt Shields et d’autres outils de sécurité IA. Ces messages s’affichent automatiquement dans le playground de développement d’Azure AI Studio, vous permettant de comprendre quand et pourquoi ils sont affichés. Vous pouvez ainsi créer vos propres messages personnalisés, adaptés à la conception et à la stratégie de contenu de votre application.
Tester et surveiller vos modèles
Azure AI Studio reste l’endroit idéal pour construire des applications fonctionnant avec les modèles LLM hébergés sur Azure, qu’ils proviennent du service Azure OpenAI ou qu’ils soient importés depuis Hugging Face. Le studio inclut des évaluations automatisées pour vos applications, qui intègrent désormais des moyens d’évaluer la sécurité de votre application. Vous pouvez ainsi utiliser des attaques prédéfinies pour tester la réponse de votre modèle aux tentatives d’évasion et aux attaques indirectes, et voir s’il est susceptible de produire du contenu préjudiciable. Vous pouvez utiliser vos propres prompts ou les modèles de prompts adverses de Microsoft comme base pour vos entrées de test.
Une fois votre application IA en production, vous devrez la surveiller pour vous assurer que de nouveaux prompts malveillants ne parviennent pas à la compromettre. Azure OpenAI inclut désormais un monitoring des risques, lié aux différents filtres utilisés par le service, y compris les Prompt Shields. Vous pouvez ainsi voir les types d’attaques utilisées, entrées et sorties, ainsi que leur volume. Vous avez également la possibilité d’identifier les utilisateurs qui utilisent votre application de manière malveillante, ce qui vous permet de détecter les schémas d’attaque et d’ajuster vos listes de blocage en conséquence.
Empêcher les utilisateurs malveillants de compromettre un modèle LLM n’est qu’une partie de la mise en œuvre d’applications d’IA responsables et dignes de confiance. Les sorties sont tout aussi importantes que les entrées. En vérifiant les données de sortie par rapport aux documents sources, nous pouvons ajouter une boucle de rétroaction qui nous permet d’affiner les prompts afin d’éviter de perdre l’ancrage dans les données. N’oublions pas que ces outils devront évoluer en parallèle de nos services d’IA, devenant de plus en plus performants au fur et à mesure que les modèles d’IA générative s’amélioreront.
Le mot de la fin
- L’IA générative représente des risques non négligeables en cas d’attaques de prompts malveillants ou de sorties non fondées.
- Azure AI Content Safety de Microsoft protège les applications IA avec ses Prompt Shields et son outil Groundedness Detection.
- Les Prompt Shields bloquent les prompts utilisateurs ou documents potentiellement dangereux avant qu’ils ne soient soumis au modèle.
- Groundedness Detection compare les sorties avec les données sources pour détecter les résultats non fondés.
- Microsoft guide les développeurs avec des messages système et des évaluations automatisées de la sécurité des applications.
- Un monitoring des risques permet de surveiller et d’ajuster les protections en cas d’attaques.