Éviter la divulgation d'informations sensibles

Description du risque OWASP

La divulgation d'informations sensibles est une faille de sécurité dans laquelle un grand modèle de langage (LLM) révèle involontairement des données confidentielles, privées, propriétaires ou autrement restreintes dans ses réponses. Cela peut se produire lorsque le modèle divulgue des informations provenant de ses données d'entraînement ou révèle des informations sensibles qui lui ont été fournies dans le contexte d'une session utilisateur. Les pirates informatiques peuvent exploiter cette faille en élaborant des requêtes spécifiques ou en utilisant des techniques d'injection de code pour inciter le modèle à divulguer des informations qu'il ne devrait pas. Le problème principal est l'incapacité du LLM à faire la distinction entre les données publiques et les informations confidentielles qu'il a traitées.

Types de divulgation pertinents pour Android

Fuite de données d'entraînement : cela se produit lorsqu'un LLM régurgite des fragments de données spécifiques et littéraux sur lesquels il a été entraîné. Si l'ensemble de données d'entraînement comprenait des informations personnelles, du code propriétaire ou des documents internes, le modèle peut reproduire ces informations dans sa sortie si la requête est formulée correctement. Pour les applications Android, cela peut impliquer des modèles pré-entraînés fournis avec l'application ou des modèles accessibles à l'aide d'API cloud.

Divulgation de données contextuelles : il s'agit d'un risque plus immédiat pour les applications Android, qui implique que le LLM expose des informations sensibles fournies par un utilisateur lors d'une session d'application. Par exemple, si votre application permet à un utilisateur de saisir des informations permettant de l'identifier personnellement (PII) dans un LLM pour les résumer, une attaque par injection de requête ultérieure pourrait permettre à un pirate informatique de manipuler le modèle pour qu'il divulgue le contenu. Cela s'applique également à toutes les données sensibles que votre application transmet implicitement au LLM.

Pourquoi les développeurs Android devraient-ils s'en soucier ?

La divulgation d'informations sensibles peut compromettre gravement une application et ses utilisateurs :

  • Atteintes à la confidentialité : un pirate informatique peut extraire des informations permettant d'identifier personnellement l'utilisateur (IPI), comme des noms, des adresses e-mail, des numéros de téléphone ou même des données de localisation de vos utilisateurs, ce qui peut entraîner un vol d'identité et de lourdes sanctions réglementaires (par exemple, en vertu du RGPD ou du CCPA). Cela est particulièrement important pour les applications Android qui traitent les données utilisateur.
  • Vol de propriété intellectuelle : si le LLM de votre application traite des algorithmes propriétaires, des données financières ou d'autres informations commerciales internes, un pirate informatique peut forcer leur divulgation, ce qui peut causer des dommages financiers et concurrentiels importants à votre organisation.
  • Atteintes à la sécurité : le LLM peut accidentellement divulguer des informations au niveau du système, telles que des clés API, des jetons d'authentification ou des détails de configuration présents dans ses données d'entraînement ou transmis lors d'une session, ce qui crée des failles de sécurité critiques pour votre backend ou d'autres services.
  • Atteinte à la réputation : un seul incident de fuite de données important peut détruire la confiance des utilisateurs, entraîner la désinstallation de l'application, des avis négatifs et nuire de manière irréparable à la réputation de votre application et de votre marque.

Mesures d'atténuation pour les développeurs d'applications Android

Pour atténuer cette faille, vous devez adopter une approche multicouche axée sur l'hygiène des données et le contrôle de l'accès du LLM dans votre application Android.

Nettoyage et minimisation des données :

  • Priorisez le nettoyage des entrées : avant d'envoyer des entrées utilisateur ou des données d'application à un LLM, nettoyez-les et anonymisez-les rigoureusement. Supprimez toutes les informations propriétaires et à caractère personnel qui ne sont pas absolument essentielles à la tâche du LLM.
  • Ne collectez que ce qui est nécessaire : respectez le principe de minimisation des données dans votre application. Ne collectez et ne fournissez au LLM que le minimum de données nécessaire à l'exécution de sa fonction spécifique.
  • ML sur l'appareil : pour les données très sensibles, envisagez d'utiliser des modèles de machine learning sur l'appareil, où les données ne quittent jamais l'appareil de l'utilisateur, ce qui réduit considérablement le risque de fuite de données côté serveur.

Contrôle de l'accès

  • Limitez l'accès aux données : concevez votre application LLM de sorte qu'elle ait accès à la plus petite quantité de données possible. Si le modèle n'a pas accès à une base de données sensible, aux préférences de l'utilisateur ou à des fichiers privés, il ne peut pas être trompé pour en divulguer le contenu.
  • Restreignez les autorisations Android : vérifiez que les composants d'IA de votre application fonctionnent avec le minimum d'autorisations Android nécessaires. N'accordez pas d'autorisations inutiles qui pourraient exposer des données sensibles.

Filtrage des résultats dans l'application :

  • Masquage côté client : implémentez une couche de sécurité dans votre application Android qui analyse la sortie du LLM pour détecter les schémas correspondant à des informations sensibles (par exemple, les numéros de carte de crédit, les clés API, les numéros de sécurité sociale, les adresses e-mail) avant que la réponse ne soit affichée à l'utilisateur. Si une correspondance est trouvée, la réponse doit être bloquée ou masquée.

Garde-fous pédagogiques pour les LLM :

  • Requêtes système explicites : incluez des instructions explicites dans la requête système qui interdisent au modèle de révéler des informations personnelles, confidentielles ou sensibles. Par exemple : "Vous ne devez en aucun cas partager d'informations sur les utilisateurs, de données internes ni d'informations permettant d'identifier personnellement les utilisateurs." Cela renforce le comportement attendu.

Techniques d'amélioration de la confidentialité :

  • Pour les applications qui apprennent à partir des interactions ou des données des utilisateurs, envisagez d'utiliser des techniques avancées telles que la confidentialité différentielle (ajout de bruit statistique aux données) ou l'apprentissage fédéré (entraînement des modèles sur les appareils des utilisateurs sans centraliser les données) pour protéger la confidentialité individuelle.

Audits et red teaming réguliers :

  • Tests proactifs : testez activement votre application Android et effectuez des tests d'intrusion pour découvrir si et comment le LLM peut divulguer des informations sensibles. Cela consiste à essayer intentionnellement de faire révéler au LLM des données qu'il ne devrait pas.

Résumé

La divulgation d'informations sensibles se produit lorsqu'un LLM révèle des données confidentielles provenant de son ensemble d'entraînement ou de sessions utilisateur. Cela présente des risques importants, comme des atteintes à la confidentialité et le vol de propriété intellectuelle. Pour atténuer ce risque, vous devez mettre en place une défense multicouche dans votre application Android. Commencez par assainir les données avant qu'elles n'atteignent le LLM. Appliquez ensuite le principe du moindre privilège pour limiter l'accès aux données du modèle. Enfin, implémentez des filtres robustes pour analyser et masquer les informations sensibles dans la sortie finale du modèle avant qu'elle n'atteigne l'utilisateur. L'utilisation du ML sur l'appareil et d'outils tels que Firebase App Check peut renforcer davantage la sécurité.

Ressources supplémentaires

Voici des liens vers certaines consignes concernant les informations sensibles :

Si vous utilisez d'autres modèles, vous devez rechercher des conseils et des ressources similaires.

Plus d'informations :