Remarques relatives aux données sensibles des ensembles de données de machine learning

Lorsque vous développez un programme de machine learning (ML), il est important de trouver un juste équilibre entre l'accès aux données dans votre entreprise et les incidences que cet accès peut avoir en termes de sécurité. Vous souhaitez que les insights contenus dans l'ensemble de données brutes guident les tâches d'entraînement de ML, même si l'accès aux données sensibles est limité. Pour atteindre ces deux objectifs, il est utile d'entraîner les systèmes de ML sur un sous-ensemble de données brutes ou sur l'intégralité de l'ensemble de données après l'application partielle de diverses techniques d'agrégation ou d'obscurcissement.

Par exemple, vous souhaiterez peut-être que vos ingénieurs en données entraînent un modèle de ML afin de prendre en compte les commentaires des clients sur un produit, mais sans qu'ils sachent qui a envoyé les commentaires. Toutefois, des informations telles que l'adresse de livraison et l'historique des achats sont essentielles pour l'entraînement du modèle de ML. Une fois que les données auront été fournies aux ingénieurs, ces derniers devront les interroger à des fins d'exploration. Avant de les rendre disponibles, il est donc important de protéger les champs de données sensibles. Ce type de dilemme est également courant dans les modèles de ML faisant intervenir des moteurs de recommandations. Pour créer un modèle qui renvoie des résultats propres à un utilisateur, vous devez généralement accéder aux données qui concernent exclusivement ce dernier.

Heureusement, vous pouvez utiliser des techniques pour supprimer certaines données sensibles de vos ensembles de données tout en continuant à entraîner efficacement des modèles de ML. Cet article vise à présenter certaines stratégies permettant d'identifier et de protéger les informations sensibles. Il décrit également des processus qui peuvent vous aider à résoudre les problèmes de sécurité que vous êtes susceptible de rencontrer avec vos données de ML.

Gérer les informations sensibles

Les informations sensibles correspondent à toutes les données que votre conseiller juridique et vous-même souhaitez protéger avec des mesures de sécurité supplémentaires telles que les restrictions d'accès ou le chiffrement. Par exemple, on considère généralement comme sensibles des champs tels que le nom, l'adresse e-mail, les informations de facturation, ou les éléments pouvant permettre à un ingénieur en données ou à un individu malveillant de déduire indirectement les informations sensibles.

Des normes telles que HIPAA et PCI-DSS spécifient un ensemble de bonnes pratiques pour la protection des données sensibles tout en informant les clients de la manière dont ces données sont censées être gérées. Ces certifications permettent aux clients de prendre des décisions avisées concernant la sécurité de leurs informations.

La gestion des données sensibles contenues dans les ensembles de données de machine learning peut s'avérer difficile pour les raisons suivantes :

  • La plupart des mécanismes de sécurité basés sur des rôles sont axés vers le concept de propriété. Cela signifie que l'utilisateur peut voir et/ou modifier ses propres données, mais qu'il lui est impossible d'accéder à des données ne lui appartenant pas. Le concept de propriété disparaît avec les ensembles de données ML qui regroupent les données de nombreux utilisateurs. Les ingénieurs de données doivent essentiellement pouvoir consulter un ensemble complet de données pour travailler efficacement.
  • Le chiffrement des champs sensibles ou la réduction de leur résolution sont souvent utilisés à titre préventif, mais ne s'avèrent pas toujours suffisants pour un ensemble de données de ML. L'ensemble de données agrégé fournit souvent le moyen de forcer le chiffrement par le biais d'attaques par analyse de fréquence.
  • La tokenisation aléatoire, la suppression ou la dissimulation des champs sensibles de l'ensemble de données peut altérer l'entraînement des modèles de ML en masquant les données nécessaires, ce qui nuit aux performances de vos prédictions.

Les entreprises développent souvent des outils et des bonnes pratiques afin de trouver un juste équilibre entre sécurité et utilité. Pour protéger les informations sensibles contenues dans les ensembles de données de ML, gardez à l'esprit les trois objectifs ci-dessous, qui sont décrits dans le reste du présent document.

  • Identifiez les données sensibles dans l'ensemble de données avec un niveau de fiabilité élevé.
  • Protégez les données sensibles sans nuire au projet. La suppression, le masquage ou l'anonymisation des données que vous avez identifiées comme étant sensibles permet d'atteindre cet objectif.
  • Créez un plan de gouvernance et documentez les bonnes pratiques. De cette façon, vos ingénieurs en données et vos clients peuvent prendre des décisions appropriées concernant vos données sensibles, en particulier dans le cas où ces dernières ne peuvent pas être identifiées, masquées ni supprimées de manière fiable.

Ces trois objectifs sont décrits en détail dans les sections suivantes, qui se concentrent essentiellement sur des scénarios où vos ensembles de données restent privés au sein de votre entreprise. Cet article ne traite pas des cas où les ensembles de données doivent être partagés publiquement.

Identifier les données sensibles

Les données sensibles peuvent être présentes dans votre environnement sous plusieurs formes. Les sections suivantes décrivent cinq des scénarios les plus courants et présentent les méthodes permettant d'identifier les données sensibles dans chacun d'eux.

Données sensibles dans des colonnes

Les données sensibles peuvent être concentrées dans des colonnes spécifiques des ensembles de données structurés. Par exemple, un ensemble de colonnes peut contenir le prénom, le nom et l'adresse postale d'un utilisateur. Dans ce cas, vous devez identifier les colonnes comportant des données sensibles, déterminer la manière dont vous allez les protéger et documenter ces décisions.

Données sensibles dans des ensembles de données textuels non structurés

Les données sensibles peuvent faire partie d'un ensemble de données textuel non structuré. Elles sont alors généralement détectables à l'aide de modèles connus. Par exemple, les numéros de carte de crédit peuvent être identifiés de manière fiable dans les transcriptions de chat à l'aide d'un modèle courant d'expression régulière s'appliquant à ce type de données. Il est possible de limiter les erreurs de détection des expressions régulières, qui génèrent des classifications erronées, à l'aide d'outils plus complexes tels que l'API Cloud Data Loss Prevention (DLP).

Données sensibles dans des données non structurées de forme libre

Des données sensibles peuvent être présentes dans des données non structurées de forme libre telles que des rapports textuels, des enregistrements audio, des photographies ou des reçus numérisés. Ces ensembles de données compliquent considérablement l'identification de vos données sensibles. Toutefois, de nombreux outils peuvent vous aider dans cette tâche.

  • Pour les documents en texte libre, vous pouvez utiliser un système de traitement du langage naturel tel que l'API Cloud Natural Language pour identifier les entités, les adresses e-mail et d'autres données sensibles.
  • Pour les enregistrements audio, vous pouvez faire appel à un service de reconnaissance vocale tel que l'API Cloud Speech, puis appliquer le processeur de langage naturel.
  • Pour les images, vous pouvez utiliser un service de détection de texte tel que l'API Cloud Vision pour générer du texte brut à partir d'une image et repérer l'emplacement du texte dans l'image. L'API Vision peut fournir les coordonnées des emplacements de certains éléments ciblés sur les images. Vous pouvez par exemple utiliser ces informations pour masquer tous les visages visibles sur les images d'une file d'attente de caisse avant d'entraîner un modèle de machine learning pour évaluer le temps d'attente moyen des clients.
  • Pour les vidéos, vous avez la possibilité d'analyser chaque vidéo sous la forme d'images individuelles et de les traiter comme des fichiers image. Vous pouvez également utiliser un outil de traitement vidéo tel que l'API Cloud Video Intelligence, en l'associant à l'API Cloud Speech pour traiter les données audio.

Ces techniques restent soumises à l'examen et à l'approbation de votre propre conseiller juridique. Elles dépendent de la capacité de vos systèmes à traiter du texte libre, à transcrire des données audio, à interpréter des images et à segmenter des vidéos afin d'identifier des données sensibles potentielles. Les API Google répertoriées ci-dessus ainsi que Cloud DPL sont des outils puissants que vous pouvez intégrer à votre pipeline de prétraitement. Toutefois, ces méthodes automatisées ne sont pas parfaites. Vous souhaiterez peut-être conserver des règles de gouvernance pour gérer toutes les informations sensibles qui subsistent après le nettoyage des données.

Données sensibles dans une combinaison de champs

Les données sensibles peuvent être présentes sous la forme d'une combinaison de champs ou se manifester à partir d'une tendance observée au fil du temps dans un champ protégé. Par exemple, une pratique couramment utilisée pour réduire la probabilité d'identification d'un utilisateur consiste à flouter les deux derniers chiffres du code postal de sorte que ce dernier comporte trois chiffres au lieu de cinq ("zip3"). Toutefois, en combinant les codes postaux à trois chiffres associés à l'adresse professionnelle et à l'adresse personnelle, on peut parvenir à identifier les utilisateurs ayant une combinaison d'adresses inhabituelle. De même, l'observation d'une tendance au fil du temps concernant le code postal à trois chiffres de l'adresse personnelle peut suffire à identifier une personne qui a déménagé plusieurs fois.

Des compétences dans le domaine des statistiques sont nécessaires pour déterminer si un ensemble de données est réellement protégé contre les attaques par analyse des fréquences. Tout scénario dépendant d'experts humains pose des difficultés en termes d'évolutivité. L'ingénieur qui a nettoyé les données peut paradoxalement être amené à examiner les données brutes à la recherche d'éventuels problèmes. Idéalement, il convient de créer des moyens automatiques d'identification et de quantification de ce risque. Cette tâche n'est pas décrite dans le présent article.

Quoi qu'il en soit, vous devez collaborer avec votre conseiller juridique et vos ingénieurs en données pour évaluer les risques auxquels vous vous exposez dans ces scénarios.

Données sensibles dans du contenu non structuré

Les données sensibles résident parfois dans du contenu non structuré en raison de la présence d'informations contextuelles intégrées. Par exemple, une transcription de chat peut inclure les phrases suivantes : "J'ai appelé hier depuis mon bureau. J'ai dû me rendre dans le hall du dix-huitième étage, près du Café Deluxe Espresso, car la réception mobile est mauvaise au quatrième."

En fonction du contexte et du champ d'application de vos données d'entraînement, ainsi que de l'avis de votre conseiller juridique, vous souhaiterez peut-être filtrer certains aspects de ce contenu. La nature non structurée de ce dernier et les nombreuses combinaisons complexes de phrases peuvent générer des inférences similaires. Il est donc difficile de traiter ce scénario avec des outils de programmation. En revanche, il convient d'envisager la mise en place de règles de gouvernance plus strictes pour gérer l'accès à l'ensemble de données non structuré complet.

Il s'avère souvent utile de recueillir un sous-échantillon de ces données préalablement nettoyé et examiné par une personne de confiance et de le rendre disponible pour le développement de modèles. Vous pouvez ensuite avoir recours à des restrictions de sécurité et à l'automatisation logicielle pour traiter l'ensemble de données complet via le processus d'entraînement des modèles de production.

Protéger les données sensibles

Après avoir identifié vos données sensibles, vous devez déterminer comment les protéger.

Supprimer les données sensibles

Si des informations propres aux utilisateurs ne sont pas nécessaires pour votre projet, vous pouvez les supprimer de l'ensemble de données avant qu'elles ne soient fournies aux ingénieurs qui créent votre modèle de ML. Toutefois, comme indiqué précédemment, la suppression des données sensibles réduit parfois considérablement la valeur de l'ensemble de données. Les données sensibles doivent alors être masquées à l'aide d'une ou de plusieurs des techniques décrites dans la section "Masquer les données sensibles".

En fonction de la structure de l'ensemble de données, la suppression des données sensibles requiert différentes approches :

  • Lorsque les données sont limitées à certaines colonnes dans les ensembles de données structurées, vous pouvez créer une vue qui ne permet pas l'accès aux colonnes en question. Les ingénieurs ne peuvent donc pas visualiser ces informations. En même temps, elles demeurent disponibles dans l'ensemble de données. Aucune intervention humaine n'est nécessaire pour les anonymiser en vue de l'entraînement continu.
  • Lorsque les données sensibles font partie d'un contenu non structuré et sont identifiables à l'aide de modèles connus, elles peuvent être automatiquement supprimées et remplacées par une chaîne générique. Voilà comment Cloud DPL relève le défi.
  • Lorsque les données sensibles existent au sein d'images, de vidéos, de fichiers audio ou sous une forme non structurée, vous pouvez élargir le champ d'action des outils que vous avez déployés pour identifier les données sensibles dans le but de les masquer ou de les supprimer.
  • Lorsque les données sensibles existent en raison d'une combinaison de champs et que vous avez incorporé des outils automatisés ou des étapes d'analyse manuelle des données pour quantifier le risque posé par chaque colonne, vos ingénieurs en données peuvent prendre des décisions avisées concernant la conservation ou la suppression d'une colonne spécifique.

Masquer les données sensibles

Lorsqu'il est impossible de supprimer les champs de données sensibles, vos ingénieurs peuvent encore entraîner efficacement des modèles une fois que ces données ont été masquées. S'ils déterminent que tout ou partie des champs de données sensibles peuvent être masqués sans que cela affecte le processus d'entraînement de ML, plusieurs techniques de masquage peuvent être utilisées.

  • L'approche la plus courante consiste à employer un algorithme de chiffrement de substitution, qui a pour effet de remplacer toutes les occurrences d'un identifiant en texte brut par la valeur hachée et/ou chiffrée correspondante. Une bonne pratique généralement reconnue consiste à utiliser un hachage de chiffrement sécurisé, tel que SHA-256, ou un algorithme de chiffrement renforcé, tel que AES-256, pour stocker tous les champs sensibles. Gardez à l'esprit que l'utilisation d'un salage avec votre chiffrement ne permet pas de créer des valeurs réutilisables, ce qui peut nuire au processus d'entraînement de ML.

  • La tokenisation est une technique de masquage qui place une valeur factice à la place de la valeur réelle dans chaque champ sensible. Le mappage de la valeur factice avec la valeur réelle est chiffré/haché dans une base de données distincte qui est a priori plus sécurisée. Notez que cette méthode fonctionne uniquement avec les ensembles de données ML si la même valeur de jeton est réutilisée pour des valeurs identiques. Dans ce cas, elle s'apparente à un chiffrement par substitution et s'avère vulnérable aux attaques par analyse de fréquence. La principale différence réside dans le fait que la tokenisation offre une couche de protection supplémentaire en transférant les valeurs chiffrées dans une base de données distincte.

  • Une autre méthode de protection des données avec plusieurs colonnes utilise l'analyse en composantes principales (ACP) ou d'autres techniques de réduction de la dimensionnalité pour combiner plusieurs fonctionnalités, puis réaliser l'entraînement ML exclusivement sur les vecteurs ACP obtenus. Prenons par exemple trois champs différents, âge, fumeur (représenté par 1 ou 0), et poids. Il est possible que les données soient compilées dans une colonne ACP unique qui utilise l'équation suivante : 1,5âge+30fumeur+0,2*poids. Un individu âgé de 20 ans qui fume et pèse 65 kg génère la valeur 73. Cette valeur est identique à celle d'un individu de 30 ans, non-fumeur, pesant 140 kg.

    Cette méthode peut s'avérer assez fiable, car même si l'on identifie des individus uniques par certaines caractéristiques, il est difficile de déterminer sans une explication de la formule du vecteur ACP ce qui les rend uniques. Toutefois, toutes les opérations de traitement ACP réduisent la distribution des données et sacrifient la précision au profit de la sécurité.

Comme indiqué précédemment, il est parfois possible de forcer un algorithme de chiffrement de substitution en utilisant une connaissance a priori de la fréquence à laquelle différents identifiants apparaissent dans la pratique et en déduisant des inférences de l'occurrence réelle des divers identifiants chiffrés. Par exemple, la distribution des prénoms dans un ensemble de données public de prénoms de bébé peut être utilisée pour déduire l'ensemble de prénoms qui est susceptible de correspondre à un identifiant chiffré donné. Étant donné que des individus malveillants peuvent avoir accès à l'ensemble de données complet, le chiffrement, le hachage et la tokenisation sont vulnérables aux attaques par analyse des fréquences. La généralisation et la quantification utilisent un mappage "plusieurs à un" dans leur substitution. L'inférence correspondante est légèrement plus faible, mais demeure vulnérable à une attaque par analyse des fréquences. Étant donné que les ensembles de données de machine learning correspondent à un certain nombre de variables, l'attaque par analyse des fréquences peut utiliser des probabilités d'occurrences conjointes, ce qui rend potentiellement l'algorithme de chiffrement beaucoup plus facile à forcer.

Par conséquent, toutes les méthodes de masquage doivent être combinées à un mécanisme d'audit et de gouvernance efficace pour limiter l'accès à chaque ensemble de données de machine learning susceptible de contenir des données sensibles. Il s'agit, entre autres, des ensembles de données dans lesquels tous les champs sensibles ont été supprimés, chiffrés, quantifiés ou généralisés.

Anonymiser les données sensibles

L'anonymisation est une autre technique qui réduit la précision des données afin de rendre plus difficile l'identification des informations sensibles dans un ensemble de données, tout en offrant des avantages comparables à ceux que procure l'entraînement d'un modèle avec des données non traitées au moyen de cette méthode. Les champs ci-dessous sont particulièrement adaptés à cette approche.

  • Lieux : la densité de la population varie à travers le monde. Il est donc difficile de déterminer comment arrondir les coordonnées géographiques. Par exemple, les latitudes et longitudes exprimées en décimales et arrondies à l'unité près (par exemple : -90,3 ; dans à peu près 10 km) peuvent suffire à localiser les habitants de zones rurales comportant de grandes exploitations. Lorsque l'arrondi est insuffisant pour les coordonnées, vous pouvez utiliser les identifiants de lieu tels que la ville, la région ou le code postal. Ces derniers couvrent des zones plus vastes et compliquent l'identification d'un seul individu. Choisissez une taille de bucket suffisamment grande pour masquer de façon appropriée les caractéristiques spécifiques d'une ligne donnée.
  • Codes postaux : les codes postaux américains au format 5+4 permettent d'identifier un foyer, mais ils peuvent être anonymisés pour n'inclure que les trois premiers chiffres ("zip3"). Cette pratique limite la possibilité d'identifier un individu en particulier en plaçant plusieurs utilisateurs au sein d'un même bucket. Là encore, vous pouvez quantifier le risque, car des ensembles de données volumineux donnent lieu à des attaques de plus en plus sophistiquées.
  • Quantités numériques : il est possible d'appliquer un processus de binning aux nombres pour les empêcher d'identifier un individu en particulier. Par exemple, la date d'anniversaire précise n'est généralement pas requise. Il suffit d'indiquer la décennie ou le mois de naissance de l'utilisateur. Par conséquent, les âges, les dates de naissance et les champs numériques similaires peuvent être anonymisés par la substitution de plages.
  • Adresses IP : les adresses IP font souvent partie d'un workflow de machine learning impliquant des journaux d'applications, et elles sont souvent traitées comme des adresses physiques en termes de sensibilité des données. Une technique d'anonymisation appropriée consiste à remettre à zéro le dernier octet des adresses IPv4 (ou les 80 derniers bits si IPv6 est utilisé). Cette pratique a la même fonction que d'arrondir la latitude/longitude ou de limiter une adresse physique à un code postal, ce qui privilégie la sécurité au détriment de la précision géographique. Démarrez le processus d'anonymisation des adresses IP dès que possible dans le pipeline : vous pouvez même éventuellement modifier votre logiciel de journalisation pour masquer ou supprimer des adresses IP avant de les écrire sur le disque.

Mettre en place des règles de gouvernance

Si vos ensembles de données contiennent une grande quantité de données sensibles, il est recommandé de s'adresser à un conseiller juridique pour établir des règles de gouvernance et documenter les bonnes pratiques. C'est à vous de définir les détails de vos règles. Pour ce faire, de nombreuses ressources sont à votre disposition comme les bonnes pratiques pour le maintien de la conformité PCI DSS, édictées par le Conseil des normes de sécurité PCI, et les exigences relatives aux techniques de sécurité définies dans la norme ISO/IEC 27001:2013 que vous pouvez consultez sur cette page. La liste ci-dessous répertorie divers concepts courants que vous pouvez prendre en compte lorsque vous définissez votre cadre réglementaire.

  • Mettez en place un environnement sécurisé pour stocker la documentation relative à la gouvernance.
  • Ne tenez pas compte des clés de chiffrement, des fonctions de hachage ni d'autres outils de votre documentation.
  • Documentez toutes les sources connues de données sensibles entrantes.
  • Documentez tous les emplacements connus de stockage de données sensibles, ainsi que le type de données inclus. Tenez compte de toutes les mesures correctives prises pour protéger ces données.
  • Documentez les emplacements connus de données sensibles présentant des mesures correctives difficiles, irrégulières ou impossibles. Les cas susceptibles de donner lieu à des attaques par analyse de fréquence doivent être pris en compte.
  • Mettez en place un processus permettant de rechercher et d'identifier en permanence de nouvelles sources de données sensibles.
  • Documentez les rôles et (éventuellement) les noms des employés qui disposent d'un accès temporaire ou permanent aux données sensibles. Documentez la raison pour laquelle ces employés ont accès aux données.
  • Documentez les processus via lesquels les employés soumettent les demandes d'accès. Spécifiez les endroits où ils peuvent accéder aux données sensibles, s'ils peuvent les copier, par quels moyens et dans quels lieux, ainsi que toute autre restriction d'accès.
  • Mettez en place un processus pour examiner régulièrement la liste des individus autorisés à accéder aux données sensibles et pour déterminer si cet accès est toujours nécessaire. Indiquez les mesures à prendre dans le cadre d'un processus de départ lorsque les employés quittent l'organisation ou changent de rôles.
  • Mettez en place un processus pour communiquer les règles, les appliquer et les examiner régulièrement.

Étapes suivantes