Database
 sql >> Base de données >  >> RDS >> Database

Comment classer, trouver et masquer les PII dans les bases de données…

Une fois qu'ils ont établi leurs connexions à la base de données, les utilisateurs d'IRI FieldShield et d'IRI DarkShield disposent tous deux d'un large éventail d'options pour classer, rechercher et anonymiser les données sensibles sur un ou plusieurs schémas. Ils peuvent désormais atteindre tous ces objectifs en même temps grâce à des fonctions basées sur des règles dans IRI Workbench.

Cet article explique étape par étape l'utilisation de classes de données pour rechercher et masquer des PII dans un petit schéma de base de données relationnelle à l'aide de FieldShield, bien que vous puissiez étendre ces étapes à des schémas plus grands ou plus nombreux. Si votre base de données contient des colonnes semi-structurées ou non structurées, consultez cet article sur les procédures de masque de recherche de classification de DarkShield pour les RDB, ou cet article pour les bases de données NoSQL.

Dans les opérations RDB de colonne structurée FieldShield, les données sont généralement classées un schéma à la fois, mais sont masquées globalement à l'aide de vos règles enregistrées, ad hoc ou planifiées pour les mises à jour.

Les règles de masquage des données que vous définissez vous permettent de sélectionner la fonction la mieux adaptée à chaque classe de données, et de l'appliquer de manière cohérente. La production du même résultat de texte chiffré unique pour chaque valeur de texte brut d'origine unique - dans n'importe quelle table ou fichier - préserve également l'intégrité référentielle ; par exemple, les jointures fonctionneront toujours après le masquage des données.

Cet exemple utilise des exemples de tables Oracle dans le schéma SCOTT fourni dans notre bac à sable VM. Pour vous connecter à une autre base de données, vous devez configurer :

  • Le profil de connexion DTP pour votre base de données dans IRI Workbench à l'aide de JDBC
  • DSN ODBC pour cette base de données source

Pour plus d'informations sur la connexion de vos bases de données à utiliser avec FieldShield, consultez Configuration de la base de données ici.

Les étapes que je vais décrire sont :

  1. Configuration – Définir les classes de données et les règles de masquage
  2. Scan – Exécutez l'assistant de recherche de classe de données de schéma
  3. Réviser et ajuster – Éditeur de bibliothèque de classes de données
  4. Masque :exécutez l'assistant de masquage de la base de données de classes de données

Il existe également une série de vidéos liées ici avec des instructions similaires étape par étape.

Configuration – Définir les classes de données et les règles de masquage

Pour utiliser des classes de données avec des règles et des assistants, les classes de données doivent d'abord être définies et enregistrées. Cela peut être fait via Window> Preferences> IRI> Data Classes and Groups . Consultez cet article sur la classification des données dans IRI Workbench pour une plongée plus approfondie. Il existe également des didacticiels vidéo pour la configuration de la classification des données et les règles de masquage.

Les classes de données peuvent correspondre aux colonnes soit par nom de colonne (la classe EMAIL correspond à une colonne nommée EMAIL) soit en faisant correspondre les données contenues dans la colonne. Cet exemple a des classes qui ont soit une expression régulière, soit un fichier set. Un fichier d'ensemble contient des entrées qui servent de recherche dans le dictionnaire.

Sur cette page de préférences, confirmez que ces classes de données existent :

  • Classe CREDIT_CARD qui utilise \b((4\d{12}(\d{3}) ?))|(?:5[1-5][0-9]{2}|222[1-9] |22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|( 3[47]\d{13})|(3(0[0-5]|[68]\d)\d{11})|(6(011|5\d{2})\d{12 })|((2131|1800|35\d{3})\d{11})|(8\d{15})\b en tant que matcher.
  • Classe EMAIL qui utilise \b[\w._%+-]+@[\w.-]+\.[A-Za-z]{2,4}\b
  • Classe PHONE_US qui utilise ^(\+?(1)([ .-]?)?)?(\(?([2-9]\d{2})\)?([ .-]?) ? )([2-9]\d{2})([ .-] ?)(\d{4})([ #eExXtT]*)(\d{2,6}) ?&
  • Classe PIN_US qui utilise \b([0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4})\b
  • Classe LAST_NAME qui utilise le fichier d'ensemble C:/IRI/cosort100/sets/names/names_last.set

Si ce n'est pas le cas, cliquez sur Restaurer les paramètres par défaut .

En haut de la page des préférences, se trouve une entrée Matching Threshold . Cela représente le pourcentage de correspondances requises pour qu'une colonne se voie attribuer une classe de données. La recherche de schéma analysera des blocs de données de 4 ko jusqu'à ce que les correspondances atteignent ce seuil. S'il n'atteint jamais ce seuil, aucune classe de données n'est attribuée.

Parce que je sais que j'ai des colonnes qui contiennent des noms de famille qui peuvent ne pas s'appeler "LAST_NAME" ou qui peuvent même ne pas avoir de données correspondantes dans le fichier défini, je peux utiliser une expression régulière pour faire correspondre ma classe de données pour aimer les noms de colonne. Par exemple, il peut y avoir une colonne nommée LNAME ou LASTNAME.

Pour modifier la classe de données LAST_NAME, cliquez sur l'entrée LAST_NAME dans la vue Classes de données et cliquez sur Modifier . Changez son nom en L(AST) ?[_-]?NAME (trait de soulignement et tiret entre parenthèses). Cliquez sur OK . Cliquez sur Appliquer et fermer .

Vous devez déterminer à l'avance comment vous souhaitez que les valeurs de chaque classe de données soient masquées (c'est-à-dire leur format de colonne cible), afin de pouvoir ensuite définir ces règles. Dans notre exemple, il y aura des règles de rédaction, de cryptage préservant le format et de pseudonymisation. Chacun n'a besoin d'être défini qu'une seule fois, dans le menu IRI.

Pour définir ces règles dans cet exemple, suivez ces étapes :

Règle 1 – Caviardage (pour les numéros de sécurité sociale)

  1. Sélectionnez le menu IRI> Nouvelle règle .
  2. Sélectionnez Règles de champ et cliquez sur Suivant .
  3. Sélectionnez la fonction de masquage , utilisez SSN pour le début du nom de la règle afin qu'il lise SSNRedactionRule, puis cliquez sur Suivant .
  4. Sélectionnez le Définir le masque bouton radio. Tapez 1 en position de départ et 5 en Longueur . Cliquez sur Ajouter au tableau et Terminer .

Règle 2 – Chiffrement (pour les numéros de compte de carte de crédit, les adresses e-mail et les numéros de téléphone)

  1. Sélectionnez le menu IRI> Nouvelle règle .
  2. Sélectionnez Règles de champ et cliquez sur Suivant .
  3. Sélectionnez Fonctions de chiffrement et de déchiffrement et cliquez sur Suivant . Ne renommez pas la règle.
  4. Sélectionnez le enc_fp_aes256_alphanum choix à gauche. Entrez secret pour la phrase de passe . Consultez cette page sur les options de gestion des clés de chiffrement.
  5. Cliquez sur Terminer .

Règle 3 – Pseudonymisation (pour les noms de famille)

  1. Sélectionnez le menu IRI> Nouvelle règle .
  2. Sélectionnez Règles de champ et cliquez sur Suivant .
  3. Sélectionnez Remplacement de pseudonyme , renommez-le LNamePseudonymRule, puis cliquez sur Suivant .
  4. Cliquez sur Utiliser votre propre liste de pseudonymes , et Parcourir au fichier de recherche, C:/git/workbench-demos/Database_Classification_Masking/sets/lnames.set
  5. Sélectionnez Utiliser le tirage au sort à partir de la liste des pseudonymes . Notez qu'une pseudonymisation récupérable est également possible, mais est plus compliquée en raison des modifications probables de vos données source.
  6. Cliquez sur Terminer .

Maintenant que nos règles de masquage de classe de données sont définies, nous pouvons effectuer des opérations de recherche et de masquage pour trouver et corriger les données globalement sur un ou plusieurs schémas de base de données.

Scan – Exécutez l'assistant de recherche de classe de données de schéma

Pour trouver toutes les données conformes à nos définitions de classes dans toutes les tables d'un schéma, utilisez l'assistant Schema Data Class Search Wizard. Cela produit un rapport de chaque table et colonne avec les PII pré-classifiés à l'intérieur, crée un fichier de classe de données spécifique à votre projet et ouvre un éditeur de formulaire pour ce fichier. Dans cette boîte de dialogue d'édition (notre étape suivante), vous pouvez revoir et modifier vos définitions de classes de données et de règles de masquage avant de passer au masquage global des données à l'étape finale.

Vous pouvez exécuter l'assistant à partir du groupe de menus Data Discovery dans la barre d'outils IRI Workbench. Vous pouvez également exécuter l'assistant de recherche directement à partir de l'explorateur de source de données, pour préremplir l'assistant avec un schéma sélectionné. Cliquez avec le bouton droit sur le schéma SCOTT dans l'explorateur de sources de données (DSE) et sélectionnez IRI > Recherche de classe de données de schéma .

Sur la page de configuration de l'assistant de recherche, entrez l'emplacement d'enregistrement du fichier de classe de données. Il ne peut y avoir qu'un seul fichier de ce type dans chaque projet, d'où le statut en lecture seule du champ de nom. Laissez les valeurs par défaut telles quelles. Cliquez sur Suivant .

La page d'entrée indique qu'un schéma est sélectionné. Cliquez sur Suivant . La page suivante vous permet de limiter les colonnes recherchées par types de données. Inclure NUMERIC , puis cliquez sur Suivant .

La page Exclure des éléments vous permet d'exclure des tables ou des colonnes pendant l'analyse. Cliquez sur Suivant .

La page des classes de données vous permet de filtrer les classes de données qui seront utilisées lors de l'analyse. Sélectionnez uniquement CREDIT_CARD , E-MAIL , L(AST) ?[_-]?NAME, PHONE_US , et PIN_US . Cliquez sur Terminer .

Parallèlement aux rapports, cela crée (ou ajoute) une bibliothèque de classes de données avec des mappages entre les colonnes source et les classes de données. L'éditeur de formulaire qui s'ouvre permet d'affecter des règles aux résultats.

Cette recherche dans 46 tableaux a donné 18 correspondances de colonnes, que je sais être pour la plupart, mais pas entièrement complètes :

Je sais que quelques colonnes ne correspondent pas car les tables sont vides ou les noms ne trouvent pas de correspondance dans les fichiers définis. À l'étape suivante, je peux corriger ces échecs et confirmer mes règles de masquage table par table.

Vérifier et ajuster – Éditeur de bibliothèque de classes de données

Maintenant que les résultats de la recherche sont ouverts dans la fenêtre d'édition du formulaire de la bibliothèque de classes de données, vous pouvez examiner et modifier les règles de colonne au niveau de la table et éliminer les tables vides dans le schéma avec des noms de colonne correspondant à vos noms de classe de données. Tout cela permet de confirmer que vous êtes correctement configuré pour le travail de masquage en masse à suivre.

Notez que cette vue prend également en charge les résultats de recherche de fichiers plats (classe de données de répertoire) ainsi que les résultats de recherche de votre base de données. En joignant ces résultats à votre bibliothèque de classes de données, il est plus facile de conserver les mêmes fonctions de masquage (règles) dans des sources de données disparates. Cela permet de maintenir l'intégrité référentielle et de tester la cohérence des données dans des environnements d'application plus distribués.

Cliquez sur une source de données (table) pour afficher les détails de cette source et un aperçu des données qu'elle contient. Si une correspondance avec une classe de données a été établie, cette colonne affiche cette classe et comment elle a été mise en correspondance.

Dans le cas de ma table PERSONS ci-dessous, vous pouvez voir que :toutes les valeurs de colonne SSN correspondaient au modèle RegEx de ma classe de données PIN_US, et les colonnes LASTNAME et CREDIT_CARD correspondaient à leurs noms de classe de données, excluant le besoin de ces analyses de colonne.

Les modifications des mappages de classes de données peuvent être effectuées soit en modifiant la classe de données via une liste déroulante, soit en désélectionnant la colonne pour supprimer complètement le mappage. Si une table est vide, il se peut qu'elle n'attribue pas tous les mappages souhaités. Il existe trois façons de gérer cela :

  1. Vous pouvez ajouter les tables à la page d'exclusion dans l'assistant de classification ci-dessus afin qu'elles ne soient pas ajoutées à la bibliothèque de classes de données
  2. Si la table peut contenir des données à l'avenir, affectez les classes de données manuellement ici. Alors soit
    • Décochez-les dans l'assistant de masquage
    • Laissez-les et l'assistant de masquage créera des scripts de travail qui s'exécutent mais ne masquent pas
  3. ou supprimez la source de données de la bibliothèque de classes de données

Dans cet exemple, sélectionnez les sources de données suivantes et cliquez sur Supprimer puisqu'ils sont vides ou n'ont pas besoin d'être masqués :

   SCOTT.DEMO_ROWGEN
   SCOTT.DM_EMPLOYEES
   SCOTT.PATIENT_RECORD_ENCRYPTED

Il faut veiller à vérifier les résultats dans la bibliothèque de classes de données avant le masquage. Parfois, des correspondances sont manquées parce que les données ne sont pas valides ou que le comparateur de classe de données doit être modifié. Il est également possible que des faux positifs se produisent.

Dans cet exemple, une classe de données doit être attribuée manuellement car les formats d'adresse e-mail et de numéro de téléphone américain ne sont pas valides, mais nous souhaitons quand même masquer ces colonnes. Nous pouvons sélectionner et classer cette colonne dans :

   SCOTT.EMPLOYEES.PHONE_NUMBER> PHONE_US

Une fois les résultats examinés et modifiés au besoin, cliquez sur les classes de données dans la bibliothèque à gauche pour attribuer des règles par défaut. Cela vous permettra d'attribuer les règles à toutes les sources en attribuant simplement une règle par défaut à une classe.

Dans cet exemple, j'ai affecté mes règles de masquage aux classes de données de la bibliothèque comme suit :

   CREDIT_CARD> FieldEncryptionRule
   EMAIL > Règle de chiffrement de champ
   L(AST) ?[_-]?NAME > LNamePseudonymRule
   PHONE_US> Règle de chiffrement de champ
   PIN_US> Règle de masquage SSNR

Vous pouvez vérifier que vos affectations de règles globales se sont propagées entièrement et correctement dans les sources de données en examinant les règles de masquage dans chacune. Par exemple, dans la table SCOTT.PERSONS affichée en premier ci-dessus avec des règles, nous avons maintenant :

S'il manque une règle à une colonne d'une table particulière ou si une règle différente est nécessaire, cette règle peut être ajoutée ou modifiée après l'application des règles par défaut en les adressant dans chaque source de données.

Masque – Exécutez l'assistant de masquage de la base de données de classes de données

Une fois que vous avez vérifié que les bonnes règles de masquage sont affectées à vos classes de données, vous êtes prêt à les appliquer globalement.

Faites un clic droit sur iriLibrary.dataclass objet dans votre dossier de projet dans l'arborescence de l'explorateur de projet IRI Workbench, puis sélectionnez IRI> Nouvelle tâche de masquage de base de données de classe de données . Dans la première page de l'assistant, vérifiez que le dossier du projet est l'endroit où votre classe de données et votre bibliothèque de règles ont été enregistrées, puis nommez la tâche. Sélectionnez la Afficher la page de résumé pour voir les détails de la tâche.

L'assistant permet de mettre à jour les résultats masqués dans l'onglet Identique tables sources (pour les masquer statiquement), en Different des tables cibles ou des fichiers plats (recommandé) afin que vous puissiez d'abord valider les résultats et les charger dans les cibles. Modifier la sortie aux fichiers plats et cliquez sur Suivant .

Sur la page Filtre de classe de données, laissez toutes les classes de données sélectionnées. Cliquez sur Suivant . Sur la page Sources de données, laissez tous les éléments sélectionnés. S'il y avait des tables sur lesquelles vous ne vouliez pas exécuter la tâche, vous devez les désélectionner ici.

Comme j'ai choisi d'afficher l'écran récapitulatif, je peux vérifier le travail :

avant de cliquer sur Terminer .

Les scripts sont ensuite créés et un organigramme est ouvert pour illustrer l'ensemble du travail, qui est également sérialisé sous forme de fichier batch Windows (ou Unix). Chaque table qui aura une colonne masquée est représentée par un bloc de mappage de transformation marron, qui est sérialisé dans un script de tâche.

Passez en revue les opérations de masquage en double-cliquant sur les blocs de mappage de transformation et en examinant les lignes orange vers les cibles. Ceux-ci indiquent que les colonnes sont modifiées à partir de l'entrée.

Cliquez dans les champs à droite de la ligne orange et affichez la vue des propriétés en bas de l'écran. L'instruction Advanced Field indique la transformation (fonction de masquage) appliquée.

Une fois que vous êtes à l'aise avec le travail de masquage qui a été créé, exécutez-le. Dans la new_classProtection dossier, cliquez avec le bouton droit sur new_classProtection.bat fichier et sélectionnez Exécuter en tant que> Programme par lots .

Le travail s'exécute sur la ligne de commande et les fichiers de sortie masqués peuvent être ouverts pour examen à partir de votre dossier de projet ou de votre système de fichiers. En effet, après l'exécution de l'opération par lots, tous les scripts de tâche de masquage et les sorties de fichier plat sont affichés dans mon nouveau dossier de travail.

La capture d'écran ci-dessous montre ceux de gauche, l'état avant et après l'une de mes tables, PERSONS, au centre, et les instructions de tâche spécifiques sous forme de script et de plan à droite. Voyez comment les trois colonnes classées et affectées par des règles dans ce tableau ont été masquées comme prévu :

Une fois la tâche de masquage par lots exécutée, vous pouvez revérifier les résultats avant de :

  1. chargez-les dans des tables dans IRI Workbench (qui peut créer automatiquement des fichiers de chargeur) ;
  2. modifiez le travail pour apporter des modifications ; et/ou 
  3. réexécutez l'assistant pour diriger la sortie vers les tables à la place.

Ces tâches de masquage s'exécutent sur la ligne de commande et peuvent être déclenchées ou planifiées pour l'actualisation des données et l'archivage automatique. Contactez-nous si vous avez des questions ou avez besoin d'aide concernant tout aspect de ce processus de configuration de bout en bout ou de son déploiement.

  1. Pour exclure la possibilité de résultats de recherche faussement positifs sur les numéros de carte de crédit et d'identification nationale, vous pouvez effectuer automatiquement une vérification de la validité informatique lors des recherches via des valeurs de correspondance de modèle. Sélectionnez ou créez un script de validation de classe de données à associer à la définition de classe de données.
  2. Si vous utilisez FieldShield dans Voracity, vous pouvez simultanément ou ultérieurement trier ces fichiers sur la clé d'index primaire de la table cible pour accélérer les chargements en bloc et les requêtes courantes.