Questo articolo descrive un metodo di mascheramento dinamico dei dati (DDM) disponibile per i siti premium IRI FieldShield che utilizza un sistema basato su proxy per intercettare le query dell'applicazione ai database connessi a JDBC. È uno dei numerosi approcci per mascherare i dati in volo che gli utenti FieldShield possono prendere in considerazione.
Altre opzioni IRI DDM includono:funzioni FieldShield richiamabili tramite API integrate in programmi C/C++/C#, Java o .NET; funzioni FieldShield in tempo reale incorporate nelle procedure SQL che creano viste mascherate; e smascheramento dinamico delle tabelle mascherate staticamente per gli utenti autorizzati.
Il sistema basato su proxy qui introdotto utilizza un driver "JDBC SQL Trail" specifico per il database, insieme a un'applicazione Web di configurazione e gestione denominata SQL Sharp (SQL#). Questo diagramma mostra l'architettura del sistema prima e dopo l'implementazione:
Questa applicazione attualmente supporta le seguenti piattaforme di database relazionali:
- Oracolo 11g, 12c, 18/19c
- PostgreSQL 9.5, 9.6, 10, 11
- MS SQL 2014, 2016
- SAP HANA 2.0
e richiede i seguenti componenti di terze parti:
- MS Windows 7,10 o Server 2012 e versioni successive (testato).
- Java JDK e JRE 1.8 o versioni successive.
- Tomcat 8.5 o versioni successive per eseguire il server Web SQL#.
- Un browser Web moderno, come:
- Google Chrome
- Mozilla Firefox
- Apple Safari
- Microsoft Edge
- Oracle o PostgreSQL come database del repository da archiviare:
- Configurazione di utenti e gruppi SQL#
- Accesso al DB e controlli delle attività
- Politiche di mascheramento dinamico dei dati
- Registri di controllo SQL
Come funziona?
All'interno dell'applicazione Web SQL#, si creano policy di mascheramento dei dati per redigere i valori delle colonne in tempo reale per tutti gli utenti tranne quelli autorizzati che si connettono al database tramite il driver JDBC SQL Trail. Devi installare e configurare quel driver per ogni istanza di database che vuoi proteggere.
I criteri DDM definiscono quali tabelle e colonne mascherare e come verranno visualizzati i valori mascherati. Una volta che il sistema è stato configurato correttamente, tutte le query connesse tramite il driver saranno soggette alla politica di mascheramento.
È anche possibile definire criteri per impedire agli utenti di accedere e determinate attività SQL. Viene prodotto un log di controllo dell'attività di accesso e SQL completo e visualizzabile in SQL#.
Il driver non distingue tra gli utenti dell'applicazione per scopi di blocco, mascheramento o controllo. Tuttavia, puoi autorizzare utenti con nomi specifici, effettuando connessioni alternative del server delle applicazioni al DB tramite lo stesso driver, a visualizzare i dati non mascherati.
Creazione di una politica di mascheramento
Per creare una policy di mascheramento in SQL#, usa la Politica di mascheratura scheda di Gestione di esecuzione SQL# schermo. Seleziona il + Icona (Aggiungi) a destra dell'Elenco regole di mascheramento etichetta.
Assegna un nome alla regola di mascheratura e una descrizione facoltativa. Puoi quindi scegliere il tipo di maschera da applicare da Masing Regex: nel menu a discesa Aggiungi regola di mascheramento dialogo.
Le prime tre opzioni sono predefinite, mentre Regex consente di definire un formato di mascheratura personalizzato. Fai clic sul + (Aggiungi) a destra di TAB/COL label per aggiungere una o più combinazioni di tabelle e colonne, per specificare quali valori di dati verranno mascherati.
Dopo aver creato ciascuna combinazione di tabella e colonne, fai clic su Aggiungi pulsante al centro della finestra di dialogo per inserirli nell'elenco. Quando hai finito di specificare le posizioni di tabelle e colonne, fai clic su Aggiungi pulsante in basso per aggiungere le posizioni a Aggiungi regola di mascheramento dialogo.
Infine, fai clic su Salva nella parte inferiore di Aggiungi regola di mascheramento finestra di dialogo al termine della regola di mascheratura. A questo punto, tutti gli utenti configurati per l'accesso ai dati vedranno i valori mascherati durante la connessione tramite il driver proxy JDBC SQL Trail.
Per consentire a un utente di visualizzare i dati non mascherati, devi aggiungerli all'Elenco utenti non mascherati , come descritto di seguito.
Concessione dell'autorizzazione agli utenti
All'interno della stessa Normativa sul mascheramento scheda di Gestione di esecuzione SQL# schermo. Fai clic sul + (Aggiungi) a destra dell'Elenco utenti non mascherati etichetta. Verrà visualizzato Cerca utente finestra di dialogo in cui è possibile selezionare uno o più utenti per i quali le query nelle colonne e nelle tabelle selezionate non verranno mascherate.
Fai clic su Salva nella parte inferiore della finestra di dialogo quando hai finito di selezionare gli utenti.
Utilizzo di SQL# e SQL Trail da applicazioni database
In questo esempio, la nostra applicazione di database sarà IRI Workbench, l'ambiente di progettazione dei lavori front-end di Eclipse per Voracity, FieldShield e altri prodotti software IRI.
Per abilitare le tue applicazioni per il controllo SQL e il mascheramento dinamico dei dati utilizzando il server proxy SQL# e il driver JDBC SQL Trail, dovrai attivare SQL# tramite Tomcat e il suo server proxy. È inoltre necessario configurare il driver JDBC SQL Trail nella vista IRI Workbench Data Source Explorer, nonché le politiche DDM in SQL# come descritto sopra.
Ecco una vista dell'istanza Oracle connessa tramite il driver JDBC SQL Trail.
Si noti che tutte le normali operazioni del database e le procedure guidate dei processi IRI continueranno a funzionare tramite questa connessione. Ciò significa anche che qualsiasi attività non autorizzata da IRI Workbench verrà bloccata e tutti i comandi SQL emessi da qui al database connesso verranno registrati nel log di controllo SQL#.
Questa è una query di Workbench nella tabella ORDERS che è stata configurata con criteri per DDM in SQL#:
rispetto alla stessa query eseguita da un utente autorizzato, che mostra i dati originali non mascherati:
Nel frattempo, nella sezione di registrazione dell'applicazione SQL#, puoi vedere il nostro record di query:
dall'indirizzo IP di IRI Workbench.