Database
 sql >> Database >  >> RDS >> Database

Come classificare, trovare e mascherare le PII nei database...

Dopo aver stabilito le connessioni al database, gli utenti IRI FieldShield e IRI DarkShield hanno entrambi un'ampia gamma di opzioni per classificare, trovare e anonimizzare i dati sensibili in uno o più schemi. Ora possono realizzare tutti questi obiettivi contemporaneamente attraverso strutture basate su regole in IRI Workbench.

Questo articolo illustra passo passo l'uso delle classi di dati per trovare e mascherare le PII in uno schema di database relazionale di piccole dimensioni usando FieldShield, anche se è possibile estendere questi passaggi a schemi più grandi o più. Se il database contiene colonne semi o non strutturate, vedere questo articolo sulle procedure di classificazione-ricerca-maschera di DarkShield per i database RDB o questo articolo sui database NoSQL.

Nelle operazioni RDB su colonne strutturate FieldShield, i dati vengono generalmente classificati uno schema alla volta, ma vengono mascherati a livello globale utilizzando le regole salvate, ad hoc o programmate per gli aggiornamenti.

Le regole di mascheramento dei dati che definisci consentono di selezionare la funzione più adatta a ciascuna classe di dati e di applicarla in modo coerente. La produzione dello stesso risultato di testo cifrato univoco per ogni valore di testo in chiaro originale univoco, in qualsiasi tabella o file, preserva anche l'integrità referenziale; ad esempio, i join continueranno a funzionare anche dopo la mascheratura dei dati.

Questo esempio utilizza le tabelle Oracle di esempio nello schema SCOTT fornito nella nostra sandbox VM. Per connetterti a un altro database, dovresti configurare:

  • Il profilo di connessione DTP per il tuo DB in IRI Workbench utilizzando JDBC
  • Il DSN ODBC per quel DB sorgente

Per informazioni sulla connessione dei database da utilizzare con FieldShield, vedere Configurazione DB qui.

I passaggi che descriverò sono:

  1. Configurazione:definisci classi di dati e regole di mascheramento
  2. Scansione:esegui la ricerca guidata classe di dati dello schema
  3. Revisione e regolazione – Editor libreria di classi di dati
  4. Maschera:esegui la mascheratura guidata del database delle classi di dati

C'è anche una serie di video collegata qui con istruzioni dettagliate simili.

Impostazione:definizione di classi di dati e regole di mascheramento

Per utilizzare le classi di dati con regole e procedure guidate, è necessario prima definire e salvare le classi di dati. Questo può essere fatto tramite Finestra> Preferenze> IRI> Classi e gruppi di dati . Consulta questo articolo sulla classificazione dei dati in IRI Workbench per un'analisi più approfondita. Sono disponibili anche tutorial video per l'impostazione della classificazione dei dati e le regole di mascheramento.

Le classi di dati possono corrispondere alle colonne in base al nome della colonna (la classe EMAIL corrisponde a una colonna denominata EMAIL) o confrontando i dati contenuti nella colonna. Questo esempio ha classi che hanno un'espressione regolare o un file set. Un file set contiene voci che fungono da ricerca nel dizionario.

In quella pagina delle preferenze, conferma che esistono queste classi di dati:

  • Classe CREDIT_CARD che utilizza \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 come matcher.
  • Classe EMAIL che utilizza \b[\w._%+-]+@[\w.-]+\.[A-Za-z]{2,4}\b
  • Classe PHONE_US che usa ^(\+?(1)([ .-]?)?)?(\(?([2-9]\d{2})\)?([ .-]?)? )([2-9]\d{2})([ .-]?)(\d{4})([ #eExXtT]*)(\d{2,6})?&
  • Classe PIN_US che utilizza \b([0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4})\b
  • Classe LAST_NAME che utilizza il file C:/IRI/cosort100/sets/names/names_last.set

In caso contrario, fai clic su Ripristina impostazioni predefinite .

Nella parte superiore della pagina delle preferenze, c'è una voce Soglia corrispondente . Rappresenta la percentuale di corrispondenze richieste per assegnare una classe di dati a una colonna. La ricerca dello schema eseguirà la scansione di blocchi di dati 4K fino a quando le corrispondenze non raggiungono questa soglia. Se non raggiunge mai questa soglia, non viene assegnata alcuna classe di dati.

Poiché so di avere colonne che contengono cognomi che potrebbero non essere chiamati "COGNOME" o potrebbero non avere nemmeno dati corrispondenti nel file impostato, posso usare un'espressione regolare per abbinare la mia classe di dati in modo da apprezzare nomi di colonna. Ad esempio, potrebbe esserci una colonna denominata LNAME o LASTNAME.

Per modificare la classe di dati LAST_NAME, fai clic sulla voce LAST_NAME nella vista Classi di dati e fai clic su Modifica . Cambiare il suo nome in L(AST)?[_-]?NAME (sottolineatura e trattino tra parentesi). Fai clic su OK . Fai clic su Applica e chiudi .

Dovresti predeterminare come vuoi che i valori in ciascuna classe di dati vengano mascherati (ad esempio, il formato della colonna di destinazione), in modo da poter definire successivamente quelle regole. Nel nostro esempio, ci saranno regole di redazione, crittografia di conservazione del formato e pseudonimizzazione. Ciascuno deve essere definito una sola volta, dal menu IRI.

Per definire queste regole in questo esempio, procedi nel seguente modo:

Regola 1 – Redazione (per i numeri di previdenza sociale)

  1. Seleziona menu IRI> Nuova regola .
  2. Seleziona Regole campo e fai clic su Avanti .
  3. Seleziona Funzione di redazione , usa SSN per l'inizio del nome della regola in modo che legga SSNRedactionRule e fare clic su Avanti .
  4. Seleziona Definisci maschera pulsante di opzione. Digita 1 in Posizione iniziale e 5 in Lunghezza . Fai clic su Aggiungi alla tabella e Fine .

Regola 2 – Crittografia (per numeri di conto di carte di credito, indirizzi e-mail e numeri di telefono)

  1. Seleziona menu IRI> Nuova regola .
  2. Seleziona Regole campo e fai clic su Avanti .
  3. Seleziona Funzioni di crittografia e decrittografia e fai clic su Avanti . Non rinominare la regola.
  4. Seleziona enc_fp_aes256_alphanum opzione a sinistra. Inserisci segreto per la passphrase . Vedi questa pagina sulle opzioni di gestione delle chiavi di crittografia.
  5. Fai clic su Fine .

Regola 3 – Pseudonimizzazione (per i cognomi)

  1. Seleziona menu IRI> Nuova regola .
  2. Seleziona Regole campo e fai clic su Avanti .
  3. Seleziona Sostituzione pseudonimo , rinominalo LNamePseudonimRule e fai clic su Avanti .
  4. Fai clic su Utilizza il tuo elenco di pseudonimi e Sfoglia nel file di ricerca, C:/git/workbench-demos/Database_Classification_Masking/sets/lnames.set
  5. Seleziona Usa estrazione casuale dall'elenco degli pseudonimi . Tieni presente che è possibile anche una pseudonimizzazione recuperabile, ma è più complicata a causa di probabili modifiche ai dati di origine.
  6. Fai clic su Fine .

Ora che le nostre regole di mascheramento delle classi di dati sono state definite, possiamo eseguire operazioni di ricerca e mascheramento per trovare e correggere i dati a livello globale in uno o più schemi di database.

Scansione:eseguire la ricerca guidata classe di dati dello schema

Per trovare tutti i dati conformi alle nostre definizioni di classe in tutte le tabelle di uno schema, utilizzare la Ricerca guidata classi di dati dello schema. Questo produce un report di ogni tabella e colonna con le PII preclassificate all'interno, crea un file di classe di dati specifico per il tuo progetto e apre un editor di moduli per quel file. In quella finestra di dialogo di modifica (il nostro passaggio successivo), puoi rivedere e modificare la tua classe di dati e le definizioni delle regole di mascheramento prima di passare al mascheramento dei dati globale nel passaggio finale.

È possibile eseguire la procedura guidata dal gruppo di menu Data Discovery nella barra degli strumenti di IRI Workbench. È inoltre possibile eseguire la procedura guidata di ricerca direttamente da Esplora origine dati, invece, per precompilare la procedura guidata con uno schema selezionato. Fare clic con il pulsante destro del mouse sullo schema SCOTT in Data Source Explorer (DSE) e selezionare IRI> Schema Data Class Search .

Nella pagina di configurazione della procedura guidata di ricerca, immettere il percorso in cui salvare il file della classe di dati. Può esserci solo uno di questo tipo di file in ogni progetto, da qui lo stato di sola lettura del campo del nome. Lascia le impostazioni predefinite così come sono. Fai clic su Avanti .

La pagina di input mostra che uno schema è selezionato. Fai clic su Avanti . La pagina successiva consente di limitare le colonne cercate per tipo di dati. Includi NUMERICO e fai clic su Avanti .

La pagina Escludi elementi consente di escludere tabelle o colonne durante la scansione. Fai clic su Avanti .

La pagina delle classi di dati consente di filtrare le classi di dati che verranno utilizzate durante la scansione. Seleziona solo CARTA_CREDITO , EMAIL , L(AST)?[_-]?NOME, PHONE_US e PIN_US . Fai clic su Fine .

Insieme ai report, questo crea (o aggiunge) una libreria di classi di dati con i mapping tra le colonne di origine e le classi di dati. L'editor di moduli che si apre consente di assegnare regole ai risultati.

Questa ricerca su 46 tabelle ha prodotto 18 corrispondenze di colonne, che so essere per lo più, ma non completamente complete:

So che un paio di colonne non sono state abbinate a causa delle tabelle vuote o dei nomi che non trovano corrispondenze nei file impostati. Nel passaggio successivo, posso affrontare questi errori e confermare le mie regole di mascheramento in base al tavolo.

Revisione e rettifica – Editor libreria di classi di dati

Ora che i risultati della ricerca sono aperti nella finestra di modifica del modulo della libreria di classi di dati, è possibile esaminare e modificare le regole delle colonne a livello di tabella ed eliminare le tabelle vuote nello schema con nomi di colonna corrispondenti ai nomi delle classi di dati. Tutto ciò aiuta a confermare che sei impostato correttamente per il lavoro di mascheramento in blocco da seguire.

Tieni presente che questa visualizzazione supporta anche i risultati di ricerca di file flat (classe dati directory) insieme ai risultati di ricerca del database. Unendo questi risultati alla libreria di classi di dati, è più facile mantenere le stesse funzioni di mascheramento (regole) su origini dati disparate. Ciò aiuta a mantenere l'integrità referenziale e a testare la coerenza dei dati in ambienti applicativi più distribuiti.

Fare clic su un'origine dati (tabella) per visualizzare i dettagli su tale origine e un'anteprima dei dati al suo interno. Se è stata creata una corrispondenza con una classe di dati, quella colonna mostra quella classe e come è stata abbinata.

Nel caso della mia tabella PERSONS di seguito, puoi vedere che:tutti i valori delle colonne SSN corrispondevano al modello RegEx della mia classe di dati PIN_US e le colonne LASTNAME e CREDIT_CARD corrispondevano ai nomi delle classi di dati, precludendo la necessità di tali scansioni di colonne.

Le modifiche alle mappature delle classi di dati possono essere apportate modificando la classe di dati tramite il menu a discesa o deselezionando la colonna per rimuovere completamente la mappatura. Se una tabella è vuota, potrebbe non assegnare tutte le mappature desiderate. Ci sono tre modi per gestirlo:

  1. Puoi aggiungere le tabelle alla pagina di esclusione nella procedura guidata di classificazione sopra in modo che non venga aggiunta alla libreria di classi di dati
  2. Se la tabella potrebbe avere dati in futuro, assegna le classi di dati manualmente qui. Quindi o
    • Deselezionali nella procedura guidata di mascheramento
    • Lasciali e la procedura guidata di mascheratura creerà script di lavoro che vengono eseguiti ma non mascherati
  3. oppure, rimuovi l'origine dati dalla libreria di classi di dati

In questo esempio, seleziona le seguenti origini dati e fai clic su Rimuovi poiché sono vuoti o non devono essere mascherati:

   SCOTT.DEMO_ROWGEN
   SCOTT.DM_EMPLOYEES
   SCOTT.PATIENT_RECORD_ENCRYPTED

È necessario prestare attenzione per verificare i risultati nella libreria di classi di dati prima di mascherare. A volte le corrispondenze vengono perse perché i dati non sono validi o il matcher della classe di dati deve essere modificato. È anche possibile che si verifichino falsi positivi.

In questo esempio, una classe di dati deve essere assegnata manualmente perché esistono formati di indirizzi e-mail e numeri di telefono statunitensi non validi, ma vogliamo comunque mascherare quelle colonne. Possiamo selezionare e classificare questa colonna in:

   SCOTT.EMPLOYEES.PHONE_NUMBER> PHONE_US

Una volta che i risultati sono stati rivisti e modificati secondo necessità, fare clic sulle classi di dati nella libreria a sinistra per assegnare le regole predefinite. Ciò ti consentirà di assegnare le regole a tutte le fonti semplicemente assegnando una regola predefinita a una classe.

In questo esempio, ho assegnato le mie regole di mascheramento alle classi di dati nella libreria come segue:

   CREDIT_CARD> FieldEncryptionRule
   EMAIL> FieldEncryptionRule
   L(AST)?[_-]?NAME> LNamePseudonimoRegola
   PHONE_US> FieldEncryptionRule
   PIN_US> SSNRedactionRule

È possibile verificare che le assegnazioni delle regole globali si siano propagate in modo completo e corretto nelle origini dati rivedendo le regole di mascheramento in ciascuna. Ad esempio, nella tabella SCOTT.PERSONS mostrata prima con le regole, ora abbiamo:

Se in una colonna di una determinata tabella manca una regola o necessita di una regola diversa, tale regola può essere aggiunta o modificata dopo l'applicazione delle regole predefinite indirizzandole in ciascuna origine dati.

Maschera:esegui la procedura guidata per la mascheratura del database delle classi di dati

Dopo aver verificato che le regole di mascheramento corrette siano assegnate alle classi di dati, sei pronto per applicarle a livello globale.

Fare clic con il pulsante destro del mouse su iriLibrary.dataclass oggetto nella cartella del progetto nella struttura ad albero di IRI Workbench Project Explorer e selezionare IRI> New Data Class Database Masking Job . Nella prima pagina della procedura guidata, verificare che la cartella del progetto sia il punto in cui sono state salvate la classe di dati e la libreria delle regole e assegnare un nome al lavoro. Seleziona la Mostra pagina di riepilogo per vedere i dettagli del lavoro.

La procedura guidata consente di aggiornare i risultati mascherati in Stessa tabelle di origine (per mascherarle staticamente), in Diverse tabelle di destinazione o su File flat (consigliato) in modo da poter prima convalidare i risultati e caricarli nei target. Modifica l'Uscita a File flat e fai clic su Avanti .

Nella pagina Filtro classi di dati, lascia selezionate tutte le classi di dati. Fai clic su Avanti . Nella pagina Origini dati, lascia tutti gli elementi selezionati. Se ci sono tabelle su cui non vuoi eseguire il lavoro, devi deselezionarle qui.

Poiché ho scelto di mostrare la schermata di riepilogo, posso verificare il lavoro:

prima di fare clic su Fine .

Gli script vengono quindi creati e viene aperto un diagramma di flusso per illustrare l'intero lavoro, che viene anche serializzato come file batch di Windows (o Unix). Ogni tabella che avrà una colonna mascherata è rappresentata da un blocco di mappatura di trasformazione marrone, serializzato in uno script attività.

Rivedere le operazioni di mascheramento facendo doppio clic sui blocchi di mappatura di trasformazione ed esaminando le linee arancioni verso i target. Questi indicano che le colonne vengono modificate dall'input.

Fare clic nei campi a destra della linea arancione e vedere la vista delle proprietà nella parte inferiore dello schermo. L'istruzione Advanced Field mostra la trasformazione (funzione di mascheramento) applicata.

Una volta che sei a tuo agio con il lavoro di mascheratura che è stato creato, eseguilo. Nella new_classProtection cartella, fare clic con il pulsante destro del mouse su new_classProtection.bat file e seleziona Esegui come> Programma batch .

Il lavoro viene eseguito sulla riga di comando e i file di output mascherati possono essere aperti per la revisione dalla cartella del progetto o dal file system. Infatti, dopo l'esecuzione dell'operazione batch, tutti gli script delle attività di mascheramento e gli output dei file flat vengono visualizzati nella mia nuova cartella di lavoro.

Lo screenshot qui sotto mostra quelli a sinistra, lo stato prima e dopo di una delle mie tabelle, PERSONS, al centro, e le istruzioni specifiche dell'attività in forma di script e schema a destra. Guarda come le tre colonne classificate e assegnate in questa tabella sono state mascherate come pianificato:

Una volta eseguito il processo di mascheramento batch, puoi ricontrollare i risultati prima di:

  1. caricali nelle tabelle in IRI Workbench (che può creare automaticamente file di caricamento);
  2. modifica il lavoro per apportare modifiche; e/o, 
  3. esegui nuovamente la procedura guidata per indirizzare invece l'output alle tabelle.

Questi processi di mascheramento vengono eseguiti sulla riga di comando e possono essere attivati ​​o pianificati per l'aggiornamento dei dati e l'archiviazione automatica. Contatta se hai domande o hai bisogno di aiuto con qualsiasi aspetto di questo processo di configurazione end-to-end o la sua distribuzione.

  1. Per escludere la possibilità di risultati di ricerca falsi positivi su carte di credito e numeri di identificazione nazionale, è possibile eseguire automaticamente un controllo di validità computazionale durante le ricerche tramite valori di pattern-matching. Seleziona o crea uno script di convalida della classe di dati da associare alla definizione della classe di dati.
  2. Se utilizzi FieldShield in Voracity, puoi ordinare simultaneamente o successivamente quei file sulla chiave di indice primaria della tabella di destinazione per velocizzare i caricamenti di massa e le query comuni.